La gestion de Cisco par programme; Telnet vs SNMP?
J'ai récemment été approché par un réseau-ingénieur, co-travailleur qui souhaite décharger sa légère réseau les droits admin à une junior-niveau helpdesk tech. L'emplacement spécifique dans le besoin de la direction agit comme un fournisseur de services internet pour les locataires sur son seul site de la propriété, donc il y a beaucoup de petits ajustements sur une base quotidienne.
Je pense qu'il serait utile de lui écrire une application winform pour gérer les 32 périphériques Cisco, sur site. Je voudrais d'abord de fournir une fonctionnalité qui pourrait modifier les listes de contrôle d'accès, VLAN de port les affectations et les limitations de la bande passante par VLAN... l'ajout de plus à la liste comme son avoir de la valeur.
Ma première pensée a été pour émuler une session telnet avec le périphérique réseau; en utilisant mon réseau de l'ingénieur de la familiarité avec la ligne de commande /IOS interaction. Peu de temps serait nécessaire pour apprendre Cisco IOS de conventions, de moi-même.
Alors que la recherche de solutions, il apparaît que la plupart des gens faveur SNMP. Que le, ou les, de leurs circonstances particulières poussé dans le sens de SNMP.
Je voulais savoir si j'ai oublié un avantage évident de SNMP. Dois-je utiliser SNMP? Pourquoi ou pourquoi pas?
Vous devez vous connecter pour publier un commentaire.
SNMP est idéal pour obtenir des informations hors d'un périphérique de Cisco, mais n'est pas très utile contrôle de l'appareil. (même si, techniquement, vous peut pousser une nouvelle config pour un Cisco IOS appareil à l'aide d'une combinaison de SNMP et TFTP. Mais l'envoi d'une toute nouvelle config est un joli instrument contondant pour le contrôle de votre routeur ou commutateur).
L'un des autres intervenants ont mentionné le Cisco IOS XR API XML. Il est important de noter que l'IOS XR API XML est disponible uniquement sur les périphériques exécutant IOS XR. IOS XR est utilisé uniquement sur un peu de Cisco haut de gamme de classe transporteur, périphériques, de sorte que 99% de l'ensemble des routeurs et commutateurs Cisco IOS XR API XML n'est pas une option.
D'autres possibilités sont SSH ou HTTP (beaucoup de routeurs Cisco, commutateurs, AP, etc. disposer en option d'une interface web). Mais je vous conseille à l'encontre de l'un de ces. À ma connaissance, l'interface web n'est pas très cohérent à travers les dispositifs, et un nombre surprenant de Cisco périphériques ne prennent pas en charge SSH, ou au moins ne pas le soutenir dans la licence de base.
Telnet est vraiment la seule façon d'aller, à moins que vous êtes seulement en ciblant une petite gamme de modèles de périphériques. Pour vous donner quelque chose à comparer, Cisco propre CiscoWorks logiciel de gestion de réseau utilise Telnet pour vous connecter à des périphériques gérés.
Je ne voudrais pas utiliser SNMP, au lieu de regarder un peu la langue appelée "attendre". il en fait un très agréable d'attendre/processeur de réponse pour ces routeurs.
J'ai fait une quantité raisonnable de monde réel SNMP programmation avec des commutateurs Cisco et trouver Python sur le dessus de Net-SNMP pour être tout à fait raisonnable. Voici un exemple, via Google livres, de de téléchargement d'une nouvelle configuration Cisco via Net-SNMP et Python: Commutateur Cisco Télécharger via Net-SNMP et Python. Je dois dire que j'étais le co-auteur de l'ouvrage référencé dans le lien.
Tous kilométrage peut varier, mais personnellement, je n'aime pas utiliser
expect
, et préfèrent utiliser SNMP parce qu'il a été réellement conçu pour être un "Simple Network Management Protocol". Dans un pincement, attendez c'est ok, mais il ne serait pas mon premier choix. L'une des raisons pour lesquelles certaines entreprises utilisent attendre qu'un développeur juste s'habitue à l'aide d'attendre. Je n'aurais pas forcément craquer jusqu'en contournant SNMP juste parce qu'il y est un exemple de quelqu'un à l'automatisation de telnet ou ssh. L'essayer pour la première auto.Il peut y avoir certains vraiment des choses horribles qui se passent à attendre, qui ne peut pas être évident ainsi. Parce que attendre attend pour l'entrée, dans de bonnes conditions, il sera très subtile des problèmes difficiles à résoudre. Cela ne veut pas dire un très développeur expérimenté ne peut pas se développer fiable des codes à attendre, mais ce quelque chose d'être conscient de que bien.
Une des autres choses que vous pouvez regarder, c'est un exemple d'utilisation du module multiprocessing d'écriture non bloquante SNMP code. Parce que c'est mon premier post de stackoverflow, je ne peut pas poster plus d'un lien, mais si vous faites une recherche google pour elle, vous pouvez trouver, ou un autre sur l'utilisation de IPython et Net-SNMP.
Une chose à garder à l'esprit lors de l'écriture SNMP code, c'est qu'il s'agit de lire beaucoup de documentation et de faire l'essai et l'erreur. Dans le cas de Cisco, la documentation est assez bonne même si.
SNMP n'est pas mauvais, mais il peut ne pas être en mesure de faire tout ce dont vous avez besoin. Selon la bibliothèque que vous utilisez et la façon dont il cache les détails de l'interaction avec SNMP vous pouvez avoir un moment difficile de trouver les bonnes pièces de la MIB de changer et même en sachant de quoi ou de la manière de les modifier pour faire ce que vous voulez.
Une raison de ne pas utiliser SNMP est que vous pouvez faire toute la configuration vous avez besoin de l'aide de l' IOS XR API XML. Il pourrait être beaucoup plus facile de regrouper les commandes que vous souhaitez envoyer à la périphériques à l'aide de qui que pour interagir avec SNMP.
J'ai trouvé SNMP pour être une douleur pour la gestion. Si vous avez juste besoin de prendre un peu de données qu'il est grand; si vous avez besoin de changer les choses ou de les utiliser si fortement qu'il peut être très coûteuse en temps. Dans mon cas, je suis à l'aise avec la CLI donc un Telnet approche fonctionne bien. J'ai écrit quelques scripts Python pour effectuer des tâches administratives sur les différents éléments du réseau d'équipement en utilisant Telnetlib
SNMP a assez important CPU frapper sur les dispositifs en question par rapport à telnet; je le recommande telnet dans la mesure du possible. (Comme indiqué dans une réponse précédente, à l'IOS XR API XML serait bien, mais autant que je sache IOS XR n'est déployé sur le haut de gamme de classe transporteur, routeurs).
En termes de gestion de la configuration existante des systèmes, deux acteurs commerciaux sont HP Opsware, et EMC Voyence. Les deux vont probablement faire ce dont vous avez besoin. Je ne suis pas au courant de beaucoup de solutions open source qui fait de soutenir le déploiement des modifications. (RANCE, par exemple, seulement le contrôle de la configuration, pas de pré-mise en scène et de déployer les modifications de configuration).
Si vous allez rouler votre propre solution, une chose que je recommande est assis vers le bas avec votre administrateur réseau et à venir avec les meilleures pratiques de déploiement de modèle pour le service qu'il fournit (par exemple, standardisé par l'ACL, la file d'attente QoS, VLAN et les noms; des entrées semblables dans les Acl qui ont la même fonction pour le compte de différents clients, etc.). S'assurer que tous les déployée config est conforme à ce PB avant de commencer votre projet, il va rendre le problème plus facile à gérer. Le meilleur de la chance.
Note: avant de réinventer la roue, l'écriture d'un autre service mise en service de système de gestion de réseau/système, essayez de regarder pour les existants. Je connais un grand nombre de solutions commerciales de divers degrés de flexibilité et de fonctionnalités, mais je suis sûr qu'il ya beaucoup opensource ceux.
Cisco a inclus les options de menu pour le support technique des applications. Fondamentalement, vous utilisez telnet pour la boîte et il présente une belle propre menu (appuyez sur 1, 2, 3). Pour plus d'informations, consultez ce lien:
http://www.cisco.com/en/US/docs/ios/12_2/configfun/command/reference/frf001.html#wp1050026
Un autre vote pour attendre.
Aussi, vous ne voulez pas permettre la configuration de votre pare-feu via telnet ou SNMP, ssh est la seule façon d'aller. La raison en est que ssh chiffre de sa charge, et ne les expose pas les privilégiés de la gestion des informations d'identification d'interception.
Si pour quelque raison vous ne pouvez pas utiliser ssh directement, envisager de connecter un ssh activé serveur de console série pour le pare-feu du port de console et de le configurer de cette façon.