Neuer Ansatz für IPv6-mostly

Die letzten Monate wollte ich auf meinem Linux-Notebook testen, wie weit man mit IPv6-only kommt, also dem Verzicht auf das alte IPv4. Das läuft erstaunlich gut, nur ein paar gewisse Seiten sind noch etwas altmodisch unterwegs. So kann ich zum Beispiel auf die Webseite meiner Bank nicht zugreifen oder auch auf packages.zorinos.com nicht, um mein Betriebssystem Zorin OS zu updaten.
DNS64 und NAT64 war mir ein zu großer Aufwand, da ich die letzen Tage sehr viel Zeit damit vergeudet habe, einen Raspberry Pi als WLAN Access Point mit DNS64 und NAT64 (Tayga) so wie mit der DHCP Option 108 zum Laufen zu bringen. Daher nun eine andere Herangehensweise:
Mein Notebook ist weiterhin per Dual-Stack an die Fritzbox angeschlossen, DNS-Anfragen liefern aber primär nur AAAA-Records für IPv6 zurück. Nur Webseiten auf der Whitelist dürfen einen A-Record zurückliefern.
Lokaler DNS Server
Dazu wurde dnsmasq lokal installiert und der lokale DNS auf die eigene Adresse gesetzt:
sudo nmcli connection modify "eth0" ipv4.dns "127.0.0.1"
sudo nmcli connection modify "eth0" ipv6.dns "::1"
Erzwingt, dass diese DNS-Server ignoriert werden, wenn der DHCP-Server vom Router andere mitsendet, da ansonsten der DNS-Server der Fritzbox genutzt werden könnte:
sudo nmcli connection modify "eth0" ipv4.ignore-auto-dns yes
sudo nmcli connection modify "eth0" ipv6.ignore-auto-dns yes
IPv4-Anfragen in dnsmasq blockieren
IPv4 blockieren
address=/#/0.0.0.0
Erlaubte Domains (Beispiel)
server=/beispielbank.de/2a01:4f8:151:34aa::198
server=/o2online.de/2a01:4f8:151:34aa::198
server=/packages.zorinos.com/2a01:4f8:151:34aa::198
… weitere Domains hier hinzufügen …
Upstream-Server, die Dnsmasq nutzen darf, wenn er etwas nicht weiß
server=2a01:4f8:151:34aa::198
Neustart und Test
Nach einem Neustart systemctl restart dnsmasq kann über dig oder den Browser getestet werden, ob es korrekt auflöst.
Ausblick
Ich werde das nun die nächsten Wochen einmal testen und natürlich noch etwas an meiner Whitelist optimieren. Ich bin gespannt auf mein Fazit.