Dva WireGuard peera dijele raspon: koji dobija paket
Preklapajući rasponi rješavaju se najspecifičnijim prefiksom, a ne redoslijedom. Prvo provjerite rutu, zatim listu peerova, prije nego bilo što proširite.
Dva peera navode raspone koji se dodiruju, a saobraćaj stiže do pogrešnog. Ništa nije oštećeno: WireGuard bira peera upoređujući odredište sa konfigurisanim rasponima, a najspecifičnije podudaranje pobjeđuje. Prije nego bilo što proširite, odlučite koji peer treba da posjeduje koji prefiks.
Najduži prefiks pobjeđuje unutar WireGuarda
Svaki unos peera nosi skup prefiksa odredišta. Kada se paket usmjeri na interfejs, implementacija traži unos s najspecifičnijim podudarnim prefiksom — isto pravilo koje primjenjuje tabela rutiranja. Zato /24 pobjeđuje /16 koji ga sadrži, a uži peer prima saobraćaj.
Road-warrior postavke to koriste namjerno. Jedan peer posjeduje širok raspon za lokaciju, a pojedinačni hostovi se izdvajaju /32 unosima koji pripadaju drugim peerima. Obrazac funkcioniše jer su izdvajanja specifičnija, a ne zbog redoslijeda.
Zapišite vlasništvo kao tabelu prefiksa i peera. Ako dva unosa opisuju isti prefiks, konfiguracija više ne izražava namjeru, nego izražava trku.
Operativni sistem prvo bira interfejs
WireGuard bira samo među peerima na jednom interfejsu. Koji interfejs prima paket odlučuje se ranije, tabelom rutiranja hosta, a druga podrazumijevana ruta ili zastarjela ruta može poslati saobraćaj negdje gdje ga lista peerova nikada ne vidi. Zato dijagnoza na nivou peera može biti ispravna i ipak ne objasniti kvar. Provjerite rutu za odredište prije nego pročitate konfiguraciju peera, jer ruta koja pokazuje na fizički interfejs zaobilazi cijelo pitanje.
Alat obično instalira te rute iz raspona peerova, što znači da promjena liste jednog peera može tiho preusmjeriti saobraćaj koji je prije pripadao drugom. Uređivanje peera je stoga promjena rutiranja u prerušenom obliku. Pregledajte oboje odjednom, inače ćete popraviti jedno i pokvariti drugo.
Dolazni paketi provjeravaju se po izvoru
Lista raspona obavlja dvostruku dužnost. Za odlazni saobraćaj bira peera po odredištu, a za dolazni odobrava adresu izvora. Paket koji stigne s adrese izvan raspona tog peera odbacuje se prije nego ga bilo koji firewall vidi.
Tu asimetriju je lako previdjeti kada čitate jednu stranu konfiguracije. Peer koji može dosegnuti podmrežu time nije ovlašten da šalje s te podmreže, a dva smjera provjeravaju različite kontrole.
Uska izvorna vlast pretvara to u prednost. Dajte svakom peeru /32 za njegovu vlastitu adresu i firewall nizvodno ima pouzdan izvor za upoređivanje, umjesto raspona na razini grupe koji bi svaki član mogao prisvojiti.
Duplicirani rasponi nisu failover
Dodjela istog prefiksa dvama peerima ne stvara balanser opterećenja ni rezervnu stazu. Nema provjere zdravlja ni sesijske afinitetnosti: pobjednički unos određuje interni poredak implementacije, što nije ugovor na koji biste trebali projektovati. Ako su vam potrebni alternativni izlazi, izrazite ih tamo gdje je odabir definisan. Politika rutiranja, metrika ili par različitih prefiksa s dokumentovanim vlasnikom svakog daju ponašanje koje možete predvidjeti i testirati.
Proširivanje raspona radi popravke nepovezanog kvara je druga česta greška. Ono odmiče saobraćaj od peera koji je radio, a novi simptom stiže prije nego što je stari shvaćen.
Provjerite odabir prije uređivanja
Tri komande odgovaraju na tri pitanja po redu. Prva navodi raspone koje svaki peer traži. Druga pokazuje koji bi interfejs host koristio za odredište. Treća pokazuje živo stanje peera nakon što je saobraćaj protekao.
wg show wg0 allowed-ips ip route get 10.66.8.20 wg show wg0 ip rule show
Pokrenite ih prije i poslije promjene i uporedite. Ako se izlaz rute promijenio, ali saobraćaj još stiže do pogrešnog peera, liste prefiksa se preklapaju na način koji još niste zapisali. Ako se izlaz rute nije promijenio, konfiguracija peera nikada nije bila ono što se konsultovalo.
Zabilježite odredište, odabrani interfejs i odabranog peera u tiket. Taj triplet čini preklapanje preglednim kasnije i mnogo je korisniji od snimka ekrana konfiguracije.