Peer WireGuardu vychádza cez nesprávny WAN: päť kontrol v poradí
Na bráne s viacerými uplinkmi môžu handshake a preposielaný tok ísť rôznymi cestami. Prejdite pravidlo, značku, preklad a odpoveď v tomto poradí.
Dva uplinky, jedna brána a peer WireGuardu, ktorého prevádzka sa stále objavuje na záložnej linke. Handshake zostáva celý čas v poriadku. Preto je jednoduché symptóm nesprávne čítať ako poruchu WireGuardu a nie ako problém smerovania.
Vykonajte nižšie uvedené kontroly v poradí. Každá má podmienku zastavenia a preskočenie dopredu zvyčajne dáva sebavedomú nesprávnu odpoveď.
Oddeľte handshake od preposielaného toku
Šifrovaná výmena s peerom má trasu ku koncovému bodu verejnej adresy servera. Preposielaná klientska prevádzka má iný cieľ a môže byť vybraná značkami alebo pravidlami politiky. Sú to dve rozhodnutia smerovania, ktoré zdieľajú jedno rozhranie. Považovať jedno za dôkaz o druhom je prvá chyba.
Zastavte sa, len čo sa pristihnete uvažovať z handshake. Je to dôkaz iba o ceste ku koncovému bodu.
Čítajte pravidlo politiky, nie predvolenú tabuľku
Predvolená tabuľka ukazuje, čo sa stane, keď nevyhovuje žiadne pravidlo politiky. Na bráne, ktorá smeruje podľa zdroja, značky alebo cieľa, rozhodujúce pravidlo žije inde. Obyčajná tabuľka môže vyzerať úplne rozumne, zatiaľ čo skutočný výber sa robí nad ňou.
ip rule show
ip route show table main
ip -4 route get 203.0.113.9 from 10.30.8.2
Prečítajte pravidlá politiky a tabuľky, na ktoré odkazujú. Potom potvrďte, ktoré pravidlo zodpovedá vášmu testovaciemu toku. Pravidlo, ktoré odkazuje na rozhranie, ktoré už nenesie zamýšľaný uplink, je zistenie, nie detail. Vyhľadanie trasy na konci ukáže odpoveď oveľa rýchlejšie ako čítanie tabuľky a hádanie.
Skontrolujte značku a preklad spolu
Smerovanie podľa politiky sa opiera o značku paketu nastavenú skôr v reťazci. Ak pravidlo značenia minie váš tok, tok prepadne do hlavnej tabuľky a vyjde cez to, čo je tam predvolené. Preposielané pakety často preskakujú reťazce písané pre lokálne generovanú prevádzku.
nft list chain inet filter prerouting
conntrack -L -s 10.30.8.2 2>/dev/null | head
ip -s link show dev eth1
Preklad musí súhlasiť s uplinkom, ktorý nesie tok. Pravidlo, ktoré prekladá na primárnu adresu, kým paket odchádza záložnou linkou, vytvára odpovede adresované rozhraniu, ktoré tok nikdy nepoužil. Skontrolujte vlastnú podmienku rozhrania pravidla prekladu. Bezpodmienečné pravidlo funguje, kým sa nepoužije druhý uplink, a potom zlyhá spôsobom, ktorý vyzerá prerušovane.
Sledujte, ktoré rozhranie nesie odpoveď
Zachytávajte na oboch uplinkoch, kým beží jedna požiadavka. Poznamenajte, ktoré rozhranie nesie požiadavku a ktoré odpoveď. Asymetrické cesty je oveľa ľahšie vidieť než predpovedať.
Ak odpoveď prichádza cez nesprávny uplink, problém prešiel z WireGuardu na sledovanie spojení alebo na preklad. Žiadna zmena konfigurácie peera to nespraví.
Zmeňte jednu vec s cestou späť
Pred úpravou pravidiel politiky na bráne si ponechajte konzolový alebo mimopásmový prístup. Urobte jednu zmenu, otestujte ten istý povolený cieľ, potom sa znova pripojte a overte, že handshake stále používa zamýšľanú cestu ku koncovému bodu. Pridajte číselný test na druhej rodine adries, pretože politika len pre v4 necháva tú istú chybu dostupnú.
Poznamenajte, ktorý uplink použil každý tok. Tento záznam premení nasledujúcu správu na dvojminútovú kontrolu namiesto celého popoludnia. poznámky WireGuardu o menných priestoroch a smerovaní opisujú, ako zámerne oddeliť cestu ku koncovému bodu od tunelovanej prevádzky, čo je zvyčajne čistejšie než kopírovať obchádzku s predvolenou trasou.