Ich habe einen Linux-basierten Router für eine Netzwerktestumgebung entwickelt. Die Maschine verfügt über 4 physikalische Ethernet-Ports
- wan
- lan0
- lan1
- lan2
Alle 3 LAN-Schnittstellen sind auf meinem LAN-Gerät gebrückt. Ich verwende dnsmasq, um DHCP / DNS auf der LAN-Schnittstelle bereitzustellen. Ich versuche, SLAAC-IPv6-Adressen anstelle von DHCPv6-zugewiesenen Adressen zu verwenden und verwende DHCPv6 für andere Informationen (also zustandsloses DHCPv6). Alle anderen Computer in meinem LAN weisen Adressen über SLAAC korrekt zu. Obwohl dnsmasq Router-Ankündigungen auf der LAN-Schnittstelle sendet, erkennt und erkennt meine WAN-Schnittstelle es irgendwie und konfiguriert sich automatisch. Ich habe Wireshark auf meiner WLAN-Schnittstelle ausgeführt und es gibt keine eingehenden Router-Ankündigungen, die tatsächlich über das Netzwerk gesendet werden.
Ich habe sogar versucht, Slaac auf meiner wan-Oberfläche auszuschalten, indem ich den Schlüssel net.ipv6.conf.wan.autoconf über sysctl auf 0 gesetzt habe, aber er erhält immer noch eine Adresse.
Gibt es eine andere Möglichkeit, dass dies passieren könnte?
quelle
Antworten:
Das Problem stellt sich nicht auf das Netzwerk oder den Kernel, sondern auf das Systemd, das auf diesem System ausgeführt wird. systemd-networkd filtert die Multicast-Nachrichten, die sich auf Router-Ankündigungen beziehen, nicht angemessen oder beachtet die sysctl-Werte, um slaac für eine Schnittstelle zu deaktivieren. Es wurde also die RA verarbeitet und die IP selbst hinzugefügt.
quelle