.titleBar { margin-bottom: 5px!important; }

[Info] Wie "recovere" ich eigentlich richtig?

Dieses Thema im Forum "FRITZ!Box tot? Recover, Firmware Up-/ Downgrade" wurde erstellt von PeterPawn, 5 Juni 2018.

  1. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,621
    Zustimmungen:
    629
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    #1 PeterPawn, 5 Juni 2018
    Zuletzt bearbeitet: 5 Juni 2018
    bzw. "Wie erreiche ich den Bootloader einer FRITZ!Box wirklich zuverlässig per FTP?"

    Es kommt ja immer wieder das Problem auf, daß jemand seine FRITZ!Box irgendwie geändert hat und nach einer solchen Änderung einfach nicht mehr per FTP auf den Bootloader zugreifen kann. Auch bei der Verwendung des AVM-Programms (das man ja auch - in der falschen Version für die eigene Box - als "Wegbereiter" für den FTP-Zugriff verwenden kann, weil es beim Erkennen des falschen Modells einfach abbricht und die Box im "FTP-Modus" stehen läßt) kann es nicht schaden, wenn man die Arbeitsweise des Programms ein wenig versteht.

    Denn auch das Recovery-Programm von AVM stellt eine FRITZ!Box - entgegen der landläufigen Meinung - eben nicht stur auf die Adresse 192.168.178.1 ein und versucht sich dann zu verbinden ... es sucht sich eine zur lokalen Konfiguration des Ethernet-Adapters passende Adresse aus und stellt die FRITZ!Box per UDP-Broadcast auf diese Adresse ein.

    Welche das ist, steht normalerweise im Fenster des Recovery-Programms ... erst dann, wenn da irgendetwas in der Richtung "Suche Box an Adresse 0.0.0.0 ..." auftaucht, versucht das Programm einfach nur noch die Box irgendwie zu finden (bei 0.0.0.0 wird weiterhin die in der Box aktuell eingestellte Adresse verwendet - im Normalfall wäre das dann tatsächlich die 192.168.178.1, wobei diese Adresse absolut nichts - aber auch gar nichts - mit der Konfiguration zu tun hat, die von der FRITZ!Box im "Normalbetrieb" verwendet wird) anstatt ihr eine passende IP-Adresse vorzugeben.

    Genau deshalb funktioniert das eben unter Windows auch, wenn man am Ende gar keinen DHCP-Server in seinem Netz hat und damit auch keine automatische IP-Adresse "von Fremden" erhält. In der Folge würfelt sich Windows eine Adresse aus dem 169.254.0.0/16-Segment aus (bei MS heißt das dann "APIPA", im Rest der Welt "ZeroConf") und weist dem Adapter diese Adresse zu ... das alles aber erst dann, wenn es keine Antwort auf einen DHCP-Request erhält.

    Da so ein DHCP-Request auch erst mal etwas Zeit benötigt, bis man "Timeout" feststellen und damit konstatieren kann, daß wohl kein DHCP-Server vorhanden ist, darf/sollte an dieser Stelle die Aktivierung der Ethernet-Schnittstelle nicht davon abhängig sein, ob da ein Kabel in der Buchse steckt oder nicht ... wobei diese "Verbindung" eben auch nur dann erkannt werden kann, wenn sich "am anderen Ende" auch ein aktives Gerät befindet.

    Ist das jetzt die FRITZ!Box selbst, wird die Verbindung ohne Strom in der FRITZ!Box eben gerade nicht als "aktiv" erkannt und der Ethernet-Adapter kriegt im Windows keine Adresse zugewiesen. Steckt man jetzt die FRITZ!Box an den Strom, startet erst die aufwändige Ermittlung der IP-Adresse ... das dauert in aller Regel deutlich zu lange für die 5-10 Sekunden, die einem der Bootloader nur Zeit läßt, wenn man mit ihm per FTP Kontakt aufnehmen will.

    Daher muß man dieses Problem auf einem von drei möglichen Wegen "umschiffen" ... der erste Weg wäre es, einfach dafür zu sorgen, daß für den Windows-PC die Verbindung nicht erst dann "aktiv" wird, wenn die FRITZ!Box mit Strom versorgt ist - das geht am einfachsten über einen zusätzlichen Switch, den man zwischen PC und FRITZ!Box steckt. Damit sieht die Verbindung für den Windows-PC bereits "aktiv" aus und er konfiguriert seinen Adapter auf eine APIPA-Adresse, die dann vom Recovery-Programm auch benutzt wird, wenn die FRITZ!Box entsprechend "eingestellt" werden muß.

    Eine Alternative ist (ab Windows 7 verfügbar) eine "Eingabeaufforderung" in Windows. Dazu gibt man in das Suchfeld einfach "cmd" ein und startet die dann (hoffentlich) gefundene "cmd.exe" (wir bleiben hier mal bei der alten Shell und verwenden "netsh", obwohl man das mit PowerShell auch noch anders lösen könnte) "als Administrator" ... den Punkt bietet einem das Kontext-Menü (erreichbar über die rechte Maustaste unter Windows) dann an. Dort gibt man den Text:
    Code:
    netsh interface ipv4 set global dhcpmediasense=disabled
    
    ein (der einfach nur mit "Ok." vom System bestätigt wird) und damit wird die Erkennung der "aktiven Verbindung" abgeschaltet.

    In der Folge sollte sich Windows jetzt eine Adresse für den Ethernet-Adapter besorgen (daß die ganze Recovery-Geschichte nur mit einem Ethernet-Kabel und nicht über WLAN geht, steht hier, bei AVM und ist irgendwo ja auch logisch ... wie soll eine nicht gestartete FRITZ!Box auch ihre WLAN-Interfaces benutzen?) und weil wir ohnehin schon eine Shell zur Verfügung haben, können wir das mit einem beherzten:
    Code:
    ipconfig
    
    auch gleich noch überprüfen. Da sollte irgendein Eintrag "Ethernet adapter <name>:" auftauchen (ggf. von MS übersetzt, ich arbeite mit einem englischen Windows) und unterhalb dieses Eintrags sollte eine Zeile mit einer "IPv4 Address" stehen. Die kann durchaus auch mit "169.254" beginnen ... stört uns hier kein bißchen.

    Hat man auf diesem Weg die Erkennung der aktiven Verbindung unterbunden, sollte man nicht vergessen, nach dem Abschluß der Arbeiten durch erneute Verwendung des "netsh"-Kommandos oben, nur eben diesmal mit "dhcpmediasense=enabled", die Erkennung wieder einzuschalten (erspart spätere Kopfschmerzen, wenn ansonsten der Adapter nicht mehr wie erwartet eine neue Adresse organisiert, nachdem eine neue Verbindung hergestellt wurde).

    Der dritte Weg ist natürlich die statische Konfiguration einer passenden IP-Adresse ... auch diese muß keineswegs (wenn ich mich nicht irre, auch für das AVM-Recovery-Programm nicht) aus dem Segment 192.168.178.0/24 stammen (die 192.168.178.1 "verbietet" sich dann ja ohnehin). Wer also bereits eine statische Konfiguration für seine Netzwerkkarte verwendet, muß diese nicht etwa unbedingt auf 192.168.178.irgendwas ändern ... der entscheidende Zeitgewinn entsteht hier aus der Tatsache, daß dann durch das Windows-OS gleich eine Adresse gesetzt wird, wenn die Verbindung "aktiv" wird und damit die Wartezeit auf eine Antwort vom DHCP-Server entfällt.

    Das kann man natürlich auch beliebig mixen ... es wird - wenn man ansonsten nichts falsch macht - auch mit einem Hardware-Switch, deaktiviertem Media-Sensing und einer statischen IP-Adresse funktionieren. Aber das wären drei Kondome übereinander ... während es den meisten dann wohl eher auf die Füße fallen wird, daß beim ersten Anlauf das Recovery-Programm von AVM (und auch meine PowerShell-Varianten) ein "listen" auf dem UDP-Port starten muß (müssen), um die Antwort der FRITZ!Box auf die Kontaktversuche einzufangen und das ist - bei aktivierter Windows-Firewall - nun mal eine Operation, die der Zustimmung durch den Benutzer bedarf (weil es "unsolicited traffic" ist, da das Senden an die FRITZ!Box an dieser Stelle als Broadcast-Paket erfolgt).

    Daraus ergeben sich zwei Probleme ... Windows verwaltet die Freigaben für solche Netzwerk-Aktivitäten zwar für verschiedene Programme getrennt (wobei bei den PS-Skripten m.W. der PS-Host als "Programm" angesehen wird), aber damit dann nicht einfach jemand das Programm durch ein anderes mit demselben Namen (und Pfad) ersetzt, wird auch noch geprüft, daß es sich tatsächlich um dasselbe Programm handelt. Das funktioniert natürlich beim AVM-Recovery-Programm auch nur dann, wenn man genau diese Version auch schon einmal benutzt hat ... tauscht man das Recovery-Programm gegen eine neue Version aus, braucht auch diese i.d.R. die erneute Zustimmung zum "Durchlöchern" der Brandmauer.

    Zusätzlich verwaltet Windows noch unterschiedliche Sätze von Firewall-Regeln, je nachdem, ob es sich um ein "privates" oder ein "öffentliches" Netzwerk handelt. Während bei den meisten das Netz der eigenen FRITZ!Box vermutlich als "privates Netzwerk" gehandelt wird, kann das Windows aber eben nur dann erkennen, wenn die FRITZ!Box in vollem Umfang arbeitet ... was hier aber genau nicht der Fall ist, wenn man irgendwie mit dem Recovery-Programm auf die startende Box zugreifen will (spätestens beim zweiten Versuch nicht mehr).

    Daher muß man in der Regel dem Recovery-Programm das Recht zum "Lauschen" ins Netzwerk auch für "öffentliche Netzwerke" einräumen und bei einigen (ich weiß nicht, ob nicht sogar bei allen) Recovery-Programmen von AVM sind die Einstellungen da nur für "private Netzwerke" vorbelegt, was unerfahrene Benutzer auch vor zusätzliche Herausforderungen stellen kann, wenn man eine weitere Checkbox aktivieren muß in dem Freigabe-Dialog der Firewall.

    Jedenfalls reicht die Zeit, die man selbst benötigt für das "Beantworten" der Frage (die u.U. auch erst dann auftaucht, wenn die Verbindung tatsächlich "aktiv" wird nach dem Versorgen der FRITZ!Box mit Strom), häufig auch schon aus, damit der erste Anlauf mit dem Recovery-Programm scheitert, weil die Box zwar in der Zeit antwortet, diese Antwort aber das Recovery-Programm mangels Zustimmung im Firewall-Dialog noch nicht erreicht und dann ist die Karenzzeit für den FTP-Zugriff schon um.

    Dann bleibt einem i.d.R. nichts anderes übrig, als noch einmal von vorne zu beginnen mit dem Start des Recovery-Programms und der Box ... verwendet man jetzt dasselbe (Recovery-)Programm, fällt die "Verzögerung" durch den Firewall-Dialog weg und die Box wird gefunden.

    Wenn man die Arbeitsweise (und die möglichen Probleme) erst einmal verstanden hat, kann man meist auch alleine erkennen, wo es gerade klemmt ... es liegt jedenfalls in den seltensten Fällen tatsächlich an der Box, wenn man keinen Zugriff auf den Bootloader erhält.

    Es ist aber eben keineswegs so, daß vom AVM-Recovery-Programm immer die 192.168.178.1 für die FRITZ!Box verwendet wird ... ist ein Ethernet-Adapter bereits aktiv und konfiguriert, wenn das Programm gestartet wird, ermittelt es eine zu der vorhandenen Adresse passende IPv4-Adresse für die FRITZ!Box und sendet diese im Broadcast-Paket aus. In der Folge soll/wird die FRITZ!Box dann diese IP-Adresse verwenden und der Rest der Kommunikation erfolgt darüber - es sind also auch nicht in jedem Falle irgendwelche "Konfigurationsorgien" erforderlich, nur weil man mit dem Bootloader der FRITZ!Box "reden" will.
     
    Heval, Radmor, Mjoelnir und 3 anderen gefällt das.
  2. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,621
    Zustimmungen:
    629
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    Da ich gerade mit einer neuen Version des EVA-Clients für Windows experimentiere, mache ich hier noch eine kleine Liste der Probleme auf, die mir bei verschiedenen Modellen, mit denen ich das teste und mit dem AVM-Recovery-Programm vergleiche, so aufgefallen sind ... die Liste wird dann fortgeschrieben.

    - bei der Verwendung von Jumbo-Frames i.V.m. dem Recovery-Programm von AVM (84.06.83) für die 7390 gibt es Probleme beim Auslesen des Environments (naturgemäß unter Windows, da das AVM-Programm ja nur dafür gemacht ist), die Datenverbindung beim "RETR env" wird zwar gestartet (3-way-handshake ist komplett), im Anschluß werden aber keine Daten von der Box übertragen, bis es ein FIN-Paket von der Box gibt