Speedport Routers Eat Your DNS SOA Requests in Modem-Mode

Some years ago I switched to using a Speedport W701V from Deutsche Telekom on my ADSL line at home. I set it up in modem-mode and let a small Linux box handle everything else. This setup had worked fine with other modems but shortly after switching to the Speedport I noticed that my local caching DNS server didn’t work correctly anymore. I didn’t really connect the dots at this point, though.

That happened a few days later when I tried to use Apple’s Back to My Mac — it just didn’t work. After some network tracing I found out that the Apple machine sent DNS SOA requests but never got a reply back. It turned out that all SOA request got blocked somewhere. Sending requests to my own name server (host -t soa blackdown.de ns.blackdown.de) and tracing DNS there showed that no packet ever arrived.

I put the Speedport back into router-mode at this point and, who would have guessed it, SOA requests worked fine again.

After fruitless discussions with Deutsche Telekom support (it was impossible to find anyone who even remotely understood what I was talking about) and sending a bug report to AVM (the 701V actually is a FRITZ!Box) which never got an answer, I finally solved the problem by putting a Freetz firmware on the Speedport. This firmware had an option to disable the PPPoE-Filter. After disabling the filter the device worked flawlessly in modem-mode.

Now, a few days ago, I switched to VDSL and got a new router: a Speedport W920V.
First thing I did was to put it into modem-mode. And there it was again, the DNS SOA problem!

Knowing what the problem was, I found a simpler fix this time:

  1. Download the configuration from the device
  2. Manually change dnsfilter_for_active_directory = yes; to dnsfilter_for_active_directory = no; in the pppoefw section
  3. Manually change ipnetbiosfilter = yes; to ipnetbiosfilter = no; in the pppoefw section
  4. Insert a NoChecks=yes line after the Country=… line in the header to make the device accept the modified file although its checksum is wrong now
  5. Upload the modified configuration to the device

(If you have a local NTP server, you also might want to add it to the server_list in the ntpclient section while editing the configuration of the Speedport.)

Tags: , , , , , , , , , ,

13 Responses to “Speedport Routers Eat Your DNS SOA Requests in Modem-Mode”

  1. Mirko says:

    Many Thx, works with speedport 701V too.

  2. [...] Protip: BTTM hinter Speedport/VDSL [...]

  3. Thomas says:

    Hallo Jürgen,
    ist dieses Vorgehen eigentlich Idiotensicher oder muss ich gewisse Kenntnisse haben?
    Wie bekomme ich z.B. die Konfiguration als Datei auf meinen Mac…
    Sonst glaube ich kenn ich mich aus bzw. deine Schritte sind recht gut erklärt.

    Danke für die Info.
    Thomas

    • Wer den Speedport nur als Modem konfiguriert hat, sollte auch das hinkriegen. (Im normalen Router-Betrieb ist die Änderung nicht nötig). Auf der Konfigurationsseite zum Einspielen neuer Firmware, gibt es einen Link zum Konfiguration runter-/hochladen. Die Datei hat die Endung .export und kann mit einem Texteditor geändert werden. Natürlich sollte man dabei möglichst keine Tippfehler machen.

  4. Sluft says:

    Ich hab auch VDSL und nutze es über meinen Speedport W 722V. Dieser stellt sowohl Modem als auch Router dar. Doch Back to my Mac hab ich noch nie zum Laufen gebracht. Gleiches gilt übrigens auch für Streaming via EyeTV oder Air Sharing. Selbst bei DLNA Verbindungen kommt es aufgrund von fehlendem UPnP je nach Software zu Problemen.

    Nachdem ich deinen Tipp mit der Konfigurationsdatei angewandte, hat sich daran leider nichts geändert. Woran mag das liegen?

    • Mein Tipp betrifft nur den reinen Modem-Betrieb. Im Modem+Router-Betrieb ist das Problem mit den gefilterten SOA-Paketen bei mir nie aufgetreten. Ob es bei dir auftritt, kannst Du leicht mit “host -t soa heise.de ns.heise.de” oder “nslookup -q=soa heise.de ns.heise.de” testen. Aber ohne UPnP bzw NAT-PMP wirst Du aber sowieso Probleme mit BTMM haben. Ich würde mal ein bisschen in den Freetz-Foren suchen, vielleicht wird der W722V ja schon unterstützt.

      (Mein Setup ist folgendes: Speedport im Modem-Betrieb. Dahinter ein kleiner Linux-Rechner mit pppd, einem Firewall (Shorewall), einem NAT-PMP/UPnP server (MiniUPnP) und ein paar Traffic-Shaping-Regeln. BTMM funktioniert leidlich, die gelegentlich auftretenden Aussetzer sind Probleme auf Apples Seite.

  5. grupsi says:

    Hi,
    ich hab genau das Problem das die Fritzbox 7570 von Hansenet hier keine soa requests durchlässt. Weder im Router noch im Modem Modus. Die FB ist von Hansenet so verkrüppelt worden, dass der Weg über die Konfiguration sichern und wiederherstellen nicht möglich ist. Eine andere FW flashen ist auch nicht drin, denn dann funktioniert mein Telefon nicht mehr.
    Daher hab ich wohl nur zwei Möglichkeiten, neues VDSL Modem besorgen und die Fritzbox dahinterklemmen oder den Hansenet Service belabern. Da mir das belabern erstmal kostengünsitger erscheint möchte ich das vorziehen aber bevor ich das mache wollte ich noch ein bischen mehr Wissen haben …
    Woran erkennt die Fritzbox überhaupt dass es ein soa request ist und diesen blockt? Bzw. was macht ein soa request packet so besonders?
    Würd mich über eine Antowrt freuen.. cheers!

    • (Immerhin scheint es bei Hansenet schon IPv6 zu geben :)

      Ein SOA-DNS-Request fordert einige Verwaltungsinformationen von einem Nameserver an. Für Back-to-My-Mac ist dabei wohl vor allem die Seriennummer wichtig. Über die kann festgestellt werden, ob sich was geändert hat (z.B. ein anderer Rechner hat sich unter einer bestimmten IP-Adresse angemeldet). Näheres auf Wikipedia: SOA Resource Record.

      Der Filter schaut sich gewisse Felder der Pakete an und entscheidet dann, ob die Pakete durch dürfen oder ins virtuelle Nirwana geschickt werden. Bei der Implementierung des Filters hat sich anscheinend ein Fehler eingeschlichen und deshalb werden auch DNS-Anfragen vom Typ SOA gefiltert.

      Damit BTMM einwandfrei funktioniert müssen zwei Voraussetzungen erfüllt sein:

      • DNS funktioniert einwandfrei
      • Es gibt einen UPnP-/NAT-PMP-Gateway, der den Rechner über Portforwarding aus dem Internet erreichbar macht. (Oder der Rechner hat direkt eine nicht private IP-Adresse)

      Da die DTAG ihre Fritzbox-basierten Speedports ohne NAT-PMP und UPnP ausliefert, kriegt man BTMM nur zum laufen, wenn man

      • die Router mit der Freetz-Firmware flasht; dann hat man UPnP
      • Oder man den Speedport nur als Modem (dann ist der oben beschriebe Fix nötig) und dahinter einen Router mit NAT-PMP oder UPnP betreibt.

      (Ich mache letzters.)

      Bezüglich der Fritzbox von Hansenet würde ich mal auf ip-phone-forum.de fragen, vielleicht gibt es ja eine Firmware mit der dein Telefon weiter funktionieren würde.

      • grupsi says:

        Moin, danke für die Nachtschicht… ; )
        Hansenet hat soweit ich weiß kein ipv6 bisher, hab nur in meiner Airport Extreme den automatischen Ipv6 Tunnel eingeschaltet, ich nehme an das hast du in deinem Log gesehn?!
        Ich hab einiges zu den SOA-DNS-Requests gelesen, allerdings bin ich nicht wirklich schlauer geworden wie die FB das blockt. Die DNS Abfrage läuft auf UDP Port 53, die UDP Datagramme haben im Header nur Quellport, Zielport, Länge und Prüfsumme stehen und dann eben noch den Datenblock. Das ganze wird dann in ein IP Paket eingewickelt. Und die FB wird ja keine Deep Packet Inspection machen. Naja irgendwas hab ich da wohl noch nicht so ganz geblickt.
        BTMM zum laufen zu bekommen wär schon nett, obwohl ich mit dyndns und vpn auch gut fahr, aber irgendwie wurmt es mich schon das es nicht funktioniert.
        Das mit der Firmware hab ich im ip-phone-forum auch schonmal nachgelesen, da hat hansenet leider kein voip sip sondern irgendwas properitäres gebastelt was nur mit deren fw funktioniert.
        So long ..

        • Vermutlich werden nur ein paar bestimmte Bits im Paket abgefragt und die SOA-Requests sind Kollateralschaden, da sie zufälligerweise auch dem abgefragten Schema entsprechen.

  6. grupsi says:

    sorry für die üble grammatik und rechtschreibung … :p

  7. ratpack says:

    Hallo Jürgen,

    ich habe Deine Änderungen in der *.export Datei nach Umbenennung in *.txt durchgeführt, war mir allerdings nicht sicher, wo die letzte Änderung eingefügt wird. Bei mir sieht die Änderung nun so aus:
    “…ect_40456OEM=tcomCountry=049Language=deNoChecks=yes**** CFGFILE:a…”
    Leider erhalte ich nach hochladen der *.export Datei eine fehlermeldung:

    “Laden der Konfiguration fehlgeschlagenBeim Wiederherstellen der Konfiguration aus der angegebenen Datei ist ein Fehler aufgetreten:

    Die angegebene Datei ist keine gültige Import-Datei.
    Überprüfen Sie die Auswahl der Datei und versuchen Sie es noch einmal.”

    Mist!! Vielleicht kannst Du mir sagen, was ich falsch mache. Ich will doch nur airvideo auf meinem iphone sehen und einen remote access auf mein Netzwerk haben!!

    Besten Dank im voraus!

    Equipment:
    Speedport W920V Version 65.04.78, Synology Diskstation DS209, macbook pro mit OS X 10.6 und diverse windows PCs

    • Ich habe den NoChecks-Eintrag zwischen Country und Language, und nicht hinter der Language-Zeile.
      Allerdings bin ich mir nicht sicher, ob hier die Reihenfolge wirklich wichtig ist:

      Country=049
      NoChecks=yes
      Language=de

Leave a Reply

Note: Comments are moderated, so your reply will not appear instantly.