Frage

wurde ich vor kurzem von einem Netzwerk-Ingenieure, Mitarbeitern angesprochen, der seine minderjährigen Netzwerk-Administrator Aufgaben eines Junior-Level-Helpdesk tech abzuladen möchte. Die besondere Lage in der Notwendigkeit Management fungiert als ISP für Mieter auf seine Single-Site-Eigenschaft, so gibt es viele kleine Anpassungen auf einer täglichen Basis gemacht werden.

Ich denke, es wäre hilfreich, ihn eine winform App verwalten die 32 Cisco-Geräte, Vor-Ort-zu schreiben. Ich möchte zunächst Funktionalität bereitzustellen, die Zugriffssteuerungslisten ändern könnte, Port-VLAN-Zuordnungen und Bandbreitenbeschränkungen pro VLAN ... mehr in die Liste als Ersatz für wertvolle hinzuzufügen.

Mein erster Gedanke war, eine Telnet-Sitzung mit dem Netzwerkgerät zu emulieren; mein Netzwerk-Ingenieurs der Vertrautheit mit der Befehlszeile / IOS-Interaktion verwendet. Minimale Zeit erforderlich wäre, um Cisco IOS Konventionen zu lernen, mich selbst.

Obwohl während der Suche nach Lösungen, scheint es, dass die meisten Menschen SNMP bevorzugen. Das, oder, ihre spezifischen Umstände, die sie in Richtung des SNMP gedrückt.

Ich wollte wissen, ob ich einen offensichtlichen Nutzen von SNMP übersehen habe. Soll ich mit SNMP werden? Warum oder warum nicht?

War es hilfreich?

Lösung

SNMP ist für den Zugriff auf Informationen out von einem Cisco-Gerät, ist aber nicht sehr nützlich, um das Gerät zu steuern. (Obwohl technisch, Sie kann eine neue Konfiguration zu einem Cisco IOS-Gerät drücken, um eine Kombination von SNMP und TFTP. Aber eine ganz neue Config Senden ist ein ziemlich stumpfes Instrument für Ihren Router oder Switch Controlling).

Einer der anderen commen erwähnt die Cisco IOS XR XML-API. Es ist wichtig, dass der IOS XR XML API zu beachten, auf Geräte nur verfügbar ist, die IOS XR laufen. IOS XR ist nur auf ein paar von Cisco High-End-Carrier-Class-Geräten verwendet, so dass für 99% aller Cisco Router und Switches das IOS XR XML API ist keine Option.

Weitere Möglichkeiten sind SSH oder HTTP (viele Cisco-Routern, Switches, AP, usw. haben ein optionales Web-Interface). Aber ich würde gegen eine dieser beiden empfehlen. Mein Wissen ist die Web-Oberfläche nicht sehr konsistent über verschiedene Geräte und eine eher überraschend hohe Zahl von Cisco-Geräten nicht SSH unterstützen oder zumindest unterstützt es nicht in der Basis-Lizenz.

Telnet ist wirklich der einzige Weg zu gehen, es sei denn, Sie sind eine kleine Auswahl an Gerätemodelle zielen. Um Sie etwas gegen zu vergleichen, Ciscos eigene Ciscoworks Netzwerk-Management-Software verwendet Telnet zu verwalteten Geräte zu verbinden.

Andere Tipps

würde ich nicht SNMP verwenden, anstatt Blick auf eine kleine Sprache namens ‚erwarten‘. es macht für einen sehr schönen erwarten / Response-Prozessor für diese Router.

Ich habe eine angemessene Menge an realer Welt SNMP-Programmierung mit Cisco-Switches durchgeführt und finde Python auf dem Net-SNMP durchaus sinnvoll zu sein. Hier ist ein Beispiel, über Google Bücher, von einer neuen Cisco-Konfiguration über Net-SNMP und Python Hochladen: Cisco-Switch-Upload über Net-SNMP und Python . Ich habe offenbare ich Co-Autor des Buchs in dem Link verwiesen wurde.

Jede milage kann variieren, aber Ich mag persönlich nicht expect verwenden, und es vorziehen, SNMP zu verwenden, weil es eigentlich ein „Simple Network Management Protocol“ sein entworfen wurde. In einer Prise erwarten ist ok, aber es wäre nicht meine erste Wahl sein. Einer der Gründe, einige Unternehmen erwarten verwenden ist, dass ein Entwickler nur zu verwenden erwarten gewöhnt. Ich würde nicht unbedingt aufbocken SNMP unter Umgehung nur weil es ein Beispiel für jemanden zu automatisieren Telnet oder SSH ist. Probieren Sie es selbst aus erster Stelle.

Es kann einige wirklich schreckliche Dinge, die mit erwarten passieren, die nicht so gut klar sein können. Da wartet auf die Eingabe erwartet, dort unter den richtigen Bedingungen sehr subtile Probleme, die schwer zu debuggen sind. Dies ist kein sehr erfahrenen Entwickler kann bedeuten, zuverlässigen Code nicht entwickelt mit erwarten, aber es ist etwas bewusst zu sein als gut.

Einer der anderen Dinge, die Sie wollen, betrachten können, ist ein Beispiel für das Multiprocessing-Modul der Verwendung von nicht-blockierenden SNMP-Code zu schreiben. Da dies mein erster Beitrag ist ich Stackoverflow kann nicht mehr als einen Link posten, aber wenn Sie es Google können Sie es oder eine andere zur Verwendung von IPython und Net-SNMP finden.

Eine Sache im Auge zu behalten, wenn das Schreiben SNMP-Code ist, dass es erfordert eine Menge Dokumentation zu lesen und Versuch und Irrtum zu tun. Im Fall von Cisco ist die Dokumentation allerdings recht gut.

SNMP ist nicht schlecht, aber es kann nicht in der Lage sein, alles zu tun Sie sie brauchen zu tun. In Abhängigkeit von der Bibliothek, die Sie verwenden und wie sie die Details der Interaktion mit SNMP versteckt können Sie eine harte Zeit haben die richtigen Teile der MIB finden sich ändern und zu wissen, was oder wie sie sich ändern zu tun, was Sie wollen.

Ein Grund nicht SNMP zu verwenden, ist, dass Sie alle die Konfiguration tun können Sie die IOS XR XML API . Es könnte viel einfacher sein, die Befehle, die Sie an die Geräte senden möchten, bündeln mit, dass als mit SNMP zu interagieren.

Ich habe SNMP gefunden ein Schmerz für das Management zu sein. Wenn Sie brauchen nur ein wenig Daten zu packen, es ist großartig; wenn Sie die Dinge ändern müssen oder verwenden, wenn schwer kann es sehr zeitaufwendig sein. In meinem Fall bin ich mit dem CLI bequem so ein Telnet-Ansatz gut funktioniert. Ich habe einige Python-Skripte geschrieben, um Verwaltungsaufgaben auf verschiedene Teile von Netzwerkgeräten durchführen mit Telnetlib

SNMP hat eine ganz erhebliche CPU auf den Geräten in Frage treffen im Vergleich zu Telnet; Ich würde telnet, wo immer möglich empfehlen. (Wie in einer früheren Antwort angegeben, die IOS XR XML API wäre schön, aber soweit ich weiß, IOS XR ist nur zum Einsatz auf High-End-Carrier-Grade-Router).

Im Hinblick auf die bestehenden Konfigurationsmanagement-Systeme, zwei kommerzielle Spieler sind HP Opsware und EMC Voyence. Beide werden wahrscheinlich tun, was Sie brauchen. Ich bin mir nicht bewusst, viele Open-Source-Lösungen, die tatsächlich die Bereitstellung von Änderungen unterstützen. ( RANCID zum Beispiel funktioniert nur Konfigurationsüberwachung, nicht vor-Staging und Bereitstellen von Konfigurationsänderungen).

Wenn Sie vorhaben, Ihre eigene Lösung zu rollen, eine Sache, die ich empfehlen würde, mit Ihrem Netzwerk-Administrator sitzt nach unten und kam mit einem Best-Practice-Bereitstellungsmodell für den Dienst, er bietet (zB standardisierte ACL, QoS-Warteschlange, und VLAN Namen, ähnliche Einträge in ACLs, die die gleiche Funktion für verschiedene Kunden, etc.). Stellen Sie sicher, dass alle bestehenden eingesetzt Config mit diesem BP entspricht, bevor Sie Ihr Design starten, wird es das Problem viel besser handhabbar machen. Viel Glück.

Nebenbei bemerkt: bevor Sie das Rad Schreiben einen anderen Service Provisioning System / Netzwerk-Management-System neu zu erfinden, versuchen, für bestehende suchen. Ich kenne eine ganze Reihe von kommerziellen Lösungen verschiedenen Grades an Flexibilität / Funktionalität, aber ich bin sicher, es gibt ziemlich viel Open-Source-diejenigen.

Cisco hat für Helpdesk-Anwendungen Menüoptionen enthalten. Grundsätzlich Telnet Sie an die Box und stellen ein schönes sauberes Menü (Taste 1, 2, 3). Für weitere Informationen lesen Sie in diesem Link:

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

Eine weitere Stimme für erwarten.

Auch wollen Sie nicht Konfiguration Ihres Firewalls entweder über Telnet oder SNMP erlauben - ssh ist der einzige Weg zu gehen. Der Grund dafür ist, dass ssh seine Nutzlast verschlüsselt und werden die privilegierten Management Anmeldeinformationen für potenzielle Abfangen ausgesetzt werden.

Wenn Sie aus irgendeinem Grund ssh nicht direkt verwenden können, sollten Sie einen ssh-fähigen Server serielle Konsole an den Konsolenport Firewall verbindet und es so zu konfigurieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top