Tag zusammen,
Ich versuche seit Stunden verzweifelt, meinen 4402 WLC auf den aktuellsten Softwarestand zu heben. Ich hänge direkt über Crossover am Controller. Es scheitert offenbar daran, dass ich meinen TFTP-Server nicht dazu bekomme, eine blocksize größer als 512 zu schieben. Die Softwarefiles der neueren Versionen sind allerdings größer als 32 MB.
Ich habe folgende Server versucht:
- SolarWinds TFTP Server
- 3cDaemon (3Com TFTP Server)
- tftpd32
Alles ohne Erfolg. Wenn ich den Verkehr mitsniffer sehe ich immer eine Blockgröße von 512 Bytes. Somit bleibt der erfolgreiche Transfer von Dateien, die größer sind als 32 MB ausgeschlossen, denn im TFTP-Protokoll sind nur 16 Bits für die Block-Nummerierung vorgesehen. Wenn man also rechnet:
32MB = 33554432 Bytes
33554432 Bytes / 512 = 65536
2^16 = 65536
So sind irgendwann die Block-nummern der ACK-Pakete aufgebraucht und er fängt wieder von vorne an, was jeden der o.g. TFTP-Server zum Abbruch der Übertragung führt.
Daraus folgt:
Ich muss irgendwie die Blocksize höher schrauben. Aber wie? beim tftpd32 kann man ja die negotiation ausstellen und das "anticipation window" höher stellen, hilft aber nichts. Wenn ich das richtig verstehe, kann der Server bei einem Read-Request auch nur eine Blocksize, die entweder gleichgroß oder kleiner als die im Read-Request angegebene wählen. Wenn also der Controller einen Read-Request mit 512 blocksize schickt, kann der Server nicht mit 1024 antworten. So verstehe ich zumindest das Zitat aus dem RFC:
(RFC 2348)
Verstehe ich das alles richtig, oder hab ich irgendwie einen Denkfehler?
Wie krieg ich die Block-size höher?