Question

J'ai récemment été approché par un ingénieur réseau, un collègue, qui souhaiterait déléguer ses tâches administratives mineures au réseau à un technicien du support technique de niveau subalterne. Le site spécifique ayant besoin de gestion agit en tant que fournisseur de services Internet pour les locataires sur son site unique. Par conséquent, de nombreux petits ajustements sont effectués quotidiennement.

Je pense qu'il serait utile de lui écrire une application Winform pour gérer les 32 périphériques Cisco, sur site. Dans un premier temps, j'aimerais proposer une fonctionnalité qui pourrait modifier les listes de contrôle d'accès, les attributions de VLAN de port et les limitations de bande passante par VLAN ... en ajoutant d'autres éléments à la liste si elle est jugée utile.

Mon idée initiale était d'émuler une session telnet avec le périphérique réseau. en utilisant la familiarité de mon ingénieur réseau avec l'interaction ligne de commande / IOS. Il me faudrait un minimum de temps pour apprendre les conventions de Cisco IOS.

Bien qu'en cherchant des solutions, il semble que la plupart des gens préfèrent SNMP. Cela ou leur situation spécifique les ont poussés vers SNMP.

Je voulais savoir si j'avais négligé un avantage évident du protocole SNMP. Devrais-je utiliser SNMP? Pourquoi ou pourquoi pas?

Était-ce utile?

La solution

Le protocole SNMP permet d’obtenir des informations sur d’un périphérique Cisco, mais il n’est pas très utile de contrôler le périphérique. (Même si techniquement, vous pouvez pousser une nouvelle configuration sur un périphérique Cisco IOS en utilisant une combinaison de SNMP et de TFTP. Mais envoyer une toute nouvelle configuration est un instrument assez grossier pour contrôler votre routeur ou votre commutateur).

L'un des autres commentateurs a mentionné l'API XML de Cisco IOS XR. Il est important de noter que l'API XML IOS XR n'est disponible que sur les périphériques qui exécutent IOS XR. IOS XR n'étant utilisé que sur quelques-uns des périphériques haut de gamme de Cisco, 99% des routeurs et commutateurs Cisco n'utilisent pas l'API XML IOS XR.

D'autres possibilités sont SSH ou HTTP (de nombreux routeurs, commutateurs, points d'accès, etc. Cisco ont une interface Web optionnelle). Mais je recommanderais contre l'un ou l'autre. À ma connaissance, l'interface Web n'est pas très cohérente d'un périphérique à l'autre et un nombre assez surprenant de périphériques de Cisco ne prend pas en charge SSH, ou du moins ne le prend pas en charge dans la licence de base.

Telnet est vraiment la seule solution, à moins que vous ne cibliez qu'un petit nombre de modèles de périphériques. Pour vous comparer, le logiciel de gestion de réseau CiscoWorks de Cisco utilise Telnet pour se connecter aux périphériques gérés.

Autres conseils

Je ne voudrais pas utiliser SNMP, mais plutôt regarder un petit langage appelé "expect". il s’agit d’un très bon processeur d’attentes / réponses pour ces routeurs.

J'ai effectué une quantité raisonnable de programmation SNMP dans le monde réel avec des commutateurs Cisco et je trouve que Python au-dessus de Net-SNMP est tout à fait raisonnable. Voici un exemple, via Google Books, de téléchargement d'une nouvelle configuration Cisco via Net-SNMP et Python: Chargement de commutateur Cisco via Net-SNMP et Python . Je devrais divulguer que j'étais co-auteur du livre référencé dans le lien.

Le kilométrage de chacun peut varier, mais personnellement, je n'aime pas utiliser expect , et préfère utiliser SNMP car il a été conçu pour être un "protocole de gestion de réseau simple". À la rigueur, l’attente est acceptable, mais ce ne serait pas mon premier choix. Certaines entreprises s’attendent à ce que les développeurs s’habituent à l’utiliser. Je ne voudrais pas forcément éviter de contourner SNMP simplement parce qu'il existe un exemple d'automatisation de telnet ou de ssh. Essayez-le d'abord pour vous-même.

Il peut y avoir des choses vraiment horribles qui se produisent avec l’attente, cela peut ne pas être évident aussi. En raison de l'attente de l'entrée, dans les bonnes conditions, il existe des problèmes très subtils qui sont difficiles à résoudre. Cela ne veut pas dire qu'un développeur très expérimenté ne peut pas développer de code fiable avec l'attente, mais qu'il faut aussi en être conscient.

Parmi les autres choses que vous voudrez peut-être examiner, vous trouverez un exemple d'utilisation du module de multitraitement pour écrire du code SNMP non bloquant. Comme il s’agit de mon premier article sur stackoverflow, je ne peux pas poster plus d’un lien, mais si vous le cherchez sur Google, vous pouvez le trouver, ou un autre sur IPython et Net-SNMP.

Lorsque vous écrivez du code SNMP, gardez à l’esprit que cela implique de lire beaucoup de documentation et de faire des essais et des erreurs. Dans le cas de Cisco, la documentation est assez bonne.

Le protocole SNMP n’est pas mauvais, mais il peut ne pas être en mesure de faire tout ce dont vous avez besoin. En fonction de la bibliothèque que vous utilisez et de la manière dont elle masque les détails d'interaction avec SNMP, vous aurez peut-être de la difficulté à trouver les parties correctes de la MIB à modifier et même à savoir quoi ou comment les modifier pour faire ce que vous voulez.

Une des raisons de ne pas utiliser SNMP est que vous pouvez effectuer toute la configuration nécessaire à l'aide du API XML IOS XR . Il pourrait être beaucoup plus facile de regrouper les commandes que vous souhaitez envoyer aux périphériques utilisant ce système plutôt que d’interagir avec SNMP.

J'ai trouvé que SNMP était un problème pour la direction. Si vous avez juste besoin de récupérer un peu de données, c'est génial; si vous avez besoin de changer des choses ou d’utiliser beaucoup, cela peut prendre beaucoup de temps. Dans mon cas, je suis à l'aise avec la CLI, donc une approche Telnet fonctionne bien. J'ai écrit des scripts Python pour effectuer des tâches administratives sur divers éléments du réseau en utilisant Bibliothèque Telnet

SNMP a un impact assez important sur le processeur des périphériques en question par rapport à telnet; Je recommanderais telnet dans la mesure du possible. (Comme indiqué dans une réponse précédente, l'API XML IOS XR serait bien, mais pour autant que je sache, IOS XR n'est déployé que sur des routeurs haut de gamme de niveau opérateur).

En ce qui concerne les systèmes de gestion de la configuration existants, HP Opsware et EMC Voyence sont deux acteurs commerciaux. Les deux feront probablement ce dont vous avez besoin. Je ne connais pas beaucoup de solutions open source qui prennent en charge le déploiement de modifications. ( RANCID , par exemple, surveille uniquement la configuration, mais pas la stadification et le déploiement des modifications de configuration).

Si vous envisagez de lancer votre propre solution, je vous recommande de vous asseoir avec votre administrateur réseau et de vous proposer un modèle de déploiement conforme aux meilleures pratiques pour le service qu'il fournit (par exemple, une liste de contrôle d'accès standardisée, une file d'attente de qualité de service et un réseau local virtuel noms, entrées similaires dans les ACL ayant la même fonction pour différents clients, etc.). Assurez-vous que toutes les configurations déployées existantes sont conformes à ce tiers avant de commencer votre conception, cela rendra le problème beaucoup plus facile à gérer. Bonne chance.

Remarque: avant de réinventer la roue en écrivant un autre système de fourniture de services / système de gestion de réseau, essayez de rechercher les systèmes existants. Je connais pas mal de solutions commerciales offrant divers degrés de flexibilité / fonctionnalité, mais je suis sûr qu’il existe de nombreuses solutions open source.

Cisco a inclus des options de menu pour les applications de support technique. Fondamentalement, vous telnet à la boîte et il présente un bon menu propre (appuyez sur 1, 2, 3). Pour plus d'informations, consultez ce lien:

http: / /www.cisco.com/fr/US/docs/ios/12_2/configfun/command/reference/frf001.html#wp1050026

Un autre vote à prévoir.

En outre, vous ne souhaitez pas autoriser la configuration de vos pare-feu via Telnet ou SNMP - SSH est la seule solution. La raison en est que ssh chiffre sa charge utile et n'exposera pas les informations d'identification de gestion privilégiées à une interception potentielle.

Si, pour une raison quelconque, vous ne pouvez pas utiliser directement ssh, envisagez de connecter un serveur de console série compatible ssh au port de console du pare-feu et de le configurer de cette manière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top