Toon posts:

IOS script > 1 wijziging op veel switches

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hi :) ,

Ik ben op zoek naar een manier om op veel Cisco switches ( 2950 / 3550 ) het management IP te wijzigen.

Via Telnet heb ik toegang tot de switches.

Ja, nu kan ik natuurlijk in een text file een lading commando's zetten wat het IP zou wijzigen, vervolgens elke keer het IP wijzigen en dat plakken in de console.. Mja, je bent lui of je bent het niet he. ;)

Eigenlijk ben ik opzoek naar een soort script dat de management IP opzoekt ( 192.168.1.x) en dat veranderd naar 192.168.2.x .

Ik kan in de console natuurlijk via "sho ru | i 192.168.1.*" het IP te pakken krijgen, maar is er een slimme manier om die 1 automagisch te laten veranderen naar 2?

Iemanad een idee hiervoor? Ik heb wat zitten Googlen, maar eigenlijk niks kunnen vinden over intelligent scripten met Cisco zal ik het maar even noemen..

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

SNMPset?

All my posts are provided as-is. They come with NO WARRANTY at all.


  • Tomsworld
  • Registratie: Maart 2001
  • Niet online

Tomsworld

officieel ele fan :*

Scripten met behulp van rancid ?

"De kans dat een snee brood op een nieuw tapijt valt met de beboterde zijde onderaan, is recht evenredig met de prijs van het tapijt"


  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 07-02 09:48

TrailBlazer

Karnemelk FTW

Ik heb dit ooit gedaan om op een stuk of 10000 routers. Het ip adress van het management station moest gewijzigd worden. Extra leuke bijkomstigheid was dat ook alle statische routeringen naar het management station aangepast dienden te worden. Omdat uiteraard alle next hops van die statics verschilden heb ik dus ook mijn config files on the fly aangemaakt. Daarna geladen met behulp van SNMP geladen.
Dit is allemaal met perl gescript natuurlijk.
Overigens is het wijzigen van loopback adressen een hele linke zaak natuurlijk. Als je namelijk je management ip adres wijzigt op het moment dat je ingelogd bent ben je je connectie kwijt. Maak je een fuckup dan mag je met de console het ipdres gaan fixen.

[ Voor 99% gewijzigd door TrailBlazer op 27-04-2008 13:42 ]


Verwijderd

Topicstarter
SNMP - is uit geschakeld, zou ik dus eerst moeten gaan activeren..
RANCID - zou even puzzelen worden, maar kan er wel naar gaan kijken :)
TrailBlazer - ik heb fysieke toegang tot de switches dus mocht het fout gaan dan kom ik er nog zo bij, mja.. ben natuurlijk te lui om ze alle 1000 af te gaan. ;)

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 07-02 09:48

TrailBlazer

Karnemelk FTW

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/local/openpkg/bin/perl -w
use Net::Telnet();
$platform_type{"WS-C4506"}=1;
$platform_type{"WS-C4006"}=2;
$platform_type{"WS-C6509"}=1;
$platform_type{"WS-C6509-E"}=1;
$platform_type{"WS-C6504-E"}=1;
print "telnet test v.001\n";
#
$username="pannekoek";
$password="pannekoek";
while (<>) {
chomp;
s/\s//g;
push (@routers,$_);
}
#log in starts here
foreach $host (@routers) {
print "router $host\n";
$router= new Net::Telnet (Timeout => 20,
                          Prompt => '/\S+\#\s*$/');
$router->open("$host");
$router->waitfor('/Username:\s$/');
$router->print($username);
$router->waitfor('/Password:\s$/');
$router->print($password);
$router->waitfor('/\S+\>\s*$/');
#print "yeah logged in\n";
$router->print("enable");
$router->waitfor('/Password:\s$/');
$router->print($password);
$router->waitfor('/\S+\#\s*$/');
#print "yeah even enable\n";
$router->print("terminal length 0");
$router->waitfor('/\S+\#$/');
#logged in now
#get initial info from show ver;
@sh_ver=$router->cmd("show version");
#print @sh_ver;
foreach (@sh_ver) {
  ($ios_feature,$ios_ver)=($_=~/.*Software\s\((.*)\),\sVersion\s(.*),.*\n/)  if (/IOS/);
  ($rtr_type,$mem)=($_=~/^[Cc]isco\s(.*)\s.*with\s(.*)\sbytes.*memory.\n$/) if (/^[Cc]isco.*memory\.\n$/);
}
print "$ios_ver\n";
}

Je zal wel wat moeite moeten doen om wat perl te leren. Als je dat script eenmaal afhebt is het wel heel handig om er van allerlei andere dingen mee te doen.

Verwijderd

Topicstarter
Hmm nu al een tijdje aan het klooien met dat Perl script, maar ik heb het vermoeden dat ik dat toch niet helemaal lekker werkend ga krijgen. :X

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 07-02 09:48

TrailBlazer

Karnemelk FTW

wat doet die niet dan. Zo ingewikkeld is het niet eventueel kan je nog een optie geven dat hij alle output gewoon logged dan kan je zien waar die op hangt.
code:
1
2
3
4
$router= new Net::Telnet (Timeout => 20,
                          Dump_Log   => 'dump.log',
                          Output_log => 'output.log',
                          Prompt => '/\S+\#\s*$/');

[ Voor 41% gewijzigd door TrailBlazer op 06-05-2008 10:37 ]

Pagina: 1