Jak na IPv6 přes wireguard?

Jak na IPv6 přes wireguard?
« kdy: 08. 03. 2020, 21:21:18 »
Ahoj, prosím pěkně o radu, v oblasti IPv6 jsem téměř nepolíbený, ale rád bych se něco přiučil.

Mám pouze poskytovatele připojení který ignoruje IPv6 a nemám veřejnou IPv4 - jsem za NATem. Nemůžu ho změnit. Doma mám router s vlastním NATem, ve kterém už mohu měnit konfiguraci. Mám proto také VPS s veřejnou IPv4 a rozsahem IPv6 adres. Zprovoznil jsem si VPN (pouze IPv4) pomocí Wireguard (konfigurace viz níže) mezi VPS a raspberry v domácí síti. Z VPS se dostanu na jakýkoli počítač v domácí síti (raspberry překládá adresy) a zároveň všechny počítače v domácí síti se dostanou na VPS - router má nastavenou route pro VPN adresu VPS skrz raspberry, aby to neposílal na default gateway. To všechno funguje.

Chtěl bych ale nějak rozdělit IPv6 adresy z rozsahu, který mi byl přidělen na VPS skze VPN počítačům v domácí síti, aby získaly přímou IPv6 konektivitu, ale nevím, jak na to.

Kód: (wg0.conf na VPS) [Vybrat]
[Interface]
Address = 192.168.9.1
PrivateKey = privátní klíč VPS
ListenPort = 51820

[Peer]
PublicKey = veřejný klíč raspberry
AllowedIPs = 192.168.9.2/32,192.168.0.0/24

Kód: (wg0.conf na raspberry) [Vybrat]
[Interface]
Address = 192.168.9.2
PrivateKey = privátní klíč raspberry
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
SaveConfig = true

[Peer]
PublicKey = veřejný klíč VPS
Endpoint = moje.vps.net:51820
AllowedIPs = 192.168.9.1/32
PersistentKeepAlive = 25



Re:Jak na IPv6 přes wireguard?
« Odpověď #1 kdy: 08. 03. 2020, 22:18:50 »
Z VPS se dostanu na jakýkoli počítač v domácí síti (raspberry překládá adresy) a zároveň všechny počítače v domácí síti se dostanou na VPS - router má nastavenou route pro VPN adresu VPS skrz raspberry, aby to neposílal na default gateway. To všechno funguje.
Proč na tom Raspberry NATuješ? Není k tomu žádný důvod.

Ale k tématu: Konfigurace IPv6 ve Wireguardu bude zcela obdobná konfiguraci IPv4. Ten problém bude nejspíš v tom, abys na VPS dostal naroutováno dostatečné množství IPv6 adres. Pro jednu domácí síť to chce jako absolutní minimum 1×/64 a tento rozsah by měl být na VPS naroutován, nikoli zprovozněn na rozhraní mezi VPS a nejbližším routerem.

Takže například VPS bude mít IPv6 adresu 2001:db8:1::1234 a bude mít na sebe naroutován rozsah 2001:db8:1234:1234::/64. Potom na VPS přidáš do AllowedIPs tento rozsah 2001:db8:1234:1234::/64, to by mělo správně nastavit směrovací tabulku aby daný rozsah adres padal do tunelu a zároveň aby pakety z tunelu byly přijímány.

Na druhém konci, v Raspberry, je potřeba přijímat z tunelu kteroukoli IPv6 adresu (protože tam může přijít cokoli z Internetu). Do AllowedIPs je tedy potřeba přidat ::/0. Poslední krok je přidělenou síťku zprovoznit na LAN rozhraní Raspberry, tedy nastavit tam adresu 2001:db8:1234:1234::1/64. Aby o IPv6 věděla i ostatní zařízení v síti, je potřeba začít do sítě vysílat ohlášky routeru, buď utilitou radvd nebo třeba pomocí démona bird.

Na obou koncích je samozřejmě potřeba povolit forwardování IPv6 datagramů, na to se často zapomíná.

Pokud na VPS nejsou adresy naroutovány, ale jsou ve skutečnosti na rozhraní mezi VPS a místním routerem (velmi častý problém), je navíc potřeba řešit na straně VPS tzv NDP Proxy, na což je potřeba použít nějakého démona, jehož jméno si nepamatuju.

Re:Jak na IPv6 přes wireguard?
« Odpověď #2 kdy: 09. 03. 2020, 01:01:09 »
Proč na tom Raspberry NATuješ? Není k tomu žádný důvod.

Protože jsem si myslel, že to bez toho nefunguje. K tomu mě vedlo to, že jsem si jako test funkčnosti bohužel vybral ping na stroj s woknama, které bez úpravy defaultního nastavení firewallu neodpovídají na ping z jiného síťového rozsahu.

zkusím teda trochu naštudovat, co jsou a dělají a jak se ovládají radvd nebo bird a uvidím, jestli se do toho budu dál pouštět...

SB

  • ****
  • 347
    • Zobrazit profil
    • E-mail
Re:Jak na IPv6 přes wireguard?
« Odpověď #3 kdy: 09. 03. 2020, 10:00:00 »
...je navíc potřeba řešit na straně VPS tzv NDP Proxy, na což je potřeba použít nějakého démona, jehož jméno si nepamatuju.

ndppd?

Jinak pěkný popis zprovoznění.