TCL auf Cisco Komponenten

Die Arbeit auf Cisco Geräten besteht oft aus sich wiederholenden Tätigkeiten, teilweise muss man auch nur mal einige IPs pingen oder einen Traceroute machen um zu wissen ob bestimmte Funktionen im Netz da sind. Manchmal ist es auch eine Aufgabe die man auf vielen Ports ausführen muss, wofür es aber vielleicht kein „int range …“ gibt.

Dabei kann man sich mit TCL behelfen, einer sehr einfachen Scriptsprache. Ein Beispiel:

tclsh
foreach VAR {
150.1.1.1
150.1.2.2
150.1.3.3
150.1.4.4
} { ping $VAR source loopback0 }

Wie man leicht sieht, pingt dieses Script 4 IP Adressen mit der Source Lo0.

Ein anderes Beispiel wäre:

tclsh
foreach VAR {
1
2
3
4
5
6
7
8
9
40
41
42
43
44
45
46
47
48
} { clear counters GigabitEthernet 1/0/$VAR }

Damit cleart ihr die Counters der Interfaces Gi1/0/1-9 und Gi1/0/40-48.

Um die TCL Shell wieder zu verlassen, einfach „tclquit“ eingeben.

Als kleines Beispiel habe ich schnell einen leeren Router in GNS3 gestartet und die Interface Counter gecleart:

R4#
R4#
R4#sh ip int brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES unset administratively down down 
FastEthernet0/1 unassigned YES unset administratively down down 
R4#
R4#
R4#
R4#tclsh
R4(tcl)#foreach VAR {
+>(tcl)#0
+>(tcl)#1
+>(tcl)#} { clear counters Fa0/$VAR }
Clear "show interface" counters on this interface [confirm]
Clear "show interface" counters on this interface [confirm]

R4(tcl)#
*Mar 1 00:01:26.443: %CLEAR-5-COUNTERS: Clear counter on interface FastEthernet0/0 by console
*Mar 1 00:01:27.127: %CLEAR-5-COUNTERS: Clear counter on interface FastEthernet0/1 by console
R4(tcl)#
R4(tcl)#tclquit
R4#
R4#

 

Es ist auch möglich mehrere Befehle auszugeben um z.B. mehrere Interfaces mit IP Adressen anzulegen (zum testen oder so)

tclsh
foreach i {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
} { ios_config "interface lo$i" "vrf forwarding VRF1" "ip address 10.10.10.$i 255.255.255.255" }

Und um dann alle zu pingen, kann man wieder den nutzen:

tclsh
foreach i {
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
} { ping vrf VRF1 10.10.10.$i size 1500 repeat 1000 }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.