Cisco Router 3600 - IOS via Netzwerk booten

Ganto

Ensign
Registriert
Okt. 2003
Beiträge
253
hi zäme

ich habe da ein problem, nachdem ich schon lange gegooglet habe, aber ich mir trotzdem noch nicht sicher bin, dass es keine antwort gibt. vielleicht gibt es ja hier sogar einige cisco zertifizierte netzwerker.

ich habe ein e-learning modul, bei dem mehrere router konfiguriert werden müssen. unter anderem cisco 2600er und 3600er. nun schreibe ich ein resetscript, welches die router wieder in den von mir gewünschten ursprungszustand versetzt. das geschieht unter anderem so, dass ich das IOS vor dem booten von einem TFTP server herunterlade und neu flashe. beim 2600er gibt es dabei im ROMmon das nützliche tool tftpdnld, welches das image zuerst via netzwerk herüberkopiert. beim 3600er aber gibt es afaik nur das xmodem, wo man das ganze via serielle schnittstelle machen kann. oder ich starte zuerst ein failsave IOS und kopiere dann via tftp das gewünschte IOS.

gibt es auf den cisco 3600er routern wirklich keine möglichkeit aus dem ROMmon ein file via netzwerk auf den router zu kopieren?

gruss ganto
 
Direkt helfen kann ich leider nicht, da ich mich mit sowas noch nie auseinander gesetzt habe aber direkt bei Cisco anzurufen bzw. per E-Mail nachfragen sollte Klarheit bringen. :)
 
hmn, ja. werde ich wohl machen. das problem war eben, dass es irgend ein sicherheitsproblem gab auf der cisco website und da haben sie die logins zurückgesetzt. da wir aber von der uni als ciscopartner ein privilegiertes login hatten, habe ich jetzt die neuen daten noch nicht.

also falls gerade noch jemand input hat, nur her damit.

gruss ganto
 
Möglichkeit 1:
Setz das Configregister auf 0x2142 (ggf. im Rom Monitor), start das vorhandene IOS, setz das Register auf 0x2102 zurück und kopier ein Neues mit copy tftp flash rauf.

Möglichkeit 2:
Es gibt doch auch ein "abgespecktes" IOS. Das hieß Bootrom oder so. Gibts nicht auch ein Configregister, um in diesen modus zu starten? Von da aus kannste auch das IOS raufkopieren.


Allerdings find ich es seltsam, dass auf den 3600ern kein tftpdlnd möglich sein soll... - hab leider grad keinen zur Hand.
 
da eben diese router studenten zugänglich gemacht werden, welche beliebig daran herumspielen können, ist die erste variante nicht so geeignet, da das ganze auch funktionieren sollte, wenn man das IOS aus dem flash gelöscht hat.

unsere 3600er haben leider die ROMmon version 11.1, während die 2600er mit dem tftpdlnd programm die version 11.3 haben. vielleicht hat auch das einen einfluss. ich habe cisco jetzt dazu mal angefragt.

im moment versuche ich das IOS aus dem ROMmon via xmodem über die serielle schnittstelle zu übertragen. leider ist das ziemlich langsam und ich habe es auch noch nicht geschafft, dass das funktioniert.

routerseitig starte ich xmodem -c test.txt. serverseitig habe ich das programm sx (aus dem lrzsz packet) gefunden, welche über die serielle leitung dateien verschickt (sx -a test.txt). leider bekomme ich nur ein connection timeout. ich müsste doch dem server noch irgendwie mitteilen was für eine verbindung, wohin ich will. sx kann ich das leider nicht mitgeben. hat da jemand eine ahnung, wie das geht?

mit minicom wäre das senden von dateien auch möglich. aber ich muss das ganze skripten, damit dass dann später selbstständig abläuft.

gruss ganto
 
Zuletzt bearbeitet:
Also ich hab bereits mehrmals via Xmodem Router bzw. Switches geflasht. Hab das mit Hyperterminal unter Windows gemacht. Je nach Rommonitor und Router kann man sogar die Geschwindigkeit der seriellen Schnittstelle erhöhen. Muss bei Gelegenheit mal gucken wie das ging...


...da haben wirs ja. Cisco CCNA1&2 Companion Guide, Seite 663:
Du bootest in Rommonitor und startest mit confreg nen Assistenten, der das Configregister anpasst. Drück Dich durch solange bist Du an den Punkt kommst, der die Geschwindigkeit der seriellen Schnittstelle anpasst. Maximum sollte da 115200Bit/s sein (anstelle von 9600). Mach nen reset (oder Neustart) und boote wieder in Rommonitor. Dann startest Du mit "xmodem -c <Dateiname>" das Updateproggie des Ciscos. Zunächst formatiert er sein Flash und sobald der Router Dich auffordert, das neue IOS zu senden, gehst Du im Hyperterminal auf "Datei senden" und schickst ihm die Binary rüber. Im Anschluss startest Du wieder confreg und machst die Änderung rückgängig (oder schreibst einfach confreg 0x2102) und startest ihn neu. Damit sollte alles erledigt sein.
Mit skripten schauts allerdnigs bei Verwendung vom Hyperterminal bitter böse aus. Gibts keine Möglichkeit, den Romonitor zu flashen? Der ist doch sicher in nem EEPROM gespeichert.

PS: Wenn Du nen Studenten erwischt, der das IOS löscht, dann tret ihm von mir in Allerwertesten. Das hat ja Berufsschuleniveau!
 
Zuletzt bearbeitet:
jepp, mittlerweile habe ich geschnallt, dass ich sx nicht direkt aufrufen kann. schliesslich braucht es noch eine verbindung. mit xmodem und dem minicom (linux version des hyperterminals), habe ich den transfer schon zu stande gebracht. nun brauche ich aber ein programm, dass ich mittles skript aufrufen kann und dann die datei automatisch sendet. meine hoffnungen beruhen dabei auf kermit. werde das mal morgen ausprobieren.

bisher hatten wir das modul schon ein paar jahre in betrieb und das IOS wurde nie gelöscht. es geht einfach darum, dass der benutzer keine simple möglichkeit hat, via netz den router zum erliegen zu bringen.

ganto
 
juhu, ich habe es geschafft. nur ist diese lösung irgendwie nicht so richtig geeignet. das übertagen eines IOS über die serielle schnittstelle dauert sage und schreibe 20min auf der höchsten geschwindigkeit.

für alle die einmal in einen ähnlichen fall kommen hier mein .kermrc:
Code:
# configuration file for xmodem-transfer to router1

set modem type          none
set carrier-watch       off
SET LINE                /dev/ttyS0
SET SPEED               115200
set parity              odd
set stop-bits           1
set flow                auto
set exit on-disconnect  on
set protocol            xmodem
set transfer mode       manual
set file typ            binary
set file name           literal
send /tftpboot/currentIOS.router1
wenn man jetzt kermit aufruft, wird direkt das file übertragen. :)

gruss ganto
 
Zurück
Oben