FF-DNS-Probleme bei Supernodes (fallen bei Vodafonenutzung auf)

Moin zusammen,

mit Vodafone Anschlüssen scheint es ein DNS Problem zu geben.
Unsere Freifunk Router bekommen dort anscheinend keine DNS Auflösung oder zumindest keine DNS Auflösung für die Gateway Server.
Von einem „Normalen“ Rechner funktionierte die DNS Auflösung allerdings, auch die der Gateway Server.

Effekt: der Router kann keine Verbindung zu den Gateways aufbauen.

Diese Problematik konnte ich bislang bei zwei Anschlüssen beobachten.

Ab der Firmware Version 2014.4+114 tritt dieses Problem nicht mehr auf, da dann die Gateway Server zusätzlich mit der IP in der Firmware eingetragen sind.
Ich habe die Links auf der Downloadseite schon mal vorsichtshalber auf diese Version umgestellt.

Das IPV6 Problem was bei Vodavon schon mal aufgetreten ist?

Die Probleme treten bei mehreren Vodafone/KDG-Zugängen auf?
Docsis? LTE? VDSL?

Das da oben ist zwar schon ein wenig Text.
Aber harte Daten fehlen, ausser „irgendwie Vodafone“

Tja. Mal einen „besseren“ Router mit mehr Flash benutzen. tcpdump, bind-dig und screen installieren und schon kann man exakt feststellen, wo die Säge klemmt.

Das hört sich gut an hast du dazu ein Script?
Ich habe die Programme mal nachinstalliert und die spärliche Doku angesehen bekomme aber keine interessanten Ausgaben.
Screen ist nur dazu da die Konsole virtuell offen zu halten und mit zu loggen?

genau, sowas kann screen. Ich kenne die Münsteraner Firmware leider nicht genau, würde aber folgendes probieren:

cat /etc/resolv.conf
→ sagt dir, welchen Nameserver der Router z.Zt. benutzt (falls das 127.0.0.1 ist, was bei Freifunk-Routern durchaus in Ordnung ist, bringt es dich allerdings nicht weiter)

Was macht ping „$gateway-hostname“ auf deinem Router? Was ping „$gateway-ip“?

Mit "tcpdump -p -i eth0 „port 53“ kannst du währenddessen gucken, was passiert (auf dem Freifunk- oder Upstream-Router, bei anderen Rechnern musst du das „-p“ weg lassen und solltest die Bedingung „and host $lokale-ff-router-ip“ ergänzen.

Es gibt da nichts automatisiertes. Beim Debugging kommt es in erster Linie auf das Geschick, das Know How und auf die Erfahrung des Ausführenden an.

dig ist ein Tool um DNS Queries auszuführen un DNS-Server testen zu können.

Mit tcpdump kann ich sehen, was auf den Netzwerkinterfaces wirklich passiert, welche Pakete rausgeheun und was reinkommt.

Ich benutze screen sehr gerne. Ich melde mich einmal per ssh an und starte screen. Nun kann ich mehrere Session öffnen, zwischen denen ich hin und her schalten kann. Auch detachen und abmelden. Die Sessions bleiben dabei aktiv. Melde ich mich wieder an attache ich mich einfach an das laufende screen. Ich poste mal meine .screenrc:

# define a nice status line
caption always "%?%F%{.bW}%:%{.BW}%?%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %d/%m %C%a "
hardstatus string "[%n: %t] %H"

# don't display startup screen
startup_message off

# screen scrollback buffer
defscrollback 1000

# xterm keybindings
# alt+arrow up
bindkey "^[[1;3A" focus up
# alt+arrow down
bindkey "^[[1;3B" focus down
# alt+arrow right
bindkey "^[[1;3C" next
# alt+arrow left
bindkey "^[[1;3D" prev

# putty keybindings
# alt arrow up
bindkey "^[^[OA" focus up
# alt arrow down
bindkey "^[^[OB" focus down
# alt arrow right
bindkey "^[^[OC" next
# alt arrow left
bindkey "^[^[OD" prev

# moves sessions
bind , number -1
bind . number +1

################
#
# xterm tweaks
#

# Make the output buffer large for (fast) xterms.
termcapinfo xterm* OL=10000

# use xterms scroll bar
termcapinfo xterm* ti@:te@

#80/132 column switching must be enabled for ^AW to work
#change init sequence to not switch width
termcapinfo  xterm 'Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

# tell screen that xterm can switch to dark background and has function
# keys.
termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l'
termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
termcapinfo xterm 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~'

Damit kann ich mit < ALT >+Cursor Rechts/Links einfach zwischen den Session hin- und herschalten, welche ich mit < CTRL >+A c anlegen kann. Einfach mal nachgoogeln. screen ist schon eint tolles Tool.

Kurz zun Debugging selbst:

Welche Resolver werden benutzt:

# cat /var/gluon/wan-dnsmasq/resolv.conf
nameserver 192.168.17.1
nameserver 192.168.19.5

Welche fastd Server werden benötigt:

# uci show | grep fastd.mesh_vpn_backbone_peer | grep remote
fastd.mesh_vpn_backbone_peer_commander1024.remote=ipv6 "commander1024.gw.freifunk-muenster.de" port 14242 ipv4 "commander1024.gw.freifunk-muenster.de" port 14242 ipv6 "2a01:4f8:150:8ff8::5" port 14242 ipv4 "176.9.88.123" port 14242
fastd.mesh_vpn_backbone_peer_fusselkater.remote=ipv6 "fusselkater.gw.freifunk-muenster.de" port 14242 ipv4 "fusselkater.gw.freifunk-muenster.de" port 14242 ipv6 "2a03:4000:6:500e::1" port 14242 ipv4 "37.120.168.53" port 14242
fastd.mesh_vpn_backbone_peer_fanlin.remote=ipv6 "fanlin.gw.freifunk-muenster.de" port 14242 ipv4 "fanlin.gw.freifunk-muenster.de" port 14242 ipv6 "2001:4ba0:ffec:136::2" port 14242 ipv4 "189.163.225.52" port 14242

Test der DNS Server:

 # dig @192.168.17.1 a fusselkater.gw.freifunk-muenster.de

; <<>> DiG 9.9.4 <<>> @192.168.17.1 a fusselkater.gw.freifunk-muenster.de
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1207
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;fusselkater.gw.freifunk-muenster.de. IN        A

;; ANSWER SECTION:
fusselkater.gw.freifunk-muenster.de. 3559 IN A  37.120.168.53

;; AUTHORITY SECTION:
gw.freifunk-muenster.de. 86359  IN      NS      ns2.freifunk-muenster.de.
gw.freifunk-muenster.de. 86359  IN      NS      ns3.freifunk-muenster.de.
gw.freifunk-muenster.de. 86359  IN      NS      ns1.freifunk-muenster.de.

;; Query time: 8 msec
;; SERVER: 192.168.17.1#53(192.168.17.1)
;; WHEN: Fri Feb 06 19:38:32 CET 2015
;; MSG SIZE  rcvd: 134

Und für IPv6:

# dig @192.168.17.1 aaaa fusselkater.gw.freifunk-muenster.de

; <<>> DiG 9.9.4 <<>> @192.168.17.1 aaaa fusselkater.gw.freifunk-muenster.de
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26846
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;fusselkater.gw.freifunk-muenster.de. IN        AAAA

;; ANSWER SECTION:
fusselkater.gw.freifunk-muenster.de. 3503 IN AAAA 2a03:4000:6:500e::1

;; AUTHORITY SECTION:
gw.freifunk-muenster.de. 86270  IN      NS      ns3.freifunk-muenster.de.
gw.freifunk-muenster.de. 86270  IN      NS      ns2.freifunk-muenster.de.
gw.freifunk-muenster.de. 86270  IN      NS      ns1.freifunk-muenster.de.

;; Query time: 6 msec
;; SERVER: 192.168.17.1#53(192.168.17.1)
;; WHEN: Fri Feb 06 19:40:01 CET 2015
;; MSG SIZE  rcvd: 146
2 „Gefällt mir“

Bei mir ging doch aber auch das nicht. Das würde doch auch keinen Sinn machen oder? Entweder der im Vodafone-Router eingetragene DNS-Server funktioniert oder er funktioniert nicht. Das ist doch für alle Rechner gleich. Es kann höchstens sein, dass der Rechner an dem es ging einen zusätzlichen, direkten DNS eingetragen hatte.

Warum nicht besser einen zusätzlichen DNS-Server? Dann tritt das Problem auch bei neuen oder geänderten Gateways nicht auf, ohne dass die Firmware geflasht werden muss.

Ich hatte das Problem, hab einen VDSL-Anschluss.

Diagnose war damals einfach: Der Vodafone-DNS-Server kennt die Domain nicht oder blockiert sie absichtlich. Es kommt einfach keine Auflösung zurück.

Lösung bei mir: Alternativen DNS-Server in der FritzBox eingetragen, das geht aber eben nicht, wenn der Nutzer die (Un)EasyBox verwendet.

Dann würde ich einfach dem Gluon einen anderen DNS verordnen.
Also ggf. das Wan statisch machen und dort einen DNS vorschreiben.

Genau deswegen ja mein länglicher Post. Was genau kommt denn genau von Resolver zurück? NXDOMAIN (Server kennt Domain nicht), SERVFAIL (interner Serverfehler), TIMEOUT (Server ist nicht zu erreichen), in diesem Fall mit tcpdump weiterschauen. Ist die Fehlerursache dem Resolver des Carriers anzulasten, dann dort Ticket aufmachen.

In der Regel lässt sich DNS gut debuggen. Man lernt viel dabei und es macht einfach Spaß.

1 „Gefällt mir“

/Edit: Entschuldigt den unformatierten Text. Diese Forensoftware ist genial, aber Quellcode darstellen ist total verbuggt.

   mpw@Server0:~$ dig @195.50.140.116 a fusselkater.gw.freifunk-muenster.de

; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> @195.50.140.116 a fusselkater.gw.freifunk-muenster.de
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15560
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1460
;; QUESTION SECTION:
;fusselkater.gw.freifunk-muenster.de. IN    A

;; ANSWER SECTION:
fusselkater.gw.freifunk-muenster.de. 3600 IN A    37.120.168.53

;; Query time: 77 msec
;; SERVER: 195.50.140.116#53(195.50.140.116)
;; WHEN: Sat Feb 07 13:59:03 CET 2015
;; MSG SIZE  rcvd: 80

mpw@Server0:~$ dig @195.50.140.116 aaaa fusselkater.gw.freifunk-muenster.de

; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> @195.50.140.116 aaaa fusselkater.gw.freifunk-muenster.de
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 46804
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1460
;; QUESTION SECTION:
;fusselkater.gw.freifunk-muenster.de. IN    AAAA

;; Query time: 32 msec
;; SERVER: 195.50.140.116#53(195.50.140.116)
;; WHEN: Sat Feb 07 13:59:22 CET 2015
;; MSG SIZE  rcvd: 64

Also derzeit sieht es danach aus, als ob Vodafone das Problem behoben hat. Evtl. hat da einfach nur eine Querverflinkung innerhalb der DNS-Server nicht funktioniert. Damals kam keine IP zurück.

Ich habe mir die Sache einmal angeschaut.

Wir besorgen uns erst einmal die Nameserver für freifunk-muenster.de:

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> ns freifunk-muenster.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4852
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;freifunk-muenster.de.          IN      NS

;; ANSWER SECTION:
freifunk-muenster.de.   85274   IN      NS      second-dns.netcup.net.
freifunk-muenster.de.   85274   IN      NS      third-dns.netcup.net.
freifunk-muenster.de.   85274   IN      NS      root-dns.netcup.net.

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sat Feb  7 15:34:13 2015
;; MSG SIZE  rcvd: 120

Wir befragen diese Nameserver:

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @root-dns.netcup.net. a fusselkater.gw.freifunk-muenster.de. +norec
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25670
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 3, ADDITIONAL: 6

;; QUESTION SECTION:
;fusselkater.gw.freifunk-muenster.de. IN        A

;; AUTHORITY SECTION:
gw.freifunk-muenster.de. 86400  IN      NS      ns1.freifunk-muenster.de.
gw.freifunk-muenster.de. 86400  IN      NS      ns2.freifunk-muenster.de.
gw.freifunk-muenster.de. 86400  IN      NS      ns3.freifunk-muenster.de.

;; ADDITIONAL SECTION:
ns1.freifunk-muenster.de. 86400 IN      A       37.120.168.53
ns1.freifunk-muenster.de. 86400 IN      AAAA    2a03:4000:6:500e::1
ns2.freifunk-muenster.de. 86400 IN      A       176.9.88.123
ns2.freifunk-muenster.de. 86400 IN      AAAA    2a01:4f8:150:8ff8::5
ns3.freifunk-muenster.de. 86400 IN      A       93.186.196.76
ns3.freifunk-muenster.de. 86400 IN      AAAA    2001:4ba0:fff1:49::1

;; Query time: 17 msec
;; SERVER: 2a03:4000:0:1::e1e1#53(2a03:4000:0:1::e1e1)
;; WHEN: Sat Feb  7 15:37:20 2015
;; MSG SIZE  rcvd: 239

Aha, „gw.freifunk-muenster.de.“ ist delegiert. Also diese NS befragen.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @ns1.freifunk-muenster.de. a fusselkater.gw.freifunk-muenster.de. +norec
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42946
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;fusselkater.gw.freifunk-muenster.de. IN        A

;; ANSWER SECTION:
fusselkater.gw.freifunk-muenster.de. 3600 IN A  37.120.168.53

;; AUTHORITY SECTION:
gw.freifunk-muenster.de. 3600   IN      NS      localhost.

;; ADDITIONAL SECTION:
localhost.              604800  IN      A       127.0.0.1
localhost.              604800  IN      AAAA    ::1

;; Query time: 17 msec
;; SERVER: 2a03:4000:6:500e::1#53(2a03:4000:6:500e::1)
;; WHEN: Sat Feb  7 15:43:20 2015
;; MSG SIZE  rcvd: 136

Oh, was ist denn das? Der NS-Record der Zone gw.freifunk-muenster.de. ist nie und nimmer localhost. Ein Fehler. Der SOA-Record ist ebenfalls defekt:

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @ns1.freifunk-muenster.de. soa gw.freifunk-muenster.de. +norec
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15613
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;gw.freifunk-muenster.de.       IN      SOA

;; ANSWER SECTION:
gw.freifunk-muenster.de. 3600   IN      SOA     localhost. info.freifunk-muenster.de. 2015012301 86400 7200 3600000 172800

;; AUTHORITY SECTION:
gw.freifunk-muenster.de. 3600   IN      NS      localhost.

;; ADDITIONAL SECTION:
localhost.              604800  IN      A       127.0.0.1
localhost.              604800  IN      AAAA    ::1

;; Query time: 20 msec
;; SERVER: 2a03:4000:6:500e::1#53(2a03:4000:6:500e::1)
;; WHEN: Sat Feb  7 15:46:38 2015
;; MSG SIZE  rcvd: 149

Der Nameserver ns2.freifunk-muenster.de liefert die selben Ergebnisse. Der Nameserver ns3.freifunk-muenster.de liefert: NICHTS!

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @ns3.freifunk-muenster.de. aaaa fusselkater.gw.freifunk-muenster.de. +norec
; (2 servers found)
;; global options: +cmd
;; connection timed out; no servers could be reached

Halten wir also fest:

  1. Die NS- und SOA-RRs der Zone gw.freifunk-muenster.de. sind fehlkonfiguriert.
  2. Der Nameserver ns3.freifunk-muenster.de. antwortet nicht.

Bevor als hier auf andere (Vodafone/Arcor) gezeigt wird, würde ich erst einmal die offensichtlichen Fehler abstellen.

Gut zu wissen, danke für die Diagnose. Interessant ist nur, dass wir bisher nur mit Vodafone Probleme hatten, aber deren Anteil an den Gesamtkunden müsste eigentlich eh höher sein.

@void: Guckst du dir das Mal an? Ich hab da ja keinen Zugriff drauf.

Die hier aufgezeigten Fehlkonfigurationen müssen nicht zwingend die Ursache für die Dysfunktionalität des Vodafone/Arcor-Resolvers sein, können aber. Bevor man dort einen „auf dicke Hose“ macht, sollte bei einem selbst schon die Konfiguration in Ordnung sein.