Dve lokaciji na mobilnih povezavah imata enako težavo v obe smeri: nobena ne more sprejeti nezahtevane povezave IPv4, zato nobena ne more igrati vloge strežnika v neposrednem tunelu. Arhitektura, ki deluje, postavi na sredino dosegljivo tretjo stran: vsaka lokacija kliče navzven, sredina pa posreduje samo promet, ki ga odobrite. Ta sredina je lahko usmerjevalnik, ki ga upravljate sami, ali izdelek, ki predstavi sopotnike, in to ni isto. Spodnji koraki so razvrščeni tako, da vsak prinese dokaz, preden je naslednji odvisen od njega.

Nobene lokacije ni mogoče poklicati, zato morata obe klicati navzven

Potrdite omejitev, preden načrtujete okoli nje. Če operater vmesniku WAN dodeli zasebni naslov, nobeno posredovanje vrat na usmerjevalniku same lokacije ne bo naredilo dosegljivega, ker se prevajanje zgodi višje. Javni naslov IPv6 lahko obstaja na isti povezavi in popolnoma spremeni zasnovo, zato preverjanje pokriva obe družini. Zapišite odgovor za vsako lokacijo, ker imata dve redko enake omejitve, tudi ko si delita operaterja.

Običajen mobilni primer je videti kot naslov iz operaterjevega prevedenega obsega s privzeto potjo skozenj. To ni okvara, ki bi jo bilo treba popraviti; to je razlog, da vozlišče obstaja. Iščete kateri koli naslov, do katerega lahko tretja stran pride, preden lokacija spregovori prva.

Dva ukaza odgovorita na vprašanje naslavljanja lokacije, pred katero stojite. Zaženite ju na usmerjevalniku lokacije, ne na prenosniku za njim:

ip -4 addr show scope global
ip -6 addr show scope global

Kdo predstavi sopotnike in kdo nosi pakete

Predstavitev in prenos sta ločeni nalogi, ki ju izdelki pogosto združijo, ne da bi naredili mejo vidno. Mehanizem srečanja pomaga dvema sopotnikoma najti kandidatno pot; posrednik nosi njune pakete, ko neposredne poti ni. Nakup storitve, ki predstavi sopotnike, vam ne da usmerjevalnika, in ta razlika odloča, ali zasnova sploh potrebuje vozlišče.

Prehod ima svoje besedišče in besede opisujejo vloge, ne jamstev. Specifikacija ICE opisuje kandidate in preverjanja povezljivosti, STUN opisuje en način spoznavanja prevajanja naslovov, TURN pa opisuje posredovani prenos za aplikacije, ki ga izvajajo. Noben od teh mehanizmov se ne pojavi v običajnih prehodih, ker ste jih usmerili na naslov za odkrivanje. Preverite prehod kot zmožnost izdelka in predpostavite posrednika, dokler test ne pokaže nasprotnega.

Ena pot na lokacijo, v lasti sopotnika

Vozlišče potrebuje en tunel na lokacijo, ločeno predpono LAN za vsako in pot za vsako predpono, ki imenuje njenega lastnika. V primeru je vozlišče 10.61.0.1, lokacija A je 10.61.0.11 z LAN 10.60.10.0/24, lokacija B pa 10.61.0.12 z LAN 10.60.20.0/24. Vsaka spodnja pot kaže na sopotnika, ki ima predpono, ne na vmesnik tunela:

ip route add 10.60.10.0/24 via 10.61.0.11 dev wg0
ip route add 10.60.20.0/24 via 10.61.0.12 dev wg0
sysctl net.ipv4.ip_forward
ip route get 10.60.20.55 from 10.60.10.77

Posredovanje mora biti omogočeno, sicer se paketi ustavijo pri vozlišču brez napake, ki bi kazala na vzrok. Zadnji ukaz odgovori na resnično vprašanje, ker sprašuje, po kateri poti bi paket šel z LAN lokacije A na LAN lokacije B z virom, vključenim v iskanje. Iskanje, ki imenuje vmesnik tunela, obravnavajte kot dokaz, tisto, ki pade na privzeto pot, pa kot manjkajočo pot, ne kot uganko. Nato promet namerno omejite, ker vozlišče, ki posreduje med vsakim sopotnikom, spremeni dve lokaciji v ravno omrežje in politika dostopa, za katero ste mislili, da jo imate, preneha veljati.

Odločite tudi, kje se šifriranje konča. Ko ima vozlišče oba konca tunela, operater tega stroja in njegova delovna obremenitev vstopita v model zaupanja in razpoložljivosti, njegova pasovna širina pa postane del poti.

Ohranite vsako preslikavo živo prek operaterja

Vsaka lokacija začne svoj tunel in vsaka mora ohranjati preslikavo prevajanja živo, sicer jo operater pozabi. Sporočilo za ohranjanje na strani, ki začne, ohrani to preslikavo med rokovanji. Omejite dovoljene predpone na naslov vozlišča in oddaljeni LAN, da kompromitirani sopotnik ne more zahtevati predpone, ki je ne poseduje:

[Peer]
PublicKey = <hub public key>
Endpoint = 192.0.2.10:51820
AllowedIPs = 10.61.0.1/32, 10.60.20.0/24
PersistentKeepalive = 25

Zrcalite blok na drugi lokaciji z njeno lastno oddaljeno predpono in se uprite želji, da bi dovolili celoten obseg tunela. Rokovanje, ki se ustavi in nadaljuje z novega izvornega vrat, je podpis pretekle preslikave, časovni žigi rokovanja pa so dokaz, da se je to zgodilo. Interval, krajši od operaterjeve časovne omejitve, prepreči potek, namesto da bi ga pozneje popravljal. Ko operater spremeni svoje vedenje prevajanja, pričakujte, da se bodo ti časi spremenili z njim.

Dokažite obe smeri, nato dokažite obnovitev

Preverjanje je usmerjeno, zato ping od A do B dokaže polovico zasnove in nič o povratni poti. Preverite pot odgovora z istim iskanjem, ki se zaveda vira, na vozlišču, nato test ponovite z druge strani. Sveža rokovanja sodijo tudi med dokaze, ker tunel, ki je miroval eno uro, morda preizkuša staro preslikavo:

wg show wg0 latest-handshakes
ping -c 3 10.60.20.55
traceroute -n 10.60.20.55

Nato preizkusite odpoved, ki jo pričakujete, ne uspeha, ki ga želite. Znova zaženite povezavo ene lokacije in potrdite, da se tunel vrne brez človeškega dotika na katerem koli koncu, ker zasnova, ki po vsaki spremembi pri operaterju potrebuje operaterja, ni dokončana. Zapišite primarno pot, alternativo IPv6, kadar obstaja, in vedenje, ko vozlišče ni na voljo. Vozlišče je zdaj del vašega modela razpoložljivosti, zato to zapišite, namesto da bi to odkrili med izpadom.

Sorodni članki