Dva prefiksa /1 pokrivaju točno iste IPv4 adrese kao jedan /0, a ta jednakost vrijedi samo unutar popisa dopuštenih prefiksa partnera. Prestaje vrijediti onog trenutka kada alat za postavljanje odluči kako usmjeravati, jer Linux wg-quick tretira zadani prefiks kao poseban slučaj, a ne kao aritmetiku. Posebna grana postavlja namjensku tablicu, dva pravila politike, oznaku socketa i postavke obrnutog puta koje par polovina ruta nikada ne dobije. Zato, kada proxy ili preglednik prestane raditi nakon izmjene, prefiksi su najmanje zanimljiv dio promjene.

Popis prefiksa nije cijela konfiguracija

AllowedIPs obavlja dva posla odjednom, a samo se jedan odnosi na pokrivenost. Za sam WireGuard popis je kriptoključno usmjeravanje: odlučuje koja se odredišta šifriraju prema partneru i koje izvorne adrese taj partner smije koristiti. Za wg-quick isti popis služi i kao specifikacija ruta, a ruta koju proizvodi ovisi o tome kojoj grani popis slučajno odgovara. Identična pokrivenost kod dva različita oblika popisa stoga ne govori ništa o identičnom stanju hosta.

Zadana konfiguracija oduzima tu odluku iz vaših ruku, jer Table je prema zadanim postavkama automatski i alat bira gdje će rute sletjeti. Drugi mrežni upravitelj, omotač distribucije ili prilagođena vrijednost Table ponovno mijenja ishod, zato savjet napisan za jedan host može izgledati pogrešno na sljedećem.

Što zadana grana dodaje povrh rute

Unos /0 šalje wg-quick u putanju zadane rute: zasebna tablica usmjeravanja prima zadanu rutu, jedno pravilo politike šalje neoznačeni promet tamo, drugo pravilo održava specifičnije rute glavne tablice autoritativnima, a sučelje dobiva oznaku vatrozida na vlastiti socket. Ta oznaka je čuvar petlje. Šifrirani datagrami koji nose promet tunela odlaze s postavljenom oznakom, pa pravilo koje sve ostalo usmjerava u tunel ne guta vlastite transportne pakete tunela.

Par unosa /1 umjesto toga ide običnom putanjom rute. Dvije rute slijeću u konfiguriranu tablicu i nijedan od okolnih mehanizama se ne pojavljuje, ne zato što je nepotreban, nego zato što ta kodna putanja nikada nije bila uđena.

Gdje se dva rasporeda razilaze

Razilaženje se prvo pokazuje kao rekurzija. Kad su polovine ruta u glavnoj tablici, vlastita transportna adresa partnera pada unutar prefiksa tunela, pa paket koji bi trebao nositi tunel odgovara ruti koja pokazuje u tunel. Nešto ga mora izuzeti: ruta hosta za trenutnu krajnju točku, ručno primijenjena oznaka ili pravilo specifično za sučelje. Ruta hosta radi dok se adresa krajnje točke ne promijeni, što se događa s krajnjim točkama temeljenim na DNS-u, roaming klijentima i konfiguracijama s više partnera.

Drugo, sve što zaključuje na temelju oznaka mijenja ponašanje. Transparentni proxy koji lokalno preusmjerava veze stvara nove sockete čije se oznake i izvori razlikuju od izvornog klijentskog toka, a pravila politike koja generira zadana grana bila su dio onoga što je te tokove razvrstalo. Čitanje proxyjeve vlastite odlazne veze druga je vježba od provjere je li izvorno odredište dosežno.

Pročitajte pravila i oznake prije izmjene

Zabilježite trenutno stanje dok je tunel zdrav, zatim ponovno nakon promjene, i usporedite dva ispisa umjesto da zaključujete iz konfiguracijske datoteke. Uključite pravila politike, svaku tablicu, oznaku sučelja i zabilježene krajnje točke.

ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints

Ako je prvi redak izlaza izgubio pravilo za neoznačeni promet i namjenska tablica je prazna, zadana grana ne radi i nikakva aritmetika prefiksa neće vratiti njezine učinke. Oznaka nula na sučelju koje je prije nosilo oznaku isti je signal, vidljiv u jednoj vrijednosti.

Vježbajte gubitak tunela prije isporuke

Ako je raspored polovina ruta svjestan izbor, mora izričito osigurati dijelove koji nedostaju: putanju krajnje točke koja preživljava promjene adrese, namjeravano ponašanje kad tunel padne i ekvivalentnu obradu za IPv6. Zapišite to kao zahtjeve umjesto da ih otkrivate tijekom ispada. Zatim vježbajte kvar, jer je puni tunel koji tiho pada natrag na fizički uplink gori od onoga koji prestane raditi.

sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1

Pretraga rute trebala bi razriješiti krajnju točku iz fizičkog sučelja bez prolaska kroz tunel, a spuštanje sučelja trebalo bi ostaviti host u stanju koje je dizajn obećao. Proxy koji radi nakon zamjene dokazuje da je generirano stanje hosta bilo važno; ne dokazuje da su sprječavanje petlje i ponašanje u isključenom stanju preživjeli izmjenu.

Povezani članci