Auf einem großen Cisco Catalyst-Switch-Stack sind fast alle Switchports gepatcht. Ich muss die Ports identifizieren, die nicht verwendet werden, um weitere Geräte anzuschließen.
Das Verfolgen von Switchports, Verkabelungen, Patchfeldern und Steckdosen zu möglichen Endgeräten ist mühsam und selbst dann könnten temporär Steckdosen verwendet werden. Das Überprüfen der Aktivität von Port-LEDs ist nicht zuverlässig, da ein Benutzergerät ausgeschaltet werden kann.
Was ist der einfachste Weg, um alle nicht verwendeten Switchports über IOS-Befehle zu erkennen?
Antworten:
Ich benutze häufig
oder das gleiche mit GigabitEthernet, welche Art von Schnittstellen ich überprüfen möchte.
sh int
(das istshow interfaces
) gibt eine riesige Liste von Ste-Status aller Schnittstellen|
kann zum Filtern, aber auch in Suchausdrücken verwendet werden| i
(forinclude
) filtert die Ausgabe, die den folgenden Suchausdrücken entspricht(...|...)
, um zwei Bedingungen zu erfüllen: den Schnittstellennamen und einen Status, den ich sehen möchte, wir können hier reguläre Ausdrücke verwenden, wie diesen "oder" AusdruckDie Ausgabe kann folgendermaßen aussehen:
Jetzt kann ich meine Kandidaten mit tatsächlich 0 über die Zeit eingegebenen Paketen sehen, selbst wenn mein Ausdruck mit Zahlen übereinstimmt, die nur mit 0 enden. Ich könnte ihn perfektionieren, aber es ist auch ein Vorteil, sich leicht zu merken. Die Schnittstellennamen direkt vor den Eingabezeilen für jeweils 0 Pakete sind meine Kandidaten.
sh int <name>
clear counters [type number]
Es kann eine gute Praxis sein, nicht verwendete Switchports herunterzufahren. So ist es einfach, sie mit
sh ip int bri
oder ähnlichem zu identifizieren . Und Sie haben keine Probleme, wenn Sie einen Switchport verwenden, der zuvor definitiv gesperrt war.quelle
sh int | i FastEthernet|0 packets input
Letztendlich ... DOKUMENTATION. Sie müssen wissen, wo sich jedes Patchkabel befindet, um 100% sicher zu sein, dass Sie nicht von etwas trennen, von dem jemand erwartet, dass es irgendwann funktioniert. Nur weil ein Port momentan "down" ist, heißt das noch lange nicht, dass jemand ihn nicht benutzt hat. Auch nur, weil die Zähler derzeit auf Null stehen, heißt dies nicht, dass sie in (naher) Zukunft nie verwendet wurden oder nicht mehr verwendet werden. Die Zähler können gelöscht und beim Start auf Null zurückgesetzt werden.
Ich habe bei ISPs und großen Unternehmen gearbeitet, und Dokumentation ist der Schlüssel, um zu wissen, was was ist. Andernfalls führt das zufällige Erraten zu zahlreichen schlechten Tagen ... Kunden sind ziemlich sauer, wenn Sie ihre DSL-Leitung an eine andere Person anschließen, eine Adresszuweisung duplizieren, die falsche Schnittstelle herunterfahren usw. Schränke für Unternehmensverkabelungen können ein echtes Chaos darstellen. Ohne Dokumentation kann das Aufspüren von Dutzenden von Kabeln unter Tausenden schmerzhaft sein (und etwas so Einfaches wie die Beschreibung der Anschlüsse zählt).
quelle
ich mag auch
welche Ausgänge
Der Ausgabeparameter gibt an, wann der Port zuletzt Datenverkehr gesehen hat. Dies ist nützlich, um die Ports zu identifizieren, die nur gelegentlich verwendet werden.
EDIT: Ebenfalls erwähnenswert (aus Gründen, die über den Rahmen dieser Frage hinausgehen) ist, dass "Letzte Eingabe" fast immer "Nie" ist.
quelle
Ich mag die Antwort von @ Stefan, aber mit dieser Befehlszeile "sh int | i (Eingabe von Ethernet | 0-Paketen)", die jetzt alle Ethernet-Schnittstellentypen erfasst und Nicht-Null-Zahlen herausfiltert, die zufällig mit Null enden. Er erwähnte, dass eine Feinabstimmung möglich sein könnte, so dass dies nur ein Beispiel ist.
Eine weitere Option ist ...
Ja, das Leerzeichen wird benötigt. Der einfachste Weg, die Leerzeichen richtig zu machen, ist, "sh int counters" zu machen und eine Zeile mit allen Nullen zu kopieren. Hier ist zu erwähnen, dass sich die Liste in der Mitte von Input zu Output ändert, was uns nicht wichtig ist, nicht verwendete Ports zu finden. Es hat den Vorteil, dass NUR die Ports ohne Eingabe angezeigt werden, sodass Sie die verwendeten Ports nicht wie bei Stefans Methode aussortieren müssen.
quelle
show int counters | i _0_.*_0_.*_0_.*_0_
anstelle von Leerzeichen verwenden ... auch Ihre Antwort muss seinsh int counters | i (Port|_0 0 0 0)
(beachten Sie den führenden Unterstrich, den IOS als Leerzeichen interpretiert)show interfaces counters | inc ( +0 +0 +0)
.Ich würde die Ausgabe kratzen (oder mit SNMP, noch besser) und Standard-UNIX-Tools verwenden, um sie zu analysieren. Hier ist ein einfaches Beispiel:
Hier habe ich eine Teilausgabe von 'show int counters' (nur zu Demonstrationszwecken) in einer Datei namens "counters" gespeichert.
Verwenden Sie jetzt einfach awk, um einen Bericht über alle Ports zu erstellen, die alle vier Zählerfelder auf Null haben:
Die Hauptidee hierbei ist es, die von Ihnen verwendeten Daten vom Gerät zu entfernen, damit Sie intelligenter, komplexer, einfacher und unabhängig von Analyse und Berichterstellung vorgehen können.
HINWEIS Wenn Sie auf mehreren Geräten ein Linux-Dienstprogramm wie "screen" verwenden, um die Ausgabe einer tty-Verbindung zu protokollieren, kann dies das Auffinden nicht verwendeter Ports auf mehreren Cisco-Geräten sehr effizient machen. Führen Sie (in einer Protokolldatei) einen Befehl wie den folgenden aus ... wobei "HOSTNAME" ein universeller Bestandteil der Cat-Zähler Ihres Cisco-Geräte-Hostnamensschemas ist awk '{if ($ 1 == HOSTNAME ) || ($ 2 == 0 && $ 3 == 0 && $ 4 == 0 && $ 5 == 0) print $ 1} '
quelle
grep
und zu leitensed
.show int counters | i _0_.*_0_.*_0_.*_0_
Ich bin neu und kann die Antworten von @ netdad und @mike pennington nicht bewerten - aber ich mag sie. Um die Antwort von @Mike Pennington ein wenig zu vertiefen, können Sie auch den folgenden Befehl ausführen:
Die Regex sagt hier eine "0", gefolgt von 1 oder mehr Leerzeichen, gefolgt von einer "0", gefolgt von 1 oder mehr Leerzeichen, gefolgt von einer "0", gefolgt von 1 oder mehr Leerzeichen, gefolgt von einer letzten "0".
Hoffe das hilft.
quelle
Ich benutze immer
Alles in allem schön und gut.
quelle
| ex connected
das gerne hinzu .Wenn Sie dies regelmäßig tun müssen, ist nichts besser als Perl und Net :: Telnet :: Cisco. Sie können sich bei einer X-Anzahl von Routern anmelden, alle Informationen über die gewünschten Schnittstellen abrufen, die Ausgabe analysieren und in eine Datei drucken oder per E-Mail mit Net :: SMTP senden oder als Standardausgabe drucken. Ich kann Beispiele nennen, wenn Sie möchten, aber es ist ziemlich einfach.
Alternativ dazu können Sie mit dem folgenden TCL-Skript die gewünschte Ausgabe in einem ansprechenden, sauberen Format erstellen, wenn Sie mit IOS nichts mehr zu tun haben:
Ich biete dies an, weil TCL und die Vorgehensweise etwas weniger zugänglich sind [IMHO] als Perl
quelle
Ich benutze normalerweise
sh int des | ex up
, die alle Ports auflisten, die in einem Zustand nach unten sindquelle
show interfaces status
hilfreicher.Hier ist eine, die ich kürzlich verwendet habe, um Kabel von Ports zu entfernen, die seit mindestens sechs Wochen keine Aktivität mehr gesehen haben:
quelle
Das führende Leerzeichen mit der 0 schließt größere Zahlen aus, die mit Null enden.
Es ist besser, Ports herunterzufahren (deaktiviert), bis sie verwendet werden. Es ist riskant, das Switchport-Zugriffs-VLAN beispielsweise für einen bereits aktiven Port zu ändern , es sei denn, Sie können sicher sein, dass er nicht verwendet wird.
Die Ausgabe könnte wie folgt aussehen und uns mitteilen, dass der Switchport auf g8 / 18 bei 0 Paketen seit dem letzten Löschen des Zählers deaktiviert ist, während g8 / 19 verwendet wird (aufgrund des Fehlens der Eingabe "0 Pakete").
quelle
Was ist mit der Verwendung der MAC-Tabelle? Es listet die MAC-Adressen mit den Schnittstellen auf und altert sie aus. Sie müssten die Liste aus dem IOS entfernen, um eine gefilterte Liste eindeutiger Adressen zu erstellen.
quelle
quelle
OKAY. Dies funktioniert auf allen Switches ab 2900 (muss nicht älter sein) und zeigt nur Down-Ports an.
Ich würde gerne verwenden,
sh int status
aber danach ist das Ergebnisconnected
undnotconnected
, also schließen Sie aus oder schließen Sie nichts Gutes ein, weil das verbundene Wort Teil von beidem ist, sodass Sie die Geschichte verstehen.In meinem Fall auf einem 3524 erhalte ich das unten mit beiden Befehlen, um zu verdeutlichen, dass es funktioniert:
quelle
Es ist ein bisschen schummeln, aber wenn alles nur an ein Endgerät angeschlossen ist, können Sie die Port-Sicherheit mit Sticky-Mac-Adressen aktivieren. Versuchen Sie es später noch einmal (wie lange es auch dauern mag, anzunehmen, dass jemand den Computer verwendet hätte oder nicht vorhanden ist), und die aktuelle Konfiguration zeigt an, ob dieser Port bereits verwendet wurde. Ich bin mir ziemlich sicher, dass Sie Sticky-Mac-Adressen mit maximal 1 pro Schnittstelle verwenden können, nur für den Fall, dass Sie VoIP-Telefone und -Computer am selben Port verwenden, aber ich bin nicht sicher.
quelle
Oh, die Zeiten, in denen es einfach war zu tippen:
(Das ist auf einem 4500 mit Version 12.2 (20))
quelle
Ich denke, dass in der Cisco-Umgebung der beste Weg ist, eine Show-Version zu erstellen, um die Betriebszeit des Switches und danach zu kennen
zeigen Schnittstellen Buchhaltung
quelle
Nur IOS-Befehle zu verwenden, ist etwas knifflig - Sie werden das eine oder andere verpassen. Ich schlage vor, dass andere Benutzer snmp verwenden (solarwinds bietet eine Reihe von kostenlosen Tools, die Sie sich möglicherweise ansehen möchten) und das Gerät einige Tage lang überwachen (ggf. Wochen).
Für den mühsamen Teil, den Sie mit dem Verfolgen von Kabeln usw. erwähnt haben, habe ich die Arbeit mit dem Zuordnen von Switch-Ports zu Patch-Ports usw. minimiert, indem ich die Zähler geleert und einige Tage später Snmp-Traps verwendet und dann das Patchpanel für 1-2 vom Netz getrennt habe Sekunden und nachdem ich einen Eintrag auf dem SNMP-Trap-Monitor / -Empfänger erhalten hatte (Port x am Modul y ist ausgefallen), habe ich das gleiche noch einmal getan, um zu überprüfen (nicht, dass jemand ein Gerät an einem der Ports zufällig ausgeschaltet hat). Es dauert vielleicht 5 Minuten für ein 24-Port-Panel - das ist also ziemlich schnell. Für die Toten - geh einfach ein anderes Mal zurück. Wenn sie immer noch tot sind und keine Änderung an den Zählern vorgenommen wurde, kann davon ausgegangen werden, dass der Port tatsächlich nicht verwendet wird.
quelle
Normalerweise verwende ich "show interface status" und Variationen davon, aber ich verwende auch eine nette Open-Source-Software namens "Switchmap", um eine einfache grafische Ansicht der Schnittstellen zu ermöglichen. Ein großer Vorteil davon ist, dass, wenn ein Port hoch / runter ist, angezeigt wird, wie lange es her ist, dass Datenverkehr darauf war, und dass Sie von dort aus einen Anruf tätigen können, um zu entscheiden, ob Sie ihn wieder verwenden sollen oder nicht.
http://sourceforge.net/projects/switchmap/
Das spart etwas Tipparbeit :-)
quelle
Dies sollte Ihnen zeigen, ob das an den Switchport angeschlossene Kabel tatsächlich an irgendetwas angeschlossen ist. Unabhängig von seinem Status. Ersetzen Sie
test
durchshow
, um den Status zu erhalten.quelle
show int status
. Wenn ich meinen Laptop ausgesteckt habe, um für den Tag nach Hause zu gehen, wird mein Port möglicherweise bis zum Morgen neu zugewiesen.Wir hatten dieses Problem in unserer Firma. Wir haben die Korrelation aus der Ausgabe der Befehle "show arp" und "show mac address-table" verwendet, um die MAC-Adressen aller Computer / Geräte in unseren Prämissen zu korrelieren.
Zuerst müssen Sie eine Liste der IPs und MACs der Geräte in Ihrem Netzwerk erstellen und diese mit den entsprechenden Schnittstellen unter Verwendung der obigen Befehle korrelieren ...
quelle
Show IP Interface Brief ist mein persönlicher Favorit.
Erleichtert das Anzeigen ein wenig. Andernfalls gibt es zahlreiche Tools, mit denen Sie die Portnutzung auf vielen Switches nachverfolgen können.
quelle
Auf Cisco-Geräten können Sie Folgendes verwenden:
Auf HP Geräten lautet der Befehl:
quelle
Ich denke, Sie suchen nach einer Summe, die auf dem Status basiert? zumindest klingt es nach deiner frage.
geben Sie eine schöne Zählung dessen, was verbunden ist oder nicht.
quelle