Divi LAN, viens WireGuard centrmezgls un IPv6 adrešu plāns, kam jāatbild uz trim atsevišķiem jautājumiem: kurš prefikss, kura adrese pieder katram maršrutētājam un kuram partnerim pieder kura apakštīkla. Kļūda kādā no tiem rada tuneli, kas veic roku sasveicināšanu un neko nemaršrutē. Zemāk esošais plāns šajā secībā iziet privātu divu vietņu dizainu. Tas apzināti nenodrošina IPv6 interneta piekļuvi.

Izlemiet, kam prefikss ir paredzēts

Unikāls lokālais prefikss no fd00::/8 ir dabiska izvēle, ja mērķis ir privāta sasniedzamība starp vietnēm. Tas paliek stabils neatkarīgi no tā, kurš pakalpojumu sniedzējs apkalpo katru vietu, un netiek reklamēts globālajā maršrutēšanas tabulā, tāpēc nevar noplūdināt jūsu iekšējo numurēšanu internetā.

Tā pati īpašība ir ierobežojums. ULA nesniedz publisku atgriešanās ceļu, jo neviens augšupējais pakalpojumu sniedzējs nezina, ka tas jāmaršrutē uz jūsu vārteju. Ja prasība ietver IPv6 interneta izeju, jums vajag piešķīrumu no pakalpojumu sniedzēja, kas to maršrutē pie jums, un tas ir atsevišķs dizaina lēmums ar savu prefiksa izmēru.

Nepieņemiet, ka katram izvietojumam vajag /48. RFC 6177 attālinājās no viena obligāta gala vietas izmēra, un pareizais izmērs izriet no tīklu skaita, ko pārvaldīsiet. Ģenerējiet ULA ar RFC 4193 procedūru, nevis izdomājiet prefiksu, ko varētu izmantot arī cita organizācija. Ierakstiet rezultātu adrešu plānā pirms jebkuras ierīces konfigurēšanas, jo prefikss, ko neviens nav fiksējis, ir prefikss, ko kāds izmantos atkārtoti.

Sadaliet prefiksu lomās

Zemāk esošais piemērs izmanto fd7c:2e91:4a00::/48, un tabula ir sakārtota pēc tā, kur katrs bloks tiek ierakstīts, nevis pēc vietnes. Uzskatiet vērtības par paraugu un pirms kaut kā izvietošanas ģenerējiet savas.

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 bloki ir /64, jo parastais SLAAC sagaida 64 bitu saskarnes identifikatoru. LAN sadalīšana mazākā blokā pārkāpj šo pieņēmumu lielākajā daļā resursdatoru, un ekspluatācijas izmaksas privātā plānā nav adrešu ietaupījuma vērtas. Abi LAN bloki nāk no /48 vidus, atstājot zemo diapazonu brīvu vēlākām vietnēm.

Tuneļa adreses ir administratīvs krājums, nevis tīkls uz saites. Katra saskarne no tā saņem vienu /128, tāpēc neviens resursdators nepieņem kopīgu apakštīklu tunelī un kaimiņu atklāšana nedarbojas tur, kur tā nav vajadzīga. Turiet lomas nodalītas un ierakstiet tās organizācijas adrešu plānā, lai vēlāka vietne neizmantotu bloku atkārtoti.

Dodiet katram maršrutētājam vienu tuneļa adresi

Piešķiriet vienu /128 katram maršrutētājam un saglabājiet strādājošā centrmezgla esošās atslēgas un galapunktus. Trīs zemāk esošās vērtības atšķiras tikai resursdatora daļā.

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

Šis /128 apraksta vienīgo adresi, kas piešķirta šai saskarnei. Tas neko nesaka par to, cik daudz galamērķu partneris drīkst maršrutēt, jo sasniedzamība tiek izteikta AllowedIPs, nevis saskarnes prefiksā.

Katram vietnes maršrutētājam arī vajag adresi savā LAN blokā un veidu, kā to izplatīt, parasti maršrutētāja paziņojumus SLAAC vajadzībām. WireGuard nesūta šos paziņojumus jūsu vietā un nesavieno abus LAN. Vietnes maršrutētājs ir maršrutētājs abos virzienos.

Ielieciet apakštīkla īpašumtiesības AllowedIPs

Centrmezgla partnera ieraksts vietnei A pieder A tuneļa adresei un A LAN, un šis pāris ir viss īpašumtiesību paziņojums. Nekas cits šajā partnera sadaļā nav jāapraksta par vietni.

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

Partnera ieraksts vietnei B pieder atbilstošajam pārim, un simetrija šeit ir svarīgāka par īsumu. Izlasiet abas rindas kopā, un īpašumtiesību sadalījums kļūst redzams vienā skatienā.

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

Šīs ir divas atsevišķas partnera sadaļas, nevis divi saraksti, kas sacenšas par vienu partneri. WireGuard izmanto AllowedIPs abos virzienos: tas izvēlas partneri izejošam galamērķim un noraida ienākošu paketi, kuras avots neatbilst diapazonam, kas piešķirts partnerim, kurš to atšifrēja. Visu /48 došana abiem partneriem izslēgtu šo otro pārbaudi un aizpludinātu, kura vietne kuram blokam pieder. Tieši šī atšķirība padara nepareizu avota adresi redzamu, nevis klusi pieņemtu.

Katrai vietnei vajag tikai galamērķus, kas sasniedzami caur tās centrmezgla partneri: vietne A uzskaita centrmezgla adresi, vietnes B tuneļa adresi un B LAN, un vietne B uzskaita pretējo kopu. Saraksti apzināti ir asimetriski, jo katrs maršrutētājs redz citu topoloģijas pusi. Rakstiet abus no adrešu plāna, nevis no otras vietnes konfigurācijas, jo tā novecojis diapazons pārdzīvo pārnumurēšanu.

Ar wg-quick šie diapazoni rada arī maršrutus. Ar systemd-networkd vai manuālu iestatīšanu pievienojiet līdzvērtīgus maršrutus paši; citādi tunelis pārvadā paketes, ko kodols tajā nekad nesūta.

Pabeidziet pārsūtīšanu un pārbaudiet abus virzienus

Iespējojiet IPv6 pārsūtīšanu centrmezglā un abos vietnes maršrutētājos un atļaujiet nepieciešamos starpvietņu pakalpojumus pārsūtīšanas politikā. Turiet ICMPv6 Packet Too Big ziņojumus lietojamus, jo to nomešana salauž ceļa MTU atklāšanu un rada lielu pārsūtīšanu aizķeršanos, kas izskatās kā lietojumprogrammu kļūdas. Centrmezgls, kas pārsūta bez ugunsmūra atļaujas, nomet paketi starp maršrutēšanu un tuneli. Šis atteices režīms ir vērts zināt, jo tunelis paliek augšā un mirst tikai dažas plūsmas.

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

Pārbaudiet no resursdatora vietnē A uz resursdatoru vietnē B un pēc tam pretējā virzienā. Ping uz centrmezgla tuneļa adresi pārbauda tikai pirmo lēcienu un izdosies arī tad, ja LAN maršruti ir nepareizi. Tieši resursdatora uz resursdatoru plūsma pierāda plānu.

Ārējais WireGuard savienojums var darboties pa IPv4, kamēr iekšējā satiksme ir IPv6, un šī neatkarība ir noderīga migrācijas laikā. Ja vēlāk tiek pievienota globāla IPv6 izeja, pārskatiet pakalpojumu sniedzēja piešķīrumu, avota adreses izvēli un atgriešanās maršrutēšanu kā jaunu dizaina soli; iepriekš minētais privātais plāns paliek derīgs starpvietņu satiksmei.

Saistītie raksti