wktools Version 4.6.1.0 - How to use wktools to review a Cisco network |
Inhaltsverzeichnis
4. Erlaeuterungen zum Ergebnis
1. Scope
Wenn man als externer Dienstleister zu einem Kunden kommt, um ein Netzwerkproblem zu analysieren, oder das Netzwerk als solches zu pruefen, ist oft keine ausreichende Dokumentation vorhanden, oder die bestehende Dokumentation ist veraltet und unvollstaendig. Es ist dann sehr schwierig, sich rasch den noetigen Ueberblick zu verschaffen.
Wie kann wktools in solchen Situationen helfen?Mit den Auswertungen bekommt man einen guten Ueberblick ueber den Zustand des Netzwerkes und man kann sich sofort mit der Fehlersuche beschaeftigen.
Was wktools nicht istwktools ersetzt jedoch keine Netzwerkdokumentation und auch keinen manuellen Netzwerkplan.
2. Beispiele
Anhand der folgenden Beispiele sollen die Moeglichkeiten von wktools aufgezeigt werden.
2.1. Loop via Hub
Im folgenden Ausschnitt ist ersichtlich, dass Port Gi10/42 mit Port Gi12/42 verbunden ist. Port Gi12/42 ist STP Blocking (orange Einfaerbung). Nach weiterer Analyse wurde festgestellt, dass die Ports ueber einen Hub verbunden waren.
2.2. Interface Unregelmaessigkeiten
Der vorige Ausschnitt zeigt zusaetzlich zum Loop auch einige Interfaces mit roten und gelben Markierungen. Damit werden Interface Fehler (E), STP Flappings (S), Hohe Interface Auslastung (L) und Half Duplex Einstellungen (D) angezeigt. Interfaces mit roten Markierungen sollten naeher untersucht werden. Mehr Informationen zu der Art der Fehler liefern der Fehler Report und der Detaillierte Fehler Report. Dort ist auch ersichtlich, wann die Interface Counters das letzte Mal zurueckgesetzt wurden.
Zugehoeriger Fehler Report:
Interfaces with more than 1000 errors, load > 100 or half duplex Nr. Hostname Interface Duplex ErrorLvl CountLastCl LoadLvl CDP Neighbor CDP Neigh Type Description 37 Switch-12 Gi11/44 Half-duplex 19196767 1y12w 0 User 38 Switch-12 Gi13/19 Half-duplex 7883596 1y12w 0 SEP00270DBF44F5 // Port 1 Cisco IP Phone 7945 User 39 Switch-12 Gi11/23 Full-duplex 620315 1y12w 0 SEP3037A6174A5E // Port 1 Cisco IP Phone 9971 User 40 Switch-12 Gi11/48 Full-duplex 312246 1y12w 0 SEPFCFBFBCA044D // Port 1 Cisco IP Phone 9971 User 41 Switch-12 Gi12/48 Full-duplex 235879 1y12w 0 User 42 Switch-12 Gi10/43 Full-duplex 225657 1y12w 0 SEPFCFBFB10FBA3 // Port 1 Cisco IP Phone 9971 User 43 Switch-12 Gi10/29 Full-duplex 3512 1y12w 0 User 44 Switch-12 Gi13/47 Full-duplex 1510 1y12w 0 SEP0004F2E5CCF8 // port 1 Cisco IP Conference Station 7936 User 45 Switch-12 Gi12/38 Full-duplex 1332 1y12w 0 SEP001E4AF39055 // Port 1 Cisco IP Phone 7941 User 46 Switch-12 Gi12/35 Full-duplex 1239 1y12w 0 User
In diesem Report ist ersichtlich, dass die Interfaces zwar eine sehr hohe Fehlerrate aufweisen, die Counters aber seit mehr als einem Jahr nicht zurueckgesetzt wurden. Nach Zuruecksetzen der Statistiken wurden die Daten noch einmal erfasst und beim zweiten Durchlauf hat alles gepasst.
2.3. Vergessene Etherchannel Konfiguration
Die Verbindung zwischen Switch-1 und Switch-2 wird ueber zwei Gigabit Links realisiert. Normalerweise sind in diesem Netzwerk alle redundanten Switch-Switch Links als Etherchannels ausgefuehrt, nur diese Verbindung nicht. Das konnte nach Begutachtung des Netzwerkplanes richtiggestellt werden.
2.4. Mehrere Nachbaren auf einem Interface
Die gelb markierten Interfaces in dem Beispiel zeigen an, dass auf einem physikalischen Interfaces mehrere Nachbaren erkannt wurden, und deuten normalerweise auf einen Berechnungsfehler hin. In diesem Fall waren aber einige Cisco Switches ueber einen Non-Cisco Switch verbunden und die BPDUs, CDP Pakete und anderer L2 Traffic wurde an alle Switches weitergeleitet. Das wurde nach Analyse der CDP Nachbarschaftsbeziehungen deutlich.
2.5. STP Topologie - Mehrere STP Root Bridges
STP-relevante Geraete oder Interfaces werden in der Visio Ausgabe farblich markiert. Somit ist auf einen Blick erkennbar, ob es im STP Ungereimtheiten gibt. Im folgenden Beispiel ist ersichtlich, dass fuer ein VLAN vergessen wurde, die STP Root zu setzen. Es sollte fuer alle VLANs der zentrale Core Switch STP Root sein, aber fuer VLAN 1 ist es ein Stockwerkverteiler.
2.6. STP - Falsches STP Protokoll
Im folgenden Beispiel laeuft auf allen Switches das Per-VLAN RSTP, ausser auf einer der Root Bridges, wo noch immer PVST konfiguriert ist:
2.7. Details in der Visio Ausgabe
Alle relevanten Details zu Geraeten oder Interfaces wird im Visio in den Shape Daten erfasst:
2.8. HW Inventory
Oft ist es notwending, alle Geraete samt S/N, SW Stand und Module zu erfassen. wktools liefert entsprechende Reports mit diesen Daten.
Devices Nr. Hostname Device Type S/N SW Version SNMP Location 1 Router-1 CISCO1841 FCZ1141xxxx 15.1(4)M 2 Switch-1-2960G WS-C2960G-24TC-L FOC1219xxxx 12.2(53)SE1 InventarNr: 1234567891 3 Switch-1-3548 WS-C3548-XL-EN FAA0510xxxx 12.0(5)WC17 InventarNr: 1234567892 4 Switch-2-3548 WS-C3548-XL-EN FAA0510xxxx 12.0(5)WC17 InventarNr: 1234567893 5 Switch-3-2950 WS-C2950G-48-EI FOC0616xxxx 12.1(22)EA13 InventarNr: 1234567894 ....
Device Details Nr. Hostname Device Type S/N Position Description 1 Router-1 CISCO1841 FCZ1141xxxx Chassis 1841 chassis 1.1 Router-1 CISCO1841 FOC1140xxxx motherboard C1841 Motherboard with 2 Fast Ethernet 1.2 Router-1 WIC-1B-S/T-V3 FOC1137xxxx WIC 0 Wan Interface Card BRI S/T (3086) 1.3 Router-1 HWIC-2FE FOC1502xxxx 2 Port HWIC on slot 1 Two-Port Fast Ethernet High Speed WAN Interface Card 2 Switch-1-2960G WS-C2960G-24TC-L FOC1219xxxx Chassis 3 Switch-1-3548 WS-C3548-XL-EN FAA0510xxxx Chassis 4 Switch-2-3548 WS-C3548-XL-EN FAA0510xxxx Chassis 5 Switch-3-2950 WS-C2950G-48-EI FOC0616xxxx Chassis ....
2.9. IP Phone Details
Zusaetzlich zu den Netzwerkgeraeten koennen auch Cisco IP Phones erfasst, und mit den interessanten Details im Netzwerkplan dargestellt werden:
Der zugehoerige Report schaut folgendermassen aus:
Detailled IP Phone Report Nr. Extension Hostname IP Address Device Type S/N SW Version VoiceVLAN CM 1 CM 2 DSCP Sig DSCP Call CDP Neighbor 1 598 SEPE840400CC79B 172.24.10.10 CP-7945G FCH15128TGM SCCP45.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/1 2 560 SEP0021A02D74C0 172.24.10.11 CP-7945G FCH1244ACW0 SCCP45.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/5 3 992 SEP44E4D94568F9 172.24.10.12 CP-9951 FCH1508AA5Y sip9951.9-1-2 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/36 4 999 SEP001B535C6508 172.24.10.18 CP-7941G FCH110998HQ SCCP41.9-2-1S 10 172.21.10.10 192.168.254.6 CS3 Standard ibk_sw01_rza // Gi1/0/7 5 556 SEP00230433B805 172.24.10.19 CP-7965G FCH12339YKS SCCP45.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/4 6 563 SEP8CB64F56978A 172.24.10.21 CP-9971 FCH14528FVN sip9971.9-2-2SR1-9 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/15 7 559 SEP8CB64FF62A94 172.24.10.22 CP-9971 FCH150284P7 sip9971.9-2-2SR1-9 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/9 8 569 SEPFCFBFBCB5DD7 172.24.10.23 CP-7941G FCH1410A8Z0 SCCP41.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/16 9 529 SEP001B535C6508-1172.24.10.24 CP-7941G FCH110998HQ SCCP41.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/13 10 558 SEP00170EEE2984 172.24.10.25 CP-7961G FCH1007858H SCCP41.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/10 11 565 SEP64A0E7F725CB 172.24.10.27 CP-9971 FCH15399SPT sip9971.9-2-2SR1-9 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/14 12 561 SEP0021A02D76D9 172.24.10.3 CP-7945G FCH1244ADBT SCCP45.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/2 13 557 SEP00235E1A01A5 172.24.10.8 CP-7945G FCH1241B41U SCCP45.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/12 14 567 SEP0021A02CB572 172.24.10.9 CP-7945G FCH124492MU SCCP45.9-2-1SR2S 10 172.21.10.10 192.168.254.6 CS3 Standard swibk01 // Gi0/3
3. Konfiguration und Details
Zur Zeit werden folgende Cisco Geraetegruppen unterstuetzt:Die Daten werden per Telnet/SSH, sowie HTTP/S (IP Phones) ausgelesen. Die notwendigen Befehle sind in der Dokumentation unter Punkt 8.1 aufgelistet. Zum Auslesen kann entweder wktools oder ein 3rd Party Produkt verwendet werden.
Warum werden die Daten nicht per SNMP ausgelesen?
3.1. Herangehensweise und Konfiguration von Configure Devices
Zum Auslesen der Daten wird in diesem Dokument "Configure Devices" verwendet. Die benoetigte Konfiguration kann entweder ueber den Wizard , oder ueber die Tool-Einstellungen selber vorgenommen werden. Im Folgenden werden die notwendigen Schritte in den Tool Einstellungen erklaert.
3.1.1. Hostfile erstellen (csv File aller Cisco Geraete, die erfasst werden sollen)
Beispiel fuer ein Hostfile -> Doku 5.2:
1.1.1.1;optionale Beschreibung 2.2.2.2; dns-name;
3.1.2. Hostfile verwenden
3.1.3. Config File Option einstellen
Fuer Mapper steht ein Template zur Verfuegung:
3.1.4. Username/Password setzen
3.1.5. Modus und Type setzen
Der Modus kann noch pro Geraet angepasst werden, sollten verschiedene Protokolle notwendig sein. Bei Type kann eingestellt werden, ob SingleHop oder MultiHop verwendet werden soll. In diesem Beispiel wird SingleHop verwendet, was bedeutet, dass direkter Zugriff auf alle Geraete moeglich ist.
3.1.6. Ausgabe Einstellungen
Hier wird eingestellt, wie und wo die gesammelten Daten abgelegt werden sollen. Im Beispiel wird fuer jedes Geraet ein File, mit dem Hostnamen als Filename, angelegt und der show output darin gespeichert. Das Verzeichnis ist dann in weiterer Folge das Suchverzeichnis fuer das Mapper Tool.
3.1.7. DeviceGroup File erstellen =>
Nach Druecken des "DeviceGroup Window Refresh" Buttons werden die Einstellungen konrolliert und die geraete-spezifischen Dinge in der DeviceGroup Ansicht in tabellarischer Form zusammengesfasst.
3.1.8. DeviceGroup Ansicht kontrollieren und Geraete auswaehlen
Kontrollieren, ob alle Geraete vorhanden sind, und ob User/Passwort, bzw. Protokolleinstellungen passen. Es kann jede Spalte editiert werden, und weitere Zeilen koennen bei Bedarf hinzugefuegt werden (Rechts-Klick auf eine Zeile). Danach per Click auf die Checkboxen die Geraete auswaehlen, fuer die die noetigen Informationen gesammelt werden sollen. Wenn alle Geraete ausgelesen werden sollen, dann auf die Checkbox im Header klicken.
3.1.9. Start =>
Nach Druecken des Start Buttons werden alle Daten gesammlt und im vorher ausgewaehlten Verzeichnis abgelegt.
3.2. Parsen der Daten, Berechnung der Topologie und Ausgabe vom Ergebnis
Nachdem die Geraete nacheinander erfasst wurden, muessen die relevanten Daten aus den Files gefiltert, und in einer Datenbank zur weiteren Verwendung abgelegt werden. Danach wird die Topologie berechnet und ausgegeben. Zusaetzlich werden die diversen Reports erstellt.
Dies geschieht in Schritt 2 mit dem Mapper Tool .
3.2.1. Input Settings
Bei "Search Directory" wird das Verzeichnis mit den vorher gesammelten Files angegeben. Mit Hilfe der Import Funktion koennen zusaetzlich wichtige Endgeraete importiert werden, die sonst nicht erfasst werden koennen, oder nicht unterstuetzt sind.
3.2.2. Output Settings
Es muss hier nur das "Output File" angegeben werden. Der Filename sollte ".vdx" als Endung enthalten. Alle anderen Files (Reports, Log, usw) werden von diesem Namen abgeleitet. Die Log File Option wird nach dem ersten Durchlauf automatisch befuellt, wenn sie leer ist.
3.2.3. Visio Output Options
Es stehen mehrere Ausgabe Optionen zur Verfuegung, die die Darstellung in der Visio Ausgabe beeinflussen. Bei groesseren, redundanten Topologien empfiehlt sich das "Organic Layout". Die "Unit Edge Length" bezieht sich auf den Abstand zwischen den einzelnen Nodes und kann je nach Geschmack veraendert werden.
Je nach Bedarf kann die L2 und L3 Topologie ausgegeben werden. Fuer jede Variante wird in der Visio Ausgabe ein eigener Tab erstellt. Die unteren drei Checkboxen beziehen sich darauf, ob Geraete, die nicht dediziert erfasst wurden, sondern per CDP oder STP gelernt wurden, ausgegeben werden sollen.
In unserem Beispiel wird eine L2 Topologie im Organic Layout mit allen Endgeraeten erstellt.
3.2.4. Options
In den Options wird angegeben, ob die Daten neu geparst werden sollen und ob die bestehende Datenbank, falls vorhanden, ueberschrieben oder erweitert werden soll.
Beim ersten Durchlauf muessen "Parse New" und "Analyze New" angehakt sein, da sonst keine Datenbank aufgebaut wird. Bei nachfolgenden Berechnungen koennen diese beiden Optionen weggelassen werden, wenn keine neuen Daten analysiert, sondern nur die Ausgabe bzw. Reports erstellt werden sollen.
Wenn in der Datenbank Datensaetze mehrerer Durchlaeufe gespeichert sind, wird zu diversen Reports ein Diff ausgegeben. Das beste Beispiel dafuer ist die Topologie: Falls sich die Nachbarschaften geaendert haben sollten, werden die Aenderungen explizit angegeben.
Im Beispiel sind alle Optionen gesetzt, da es noch keine Datenbank gibt.
3.2.5. Start =>
Nachdem alle Optionen eingestellt wurden, wird das Tool mittels Start Button gestartet. Im Log Fenster sind die einzelnen Schritte ersichtlich. Am Ende werden alle Reports im Log Fenster ausgegeben und die diversen Files angelegt.
4. Erlaeuterungen zum Ergebnis
4.1. Unterstuetzte Visio Versionen
Unterstuetzt werden Visio 2007 und 2010, wobei Visio 2010 die bevorzugte Version ist, da dort der unten beschriebene Bug nur auftritt, wenn die Zeichnung mehr als ein Tab hat.
4.2. Visio Quick Reference
Im Visio wird ein Tab mit der Quick Reference angelegt, da es ein paar Punkte gibt, die zu beachten sind:
4.3. Erklaerung der Interfacemarkierungen und Schwellwerte
Unknown STP |
Unbekannter STP Nachbar |
STP Blocking |
Interface ist in STP Blocking Status fuer alle VLANs |
STP Mixed |
Interface ist in STP Blocking Status fuer manche VLANs und Forwarding fuer andere VLANs |
STP Forwarding |
Interface ist in STP Forwarding Status fuer alle VLANs |
Logic Error |
Nachbarschaftsbeziehung konnte nicht eindeutig berechnet werden -> Es wurden auf einem Interface mehrere Nachbaren erkannt. Das deutet auf einen Logikfehler von wktools hin. |
STP Transition Count |
Das Interface ist oefter als 15 Mal in den STP Forwarding Mode fuer mindestens ein VLAN gegangen. Das deutet auf einen instabilen Spanning Tree hin. |
Duplex |
Wenn das Interface Half Duplex ist, wird dieses Feld orange markiert. |
Load |
Orange: Hohe Interface Utilization - Load > 100 Rot: Sehr hohe Interface Utilization - Load > 200 |
Errors |
Orange: Die Summe der Interface Fehler (input, output, giants, throttles...) ist groesser 10 Rot: Die Summe der Interface Fehler ist groesser 1000. |
4.4. Erstellte Files
Es werden mehrere csv Files fuer die Reports, sowie je ein vdx (Visio) und db (Datenbank) File generiert. Alle Ausgabe Dateien liegen im selben Verzeichnis. Der Pfad leitet sich von der "Output File" Option ab. Details zur Datenbank finden sich unter Punkt 5 dieses Dokuments.
5. Datenbank
Die DB wird im selben Verzeichnis erstellt, in dem auch das vdx File liegt. Die Datenbank ist eine SQLite DB und kann mit jedem SQLite Editor geoeffnet werden. Als Editor/Viewer hat sich das Firefox Add-On "SQLite Manager" bewaehrt.
Von Aenderungen wird dringend abgeraten.
5.1. Datenbank Struktur
5.2. Beschreibung der Tabellen
device | Alle Geraete, unabhaengig von der Datenquelle, mit den eindeutigen Geraeteinfos, abzueglich Hardware |
license, flash, hwInfo, ipPhoneDet | Geraetedetails |
cdp | Alle CDP Nachbarschaften |
interfaces | Alle Interfaces, unabhaengig von der Datenquelle |
neighborship | Das Ergebnis zur Nachbarschaftsberechnung |
neighbor | CAM und ARP Tables |
l3routes | IP Routing Tabellen |
ipSubnet | Alle IP Netze |
vlan | Erfasste VLANs |
stp_status | STP Informationen pro Vlan und Interface |
stpInstanz | STP Instanzen pro Vlan |
rControl | Hilfstabelle; Wird fuer die History benoetigt. Nach jedem Durchlauf wird die letzte ID jeder Tabelle in rControl geschrieben, um die einzelnen Durchlaeufe auseinanderhalten zu koennen. |
5.3. Naehere Infos zu den interessanten Tabellen fuer die Problemanalyse
5.3.1. cdp
Um die Nachbarschaften und etwaige Ungereimtheiten zu pruefen, empfielt sich ein Blick auf die cdp Tabelle. Beschreibung der einzelnen Spalten:
cdp_id | Eindeutige ID |
hostname | Eigener Hostname |
nName | Hostname vom Nachbaren |
alternatenName | Alternativer Hostname vom Nachbaren -> FQDN, falls vorhanden. |
intf | Eigenes Interface |
nIntfIP | IP Adresse vom Nachbaren |
nIntf | Interface vom Nachbaren |
type | Geraetetype vom Nachbaren (ID) - hat nur wktools interne Bedeutung |
platform | HW Platform vom Nachbaren |
sw_version | SW Version vom Nachbaren |
Beispiel fuer eine Abfrage der cdp Nachbaren eines Geraetes:
SELECT * FROM cdp WHERE hostname LIKE 'hostname';
Beispiel:
5.3.2. license
Zur Zeit ist noch kein License Report verfuegbar. Daher kann es hilfreich sein, die Lizenzinformationen fuer ein Geraet manuell auszulesen, was mit dieser Abfrage machbar ist:
SELECT * FROM license INNER JOIN liclink ON liclink.license_license_id=license.license_id INNER JOIN device ON device.dev_id=liclink.device_dev_id WHERE hostname LIKE 'hostname'
Beschreibung der einzelnen Spalten:
license | Eindeutige ID |
name | Lizenz Name |
status | Featureset/Anzahl/Status |
type | limitiert/dauerhaft/aktiv |
nextBoot | status beim naechsten Boot |
cluster | 0->Boxlizenz; 1->Clusterlizenz |
Beispiel:
5.3.3. IP Adressen der CDP Nachbaren auslesen
Zum Erstellen eines HostFiles fuer Geraete, die nur per CDP bekannt sind, kann es hilfreich sein, die IP Adressen der CDP Nachbaren aus der Datenbank auszulesen. Diese Aufgabe ist mit folgender Abfrage realisierbar:
SELECT interfaces.ipAddress,device.hostname,interfaces.intfName FROM interfaces INNER JOIN devInterface ON devInterface.interfaces_int_id=interfaces.intf_id INNER JOIN device ON device.dev_id=devInterface.device_dev_id WHERE device.dataSource=1
Erklaerung:
Alle Geraete, die nur per CDP bekannt sind, werden mit "dataSource 1" in die Datenbank geschrieben. Bei allen ausgelesenen Geraeten bleibt das dataSource Feld leer.
5.3.4. IP Adressen eines bestimmten Geraetes auslesen
Um alle IP Adressen eines Geraetes auszulesen ist folgende Abfrage noetig:
SELECT interfaces.ipAddress,device.hostname,interfaces.intfName FROM interfaces INNER JOIN devInterface ON devInterface.interfaces_int_id=interfaces.intf_id INNER JOIN device ON device.dev_id=devInterface.device_dev_id WHERE device.hostname LIKE 'hostname' AND interfaces.ipAddress NOT LIKE ''
wktools Version 4 - How to use wktools to review a Cisco network |