IPv6-Planung fir en WireGuard-Hub mat zwee Standorten: Prefix, Peeren, Routen
Schafft Iech duerch en private IPv6-Hub fir zwou LANen: wielt e Prefix, reservéiert Tunneladressen a loosst dann AllowedIPs ausdrécken, wéi ee Peer wéi en Subnet besëtzt.
Zwou LANen, ee WireGuard-Hub an en IPv6-Adressplang, deen dräi getrennt Froen beäntwere muss: wéi ee Prefix, wéi eng Adress zu wéi engem Router gehéiert a wéi ee Peer wéi en Subnet besëtzt. Gëtt eng dovunner falsch, entsteet en Tunnel, deen en Handshake mécht an näischt routet. De Plang hei drënner geet an där Reihenfolg en private Zwee-Standorten-Design duerch. En huet bewosst keen IPv6-Internetzougrëff.
Entscheet, wofir den Prefix do ass
En eenzegaartegen lokalen Prefix aus fd00::/8 ass déi natierlech Wiel, wann d'Zil privat Erreechbarkeet tëscht Standorte ass. En bleift stabil onofhängeg dovunner, wéi en ISP all Standort versuergt, an en gëtt net an der globaler Routingtabell ugekënnegt, sou datt en Är intern Nummeréierung net an den Internet lecke kann.
Déi selwecht Eegenschaft ass d'Limite. Eng ULA gëtt kee ëffentleche Réckwee, well keen Upstream weess, datt en en op Äre Gateway route soll. Wann d'Ufuerderung en IPv6-Internetaustrëtt ëmfaasst, braucht Dir eng Zoulässung vun engem Provider, deen en op Iech routet, an dat ass eng separat Designentscheedung mat hirer eegener Prefixgréisst.
Huet net un, datt all Déploiement en /48 brauch. RFC 6177 huet sech vun enger eenzeger obligatorescher Gréisst fir de Schlussstandort ewechbeweegt, an déi richteg Gréisst hängt vun der Zuel u Netzwierker of, déi Dir bedreift. Generéiert d'ULA mam RFC 4193-Prozedur, amplaz e Prefix ze erfinden, deen eng aner Organisatioun och kéint benotzen. Schreift d'Resultat an den Adressplang, éier en Apparat konfiguréiert gëtt, well e Prefix, deen keen opgeschriwwen huet, e Prefix ass, deen een nach eng Kéier benotzt.
Deelt de Prefix a Rollen op
D'Beispill hei drënner benotzt fd7c:2e91:4a00::/48, an d'Tabell ass doerno ageriicht, wou all Block geschriwwe gëtt, net nom Standort. Behandelt d'Wäerter als Beispill a generéiert Är eege, éier Dir eppes déployéiert.
| Where it is written | What appears there | Block used | What it establishes |
|---|---|---|---|
| Hub wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::1/128 | The hub's own tunnel identity |
| Hub wg0.conf, Site A peer | Two ranges in one AllowedIPs line | ::2/128 and :10::/64 | That A owns its tunnel address and its LAN |
| Hub wg0.conf, Site B peer | Two ranges in one AllowedIPs line | ::3/128 and :20::/64 | That B owns its tunnel address and its LAN |
| Site A wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::2/128 | A's identity as the hub sees it |
| Site B wg0.conf, interface address | A single host address on the tunnel | fd7c:2e91:4a00:ff00::3/128 | B's identity as the hub sees it |
D'LAN-Bléck sinn /64, well normalt SLAAC eng 64-Bit-Interfacekennung erwaart. Eng LAN an eng méi kleng Block opzedeelen brécht déi Unhuel op deene meeschten Hosts, an d'Betribskäschte sinn d'Adressspueren an engem private Plang net wäert. Béid LAN-Bléck kommen aus der Mëtt vum /48, sou datt de nidderege Beräich fir spéider Standorte fräi bleift.
D'Tunneladresse sinn e administrativen Depot, keen Netz um Link. All Interface kritt eng eenzeg /128 draus, sou datt keen Host en gedeelt Subnet um Tunnel unhëlt an d'Nopesch-Entdeckung net leeft, wou s net noutwenneg ass. Halt d'Rollen getrennt a schreift se an den Adressplang vun der Organisatioun, sou datt e spéidere Standort kee Block nach eng Kéier benotzt.
Gitt all Router eng Tunneladress
Weist all Router eng /128 zou an halt d'existéierend Schlësselen an Endpunkte vum funktionéierende Hub. Déi dräi Wäerter hei drënner ënnerscheede sech just am Hostdeel.
Hub: Address = fd7c:2e91:4a00:ff00::1/128
Site A: Address = fd7c:2e91:4a00:ff00::2/128
Site B: Address = fd7c:2e91:4a00:ff00::3/128
Dës /128 beschreift déi eenzeg Adress, déi dësem Interface zougewisen ass. Si seet näischt doriwwer, wéi vill Destinatiounen de Peer route däerf, well d'Erreechbarkeet an AllowedIPs ausgedréckt gëtt an net am Interfaceprefix.
All Standortrouter brauch och eng Adress a sengem LAN-Block an eng Manéier, se ze verdeelen, meeschtens Routerannoncen fir SLAAC. WireGuard schéckt déi Annoncen net fir Iech an et iwwerbréckt déi zwou LANen net. De Standortrouter ass e Router an zwou Richtungen.
Setzt d'Eegentum um Subnet an AllowedIPs
Den Peer-Andrag vum Hub fir Standort A besëtzt dem A seng Tunneladress an dem A seng LAN, an déi Koppel ass déi ganz Eegentumserklärung. Naischt anescht an där Peer-Sektioun muss de Standort beschreiwen.
AllowedIPs = fd7c:2e91:4a00:ff00::2/128, fd7c:2e91:4a00:10::/64
Den Peer-Andrag fir Standort B besëtzt déi passend Koppel, an d'Symmetrie zielt hei méi wéi d'Kierz. Liest déi zwou Zeilen zesummen an d'Eegentumsdeelung gëtt op ee Bléck sichtbar.
AllowedIPs = fd7c:2e91:4a00:ff00::3/128, fd7c:2e91:4a00:20::/64
Dat sinn zwou getrennt Peer-Sektiounen, net zwou Lëschten, déi ëm een Peer konkurréieren. WireGuard benotzt AllowedIPs an zwou Richtungen: et wielt de Peer fir eng Ausgangsdestinatioun an et refuséiert en agaange Paket, deem seng Quell net zum Beräich passt, deen dem Peer zougewisen ass, deen en entschlësselt huet. Gitt een de ganze /48 un zwou Peeren, géif déi zweet Kontroll ausgeschalt an et géif verschwëmmt, wéi ee Standort wéi ee Block besëtzt. Genau deen Ënnerscheed mécht eng falsch Quelladress sichtbar amplaz se stëll z'acceptéieren.
All Standort brauch just d'Destinatiounen, déi iwwer säi Hub-Peer erreechbar sinn: Standort A lëscht d'Hubadress, dem Standort B seng Tunneladress an dem B seng LAN, a Standort B lëscht de géigendeellege Set. D'Lëschten sinn bewosst asymmetresch, well all Router eng aner Säit vun der Topologie gesäit. Schreift béid aus dem Adressplang an net aus der Konfiguratioun vum aneren Standort, well esou iwwerlieft en ale Beräich eng Ëmnummeréierung.
Mat wg-quick schafen dës Beräicher och Routen. Mat systemd-networkd oder enger manueller Ariichtung musst Dir déi gläichwäerteg Routen selwer derbäisetzen; soss dréit den Tunnel Päck, déi de Kernel ni eram schéckt.
Fäerdeg d'Weiderleede a test béid Richtungen
Aktivéiert IPv6-Weiderleeden um Hub an op béide Standortrouteren a loosst déi noutwenneg Servicer tëscht de Standorten an der Forward-Politik zou. Halt ICMPv6 Packet Too Big-Message benotzbar, well se fortzegehe brécht d'Path-MTU-Entdeckung an erzeugt Stockungen bei groussen Iwwerdroungen, déi wéi Applikatiounsfehler ausgesinn. En Hub, deen ouni d'Firewall-Erlabnes weiderleet, verwërft de Pak tëscht Routing an Tunnel. Dëse Fehlermodus ass et wäert ze kennen, well den Tunnel u bleift an nëmmen een Deel vun de Flëss stierft.
sysctl net.ipv6.conf.all.forwarding
ip -6 route
ping -6 -c 3 fd7c:2e91:4a00:20::1
Test vun engem Host um Standort A op en Host um Standort B an dann an déi entgéigegesetzt Richtung. E Ping op d'Tunneladress vum Hub exercéiert just den éischte Sprong a geet och duerch, wann d'LAN-Routen falsch sinn. De Floss vun Host zu Host ass deen, deen de Plang beweist.
D'baussecht WireGuard-Verbindung kann iwwer IPv4 lafen, während den banneschten Trafic IPv6 ass, an déi Onofhängegkeet ass beim Migréieren nëtzlech. Wann spéider en globale IPv6-Austrëtt derbäikënnt, iwwerpréift d'Providerzoulässung, d'Auswiel vun der Quelladress an d'Réckrouting als neien Designschrëtt; de private Plang hei uewen bleift valabel fir Trafic tëscht Standorten.