Imena se razrešijo v naslove, ti naslovi pa lahko pristanejo v množici požarnega zidu, ki pozneje vpliva na usmerjanje, kar omogoča usmerjanje na podlagi imena brez posrednika. Kljuka je v tem, da morajo štiri komponente pravilno predati: razreševalnik, množica, klasifikator, ki označi nov tok, in partner, ki ga nosi. Vsaka predaja spodleti drugače in vsaka drži svoj čas.

Zasnovo obravnavajte kot verigo, ne kot konfiguracijo. Vprašanje na vsakem koraku je, katera komponenta ima odločitev in kaj se zgodi, ko njenega vhoda ni.

Kaj lahko odgovor DNS in česa ne more

dnsmasq lahko kopira naslove iz odgovorov v množico nftables, kar je napajanje in ne odločitev o usmerjanju. Ta možnost, dokumentirana v priročniku dnsmasq, navaja družino, tabelo in množico, njen vodilni 4# pa izbere le zapise A, zato cilji v6 potrebujejo svojo ureditev. Množica mora že obstajati, ker razreševalnik dodaja elemente v nekaj, kar je ustvaril lastnik požarnega zidu. Nič v tem koraku ne izbere vmesnika, tabele ali partnerja.

Tudi odjemalec mora za ime uporabiti ta razreševalnik. Aplikacija z lastnim šifriranim DNS ali predpomnjeni odgovor iz časov pred politiko se poveže brez ustvarjanja kakršnega koli vnosa v množici.

Množica je vhod, ne pot

Element v množici je pogoj ujemanja. Nekaj ga mora pogledati, ugotoviti, da ta paket začenja nov tok, in uporabiti politiko, ki tok pošlje skozi tunel. V Linuxu to običajno pomeni izhodno pot, sposobno usmerjanja, ki lahko nastavi oznako, pravilo, ki označene pakete pošlje v namensko tabelo, in pot v tej tabeli proti napravi WireGuard. Samo članstvo ne namesti nič od tega.

nft add set inet vpn_select office_v4 { type ipv4_addr\; }
ip rule add fwmark 0x40 table 200
ip route add default dev wg0 table 200
wg show wg0 allowed-ips

Partner uporabi drugo preverjanje pokritosti, ki ga ljudje pozabijo. WireGuard šifrira paket le za partnerja, katerega dovoljeni naslovi vključujejo cilj, zato pot po politiki v vmesnik ne zadostuje, ko seznam partnerja izključuje to predpono. Seznam držite pod nadzorom lastnika usmerjanja, namesto da bi se zanašali na to, kakšno ustvarjanje poti bo upravitelj slučajno izvedel.

Oznake, tabele in pokritost partnerja

Oznake so skupni imenski prostor, zato je treba tako vrednost kot masko uskladiti z vsem drugim, kar jih uporablja. Pravilo, ki označen promet pošlje v namensko tabelo, potrebuje določen izid, ko ta tabela nima ustrezne poti, ker se neodgovorjeno iskanje lahko nadaljuje k naslednjemu pravilu in paket pošlje ven skozi fizični vmesnik. Privzeta pot vrste blackhole v namenski tabeli spremeni ta tihi pobeg v vidno zavrnitev. Česa zasnova še vedno ne zmore, je zapreti se ob okvari za cilj, ki ni nikoli prišel v množico.

Lastni zunanji paketi tunela morajo uiti klasifikatorju. Orodja WireGuard zagotavljajo oznako vtičnice prav v ta namen, njena uporaba pa prepreči, da bi se inkapsulacija usmerila nazaj v vmesnik, ki ga gradi.

Preizkusite vsako življenjsko dobo posebej

Tri shrambe starajo po treh razporedih: predpomnilnik razreševalnika, elementi množice in sledena povezava. Preizkusite jih v tem vrstnem redu in opazujte, ali se vsaka premakne, ko bi se morala. Spodnji ukazi berejo razreševalnik, množico, tabelo povezav in pravila politike, ne da bi karkoli spremenili.

dig +short office.example
nft list set inet vpn_select office_v4
conntrack -L -d 10.60.8.15
ip rule show

Sveže iskanje, ki doda element, dokazuje, da napajanje deluje, medtem ko zastarel element, ki preživi svoj odgovor, je neskladje življenjske dobe, ki si ga je vredno zapisati. Nova povezava v tabeli povezav s pričakovano oznako kaže, da je klasifikator tekel, stara povezava, ki obdrži prvotno oznako, pa je pravilno vedenje in ne napaka. Seznam pravil odgovarja, ali iskanje politike sploh obstaja, kar je drugo vprašanje od tega, ali se je ujemalo. Preberite štiri izhode v tem vrstnem redu in spodletela predaja se bo izdala sama.

Kadar je zahteva, da določeno ime vedno uporablja eno pot, množica, ki jo napaja DNS, tega ne more dokazati, ker skupni naslovi nosijo tudi druga imena. Posrednik ali mehanizem na ravni aplikacije je orodje za to zagotovilo.

Sorodni članki