Traficul este protejat, tunelul funcționează, apoi moare la următoarea reînnoire a cheilor. O rută implicită prin interfața XFRM descria traficul pe care voiați să-l protejați. A înghițit și pachetele necesare pentru a continua protecția.

Cele două destinații implicate nu sunt interschimbabile. Rutarea trebuie să spună asta explicit.

Unde ajunge de fapt căutarea peer-ului

Notați regulile active, tabela care conține ruta XFRM și adresa publică a peer-ului. Apoi priviți calea pe care ar lua-o conexiunea externă cu sursa și marcajul reale. O destinație generică nu spune nimic despre acea cale de control. Doar sursa și marcajul reale oferă un răspuns util.

O conexiune inițială reușită dovedește și ea puțin. Defecțiunea apare adesea după ce instalarea unei rute schimbă răspunsul. Pornirea reușește, apoi prima reînnoire nu.

ip rule show
ip route show table 220
ip -4 route get 198.51.100.44 from 10.40.0.2
ip xfrm policy list

Dacă căutarea peer-ului ajunge în interfața XFRM, pachetele externe sunt rutate în tunelul pe care ele însele îl construiesc. Aceasta este bucla, vizibilă cu o singură comandă.

Opțiuni de excludere pe un gateway modern

Documentația strongSwan despre VPN bazat pe rutare prezintă două răspunsuri practice. Una marchează IKE și ESP astfel încât regula către tabela XFRM să nu li se aplice. Cealaltă lasă o rută a peer-ului sau o excludere pe care căutarea o mai poate atinge.

Alegeți-o pe cea pe care setul de reguli o poate exprima fără efecte secundare. Marcajul este curat când restul stivei folosește deja marcaje. Este periculos când aceeași mască înseamnă altceva într-o altă regulă. Ambele tipuri de pachete au nevoie de tratament oricum.

Marcarea doar a IKE lasă pachetele de date pe calea capturată. Asta produce un tunel care face handshake și apoi nu transportă nimic.

Marcajul este un bit în fwmark-ul pachetului pe care nimic altceva din gateway nu îl revendică: 0x1 cu masca 0x1 este alegerea obișnuită, și trebuie setat în două locuri pentru ca excluderea să funcționeze. Charon are nevoie de el pe socketul IKE, iar setările de marcaj de intrare și de ieșire ale conexiunii copil au nevoie de aceeași valoare pentru ca și pachetele încapsulate să iasă marcate. O mască de 0x1 în loc de 0xffffffff lasă biții rămași liberi, ceea ce contează când un alt subsistem marchează deja pachete pe același host. Cu ambele setate, regula este scrisă ca excludere, astfel încât pachetele marcate sar peste tabela care conține ruta XFRM și cad în tabela principală:

ip rule add not fwmark 0x1/0x1 lookup 220 pref 1000
ip -4 route get 198.51.100.44 from 10.40.0.2 mark 0x1

Apoi citiți răspunsul cu marcajul aplicat. Fără el examinați calea pe care merge traficul protejat, ceea ce este opusul întrebării acestei secțiuni.

Ce presupune instalarea automată despre build

Instalarea automată a rutei pentru o interfață XFRM depinde de versiunea strongSwan și de configurația ei. ID-ul interfeței, politica instalată și asocierea trebuie toate să se refere la obiectele dorite. O nepotrivire apare ca o rută care indică în liniște undeva real.

Copierea unui număr de tabelă sau a unei măști de marcaj de la alt gateway este modul în care încep coliziunile. Verificați mai întâi ce o folosește deja. O coliziune afectează trafic mult dincolo de tunelul pe care voiați să-l schimbați, iar simptomul indică rar copia.

Schimbările adresei peer-ului fac parte din proiectare. O rută de host pentru adresa de ieri nu este un plan de recuperare a endpointului, în timp ce un marcaj supraviețuiește acelei schimbări.

Urmăriți prima reînnoire

Verificați calea exterioară după ce rutele protejate sunt instalate, nu înainte. Apoi urmăriți următoarea reînnoire și un schimb de aplicație. Defecțiunea apare de obicei la acea tranziție și nu la pornire.

ip -4 route get 198.51.100.44
sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or esp'

Eliminarea temporară a rutei implicite protejate restabilește de obicei conectivitatea. Rezultatul este diagnostic, nu definitiv.

Scopul este o separare stabilă între traficul intern și pachetele externe care îl transportă. Scrieți mecanismul ales și tabela sau marcajul lui în notele gateway-ului. Altfel următoarea persoană care atinge regulile va reintroduce bucla.

Articole similare