wktools Version 4.6.1.0 - How to use wktools to review a Cisco network
  (c) 2003 - 2012 by Mathias Spoerr


Inhaltsverzeichnis

1. Scope

2. Beispiele

3. Konfiguration und Details

4. Erlaeuterungen zum Ergebnis

5. Datenbank Dokumentation



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?
wktools sammelt alle notwendigen Daten, um einen Netzwerkplan im Visio vdx Format zu erstellen, der die aktuelle Layer-2 und Layer-3 Topologie mit Zusatzinformationen, wie Interfacefehler, Auslastung, Geraetedetails, usw. wiedergibt. Ausserdem werden Reports ueber Interfacefehler, Inventory, Switchport Einstellungen und Endgeraete erstellt.

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 ist

wktools 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

deviceAlle Geraete, unabhaengig von der Datenquelle, mit den eindeutigen Geraeteinfos, abzueglich Hardware
license, flash, hwInfo, ipPhoneDetGeraetedetails
cdpAlle CDP Nachbarschaften
interfacesAlle Interfaces, unabhaengig von der Datenquelle
neighborshipDas Ergebnis zur Nachbarschaftsberechnung
neighborCAM und ARP Tables
l3routesIP Routing Tabellen
ipSubnetAlle IP Netze
vlanErfasste VLANs
stp_statusSTP Informationen pro Vlan und Interface
stpInstanzSTP Instanzen pro Vlan
rControlHilfstabelle; 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_idEindeutige ID
hostnameEigener Hostname
nNameHostname vom Nachbaren
alternatenNameAlternativer Hostname vom Nachbaren -> FQDN, falls vorhanden.
intfEigenes Interface
nIntfIPIP Adresse vom Nachbaren
nIntfInterface vom Nachbaren
typeGeraetetype vom Nachbaren (ID) - hat nur wktools interne Bedeutung
platformHW Platform vom Nachbaren
sw_versionSW 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:

licenseEindeutige ID
nameLizenz Name
statusFeatureset/Anzahl/Status
typelimitiert/dauerhaft/aktiv
nextBootstatus beim naechsten Boot
cluster0->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
  (c) 2003 - 2012 by Mathias Spoerr