cyborgweasel
Goto Top

Android 10 und mein DNS Server

Hallo allesamt,

ich spiele gerade etwas mit einer Synology herum, habe unter Anderem einen eigenen DNS jetzt aufgesetzt. Die lokale Domäne ist HomeDomain.local und funktioniert soweit alles prima. Bis ich dann meinen Server (NAS.HomeDomain.local) vom Handy aus aufrufen wollte (LG GS8, Android 9). Hat mich einige Zeit gekostet herauszufinden, dass man den Privaten DNS auf AUS schalten muss um DNS over TLS abzuschalten. Seitdem funktioniert es jetzt auch mit dem LG. Was ich jedoch nicht zum laufen bekomme ist ein Samsung A40, Android 10. Hier habe ich auch die private DNS Funktion abgeschaltet, jedoch klappt die Namensauflösung hier immer noch nicht. Auf dem Synology sehe ich für jede DNS Anfrage immer nur folgende Antwort:

client 192.168.50.115#32847 (www.google.com): query: www.google.com IN A + (192.168.50.200)

Greift hier vielleicht DoH? Kann man dies deaktieren? Habe zu Android 10 und DoH nichts gefunden, außer die Browsereinstellung. Da ich jedoch auch die App Fing benutze um die DNS Auflösung zu testen, sollte das doch auch nicht von der Browsereinstellung abhängen.

Hat hier jemand Erfahrung?

Gruß

Content-ID: 665804

Url: https://administrator.de/contentid/665804

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

StefanKittel
StefanKittel 16.04.2021 um 13:49:32 Uhr
Goto Top
Hallo,

benutze besser zuhause.domain.de.
Das .local führt in verschiedenen Szenarien zu Problemen.

Stefan
CyborgWeasel
CyborgWeasel 16.04.2021 um 15:03:07 Uhr
Goto Top
Alles klar, ist ja nur zum Spielen face-smile Aber mein Problem löst die .de Domäne aber nicht, oder?
norden
norden 16.04.2021 um 16:18:59 Uhr
Goto Top
Hallo CyborgWeasel,

.local solltest du besser jetzt als später ändern, das wird von Bonjour / Avahi / Zeroconf genutzt. Eine TLD, egal welche, löst das Problem aber auch nicht. Nimm irgendwas, was nicht registriert ist und auch zukünftig nur unwahrscheinlich registriert wird. Inzwischen sind TLDs ja nicht mehr begrenzt.

Dein DNS-Problem lässt sich mit den spärlichen Infos kaum analysieren. Dass DoH mit Fing nicht greifen dürfte, ist richtig. Aber welche IP hat denn eigentlich dein DNS-Server? Und dein Router? Welche Anfrage genau machst du? Ist der korrekte DNS-Server im Handy eingetragen bzw. per DHCP zugewiesen worden?

Es ist hier gar nicht klar, ob du versucht hast www.google.de ausfzulösen (was ja auch gar keine lokale Adresse wäre) oder ob dein lokaler DNS den als Forwarder bemüht hat.

Ich könnte mir vorstellen, dass es ein Problem damit gibt, ob du einen Hostnamen als solches oder als FQDN abfragst (also mit und ohne Suffix). Das kannst du aber mit dem PC und nslookup oder dig bequemer testen.
CyborgWeasel
CyborgWeasel 16.04.2021 aktualisiert um 19:08:53 Uhr
Goto Top
Es funktioniert ja mit allen anderen Geräten, daher hab ich jetzt die Config nicht gepostet. Es funktioniert mit Android 10 auch nicht, wenn ich die IP statisch vergebe und als einzigen DNS Server meine Synology eintrage. Auch hier mache ich mit Fing eine Ping-Anfrage und im Server sehe ich nur die oben bezeichnet Anfrage.

Hier zur Konfig:

Router: 192.168.50.1 (= Standardgateway)
Synology-Server: 192.168.50.200 (=DHCP + DNS Server)

DHCP:
Primärer DNS: 192.168.50.200
Sekundärer DNS: 192.168.50.1
Domänenname: HomeDomain.local
Startadresse: 192.168.50.100
Endadresse: 192.168.50.150
Maske: 255.255.255.0
Gateway: 192.168.50.1
keine DHCP-Codes sonst genutzt
Lease: 8Tage

DNS:
Zonen-ID: HomeDomain.local
Domänenname: HomeDomain.local
Typ: Master, aktiv
Serielles Format: Ganze Zahl
Zonentransfer einschränken: aktiv (Standard vorgegeben)
Zonenaktualisierung einschränken: aktiv (Standard vorgegeben)
DNS Eintrag (typ NS): HomeDomain.local, TTL 86400, Info: ns.HomeDomain.local
DNS Eintrag (typ A): HomeDomain.local, TTL 86400, Info: 192.168.50.200
DNS Eintrag (typ A): NAS.HomeDomain.local, TTL 86400, Info: 192.168.50.200
Forwarder aktiviert: Forwarder 1: 192.168.50.1, Forwarder 2: 8.8.8.8
Weiterleitungsrichtlinie: Zuerst Weiterleiten (Standard vorgegeben)

[edit]
noch den Rest deiner Fragen vergessen, sorry face-smile

Welche Anfrage genau machst du?

wie oben geschrieben: NAS.HomeDomain.local

Ist der korrekte DNS-Server im Handy eingetragen bzw. per DHCP zugewiesen worden?

sollte. Leider habe ich auf dem Handy keine Möglichkeit gefunden dies zu checken. Termux Terminal und der Befehl getprop scheinen unter Android 10 nicht mehr den DNS Eintrag aufzulisten (übrigens auch mein Android 9 Handy zeigt hier nichts mehr an). Unter Windows funktioniert DHCP mit dem korrekten DNS-Eintrag. Wie oben geschrieben habe ich den DNS Eintrag auch schon statisch festgelegt, ebenfalls keine Änderung. Und noch etwas: Wenn ich die Private-DNS-Funktion von Android aktiviere (also auf "Automatisch" setze, wenn ich das richtig herausgefunden habe, handelt es sich hierbei um DoT), dann sehe ich keine DNS Anfragen auf dem Server. Nur wenn diese Option auf "AUS" steht kommt, egal welche Anfrage ich tätige (auch www.tagesschau.de) immer eine einzige Anfrage nach oben dem Schema, immer www.google.com.

Es ist hier gar nicht klar, ob du versucht hast www.google.de ausfzulösen (was ja auch gar keine lokale Adresse wäre) oder ob dein lokaler DNS den als Forwarder bemüht hat

Nein, ich habe NAS.HomeDomain.local versucht. Das Protokoll sind die Querys an meine Synology, der Forwarder ist auf IPs eingestellt (einmal Fritzbox ...50.1 und einmal google 8.8.8.8. Wenn dann sollte er höchstens an die IP forwarden, nicht an die Domäne, oder?)

Ich könnte mir vorstellen, dass es ein Problem damit gibt, ob du einen Hostnamen als solches oder als FQDN abfragst (also mit und ohne Suffix). Das kannst du aber mit dem PC und nslookup oder dig bequemer testen.

Habe ich, funktioniert beides...
[/edit]

Ich tippe auf ein Problem / eine Neuerung bei Android 10, lasse mich aber gerne korrigieren. Windows PC funktioniert, Android 9 funktioniert, Linux könnte ich noch testen, hab irgendo noch eine VM...

Danke für euer Feedback!
norden
Lösung norden 16.04.2021 aktualisiert um 22:11:05 Uhr
Goto Top
Ich will nicht ausschließen, dass Android 10 da ein "Feature" eingebaut hat, aber wenn im Log deines DNS-Servers ein Eintrag auftaucht, wird der auch angefragt. Insofern gehe ich über diese Brücke noch nicht, sondern würde erstmal gucken, dass alles sauber eingerichtet ist.

Das Problem ist ja auch, dass unter Windows und Linux durchaus unterschiedliche Ergebnisse kommen können, je nachdem, wie das Domänensuffix eingerichtet ist und ob man die Anfrage als FQDN macht oder nicht.

Der Forwarder ist in Ordnung und ja, es ist eine IP - immer. Ansonsten hätte man ein Henne-Ei-Problem.

Wie gesagt, wenn das NAS antwortet, aber nicht die erwartete Antwort liefert, ist der Fehler dort zu suchen. Dennoch solltest du den Secondary DNS herausnehmen, weil sonst ggf. das Standardgateway antwortet und das kennt deinen lokalen DNS nicht. Es wird häufig missverstanden, dass es sich bei Primary und Secondary um ein Round-Robin-Verfahren mit Gewichtung handelt. Das ist kein "Probier den ersten und wenn der nicht geht, den zweiten". Landest du aus welchem Grund auch immer auf dem zweiten, bleibt das bis zum nächsten Timeout auch so.

Falls dein NAS tcpdump beherrscht, könnte man sich genau ansehen, was passiert.

EDIT: Nimm anstatt Fing mal die App Ping & Net. Die zeigt dir viel mehr Infos an.
CyborgWeasel
CyborgWeasel 17.04.2021 um 09:11:07 Uhr
Goto Top
Wie gesagt, wenn das NAS antwortet, aber nicht die erwartete Antwort liefert, ist der Fehler dort zu suchen

Eigentlich ist es ja anders herum, der NAS wird nach www.google.com gefragt, die Antwort sehe ich in seinem Protokoll nicht. Das macht mich ja so stutzig.

Dennoch solltest du den Secondary DNS herausnehmen, weil sonst ggf. das Standardgateway antwortet und das kennt deinen lokalen DNS nicht. Es wird häufig missverstanden, dass es sich bei Primary und Secondary um ein Round-Robin-Verfahren mit Gewichtung handelt. Das ist kein "Probier den ersten und wenn der nicht geht, den zweiten". Landest du aus welchem Grund auch immer auf dem zweiten, bleibt das bis zum nächsten Timeout auch so

Oha, das wusste ich tatsächlich auch nicht. Dh. man sollte also wenn dann nur einen 2ten identisch konfigurierten DNS nehmen, niemals den nachgelagerten? In meinem Falle also immer nur ein DNS, keine Alternative?

Falls dein NAS tcpdump beherrscht, könnte man sich genau ansehen, was passiert.

Das war jetzt ein gutes Stichwort, mal wieder nicht auf das "einfachste" gekommen. Ich hab mir gerade auf meinem Switch mal schnell einen Mirror-Port zu meinem Accesspoint definiert und mit Wireshark reingesehen. Tadaaa, die DNS Anfragen vom Android-Handy gingen alle via IPv6 raus und da ich in meinem Netzwerk IPv6 sträflich vernachlässige, läuft auf meinem NAS/DNS natürlich auch kein IPv6. Ergo antwortet hier der Router. Im Router IPv6 DHCP deaktiviert und voila, es funktioniert face-smile

Wo jetzt der www.google.com Eintrag auf dem NAS herkommt ist mir jetzt allerdings immer noch schleierhaft.

Mit IPv6 bewege ich mich immer noch auf dünnem Eis was meine Kenntnisse angeht, aber sollten DNS Anfragen nicht immer auf beiden Protokollen laufen? Bzw. wenn man über IPv6 nichts findet nochmal IPv4 versuchen? Warum wurde dann eine www.google.com Anfrage über IPv4 abgesetzt und der rest über IPv6?

Vielen Dank für deine Hilfe!!

Gruß
norden
norden 17.04.2021 um 12:22:32 Uhr
Goto Top
Zitat von @CyborgWeasel:
man sollte also wenn dann nur einen 2ten identisch konfigurierten DNS nehmen, niemals den nachgelagerten? In meinem Falle also immer nur ein DNS, keine Alternative?
Korrekt. Kommt aber dennoch auf das erwartete Ergebnis an. Wenn du sicherstellen willst, dass das Internet ohne NAS erreichbar bleibt, kann deine Lösung dazu betragen. Sie kann aber auch dazu führen, dass intern nichts mehr aufgelöst werden kann, selbst wenn keine Störung vorliegt. Wo der Secondary DNS Sinn ergibt ist klassischerweise bei zwei DCs, über die auch DNS läuft. Diese sind ja per se synchron.

Falls dein NAS tcpdump beherrscht, könnte man sich genau ansehen, was passiert.
Ich hab mir gerade auf meinem Switch mal schnell einen Mirror-Port zu meinem Accesspoint definiert
Oder so. face-smile

Mit IPv6 bewege ich mich immer noch auf dünnem Eis was meine Kenntnisse angeht, aber sollten DNS Anfragen nicht immer auf beiden Protokollen laufen?
Da ist das Eis bei mir nicht dicker. Es gibt aber meines Wissens keinen Standard, der besagt, dass immer beides abgefragt werden muss oder soll. Zudem ist ja immer implementationsabhängig, wie eine Anfrage gestellt wird. Die Funktion gethostbyname() in Python gibt z.B. ausschließlich eine IPv4-Adresse zurück. Im Heimnetz brauchst du sicherlich kein IPv6 und damit auch die Abfrage nicht. Im Internet kann das schon anders aussehen.

Vielen Dank für deine Hilfe!!
Gerne doch.

Gruß
N