Kaks LAN-i, üks WireGuardi jaotur ja IPv6 aadressiplaan, mis peab vastama kolmele eraldi küsimusele: milline eesliide, milline aadress kuulub igale ruuterile ja milline partner omab millist alamvõrku. Ükski vale vastus annab tunneli, mis teeb kätlust ja ei marsruudi midagi. Allolev plaan käib privaatse kahe koha lahenduse selles järjekorras läbi. See ei paku tahtlikult IPv6 internetiühendust.

Otsustage, milleks eesliide on

Kordumatu kohalik eesliide vahemikust fd00::/8 on loomulik valik, kui eesmärk on privaatne kättesaadavus kohtade vahel. See püsib stabiilne sõltumata sellest, milline teenusepakkuja igat asukohta teenindab, ja seda ei reklaamita globaalses marsruutimistabelis, seega ei saa see teie sisemist numereerimist internetti lekitada.

Sama omadus on piirang. ULA ei anna avalikku tagasiteed, sest ükski ülemvool ei tea seda teie lüüsile marsruutida. Kui nõue hõlmab IPv6 internetiväljundit, vajate eraldist pakkujalt, kes marsruudib selle teieni, ja see on eraldi kujundusotsus oma eesliite suurusega.

Ärge eeldage, et iga juurutus vajab /48. RFC 6177 loobus ühest kohustuslikust lõppkoha suurusest ja õige suurus tuleneb võrkude arvust, mida hakkate haldama. Looge ULA RFC 4193 protseduuriga, mitte ärge mõelge välja eesliidet, mida võib kasutada ka teine organisatsioon. Kirjutage tulemus aadressiplaani enne, kui ükski seade seatakse, sest eesliide, mida keegi ei registreerinud, on eesliide, mida keegi kasutab uuesti.

Jagage eesliide rollideks

Allolev näide kasutab fd7c:2e91:4a00::/48 ja tabel on järjestatud selle järgi, kuhu iga plokk kirjutatakse, mitte koha järgi. Käsitlege väärtusi näidisena ja looge enne juurutamist omad.

Where it is writtenWhat appears thereBlock usedWhat it establishes
Hub wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::1/128The hub's own tunnel identity
Hub wg0.conf, Site A peerTwo ranges in one AllowedIPs line::2/128 and :10::/64That A owns its tunnel address and its LAN
Hub wg0.conf, Site B peerTwo ranges in one AllowedIPs line::3/128 and :20::/64That B owns its tunnel address and its LAN
Site A wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::2/128A's identity as the hub sees it
Site B wg0.conf, interface addressA single host address on the tunnelfd7c:2e91:4a00:ff00::3/128B's identity as the hub sees it

LAN-i plokid on /64, sest tavaline SLAAC eeldab 64-bitist liidese identifikaatorit. LAN-i jagamine väiksemaks plokiks rikub selle eelduse enamikul hostidel ja halduskulu ei kaalu privaatses plaanis aadresside kokkuhoidu. Mõlemad LAN-i plokid tulevad /48 keskelt, jättes madala vahemiku hilisemate kohtade jaoks vabaks.

Tunneliaadressid on haldusvaru, mitte lingil olev võrk. Iga liides saab sellest ühe /128, seega ükski host ei eelda tunnelil jagatud alamvõrku ja naabrite avastamine ei tööta seal, kus seda pole vaja. Hoidke rollid eraldiseisvad ja registreerige need organisatsiooni aadressiplaanis, et hilisem koht plokki uuesti ei kasutaks.

Andke igale ruuterile üks tunneliaadress

Määrake üks /128 ruuteri kohta ja säilitage töötava jaoturi olemasolevad võtmed ja lõpp-punktid. Kolm allolevat väärtust erinevad ainult hosti osas.

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

See /128 kirjeldab ainsat aadressi, mis sellele liidesele määrati. See ei ütle midagi selle kohta, kui palju sihtkohti partner võib marsruutida, sest kättesaadavust väljendatakse AllowedIPsis, mitte liidese eesliites.

Iga koha ruuter vajab ka aadressi oma LAN-i plokis ja viisi selle levitamiseks, tavaliselt ruuteri teadaanded SLAAC-i jaoks. WireGuard ei saada neid teadaandeid teie eest ega silla kahte LAN-i. Koha ruuter on ruuter mõlemas suunas.

Pange alamvõrgu omand AllowedIPSi

Jaoturi partnerikirje koha A jaoks omab A tunneliaadressi ja A LAN-i ning see paar on kogu omandiavaldus. Miski muu selles partnerijaotises ei pea kohta kirjeldama.

AllowedIPs = fd7c:2e91:4a00:ff00::2/128, fd7c:2e91:4a00:10::/64

Koha B partnerikirje omab vastavat paari ja sümmeetria on siin tähtsam kui lühidus. Lugege kaks rida koos ja omandijaotus on ühe pilguga nähtav.

AllowedIPs = fd7c:2e91:4a00:ff00::3/128, fd7c:2e91:4a00:20::/64

Need on kaks eraldi partnerijaotist, mitte kaks nimekirja, mis võistlevad ühe partneri pärast. WireGuard kasutab AllowedIPSi mõlemas suunas: see valib partneri väljuva sihtkoha jaoks ja lükkab tagasi sissetuleva paketi, mille allikas ei vasta sellele vahemikule, mis on määratud partnerile, kes selle dekrüpteeris. Kogu /48 andmine mõlemale partnerile lülitaks selle teise kontrolli välja ja hägustaks, milline koht millist plokki omab. Just see erinevus teeb vale lähteaadressi nähtavaks, selle asemel et seda vaikselt aktsepteeritaks.

Iga koht vajab ainult sihtkohti, mis on kättesaadavad tema jaoturi partneri kaudu: koht A loetleb jaoturi aadressi, koha B tunneliaadressi ja B LAN-i ning koht B loetleb vastupidise hulga. Nimekirjad on tahtlikult asümmeetrilised, sest iga ruuter näeb topoloogia erinevat külge. Kirjutage mõlemad aadressiplaanist, mitte teise koha konfiguratsioonist, sest nii jääb aegunud vahemik ümbernummerdamise üle.

wg-quickiga loovad need vahemikud ka marsruudid. systemd-networkdiga või käsitsi seadistamisel lisage samaväärsed marsruudid ise; muidu kannab tunnel pakette, mida kernel sinna kunagi ei saada.

Lõpetage edastamine ja testige mõlemat suunda

Lubage IPv6 edastamine jaoturil ja mõlemal koha ruuteril ning lubage edastuspoliitikas vajalikud kohtadevahelised teenused. Hoidke ICMPv6 Packet Too Big teated kasutatavad, sest nende kõrvalejätmine rikub tee MTU avastamise ja tekitab suurte ülekannete tõrkeid, mis näevad välja nagu rakenduse vead. Jaotur, mis edastab ilma tulemüüri loata, jätab paketi marsruutimise ja tunneli vahele. See rikkerežiim tasub teada, sest tunnel jääb püsti ja surevad ainult mõned vood.

sysctl net.ipv6.conf.all.forwarding
ip -6 route
ping -6 -c 3 fd7c:2e91:4a00:20::1

Testige koha A hostist koha B hostini ja seejärel vastassuunas. Ping jaoturi tunneliaadressile harjutab ainult esimest hüpet ja läbib ka siis, kui LAN-i marsruudid on valed. Just hostist hostini voog tõestab plaani.

Väline WireGuard ühendus võib töötada IPv4 peal, samal ajal kui sisemine liiklus on IPv6, ja see sõltumatus on migreerimise ajal kasulik. Kui hiljem lisatakse globaalne IPv6 väljund, vaadake pakkuja eraldis, lähteaadressi valik ja tagasimarsruutimine uue kujundusetapina üle; ülaltoodud privaatne plaan jääb kohtadevahelise liikluse jaoks kehtivaks.

Seotud artiklid