WireGuard: dvije polovice ruta nasuprot 0.0.0.0/0 u wg-quick
Dva raspona /1 pokrivaju iste adrese kao /0, ali wg-quick ih usmjerava drukčije. Provjerite pravila politike, oznake i putanju do završne točke prije izmjene.
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 polovica ruta nikada ne dobije. Zato su, kada proxy ili preglednik prestane raditi nakon izmjene, prefiksi 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 dvaju različitih oblika popisa stoga ne govori ništa o identičnom stanju hosta.
Zadana konfiguracija oduzima tu odluku iz vaših ruku, jer je Table 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 mjerodavnima, 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 uobičajenom 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 prohodana.
Gdje se dva rasporeda razilaze
Razilaženje se prvo pokazuje kao rekurzija. Kad su polovice 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 trenutačnu završnu točku, ručno primijenjena oznaka ili pravilo specifično za sučelje. Ruta hosta radi dok se adresa završne točke ne promijeni, što se događa sa završnim točkama temeljenima 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 trenutačno 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 završne 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 polovica ruta svjestan izbor, mora izričito osigurati dijelove koji nedostaju: putanju završne 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 završnu 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.