
Ich betreibe mein Netzwerk über eine x86-Box mit Ubuntu 18.04, Firewalld (UFW ist nicht als Router geeignet), /networks/interfaces (Netplan hatte einen Fehler, der es für diesen Zweck ungeeignet machte) und dnsmasq für DHCP und DNS.
Ich hatte einen ISP, der IPv6 mit PD betrieb, und ich benutztedas Setup hier. Mein aktueller ISP unterstützt IPV6 nicht, deshalb habe ich über Hurricane Electric einen Tunnel zu meinem Router eingerichtet – dieser ist eingerichtet und funktioniert vermutlich, da ich einen Ping senden kann.
Ich habe enp1s0 als externe Schnittstelle und alle anderen Schnittstellen sind überbrückt und bedienen den Rest des Netzwerks als br0. Ich habe auch he-ipv6 als Tunnel, der mit nichts überbrückt ist
Im Moment sitzt der Router hinter einem ISP-Router, mit zwei verschiedenen Netzwerksegmenten - 192.168.1.x für alle anderen und mein eigenes Testnetzwerk in 192.168.2.x, mit dem Router in einer DMZ. Diessollte nichtein Problem sein.
Das Problem ist, dass ich bei dnsmasq bleiben möchte und Schwierigkeiten habe, die Dokumentation zur Einrichtung zu finden.
Hier ist, was ich gerade habe
- Ich habe IPv6 für meinen Router gemäß den Anweisungen auf der Webseite von Hurricane Electric eingerichtet, einschließlich der folgenden Angaben in meiner Datei /etc/networks/interfaces
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:470:YY:YYYY::2
netmask 64
endpoint 216.218.221.6
local xxx.xxx.x.xxx
ttl 255
gateway 2001:470:YY:YYYY::1
Das funktioniert. Ich kann ipv6.google.com und andere bekannte IPv6-Sites anpingen. Ich scheine nur keine IPs fürirgendetwas anderes.
Ich habe es versucht
##For HE
enable-ra
dhcp-range = 2001:470:YY:YYYY::
dhcp-option=option6:dns-server,[2001:470:20::2],[2001:4860:4860::8888]
Aber anscheinend ist die Syntax falsch.
Wie erhalte ich eine IPv6-Adresse für Clients, die IPs vom Router erhalten, sowie für br0?
Antwort1
Vor allem anderen:
Genau wie bei IPv4 benötigt jede Verbindung ihr eigenes Subnetzpräfix. Der 2001:470:YY:YYYY::/64
„Tunnelendpunkt“ ist speziell für die Verbindung zwischen Ihnen und Hurricane (d. h. er ist in IPv4-Begriffen für Ihre „WAN-Adresse“) – er kann nicht für eines Ihrer LANs wiederverwendet werden. Für Letzteres benötigen Sie eines der „gerouteten IPv6-Präfixe“, die Sie auf der Tunneleinstellungsseite finden – dies entspricht einem delegierten DHCPv6-PD-Präfix.
Normalerweise hat jedes LAN ein Subnetzpräfix der Größe /64, damit die standardmäßige SLAAC-basierte Adresszuweisung funktioniert (viele Clients, insbesondere Android, unterstützen keine DHCPv6-basierte Adresszuweisung). Wenn Sie also mehrere Subnetze planen, wählen Sie „Assign /48“, um ein Präfix mit einer angemessenen Anzahl (64ki) von /64 zu erhalten.
(Sie müssen "Assign /64" nicht verwenden, wenn Sie bereits ein /48 zugewiesen haben. Wenn SietatVerwenden Sie "Assign /64", beachten Sie, dass das Präfixleichtunterscheidet sich vom Präfix „Tunnelendpunkte“; sie werden oft verwechselt.)
Wenn Sie Ihren eigenen Bereich haben, sagen wir 2001:470:ZZ::/48, wählen Sie daraus einen /64 aus (im Bereich von 0 bis ffff, wie zum Beispiel 2001:470:ZZ:1::/64) und verwenden Sie es für Ihre br0
Schnittstelle sowie für die DNSMASQ-Konfiguration.
enable-ra
dhcp-range = 2001:470:ZZ:1::, ra-stateless
dhcp-option = option6:dns-server, [2001:470:20::2], [2001:4860:4860::8888]
Wie bereits erwähnt, viele Clients (vor allem Android)nicht unterstützenAdressvergabe über DHCPv6. Sie erfordern SLAAC, daher benötigen Sie mindestens einen derslaac
oderra-stateless
in der Konfiguration „dhcp-range“. (Der Modus „ra-stateless“ teilt SLAAC-Clients zusätzlich mit, dass sie weiterhin DNS-Einstellungen von DHCPv6 beziehen können, was für Windows nützlich ist. Unabhängig von der Auswahl stellt dnsmasq für Android auch automatisch DNS-Server über SLAAC-RDNSS bereit.)
Fürbr0(oder was auch immer die LAN-Schnittstelle ist) sollten Sie eine IP-Adresse statisch zuweisen – ich bin mir nicht sicher, ob der Kernel seine eigenen Multicasts empfängt oder ob er ihnen Beachtung schenkt. Auf jeden Fall vermute ichdnsmasq selbstkann die Ausführung auf einer Schnittstelle verweigern, für die eine passende Adresse fehlt (wie dies bereits bei IPv4 der Fall ist) ...
iface br0 inet6 static
address 2001:470:ZZ:1::1/64
iface br1 inet6 static
address 2001:470:ZZ:2::1/64
Sobald dnsmasq läuft, können Sie es rdisc6 eth0
von einem anderen Linux-System aus verwenden, um den Inhalt einer Router-Anzeige anzufordern und anzuzeigen. Stellen Sie sicher, dass die „Router-Lebensdauer“ ungleich Null ist, mindestens ein „Präfix“ (das /64, on-link, autonom und mit einer Gültigkeitsdauer ungleich Null sein muss) und dass es von einer lokalen Link- fe80::*
Adresse und nicht von einer globalen Adresse stammt.