[erledigt] unbound: local-zone mit IPv6 und ULA's

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

[erledigt] unbound: local-zone mit IPv6 und ULA's

Beitrag von ingo2 » 18.05.2018 20:42:20

Ich habe inzwischen auf einem kleinen Serverlein Debianunbound installiert und es läft auch prima. Habe dafür die Anleitungen aus c't 2017, H.12, S. 130ff (Grundkonfiguration mit DNSSEC) und 2017, H.21, S. 158ff für das einrichten einer "local-zone" für das Heimnetz eingerichtet.

Das klappt sowohl mit IPv4 als auch IPV6 prima, habe dafür auf der Fritz!Box ULA's aktiviert, die verteilt das selbst festzulegende /64-Prefix. Die letzten 64 Bit generieren sich ja dann die Client-Geräte auf Basis ihrer MAC-Adresse der Interfaces. Und dabei habe ich ein Problem:

Das betrifft speziell Laptops. Die erhalten so unterschiedliche IPv6-Adressen, je nachdem welches Interface genutzt wird: WLAN oder Ethernet.

Wie kann ich das in Debianunbound so abbilden, daß beide Interfaces unter dem gleichen Hostnamen erreichbar sind? Einfach 2 Einträge zum selben host?

Code: Alles auswählen

local-data: "laptop.home. 3600 IN	AAAA fd00::1234:<Ethernet-identifier>  # Kabel
local-data: "laptop.home. 3600 IN	AAAA fd00::1234:<WLAN-identifier 1>  # WLAN 2,4GHz
local-data: "laptop.home. 3600 IN	AAAA fd00::1234:<WLAN-identifier 2>  # WLAN 5GHz
Probiert unbound dann einfach durch, welcher geht, oder wechselt gar auf IPv4? Kann man das steuern?

EDIT:
[Der nächste lästige Umstand ist dann z.B. SSH. Da wird die Verbindung abgelehnt, weil "gleicher hostname mit anderer IP verdächtig ist".] Die SSH-Geschichte hat sich erledigt - war mein Gedankenfehler, ist gelöst.

Wie habt Ihr das gelöst?

Gruß,
Ingo
Zuletzt geändert von ingo2 am 23.05.2018 22:56:41, insgesamt 1-mal geändert.

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von mat6937 » 19.05.2018 09:59:22

ingo2 hat geschrieben: ↑ zum Beitrag ↑
18.05.2018 20:42:20
Einfach 2 Einträge zum selben host?

Code: Alles auswählen

local-data: "laptop.home. 3600 IN	AAAA fd00::1234:<Ethernet-identifier>  # Kabel
local-data: "laptop.home. 3600 IN	AAAA fd00::1234:<WLAN-identifier 1>  # WLAN 2,4GHz
local-data: "laptop.home. 3600 IN	AAAA fd00::1234:<WLAN-identifier 2>  # WLAN 5GHz
Probiert unbound dann einfach durch, welcher geht, oder wechselt gar auf IPv4? Kann man das steuern?
Ja. unbound sollte alle Registrierungen anzeigen. Z. B.:

Code: Alles auswählen

host -t A laptop.home
host -t AAAA laptop.home
host laptop.home

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von ingo2 » 19.05.2018 17:40:20

mat6937 hat geschrieben: ↑ zum Beitrag ↑
19.05.2018 09:59:22
Ja. unbound sollte alle Registrierungen anzeigen. Z. B.:

Code: Alles auswählen

host -t A laptop.home
host -t AAAA laptop.home
host laptop.home
Tut er auch. Sie werden alle 3 schön in der Reihefolge aufgelistet, in der sie in der "local-host-data.conf" aufgeführt sind.
Das dumme ist nur, daß sie offenbar an verschiedenen Stellen gecached werden. Das hat dann den unschönen Effekt, daß ich zwar meinem Laptop schön über Kabel erreichen kann (z.B. ping6) - falls das Kabel eingesteckt ist.
Klemme ich jedoch das Ethernetkabel ab, verbindet sich der Laptop sofort über WLAN und ist dann nicht mehr erreichbar. Auch mehrfaches Aufrufen des Befehls, versucht immer die alte Ethernet-Adresse anzusprechen - und schlägt fehl :-(

Das heißt: der Debianunbound müßte die DNS-Informationen im "round-robin Verfahren" ausliefern, oder der anfragende Client müßte alle erhaltenen Adressen der Reihe nach durchprobieren - und zwar auch, wenn er eine davon bereits in seinem Cache hat.

Habe das mit "ping" und "ssh" probiert, beides Mal schlägt die Verbindung nach dem Wechsel des Intzerfaces fehl.

P.S.: Alle Clients und der Server laufen unter Stretch.

Ingo

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von mat6937 » 20.05.2018 10:08:30

ingo2 hat geschrieben: ↑ zum Beitrag ↑
19.05.2018 17:40:20
... den unschönen Effekt, daß ich zwar meinem Laptop schön über Kabel erreichen kann (z.B. ping6) - falls das Kabel eingesteckt ist.
Wie ist es, wenn der Laptop von Anfang an (d. h. sofort nach dem booten) nur per WLAN verbunden ist (... ohne eingestecktes Kabel), ... kannst Du diesen dann auch per ping6 und "laptop.home" erreichen?

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von ingo2 » 20.05.2018 12:21:51

Dann geht es natürlich auch nicht.

Und besonders schlimm:

Code: Alles auswählen

dig laptop.home 
dann reicht unbound die Anfrage an den root-server weiter (a.root-servers.net) und der antwortet korrekt mit "NXDOMAIN". Das sollte eigentlich garnicht geschehen, ist nämlich eine ULA aus dem Bereich fd00/8. :!:

Ich glaube, ich schalte das ganze IPv6 im Heimnetz wieder ab :hail:

Ingo

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von mat6937 » 20.05.2018 13:00:02

ingo2 hat geschrieben: ↑ zum Beitrag ↑
20.05.2018 12:21:51
Ich glaube, ich schalte das ganze IPv6 im Heimnetz wieder ab :hail:
Warum? ... denn was der dnsmasq betr. IPv6 lokal kann, sollte unbound doch auch können. Z. B.:

Code: Alles auswählen

dig aaaa raspberrypi.fritz.box +short
fd00::####:##ff:fe##:####
200#:####:####:0:####:##ff:fe##:####
Du musst die lokale domain home "abfangen", so dass diese nicht am root-server abgefragt wird.

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von ingo2 » 21.05.2018 20:22:51

Ich habe jetzt die ganzen IPv6-Einträge für meine local-zone auskommentiert.

Das hatte auch noch andere Gründe, z.B.:
Für die Wartung meines Servers habe ich einem Rechner im lokalen Netz den root-Login mit Passwort erlaubt (normalerweise nur als user mit gpg-key, der wiederum Passwort-gesichert ist). Diese Ausnahme ist auch nur für die IPv4-Adresse konfiguriert. Wenn ich jetzt einmal mich mit IPv6 verbunden habe, ist SSH auf meinem Wartungs-PC darauf fixiert und erlaubt einen PW-Login nur wenn ich explizit mit "ssh -4 <root@server> aufrufe. SSH ist durch nichts dazu zu bringen, wieder per Default zuerst IPv4 zu benutzen.

Und noch was zu IPv6:
Offenbar gibt es mit den ULA's ein Durcheinander wenn die "privacy-extensions" aktiv sind. Das sollte eigentlich nicht sein, da ich alle lokalen ULA's fest mit der von der MAC-Adresse abgeleitetm "Interface-Identifier" eingetragen habe. Eigentlich sollten damit diese IPv6-ULA's eindeutig und fix sein und bleiben. Dennoch stehen irgendwo offenbar alte Daten noch in irgendwelchen Caches - und es klemmt :hail:

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von mat6937 » 21.05.2018 21:51:26

ingo2 hat geschrieben: ↑ zum Beitrag ↑
21.05.2018 20:22:51
Und noch was zu IPv6:
Offenbar gibt es mit den ULA's ein Durcheinander wenn die "privacy-extensions" aktiv sind. Das sollte eigentlich nicht sein, ....
Naja, wenn man (richtigerweise) feste Interface-IDs konfiguriert, dann sollte man die PE schon deaktiviert haben.

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von ingo2 » 22.05.2018 21:42:11

Ich habe jetzt nochmal einen Versuch gestartet.
a) Ob die Privacy-Extensions aktiviert sind oder nicht, spielt keine Rolle.
b) von meinem PC aus mit "unbound" auf meinem Server zu meinem Laptop mit Hostnamen "alf":

Code: Alles auswählen

dig alf.home aaaa +short
fdxy::abcd:a11:0000:fef2:dc2c
fdxy::abcd:f2de:0000:fead:2468
Der erste Eintrag ist das derzeit aktive WLAN-Interface des Laptops, der zweite das unbenutzte Ethernet-Interface.

Code: Alles auswählen

host alf
alf.home has address 192.168.xy3.28
alf.home has IPv6 address fdxy::abcd:a11:0000:fef2:dc2c
alf.home has IPv6 address fdxy::abcd:f2de:0000:fead:2468
Sieht also gut aus.
Aber:

Code: Alles auswählen

ping6 alf
PING alf(fdxy::abcd:f2de:0000:fead:2468 (fdxy::abcd:f2de:0000:fead:2468)) 56 data bytes
From fdxy::abcd:3a10:0000:fed2:2355 (fdxy::abcd:3a10:0000:fed2:2355) icmp_seq=1 Destination unreachable: Address unreachable
	[wobei diese Adresse die des gateways (Fritz!Box) ist]
From fdxy::abcd:a1fe:0000:b13f:ec52 (fdxy::abcd:a1fe:0000:b13f:ec52) icmp_seq=2 Destination unreachable: Address unreachable
From fdxy::abcd:a1fe:0000:b13f:ec52 (fdxy::abcd:a1fe:0000:b13f:ec52) icmp_seq=3 Destination unreachable: Address unreachable
.... usw.
Es wird also die letzte von unbound gemeldete Adresse benutzt, danach kontaktiert er den Router, dort ist der DHCP-Server abgeschaltet und sie verteilt nur den externen DNS-Server mit unbound (SLAAC).
Dann folgende Adressen sind mir völlig unbekannt, liegen aber im Prefix meiner ULA's ???

Noch irgendeine Idee?
Ingo

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von mat6937 » 23.05.2018 09:15:28

ingo2 hat geschrieben: ↑ zum Beitrag ↑
22.05.2018 21:42:11
Dann folgende Adressen sind mir völlig unbekannt, ....
Poste mal die Ausgaben von:

Code: Alles auswählen

ip n s
ip -6 r

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von ingo2 » 23.05.2018 12:59:20

Hier der gewünschte Output:

Code: Alles auswählen

$ ip n s
192.168.xy.29 dev eno1 lladdr 24:77:03:28:37:94 STALE
192.168.xy.1 dev eno1 lladdr 38:10:d5:d2:23:55 REACHABLE
192.168.xy.90 dev eno1 lladdr 00:0d:b9:47:83:e8 REACHABLE
fdxy::abcd:f2de:0000:fead:2468 dev eno1  FAILED            ### das ist eno1 von alf ###
fe80::3a10:d5ff:fed2:2355 dev eno1 lladdr 38:10:d5:d2:23:55 router REACHABLE   ### Fritz!Box ###

Code: Alles auswählen

$ ip -6 r
2003:9999:ef38:1900::/64 dev eno1 proto ra metric 100  pref medium
2003:9999:ef38:1900::/56 via fe80::3a10:0000:fed2:2355 dev eno1 proto ra metric 100  pref medium
fdxy:0:0:abcd::/64 via fe80::3a10:0000:fed2:2355 dev eno1 proto ra metric 100  pref medium
fe80::3a10:0000:fed2:2355 dev eno1 proto static metric 100  pref medium
fe80::/64 dev eno1 proto kernel metric 256  pref medium
default via fe80::3a10:0000:fed2:2355 dev eno1 proto static metric 100  pref medium
Mein Schluß daraus:
a) unbound liefert die IPv6-Adressen zu einem bestimmten Host - falls mehrere konfiguriert sind - genau in der Reihenfolge aus, in der sie auch in der "local-host-data.conf" aufgeführt sind.

b) "ping" nutzt immer nur die letzte Adresse, danach kontaktiert es den Router/Gateway. Dann wird ping mit einem "gewürfeltem Interface-Identifier" probiert - und das gibt natürlich einen Fehler -> "Address unreachable". Würfeln tut offenbar der Router/Fritz!Box?

c) sobald ich im unbound die zweite IPv6 für "alf" auskommentiere, funktioniert es absolut korrekt.

Fazit:
unbound kann/macht kein "round-robin", wenn ein Host mehrere IPv6 eingetragen hat.
Ping probiert nur eine - und zwar die letzte - IPv6-Adresse, die der Resolver ausliefert.

Ingo

Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: unbound: local-zone mit IPv6 und ULA's

Beitrag von ingo2 » 23.05.2018 22:56:03

Meine Überlegung zum Problem "ein Hostname und mehrere IP's":

Geht mit IPv4 nicht und mit IPv6 erst recht nicht, weil:
IPv6 generell mehrere IP's pro interface erlaubt und z.B. beim Wechsel der IP (TTL läuft ab) wird erst eine neue IPv6 erzeugt, dann irgendwann expired die alte. Und die neue steht dann an letzter Stelle und sollte ab jetzt verwendet werden. Ein "round-robin Verfahren" von unbound wäre also nicht korrekt.

Muß ich mit leben ;-)

Die Privacy-Extensions mit "ip6-privacy=2" in der nm-configuration funktionieren weiterhn.

Und zu meinem SSH-Login, der vom lokalen PC mit IPv4 erfolgen sollte hab' ich auch eine Lösung:
Die Adresse in der wieder /etc/hosts eintragen - die wird vor der DNS-Anfrage gecheckt.

So, damit ist das Thema wohl erledigt - "so isses nun mal".

Danke @mat6937,
Ingo

Antworten