AllowedIPs on marsruutimisnimekiri, mitte tulemüürireegel
See valib väljuvale liiklusele partneri ja kontrollib sissetulevaid allikaid. See ei ole juurdepääsunimekiri ning marsruuthalduse väljalülitamine ei paranda poolitatud tunnelit.
Enamik inimesi loeb AllowedIPs lubade loendina — aadressid, mis tohivad partneriga ühenduda, umbes nagu tunnelile kirjutatud tulemüürireegel. Nii see ei ole. Väli on marsruutimistabel, mis töötab mõlemas suunas: see valib väljuva paketi jaoks partneri ja kontrollib sissetuleva paketi allikat. Selle lugemine juurdepääsunimekirjana loob konfiguratsioone, mis marsruudivad liiklust, mida keegi ei küsinud.
Üks väli, kaks lugejat: väljuva valik ja allika kontroll
Kliendis otsustavad prefiksid, millised sihtkohad liiguvad selle partneri juurde ja millised jäävad tavalisse võrku. Seetõttu haarab kirje 0.0.0.0/0 iga IPv4 sihtkoha, ja seetõttu suunab täistunneli profiili importimine tavalise sirvimise läbi kaugmasina. Kitsad kirjed teevad vastupidist: marsruudivad ainult need võrgud, mille loetlesite, ja jätavad kõik muu sinna, kus see oli. WireGuardi dokumentatsiooni krüptovõtme marsruutimise jaotis esitab mõlemad ülesanded ühes kohas: väljuva partneri valiku ja sissetuleva allika kontrolli.
Serveris kirjeldab sama väli, milliseid allikaaadresse iga partner tohib kasutada. See on krüptograafiline kontroll, mitte paketifilter: pakett, mille sisemine allikas ei vasta partneri nimekirjale, visatakse WireGuardi sees ära enne, kui ükski hosti tulemüür seda näeb. Mõlemad ülesanded jagavad ühte nimekirja ja just seetõttu käitub mujalt kopeeritud nimekiri valesti kohas, mida te ei kaalunud.
Kliendiplokk on koht, kust suurem osa sellest segadusest algab. Poolitatud tunnel nimetab kaugvõrgud ja täistunnel on sama väli vaikimisi prefiksiga:
[Peer]
# split tunnel: only these networks
AllowedIPs = 10.77.0.0/24, 192.168.30.0/24
[Peer]
# full tunnel: everything, both families
AllowedIPs = 0.0.0.0/0, ::/0
Mõlemad vormid on iseenesest terviklikud ja need on alternatiivid, mitte sammud. Esimene saadab tunnelist läbi ainult need kaks võrku; teine saadab iga sihtkoha, kusjuures kirje ::/0 lisab IPv6 IPv4 vaikimisi väärtusele. Ükskõik kumma valite, on need prefiksid kogu selle partneri marsruutimisotsus, kui wg-quick hakkab marsruute paigaldama.
Jaotur vajab teistsugust nimekirja
Jaotur loetleb iga kliendi tunneli aadressi hosti prefiksina, lisaks iga võrgu, mis tõesti selle kliendi taga asub. Kliendi laia nimekirja kopeerimine igale jaoturi partnerile ütleb jaoturile, et paljud partnerid võivad samu aadresse allikana kasutada, ja see ei ole aadressiplaan. Väli Endpoint kuulub hoopis teisele kihile: see nimetab partneri välisaadressi ja -porti, mitte kunagi sihtkohta tunneli sees.
[Peer]
# laptop: tunnel address 10.77.0.2, office LAN behind it
AllowedIPs = 10.77.0.2/32, 192.168.30.0/24
Hosti prefiks kannab tunneli aadressi ja võrguprefiks kannab seda, mis asub kliendi taga, ning mõlemat on vaja. Ilma hosti prefiksita ei saa jaotur kliendi enda liiklust tagasi saata ja ilma võrguprefiksita jääb selle taga olev LAN kättesaamatuks; partner, kelle taga midagi ei ole, saab ainult hosti prefiksi.
Marsruutide paigaldamise vahelejätmine jätab tühiku
wg-quick, abiline, mis tõstab liidese konfiguratsioonifailist üles, paigaldab selle töö osana liidese aadressid ja marsruudid. Table = off seadistamine ütleb abilisele marsruuditöö vahele jätta, mis ei paigalda asendusi ega tee privaatvõrku kättesaadavaks. Kui automaatsed marsruudid teevad töö juba ära, on vajalike prefiksite nimetamine selgem konfiguratsioon. Marsruuthalduse väljalülitamine ja asenduse kirjutamata jätmine ei ole disain, vaid väljajätt.
Põhiline tööriist wg käitub teisiti: see seadistab liidese ega puuduta kunagi marsruute, seega sellele otse ehitatud seadistus vajab oma marsruudikäske. Ühe tööriista jaoks kirjutatud juhised võivad teisega järgides valed tunduda. Õnnestunud ping on samuti nõrk tõend, sest see kontrollib ühte teed, mitte iga rakenduse teed, mida vajate.
DNS ja IPv6 otsustatakse eraldi
Kontrollige DNS-serveri aadressi, mida tunnel reklaamib, ja veenduge, et valitud prefiksite kaudu on sellele aadressile marsruut olemas. Resolveri säte ei tee resolverit kättesaadavaks ja tunneli kitsendamine võib vaikselt eemaldada marsruudi, mis sinna varem viis. Uurige ka IPv6 eraldi, sest korrektne IPv4 jaotus ei ütle midagi IPv6 vaikimisi marsruudi kohta, mis osutab endiselt füüsilisele ühendusele. Kolm eraldi otsust võivad muutuda korraga, kui muudate ühte partneri plokki.
Seejärel avage üks privaatne ressurss ja üks tavaline veebisait teadaolevast algkonfiguratsioonist. Kui ressurss vastab ja sirvimine väljub endiselt kohaliku ühenduse kaudu, teeb poolitus seda, mida soovisite. Kui sirvimine läheb samal hetkel katki, võttis tunnel vaikimisi marsruudi ja prefiksite nimekiri on koht, kust otsida.