Managing Cisco programmgesteuert; Telnet-vs SNMP?
Vor kurzem wurde ich angesprochen von einem Netzwerk-Ingenieur, co-worker, die gerne auslagern seiner Moll-Netzwerk-admin-Aufgaben zu einem junior-level-helpdesk tech. Die spezifische Lage in der Notwendigkeit von management fungiert als ein ISP, der für die Mieter auf der single-site-Eigenschaft, so gibt es viele kleine Anpassungen vorgenommen werden, auf einer täglichen basis.
Ich denke, dass es hilfreich wäre, ihm zu schreiben einer winform-app zum verwalten der 32 Cisco-Geräte, auf-Website. Ich möchte zunächst die Funktionalität, die ändern könnte, access-control-Listen, port-VLAN-Zuweisungen und-Bandbreite Beschränkungen pro VLAN... das hinzufügen von mehr auf der Liste als seine als wertvoll.
Mein Erster Gedanke war, zu emulieren eine telnet-Sitzung mit dem Netzwerk-Gerät, unter Verwendung meiner Netzwerk-Ingenieur Vertrautheit mit der Befehlszeilenoption /IOS-Interaktion. Minimale Zeit, die erforderlich wäre, um zu erfahren, Cisco IOS-Konventionen, mich.
Obwohl bei der Suche nach Lösungen, es scheint, dass die meisten Menschen zugunsten SNMP. Dass, oder, Ihren spezifischen Umstände schob Sie in die Richtung von SNMP.
Wollte ich wissen, wenn ich habe ausversehen ein offensichtlicher Vorteil von SNMP. Soll ich mich mit SNMP? Warum oder warum nicht?
InformationsquelleAutor crftr | 2008-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
SNMP ist ideal für erste Informationen aus von einem Cisco-Gerät, aber ist nicht sehr nützlich, der das Gerät steuert. (obwohl es technisch kann schieben Sie eine neue Konfiguration auf einem Cisco IOS-Gerät mit einer Kombination von SNMP und TFTP. Aber Sie eine ganz neue config ist ein ziemlich stumpfes instrument für die Steuerung Ihres Routers oder switch).
Einer der anderen Kommentatoren erwähnt, das Cisco IOS-XR XML-API. Es ist wichtig zu beachten, dass die IOS-XR XML-API ist nur verfügbar auf Geräten mit IOS XR. IOS-XR ist nur auf ein paar Ciscos high-end carrier-class-Geräte, also für 99% aller Cisco-Routern und switches mit dem IOS XR XML-API ist nicht eine option.
Andere Möglichkeiten sind die SSH oder HTTP (viele Cisco Router, switches, AP, etc. eine optionale web-interface). Aber ich würde empfehlen, gegen diesen. Meines Wissens nach, das web-interface ist nicht sehr konsistent-Geräte, und eine ziemlich überraschende Zahl von Cisco-Geräten nicht unterstützt SSH, oder zumindest nicht unterstützen, es in der Basis-Lizenz.
Telnet ist wirklich der einzige Weg zu gehen, es sei denn, du bist nur auf einen kleinen Bereich der Geräte-Modelle. Geben Sie etwas verglichen werden, das Cisco-eigene CiscoWorks Netzwerkmanagement-software verwendet Telnet eine Verbindung zu verwalteten Geräten.
InformationsquelleAutor Bob McCormick
Würde ich nicht verwenden, SNMP, stattdessen der Blick auf ein kleines-Sprache, der als "erwartet". es macht für eine sehr schöne erwarten/response Prozessor für diesen Router.
InformationsquelleAutor KevinDTimm
Ich getan haben, eine angemessene Menge der reellen Welt, SNMP-Programmierung mit Cisco-switches und finden Sie Python auf der Oberseite des Net-SNMP zu werden, durchaus sinnvoll. Hier ist ein Beispiel, über Google books, der das hochladen einer neuen Cisco configuration via Net-SNMP und Python: Cisco-Switch-Upload über Net-SNMP und Python. Ich sollte preisgeben, ich war der co-Autor des Buches verwiesen, in dem link.
Jeder, der Kilometerstand kann variieren, aber ich persönlich mag es nicht mit
expect
, und es vorziehen, verwenden Sie SNMP-weil es wurde eigentlich entworfen, um eine "Simple Network Management Protocol". In einer Prise, erwarten, ist ok, aber es wäre nicht meine erste Wahl. Einer der Gründe, warum einige Unternehmen nutzen zu erwarten ist, dass ein Entwickler wird nur genutzt, um mit Hilfe rechnen. Ich würde nicht unbedingt gerammelt bis die Umgehung der SNMP-einfach, weil es ist ein Beispiel für jemanden, die Automatisierung von telnet oder ssh. Versuchen Sie es selbst zuerst.Kann es einige wirklich schreckliche Dinge, die geschehen, mit rechnen, das kann nicht sein offensichtlich auch. Da erwarten, dass auf eine Eingabe wartet, unter den richtigen Bedingungen gibt es sehr subtile Probleme, die schwierig zu Debuggen sind. Dies bedeutet nicht, ein sehr erfahrener Entwickler kann sich nicht entwickeln, zuverlässigen code mit erwarten, aber etwas bewusst zu sein als gut.
Einer der anderen Dinge, möchten Sie vielleicht zu schauen ist ein Beispiel der Verwendung von multiprocessing-Modul zu schreiben, non-blocking SNMP-code. Da dies mein Erster post auf stackoverflow kann ich nicht mehr posten dann einen link, aber wenn du google für es Sie es finden können, oder ein weiteres Schlafzimmer mit IPython und Net-SNMP.
Eine Sache im Auge zu behalten, beim schreiben von SNMP-code, die es beinhaltet das Lesen eine Menge an Dokumentation, und tun, Versuch und Irrtum. Im Fall von Cisco, die Dokumentation ist Recht gut, obwohl.
InformationsquelleAutor Noah Gift
SNMP ist nicht schlecht, aber es kann nicht alles tun können, was Sie brauchen, es zu tun. Abhängig von der Bibliothek, die Sie verwenden, und wie es blendet die details der Interaktion mit SNMP haben Sie möglicherweise eine harte Zeit der Suche nach den richtigen teilen der MIB zu ändern und auch zu wissen, was oder wie Sie zu ändern, zu tun, was Sie wollen.
Einen Grund, nicht zu verwenden von SNMP ist, dass Sie tun können, all die Konfiguration, die Sie benötigen, mit dem IOS-XR XML-API. Es könnte sein, viel einfacher, zu bündeln die Befehle, die Sie senden möchten, um die Geräte verwenden, die als für die Interaktion mit SNMP.
InformationsquelleAutor carson
Ich gefunden habe, SNMP, um ein Schmerz für das management. Wenn Sie brauchen nur zu schnappen Sie sich einen kleinen Daten ist es toll; wenn Sie brauchen, um Dinge zu verändern oder nutzen, wenn stark, es kann sehr zeitaufwändig sein. In meinem Fall bin ich wohl mit den CLI-also ein Telnet-Ansatz gut funktioniert. Ich habe geschrieben einige Python-Skripte für administrative Aufgaben auf verschiedene Stücke von Netzwerk-Ausrüstung mit Telnetlib
InformationsquelleAutor alanc10n
SNMP hat eine ganz erhebliche CPU-Treffer auf die Geräte in Frage, die im Vergleich zu telnet; ich würde empfehlen, telnet, wo immer möglich. (Wie schon in einer vorherigen Antwort, die IOS-XR XML-API wäre schön, aber soweit ich weiß, IOS-XR ist nur bereitgestellt, auf high-end carrier-grade-Router).
In Bezug auf die vorhandene Konfiguration-management-Systeme, zwei kommerzielle Akteure sind HP-Opsware, und EMV-Voyence. Beide werden wohl tun, was Sie brauchen. Ich bin mir nicht bewusst, viele open-source-Lösungen, die tatsächlich die Unterstützung der Bereitstellung von änderungen. (RANCID, zum Beispiel, nur wird die Konfiguration, überwachung, nicht pre-staging und bereitstellen von config-änderungen).
Wenn Sie Rollen Sie Ihre eigene Lösung, eine Sache, die ich empfehlen würde, ist sitzen mit Ihrem Netzwerk-admin und kommen mit einem best-practice-Modell für die Bereitstellung für den Dienst, den er dadurch (z.B. standardisierte ACL, QoS-Warteschlange, und die VLAN-Namen, ähnlich wie Einträge in Zugriffssteuerungslisten, die die gleiche Funktion haben, für verschiedene Kunden, etc.). Sicherstellen, dass alle vorhandenen bereitgestellten config entspricht mit dieser GP-bevor Sie beginnen Ihre design, wird es machen das problem viel leichter zu handhaben. Viel Glück.
InformationsquelleAutor Murali Suriar
Nebenbei bemerkt: bevor Sie das Rad neu erfinden schreibt ein weiteres service-provisioning-system/Netzwerk-management-system, versuchen Sie, für bestehende. Ich kenne eine Menge von kommerziellen Lösungen verschiedener Grad an Flexibilität und Funktionalität, aber ich bin sicher, es gibt eine ganze Menge opensource-ones.
InformationsquelleAutor ADEpt
Cisco hat inklusive Menü-Optionen für helpdesk-Anwendungen. Im Grunde kannst du mit telnet auf die box und es stellt ein schönes, sauberes Menü (drücken Sie die 1, 2, 3). Für weitere Informationen überprüfen Sie diesen link:
http://www.cisco.com/en/US/docs/ios/12_2/configfun/command/reference/frf001.html#wp1050026
InformationsquelleAutor kruczkowski
Ein weiteres Votum für erwarten.
Auch, wollen Sie nicht, damit die Konfiguration Ihres firewalls entweder über telnet oder SNMP - ssh ist der einzige Weg zu gehen. Der Grund dafür ist, dass ssh verschlüsselt die Nutzdaten, und nicht aussetzen die privilegierten management-Anmeldeinformationen zu potenziellen abfangen.
Wenn aus irgendeinem Grund Sie nicht mit ssh direkt überlegen einen ssh-fähigen serial console server, um die firewall-Konsolen-port, und konfigurieren Sie es so.
InformationsquelleAutor Mark K. Mellis