Wie kann die Kommunikation im lokalen Subnetz mit IPv6-ULA statt mit IPv6-GUA bevorzugt werden?

900
Santobert

Alle meine Geräte besitzen IPv4-, IPv6-LLA-, IPv6-ULA- und IPv6-GUA-Adressen wie diese:

3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 88:b1:11:ed:21:c8 brd ff:ff:ff:ff:ff:ff inet 192.168.1.22/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp1s0 valid_lft 863780sec preferred_lft 863780sec inet6 fd00::xxxx:xxxx:xxxx:xxxx/64 scope global dynamic noprefixroute  valid_lft 6985sec preferred_lft 3385sec inet6 2003:d4:4f1f:9500:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic noprefixroute  valid_lft 6985sec preferred_lft 1585sec inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute  valid_lft forever preferred_lft forever 

Für einige komplexere Geräte (Dienstanbieter) ist eine iptables-Firewall installiert, auf der Folgendes installiert ist:

-A INPUT -i lo -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -p ipv6-icmp -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 

Wenn ich jetzt versuche, Gerät a von Gerät b über den DNS-Namen zu erreichen, wird manchmal die IPv6-GUA und manchmal die ULA verwendet. Meine Firewalls erlauben einige Ports (z. B. SSH) nur für Verbindungen vom ULA-Subnetz. Daher möchte ich die Verwendung von ULAs in meinem Subnetz erzwingen.

Ist das der richtige Weg? Wie kann ich dieses Problem lösen, ohne meine Firewalls zu deaktivieren und die Ziel-IP nicht einzugeben?

Vielen Dank

EDIT 20181118: In RFC 6724 heißt es: Standardmäßig werden globale IPv6-Ziele gegenüber ULA-Zielen bevorzugt, da eine beliebige ULA nicht unbedingt erreichbar ist (Dank an Ron Maupin). Also habe ich offensichtlich etwas falsch mit meiner Netzwerkstruktur gemacht. Gibt es eine andere Möglichkeit, den Verkehr in meinem Subnetz mithilfe von iptables zu filtern? Das globale IPv6-Präfix ist dynamisch. Daher kann ich es nicht in meinen statischen iptables verwenden, um festzustellen, ob Pakete aus meinem Subnetz stammen.

0
https://superuser.com/questions/436574/ipv4-vs-ipv6-priority-in-windows-7 rtaccon vor 5 Jahren 1
[RFC 6724, Standardadressenauswahl für Internet Protocol Version 6 (IPv6)] (https://tools.ietf.org/html/rfc6724) erläutert, wie die Adressen ausgewählt werden sollen. Ich kann nicht garantieren, dass Ihr Betriebssystem dem RFC folgt. Ron Maupin vor 5 Jahren 0
Fügen Sie Informationen aus RFC 6724 hinzu (Danke an Ron Maupin). Es gibt noch keine Lösung. Santobert vor 5 Jahren 0

1 Antwort auf die Frage

2
dirkt

Versuchen Sie die Bearbeitung /etc/gai.confund geben Sie Ihren ULAs Vorrang vor den GUAs.

Wenn dies nicht hilft und vorausgesetzt, dass DNS alle Touradressen in zufälliger Reihenfolge zurückgibt, besteht eine Problemumgehung darin, für jeden Computer (möglicherweise unter einer anderen Subdomäne) einen neuen Adresseintrag hinzuzufügen, der nur die ULA-Adresse zurückgibt.

Dies wäre eine Lösung, wenn ich mich für meine Netzwerkstruktur entscheiden möchte. RFC 6724 beschreibt dieses Problem, ohne eine konkrete Lösung zu geben. Es sieht so aus, als habe ich etwas falsch gemacht, als ich meine Netzwerkstruktur entworfen habe. Es sollte eine andere Lösung geben, um festzustellen, ob eingehende Pakete von meinem Subnetz kommen oder nicht. Santobert vor 5 Jahren 0
RFC 6724 beschreibt, wie eine Quelladresse bei einer Zieladresse ausgewählt wird. Dass manchmal GUAs und manchmal ULAs als * Quell * -Adressen verwendet werden, zeigt, dass manchmal GUAs und manchmal ULAs als * Ziel * -Adressen verwendet werden. Dies kommt normalerweise von DNS, die Adressen in zufälliger Reihenfolge zurückgibt. Wenn Sie nicht glauben, dass dies der Grund ist, debuggen Sie es: Schreiben Sie ein einfaches C-Programm, das die Auflösung des Hostnamens ausführt und die IPv6-Adresse ausgibt, die es erhält, und es mehrmals ausführen. Wenn Sie die Datei / etc / gai.conf bearbeiten, sollten Sie ULAs als Zieladresse vorziehen, um das Problem zu beheben. dirkt vor 5 Jahren 0
Wenn Sie feststellen möchten, ob Pakete aus Ihrem Subnetz stammen oder nicht, können Sie überprüfen, ob der Kurs alle Präfixe für * alle * enthält, die Sie in Ihrem Subnetz zugewiesen haben, einschließlich GUAs. Dabei spielt es keine Rolle, welche Präfixe auf Basis von DNS ausgewählt werden. dirkt vor 5 Jahren 0
Danke für die Klarstellung. Ich habe einige andere Beiträge wie [this] (https://superuser.com/questions/802973/ip6tables-how-to-handle-periodically-changing-prefix) gelesen, die mein Problem ziemlich gut beschreiben. Ich möchte die Konfiguration eines Clients nicht bearbeiten, es sei denn, es gibt eine Lösung, um das Problem für alle Clients zu lösen. Der Artikel oben empfiehlt die Verwendung des Hostnamens in iptables. Ist es nicht unsicher, da sich jeder einen anderen Hostnamen und / oder eine andere Domäne zuweisen kann? Santobert vor 5 Jahren 0
Wie ich schrieb: Der problematische Punkt ist, wie Ihr DNS funktioniert (und Sie haben keine Details angegeben, wie es eingerichtet wird). Sie haben auch nicht gesagt, wie Sie Ihr GUA-Präfix erwerben (von Ihrem ISP? Ändert sich das?). Um auf der sicheren Seite zu sein, müssen Sie Ihr DNS kontrollieren (z. B. über einen Proxy oder sogar mit / etc / hosts). Wenn Sie garantieren können, dass entweder (1) Sie einen speziellen DNS-Eintrag nur für ULAs haben, z. B. in einer Subdomain, oder (2) sind ULAs die bevorzugte Wahl, entweder über `/ etc / gai.conf` oder über die DNS-Konfiguration. oder (3) Ihr GUA-Präfix und die DNS-Einträge stimmen immer überein, dann können Sie "iptables" -Einträge darauf basieren. dirkt vor 5 Jahren 0
Denken Sie also über Ihre DNS-Infrastruktur nach. "iptables" funktioniert immer auf numerischer Basis. Sie können die Einträge regelmäßig aus dem aktuellen DNS aktualisieren oder die Synchronisierung über dynamisches DNS erzwingen. Der Schlüsselpunkt ist jedoch das DNS. dirkt vor 5 Jahren 0
Das GUA-Präfix stammt von meinem ISP. Ich bekomme einen kompletten Dual-Stack. Leider ändert sich das Präfix häufig, sodass ich mich nicht darauf verlassen kann. Mein lokaler DNS-Server läuft auf meinem Router (AVM FritzBox 7590). Ich kann den DNS nicht direkt über das Webinterface steuern, da es keine Optionen gibt. Ich würde das GUA-Präfix für iptables verwenden, wenn es nicht so oft geändert wurde. Vielen Dank für Ihre Hilfe und Geduld. Santobert vor 5 Jahren 0
Die Wahl ist also (1) alle Clients ändern, entweder "gai.conf" (versuchen Sie es zuerst mit einem einzelnen Client) oder dedizierte "/ etc / hosts" für ULAs. Die Änderung dieser Werte über `ssh` ist einfach, wenn Schlüssel installiert sind. (2) DNS von der Fritzbox auf ein anderes Gerät verschieben, das Sie steuern; (3) hacken Sie das Fritzbox-DNS, indem Sie die Konfiguration exportieren, entschlüsseln (google), statische DNS-Einträge für ULAs hinzufügen und erneut importieren. dirkt vor 5 Jahren 0
Vielen Dank. Ich denke drüber nach. Meine bevorzugte Lösung ist (2) mit einem dedizierten DNS. Es sieht nach der saubersten Lösung für mich aus. Santobert vor 5 Jahren 0