AVM-Download-Server

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
15,155
Punkte für Reaktionen
1,705
Punkte
113
Falls mal jemand ähnliche Probleme mit den AVM-Servern haben sollte, wie sie mich jetzt über zwei Stunden fast in den Wahnsinn getrieben haben, folgender Hinweis:

Der Name "ftp.avm.de" löst (im Moment) auf drei verschiedene Server-Adressen auf:

Code:
root@FB7490:/var/media/ftp/modfs $ nslookup ftp.avm.de
nslookup: can't resolve '(null)'

Name:      ftp.avm.de
Address 1: 212.42.244.9 ftp3.avm.de
Address 2: 212.42.244.98 ftp4.avm.de
Address 3: 212.42.244.7 download.avm.de
Davon arbeitet aber nur einer so, daß man die Verzeichnisliste auch per HTTP-Request in der Form:
Code:
wget -O - http://ftp.avm.de/fritz.box/fritzbox.7490/firmware/deutsch/
laden und nach der aktuellen Version durchsuchen kann.

Sowie man die Server einzeln befragt, ergibt sich folgendes Bild:
Code:
root@FB7490:/var/media/ftp/modfs $ wget -O - http://download.avm.de/fritz.box/fritzbox.7490/firmware/deutsch/
Connecting to [COLOR="#FF0000"]download.avm.de[/COLOR] (212.42.244.7:80)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /fritz.box/fritzbox.7490/firmware/deutsch</title>
 </head>
 <body>
<h1>Index of /fritz.box/fritzbox.7490/firmware/deutsch</h1>
  <table>
   <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/fritz.box/fritzbox.7490/firmware/">Parent Directory</a></td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="FRITZ.Box_7490.113.06.24.image">FRITZ.Box_7490.113.06.24.image</a></td><td align="right">2015-02-02 14:44  </td><td align="right"> 23M</td><td>&nbsp;</td></tr>
<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="info.txt">info.txt</a></td><td align="right">2015-02-13 10:48  </td><td align="right"> 33K</td><td>&nbsp;</td></tr>
   <tr><th colspan="5"><hr></th></tr>
</table>
<address>Apache/2.4.7 (Ubuntu) Server at download.avm.de Port 80</address>
</body></html>
-                    100% |******************************************************************************************************************************************************************|  1279   0:00:00 ETA
root@FB7490:/var/media/ftp/modfs $ wget -O - http://ftp3.avm.de/fritz.box/fritzbox.7490/firmware/deutsch/
Connecting to [COLOR="#FF0000"]ftp3.avm.de[/COLOR] (212.42.244.9:80)
wget: can't connect to remote host (212.42.244.9): Connection refused
root@FB7490:/var/media/ftp/modfs $ wget -O - http://ftp4.avm.de/fritz.box/fritzbox.7490/firmware/deutsch/
Connecting to [COLOR="#FF0000"]ftp4.avm.de[/COLOR] (212.42.244.98:80)
wget: can't connect to remote host (212.42.244.98): Connection refused
Ich bildete mir bisher ein, mich nicht allzu blöd anzustellen bei der Fehlersuche ... aber bis ich auf die Idee kam, mal die Namensauflösung zu checken, habe ich in meiner Blindheit einiges an Zeit verschwendet - vor allem, weil das natürlich vorher getestet war mit dem "wget"-Kommando und da hatte ich wohl das Glück, den einzigen Server von den dreien zu erwischen, bei dem das funktioniert.

Schon eine Stunde später (nach Ablauf der TTL des DNS-Records) ging das dann nicht mehr wie vorher und ich habe in meiner Blödheit zuerst an eine Sperre gegen zu häufige Abrufe o.ä. gedacht und dort alles Mögliche getestet, bevor ich auf das Naheliegende kam.

Vielleicht hilft es ja dem nächsten, wenn er das _vor_ eigenen Versuchen in der Richtung schon gelesen hat.
 
Moins

Warum dann nicht die IP, wenn sowieso immer gleich...
Code:
OPT="-O-"
IP=212.42.244.7
PORT=80
FBPATH="/fritz.box/fritzbox.7490/firmware/deutsch/"
wget $OPT $IP$":"$PORT$FBPATH
...oder was blicke ich gerade nicht?

DNS
Code:
pi@openelec ~ $ nslookup ftp.avm.de
Server:         192.168.178.1
Address:        192.168.178.1#53

Non-authoritative answer:
Name:   ftp.avm.de
Address: 212.42.244.9
Name:   ftp.avm.de
Address: 212.42.244.7
Name:   ftp.avm.de
Address: 212.42.244.98

...nen anderen...
Code:
pi@openelec ~ $ nslookup ftp.avm.de 8.8.4.4
Server:         8.8.4.4
Address:        8.8.4.4#53

Non-authoritative answer:
Name:   ftp.avm.de
Address: 212.42.244.98
Name:   ftp.avm.de
Address: 212.42.244.7
Name:   ftp.avm.de
Address: 212.42.244.9
 
Weil - wenn man's weiß, worauf man achten muß - die Angabe "download.avm.de" immer noch variabler ist, als die Angabe der IP-Adresse.

Ich baue gerade an einer Erweiterung von modfs, die auch gleich ein Update mit einschließt und sich die aktuellste Version vom AVM-Server holen soll (die ich dann natürlich nicht kenne und erst mal ermitteln muß).

Da ist schon das "feste Verdrahten" von Verzeichnis- und Dateinamen für verschiedene Modelle unflexibel genug (weil die sich leider auch komplett unterscheiden), da brauche ich nicht noch feste IP-Adressen.

Wenn ich "download.avm.de" nehme und einfach mal darauf baue, daß AVM da immer auch den HTTP-Port bedient, dann schmeißt wenigstens nicht jeder Server-Umzug (von solchen Sachen wie IPv4 vs. IPv6 mal abgesehen, die sicherlich auch mal kommen werden, wenn der AVM-Download-Server mal IPv6 gelernt hat bzw. der DNS-Server (bingo.avm.de) das auch weiß) das Skript über den Haufen.

Die direkte Angabe von IP-Adressen ist in meinen Augen noch "schmutziger" als der "dirty hack", nicht auf "ftp.avm.de" sondern auf "download.avm.de" zu setzen. Aber die einstmals "offizielle" Angabe für den FTP-Server ist seit dem Relaunch der Website im August 2014 (oder irgendwo in der Gegend) ja eigentlich ohnehin verschwunden ... wenn ich sie nicht übersehen habe.
 
Verstehe, aber eine KI würd ich da nicht für einbauen. ;)

Wenn, dann eher sowas...
Code:
ping -q -W1 -c1 download.avm.de >/dev/null && echo "INFO: AVM Server erreichbar, weiter gehts..." || echo "FAILURE: Oh, download.avm.de ist nicht erreichbar"
...wie eine Fehlermeldung raushauen die Sinn ergibt und dann weiss auch "Jeder" gleich woran es liegt.
Auf irgendwas muss ja geprüft werden, entweder fest verdrahtet, oder aus einer minütlich aktualisierten Datenbank.
...und selbst der musst du ja mitteilen was du wissen willst.

Kann für die Aktualität eventuell die Firmwareumgebungsvariable...
Code:
CONFIG_FIRMWARE_URL='http://www.avm.de/fritzbox-firmware-update.php?hardware=181&oem=avm&language=de&country='
...dienen?
Denn die müsste sich ja AVM konform verhalten, und sich ändern wenn AVM was ändert.
 
Zuletzt bearbeitet:
Ich vermute inzwischen fast, wir reden aneinander vorbei ...

Von den drei Servern, die sich hinter dem Alias "ftp.avm.de" verbergen können (das ist Sache des Clients, welchen er sich davon aussucht), versteht nur ein einziger Server auch das HTTP-Protokoll beim Zugriff auf eine Verzeichnisliste. Die beiden anderen sind zwar FTP-Server, da läuft aber kein HTTP-Dienst.

Mir geht es also weniger um die Erreichbarkeit eines Servers als vielmehr um die unterschiedlichen Dienste, die auf den drei Servern laufen, auch wenn sie alle unter dem Alias "ftp.avm.de" angesprochen werden können. Nun könnte man ja auch sagen, selbst Schuld, wenn man auf einen FTP-Server per HTTP zugreifen will ... aber bei vielen Apache-basierten Servern ist eben "Options Indexes" für solche Download-Verzeichnisse aktiviert. Der alternative Download über HTTP wird von vielen Anbietern ja auch gewählt ... eben weil es beim FTP (auch bei passivem) schon mal Probleme geben kann und ehe dann die Kunden ständig heulen, daß die FTP-Downloads nicht klappen, kann man sie immer noch über HTTP abwickeln.

Ich dachte eben nach meinem ersten erfolgreichen Test auf HTTP, daß da tatsächlich nur ein einzelner Server hinter "ftp.avm.de" laufen würde und der eben sowohl FTP- als auch HTTP-Downloads zuläßt. Das war genau der Irrtum, HTTP erlaubt nur der "download.avm.de" und die beiden anderen muß man tatsächlich über FTP ansprechen, womit das "wget" der Busybox auf einer FRITZ!Box ausfällt, wenn man eine Verzeichnisliste braucht, um sich die höchste Versionsnummer der Firmware-Dateien daraus zu extrahieren. Ohne korrekten Dateinamen (der die Version enthält), wird es nichts mit einem Download, egal ob per FTP oder HTTP. So etwas wie einen "current firmware"-Link mit festem Namen gibt es eben nicht bei AVM.
 
Zuletzt bearbeitet:
download.avm.de (bekomm ich übrigens nur als IPv4)
"So etwas wie einen "current firmware"-Link mit festem Namen gibt es eben nicht bei AVM. "

Eben, dass habe ich jetzt auch verstanden.

Bedeutet für Skripte, die davon abhängig sind...
Das dann IP oder Hostname nebst Pfad u.s.w. hartkodiert werden sollte.
...mit der Möglichkeit bei einer Änderung dieses schnell zu erkennen und anzupassen.
Vielleicht indem der User den Firmwaredateinamen konkret (Copy'n'Paste) eingeben muss?
 
Vielleicht indem der User den Firmwaredateinamen konkret (Copy'n'Paste) eingeben muss?
Das wird er auch tun können (und müssen), aber eher für Labor-Versionen ... deren Download (jedenfalls der der jeweils aktuellen Version) ist noch mit viel mehr Aufwand verbunden (deshalb lasse ich das auch weg), weil es nirgendwo eine Verzeichnisliste gibt, seitdem das unter "fileadmin" auf dem AVM-Server läuft. Dann noch die zusätzliche "Verpackung" als ZIP-File ... da vergeht mir die Lust, das alles per Skript zu behandeln, weil es am Ende leichter ist, die notwendigen Vorbereitungen ordentlich zu beschreiben und dann kann der Nutzer den Download und das Auspacken auch gleich selbst machen.

Wobei ich ursprünglich schon so in Richtung der Nutzer denken wollte, die vielleicht nicht einmal einen PC besitzen ... da wird dann der Download von ZIP-Files und das Auspacken auf den USB-Speicher der FRITZ!Box (z.B. mit einem Tablet) schon zum Abenteuer, das viele überfordern dürfte.

Deshalb auch zumindest die Möglichkeit, die neueste Firmware in der aktuellen Version von "modfs" vom AVM-Server zu laden und gleich in modifizierter Form in die eigene FRITZ!Box zu schreiben - quasi anstelle des Updates über das GUI, wenn man die Modifikationen braucht/haben will.

Fehlt nur noch der Teil, der das nicht über eine Telnet-Session mit gesondertem Client, sondern gleich über ShellInABox nach Upload eines "Pseudo-Images" realisiert ... dann braucht es dafür gar keinen PC mehr.
 
@PeterPawn
Ich würde dann tatsächlich download.avm.de als Ziel nutzen, denn ich kann mir nicht vorstellen, dass dort HTTP abgeschaltet wird.
Hätte aber auch nicht gedacht, dass er über ftp.avm.de mit aufgelöst wird. Andererseits, wenn er dann ja über FTP erreichbar ist, durchaus nachvollziehbar.
Alternativ könntest Du ggf. versuchen alles per FTP abzufragen. Aber einfacher scheint mir der naheliegende Weg über download.avm.de
 
Zuletzt bearbeitet:
Sure ... ich habe ja meine Lösung (ich nehme tatsächlich "download" anstelle von "ftp") auch schon. Der ganze Thread hier war eher als "Warnung" für andere gedacht, die vielleicht in dieselbe "Falle" tappen. Ich wäre ja auch nicht so überrascht gewesen, wenn nicht der erste Versuch zufällig auf "download.avm.de" gelandet wäre und damit dann auch funktionierte. Erst spätere Zugriffe (die dann wohl wg. DNS-Round Robin irgendwie auf ftp3.avm.de landeten) schlugen fehl und meine Suche setzte eben am falschen Punkt an, weil ich auf eine Art IDS/IPS oder andere Maßnahmen gegen DoS-Angriffe tippte. Das führte dann zu Zugriffsversuchen über andere Anschlüsse, von wo aus das tatsächlich wieder klappte (download.avm.de wurde wieder ausgewählt) und so sah ich (fälschlicherweise) meinen Irrtum erst einmal als bestätigt an. Das ist schon die ganze Story ... es könnte aber auch anderen so ergehen.

Das Absetzen von FTP-Kommandos a la "ls -la" (für reinen FTP-Betrieb) ist mit den Mitteln der FRITZ!Box nicht so einfach. Man könnte nur (wenn es "nc" noch gäbe, das baut AVM aber auch gerade aus) einen eigenen "FTP-Client" in Shell umsetzen, mit den vorhandenen Bordmitteln (ftpget oder wget) ist der Download einer Verzeichnisliste nicht ohne weiteres möglich. Der direkte Zugriff auf Netzwerk-Ports wie bei "bash" geht bei "ash" der Busybox auch nicht ...

Zwar ist mit "unsquashfs" und "mksquashfs" ohnehin schon "Binärcode" im Paket, aber das will ich eher eindämmen als ausdehnen. Aber solange "wget" für das Download-Verzeichnis auf "download.avm.de" noch geht, finde ich den richtigen Namen mit einem passenden regulären Ausdruck schon und dann habe ich erstens die Version für den Vergleich und zweitens den passenden Dateinamen für den potentiellen Download der Datei. Bei mir also alles schön im Moment ...
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.