Zustandslose IP-Adresse anstelle von DHCP-Adresse zugewiesen

759
ts90

Hier ist die Information:

Host link IP: fe80::9eec:b32d:855c:5589 Server link IP: fe80::f03c:91ff:fe11:96c4  Host global IP: 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727 (Ugh!) Server global IP: 2601:aaaa:bbbb:cccc::1 

Server hat Block für 2601 geroutet: aaaa: bbbb: cccc :: / 64

DHCP versucht, diese IP dem Host zuzuweisen: 2601: aaaa: bbbb: cccc: 1000 :: fa8d

Host muss GENERIC sein: Host hat KEINE benutzerdefinierte Netzwerkkonfiguration als Voraussetzung. Es wird davon ausgegangen, dass es sich bei allen Hosts um Computer handelt, die jeder hat, und sie schließen sie an und sollten ohne Anpassungen funktionieren. Dhclient sollte NIEMALS auf einem IPv6-Client verwendet werden: alles sollte über SLAAC oder Stateful SLAAC erfolgen (was ich zu erreichen versuche).

Der Host eignet sich hervorragend für Browser, die standardmäßig auf IPv6 eingestellt sind, und hat keine Probleme, alle Standorte zu erreichen, egal ob IPv6 oder IPv4.

Host-Netzwerk:

2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25 valid_lft 39535sec preferred_lft 39535sec inet6 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76/64 scope global temporary dynamic  valid_lft 86199sec preferred_lft 14199sec inet6 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727/64 scope global dynamic mngtmpaddr noprefixroute  valid_lft 86199sec preferred_lft 14199sec inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute  valid_lft forever preferred_lft forever 

Radvd-Konfiguration des Servers:

root@li336-239:/var# cat /etc/radvd.conf interface tap0 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; prefix 2601:aaaa:bbbb:cccc::/64 { AdvOnLink on; AdvAutonomous on; }; }; 

Host und Server können sich vor der globalen IP-Zuweisung problemlos sehen:

Server: ping6 -c2 fe80::9eec:b32d:855c:5589%tap0 --> Success Host: ping6 -c2 fe80::f03c:91ff:fe11:96c4%enp0s25 --> Success 

Host und Server sehen sich mit ihren Link-IPs und ihren globalen IPs perfekt als Nachbarn:

Host / Server: ip -6 neigh -> listet alles erfolgreich auf

ip6tables: Alle FORWARD- und INPUT-Ketten sind nicht eingeschränkt: Es werden keine Pakete verworfen

DHCP-Server, wenn der Host physisch online geht:

10:16:39 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700 10:16:39 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds 10:16:39 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546 10:16:40 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700 10:16:40 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds 10:16:40 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546 10:16:42 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700 10:16:42 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds 10:16:42 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546 10:16:46 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700 10:16:46 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds 10:16:46 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546 10:16:55 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700 10:16:55 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds 10:16:55 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546 10:17:13 li336-239 dhcpd[5067]: Solicit message from fe80::9eec:b32d:855c:5589 port 546, transaction ID 0x83D90700 10:17:13 li336-239 dhcpd[5067]: Advertise NA: address 2601:aaaa:bbbb:cccc:1000::fa8d to client with duid 00:01:00:01:22:b0:4f:4a:28:d2:44:6b:bf:9f iaid = 1147912095 valid for 600 seconds 10:17:13 li336-239 dhcpd[5067]: Sending Advertise to fe80::9eec:b32d:855c:5589 port 546 

... aber der Host scheint sich selbst 2601 zuzuordnen: aaaa: bbbb: cccc: 1854: 46d6: c2f9: e727 (jedes Mal anders), was wunderbar wäre, wenn ich nicht will, dass dies Stateful ist.

Host bei physischer Verbindung:

root@some-computer:~# ip monitor 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default  link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default  link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff Deleted ff02::1:ff5c:5589 dev enp0s25 lladdr 33:33:ff:5c:55:89 NOARP Deleted ff02::2 dev enp0s25 lladdr 33:33:00:00:00:02 NOARP Deleted fe80::f03c:91ff:fe11:96c4 dev enp0s25 lladdr f2:3c:91:11:96:c4 router STALE Deleted ff02::fb dev enp0s25 lladdr 33:33:00:00:00:fb NOARP Deleted ff02::1:2 dev enp0s25 lladdr 33:33:00:01:00:02 NOARP Deleted ff02::16 dev enp0s25 lladdr 33:33:00:00:00:16 NOARP Deleted ff02::1:ff55:6c76 dev enp0s25 lladdr 33:33:ff:55:6c:76 NOARP Deleted ff02::1:fff9:e727 dev enp0s25 lladdr 33:33:ff:f9:e7:27 NOARP ff00::/8 dev enp0s25 table local metric 256 pref medium 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default  link/ether 28:d2:44:6b:bf:9f brd ff:ff:ff:ff:ff:ff Deleted ff00::/8 dev enp0s25 table local metric 256 pref medium ff00::/8 dev enp0s25 table local metric 256 pref medium fe80::/64 dev enp0s25 proto kernel metric 256 pref medium 2: enp0s25 inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25 valid_lft 39738sec preferred_lft 39738sec local 172.21.0.102 dev enp0s25 table local proto kernel scope host src 172.21.0.102  broadcast 172.21.0.255 dev enp0s25 table local proto kernel scope link src 172.21.0.102  broadcast 172.21.0.0 dev enp0s25 table local proto kernel scope link src 172.21.0.102  172.21.0.0/24 dev enp0s25 proto kernel scope link src 172.21.0.102 metric 100  default via 172.21.0.1 dev enp0s25 proto dhcp metric 20100  ipv4 dev enp0s25 rp_filter loose  172.21.0.1 dev enp0s25 lladdr 00:e0:4c:68:3b:72 REACHABLE 169.254.0.0/16 dev enp0s25 scope link metric 1000  10.16.0.1 dev enp0s25 lladdr f2:3c:91:11:96:c4 REACHABLE 2: enp0s25 inet6 fe80::9eec:b32d:855c:5589/64 scope link  valid_lft forever preferred_lft forever local fe80::9eec:b32d:855c:5589 dev enp0s25 table local proto kernel metric 0 pref medium 2: enp0s25 inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute  valid_lft forever preferred_lft forever Deleted fe80::/64 dev enp0s25 proto kernel metric 256 pref medium fe80::/64 dev enp0s25 proto kernel metric 256 pref medium fe80::/64 dev enp0s25 proto kernel metric 100 pref medium 2: enp0s25 inet 172.21.0.102/24 brd 172.21.0.255 scope global dynamic noprefixroute enp0s25 valid_lft 39736sec preferred_lft 39736sec default via 172.21.0.1 dev enp0s25 proto dhcp metric 100  Deleted default via 172.21.0.1 dev enp0s25 proto dhcp metric 20100  fe80::f03c:91ff:fe11:96c4 dev enp0s25 lladdr f2:3c:91:11:96:c4 router STALE 2: enp0s25 inet6 fe80::9eec:b32d:855c:5589/64 scope link noprefixroute  valid_lft forever preferred_lft forever 2601:aaaa:bbbb:cccc::/64 dev enp0s25 proto ra metric 100 pref medium default via fe80::f03c:91ff:fe11:96c4 dev enp0s25 proto ra metric 100 pref medium [!!HERE--->] 2: enp0s25 inet6 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76/64 scope global temporary dynamic  valid_lft 86399sec preferred_lft 14399sec local 2601:aaaa:bbbb:cccc:ec25:e54d:4255:6c76 dev enp0s25 table local proto kernel metric 0 pref medium [!!HERE--->] 2: enp0s25 inet6 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727/64 scope global dynamic mngtmpaddr noprefixroute  valid_lft 86399sec preferred_lft 14399sec [!!HERE--->] local 2601:aaaa:bbbb:cccc:1854:46d6:c2f9:e727 dev enp0s25 table local proto kernel metric 0 pref medium 
4

1 Antwort auf die Frage

5
grawity

Der Host scheint sich 2601 zuzuordnen: aaaa: bbbb: cccc: 1854: 46d6: c2f9: e727

Ihre Router-Ankündigungen weisen darauf hin AdvAutonomous on, dass die zustandslose Konfiguration im Netzwerk unterstützt wird. Wenn Sie keine Autokonfiguration für autonome Adressen wünschen, aktivieren Sie keine Autokonfiguration für autonome Adressen.

Dies gilt auch, wenn die RAs vorhanden sind AdvManaged onund die Hosts eine DHCPv6-Ankündigung erhalten. (RFC 4862: "Es sollte beachtet werden, dass ein Host sowohl die automatische Konfiguration der statusfreien Adressen als auch DHCPv6 verwendet.")

Dhclient sollte NIEMALS auf einem IPv6-Client verwendet werden: alles sollte über SLAAC oder Stateful SLAAC erfolgen (was ich zu erreichen versuche).

Es gibt kein "stateful SLAAC" (in der Tat steht "SL" für "staatenlos").

Die SLAAC-Ankündigungen können den Client höchstens dazu auffordern, DHCPv6 zu verwenden - er kann den Client jedoch nicht dazu zwingen, DHCPv6 auszuführen. Zum Beispiel:

  • Linux standardmäßig führt SLAAC im Kernel und der Kernel nicht automatisch über einen DHCP - Client - Gabel, weder dhclient -6noch dhcpcd -6noch wide-dhcp6c. Dies geschieht nur, wenn der Benutzerraum, der dieses Flag verstehen würde (z. B. NetworkManager oder systemd-networkd), bereits ausgeführt wird.

  • FreeBSDs dhclientin der Basis verfügen nicht über DHCPv6-Unterstützung. Die duale Version ist in Ports.

  • OpenBSD hat keinen DHCPv6-Client in der Basis (einer muss über Ports installiert werden).

  • Android unterstützt überhaupt kein DHCPv6.

Ihr Client scheint NetworkManager auszuführen, aber selbst dann gibt es keine Garantie, dass keine manuelle Konfiguration erforderlich ist, je nachdem, welche Version installiert ist und welche externen DHCPv6-Clients installiert sind. (Wenn dhcp=internalausgewählt ist, unterstützen aktuelle Versionen nur DHCPv4.)

Es ist auch möglich, dass Clients DHCPv6 nur versuchen, wenn die autonome Konfiguration deaktiviert ist (siehe erster Teil der Antwort). Anschließend wird IPv6 jedoch von Clients ohne DHCPv6 unbrauchbar.


Wenn es Ihr Ziel ist, Verantwortlichkeit zu haben, würde ich stattdessen ein Protokoll der IPv6-Adresse zu MAC-Adressverknüpfungen führen. Dies kann durch die Überwachung von Neighbor Advertisements oder durch Überwachen des ND-Cache des Routers ( ip -6 neigh) implementiert werden. Der Vorteil ist, dass es unabhängig von den Mechanismen funktioniert - SLAAC, Privacy-Extension, DHCPv6, DHCPv4 und sogar statisch konfigurierte Adressen werden verfolgt.

Alles, was Sie sagen, ist sinnvoll. Wenn Sie AdvAutonomous auf off setzen, erhält der Client (zumindest der Ubuntu-Client) keine IP-Zuweisung (auch wenn der DHCP-Server immer noch betroffen ist). Also dann: Liegt dies an einem anderen Serverproblem auf meiner Seite oder ist es nur das Wesen des Tieres, wie sich verschiedene Clients ohne zusätzliche Konfiguration verhalten? Wenn letzteres, ich bin ein Spiel zu Ihrem Vorschlag der Beibehaltung der MAC-Assoziationen - wäre es schön, Routing-Regeln in ip6tables basierend auf diesen Assoziationen dynamisch anwenden zu können, was wirklich mein ganzes Ziel ist, Stateful zu sein. ts90 vor 5 Jahren 0
Sehen Sie sich die Systemprotokolle des Ubuntu-Clients an, um herauszufinden, was passiert. Ich glaube, dass ip6tables über die Quell-MAC-Adresse übereinstimmen können, oder Sie möchten das Netzwerk in mehrere Subnetze aufteilen, von denen jedes seine eigenen Regeln hat ... grawity vor 5 Jahren 0