Nicht alle DNS Server werden versucht [gelöst]

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Nicht alle DNS Server werden versucht [gelöst]

Beitrag von chr.gogolin » 26.04.2016 09:46:50

Ich habe eine Frage zu DNS.

Ich nutze openfortivpn um ein VPN Verbindung herzustellen. Nach dem erfolgreichen Aufbau der Verbindung sind die folgenden routen und DNS server installiert:

Code: Alles auswählen

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         Livebox         0.0.0.0         UG    0      0        0 wlan0
1.1.1.1         *               255.255.255.255 UH    0      0        0 ppp0
10.0.0.0        10.250.250.32   255.0.0.0       UG    0      0        0 ppp0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
192.168.1.0     *               255.255.255.0   U     0      0        0 wlan0
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.1
nameserver 10.4.1.10
nameserver 10.4.1.20
Die Adressen beginnend mit 10. sind hinter dem VPN.
Versuche ich nun eine hostname mit DNS aufzulösen der hinter dem VPN liegt klappt das nicht:

Code: Alles auswählen

$ host pcl0913.foo.net 
Host pcl0913.foo.net not found: 3(NXDOMAIN)
$ ssh pcl0913.foo.net
ssh: Could not resolve hostname pcl0913.foo.net: Name or service not known
Sage ich jedoch host explicit dass es den nameserver 10.4.1.10 verwenden soll, dann geht alles

Code: Alles auswählen

$ host pcl0913.foo.net 10.4.1.10
Using domain server:
Name: 10.4.1.10
Address: 10.4.1.10#53
Aliases: 

pcl0913.foo.net is an alias for pcl0913.ad.foo.net.
pcl0913.ad.foo.net has address 10.3.8.38
und ich kann mich auch anschließend per ssh mit 10.3.8.38 verbinden.

Es scheint als ob nicht alle eingestellten DNS-Server durchprobiert würden bevor mit "not found" abgebrochen wird.

Warum und was kann ich dagegen tun?
Zuletzt geändert von chr.gogolin am 26.04.2016 10:55:40, insgesamt 1-mal geändert.
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Nicht alle DNS Server werden versucht

Beitrag von ThorstenS » 26.04.2016 09:57:41

in der resolv.conf kannst du das hier benutzen:

Code: Alles auswählen

options ndots:1 timeout:0.3 attempts:1 rotate
Löst das dein Problem?

du könntest auch lokal Debianunbound einsetzen und stub-zones benutzen, um den zuständigen DNS Server für eine bestimmte domain direkt anzugeben…

Ich habe in meiner /etc/network/interfaces folgendes stehen bei eth0

Code: Alles auswählen

iface eth0 inet dhcp
    down /sbin/ethtool -s $IFACE wol g
    # […] vlan Kram
    dns-search intern.DOMAIN werkstatt.DOMAIN dms.DOMAIN
    dns-options ndots:1 timeout:0.3 attempts:1 rotate
Das baut dir die resolv.conf vernünftig auf, wenn du auch Debianresolvconf installiert hast. Die DNS-Server stammen bei mir vom DHCP-Server. Über dns-nameserver könntest du die aber auch hier reinschreiben.

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Nicht alle DNS Server werden versucht

Beitrag von chr.gogolin » 26.04.2016 10:55:14

Danke! Ja, options rotate in die resolve.conf einzufügen löst das Problem.

Ich habe nun in /etc/resolvconf/resolv.conf.d/tail einfach die Zeile 'options rotate' eingefügt und so geht es.

Warum ist das nicht standard? Ich meine, was ist der Sinn davon mehrere DNS Server in der resolve.conf konfigurieren zu können wenn immer nur der erste benutzt wird?
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Nicht alle DNS Server werden versucht [gelöst]

Beitrag von ThorstenS » 26.04.2016 14:12:31

der default timeout liegt bei praxisnahen 30 Sekunden, meine 0.3 sind für ein LAN deutlich besser geeignet.
attempts liegt bei 2 - WTF!
Die defaults sorgen nur dafür, dass es läuft. Alles andere mußt du anpassen. Das gilt für jeden Dienst.
dummerweise wird das heute im allg. docker hype vergessen :roll:

Antworten