Lielākā daļa cilvēku AllowedIPs lasa kā atļauju sarakstu — adrešu kopu, kas drīkst savienoties ar partneri, līdzīgi tunelim rakstītam ugunsmūra noteikumam. Tā nav. Šis lauks ir maršrutēšanas tabula, kas darbojas abos virzienos: tā izvēlas partneri izejošajai paketei un pārbauda ienākošās paketes avotu. Lasīšana kā piekļuves saraksts rada konfigurācijas, kas maršrutē plūsmu, kuru neviens nav pieprasījis.

Viens lauks, divi lasītāji: izejas izvēle un avota pārbaude

Klientā prefiksi nosaka, kuri galamērķi dodas pie šī partnera un kuri paliek parastajā tīklā. Tāpēc ieraksts 0.0.0.0/0 aptver katru IPv4 galamērķi, un tāpēc pilna tuneļa profila imports sūta parasto pārlūkošanu caur attālo mašīnu. Šauri ieraksti dara pretējo: maršrutē tikai norādītos tīklus un visu pārējo atstāj tur, kur tas bija. WireGuard dokumentācijas kriptoatslēgu maršrutēšanas sadaļa abus darbus nosauc vienā vietā: izejošā partnera izvēli un ienākošā avota pārbaudi.

Serverī tas pats lauks apraksta, kādas avota adreses katrs partneris drīkst izmantot. Tā ir kriptogrāfiska pārbaude, nevis pakešu filtrs: pakete, kuras iekšējais avots neatbilst partnera sarakstam, tiek izmesta WireGuard iekšienē, pirms to ierauga jebkurš resursdatora ugunsmūris. Abi darbi dala vienu sarakstu, un tieši tāpēc no citurienes nokopēts saraksts uzvedas nepareizi vietā, kuru neesi apsvēris.

Klienta bloks ir vieta, kur sākas lielākā daļa šī apjukuma. Sadalīts tunelis nosauc attālos tīklus, un pilns tunelis ir tas pats lauks ar noklusējuma prefiksu:

[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

Abas formas ir pašpietiekamas, un tās ir alternatīvas, nevis soļi. Pirmā caur tuneli sūta tikai tos divus tīklus; otrā sūta katru galamērķi, un ieraksts ::/0 pievieno IPv6 noklusējuma IPv4. Lai ko izvēlētos, šie prefiksi ir viss šī partnera maršrutēšanas lēmums, tiklīdz wg-quick sāk instalēt maršrutus.

Centrmezglam vajadzīgs cits saraksts

Centrmezgls uzskaita katra klienta tuneļa adresi kā resursdatora prefiksu, kā arī katru tīklu, kas patiešām atrodas aiz šī klienta. Klienta platā saraksta kopēšana uz katru centrmezgla partneri pasaka centrmezglam, ka daudzi partneri drīkst izmantot vienas un tās pašas adreses kā avotu, un tas nav adrešu plāns. Lauks Endpoint pieder pavisam citam slānim: tas nosauc partnera ārējo adresi un portu, nekad galamērķi tuneļa iekšienē.

[Peer]
# laptop: tunnel address 10.77.0.2, office LAN behind it
AllowedIPs = 10.77.0.2/32, 192.168.30.0/24

Resursdatora prefikss nes tuneļa adresi, un tīkla prefikss nes to, kas atrodas aiz klienta, un abi ir vajadzīgi. Bez resursdatora prefiksa centrmezgls nevar atgriezt paša klienta plūsmu, un bez tīkla prefiksa LAN aiz tā paliek nesasniedzams; partneris, aiz kura nekā nav, saņem tikai resursdatora prefiksu.

Maršrutu instalēšanas izlaišana atstāj plaisu

wg-quick, palīgs, kas paceļ saskarni no konfigurācijas faila, instalē saskarnes adreses un maršrutus kā daļu no šī darba. Table = off iestatīšana liek palīgam izlaist maršrutu darbu, kas neinstalē aizstājējus un nepadara privāto tīklu sasniedzamu. Kad automātiskie maršruti jau veic darbu, vajadzīgo prefiksu nosaukšana ir skaidrāka konfigurācija. Maršrutēšanas pārvaldības izslēgšana un aizstājēja neuzrakstīšana nav dizains, tā ir izlaidums.

Pamatrīks wg uzvedas citādi: tas konfigurē saskarni un nekad neaiztiek maršrutus, tāpēc tieši uz tā būvētai uzstādīšanai vajadzīgas savas maršrutu komandas. Instrukcijas, kas rakstītas vienam rīkam, var izskatīties nepareizas, ja tās ievēro ar otru. Veiksmīgs ping arī ir vājš pierādījums, jo tas pārbauda vienu ceļu, nevis katru vajadzīgo lietotnes ceļu.

DNS un IPv6 tiek izlemti atsevišķi

Pārbaudiet DNS servera adresi, ko tunelis reklamē, un apstipriniet, ka caur izvēlētajiem prefiksiem uz šo adresi pastāv maršruts. Resolvera iestatījums nepadara resolveru sasniedzamu, un tuneļa sašaurināšana var klusi noņemt maršrutu, kas uz to veda. Apskatiet arī IPv6 atsevišķi, jo pareiza IPv4 sadalīšana neko nesaka par IPv6 noklusējuma maršrutu, kas joprojām norāda uz fizisko saiti. Trīs atsevišķi lēmumi var mainīties uzreiz, kad rediģējat vienu partnera bloku.

Pēc tam atveriet vienu privātu resursu un vienu parastu vietni no zināmas sākotnējās konfigurācijas. Ja resurss atbild un pārlūkošana joprojām iziet caur vietējo savienojumu, sadalīšana dara to, ko lūdzāt. Ja pārlūkošana salūzt tajā pašā mirklī, tunelis ir paņēmis noklusējuma maršrutu, un prefiksu saraksts ir vieta, kur meklēt.

Saistītie raksti