XFRM-standardruten slukte IKE og ESP: behold den ytre veien
En policy som beskytter alt, kan også fange pakkene som holder tunnelen oppe. Merk IKE og ESP, eller behold en peer-rute.
Trafikken er beskyttet, tunnelen er oppe, og så dør den ved neste nøkkelnye. En standardrute gjennom XFRM-grensesnittet beskrev trafikken du ville beskytte. Den slukte også pakkene som trengs for å fortsette å beskytte den.
De to involverte destinasjonene er ikke utskiftbare. Rutingen må si det eksplisitt.
Hvor peer-oppslaget faktisk går
Noter de aktive reglene, tabellen som holder XFRM-ruten og peerens offentlige adresse. Se så på veien den ytre forbindelsen ville ta med sin reelle kilde og markering. En generisk destinasjon sier ingenting om den kontrollveien. Bare den faktiske kilden og markeringen gir et nyttig svar.
En vellykket første tilkobling beviser også lite. Feilen dukker ofte opp etter at en ruteinstallasjon har endret svaret. Oppstarten lykkes, deretter gjør ikke den første fornyelsen det.
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
Hvis oppslaget for peeren ender i XFRM-grensesnittet, rutes de ytre pakkene inn i tunnelen de selv bygger. Det er løkken, synlig i én kommando.
Utelukkelsesvalg på en moderne gateway
strongSwans dokumentasjon om rutebasert VPN legger fram to praktiske svar. Det ene merker IKE og ESP slik at regelen mot XFRM-tabellen ikke treffer dem. Det andre lar en peer-rute eller en utelukkelse stå som oppslaget fortsatt kan nå.
Velg den regelsettet ditt kan uttrykke uten bivirkninger. En markering er ren når resten av stakken allerede bruker markeringer. Den er en fare når samme maske betyr noe annet i en annen regel. Begge pakketypene trenger behandlingen uansett.
Å merke bare IKE lar datapakkene bli på den fangede veien. Det gir en tunnel som gjør håndtrykket og deretter ikke bærer noe.
Markeringen er én bit i pakkens fwmark som ingenting annet på gatewayen gjør krav på: 0x1 med maske 0x1 er det vanlige valget, og det må settes to steder for at utelukkelsen skal virke. Charon trenger den på IKE-socketen, og barnetilkoblingens inngående og utgående markinnstillinger trenger samme verdi for at også innkapslede pakker skal gå ut merket. En maske på 0x1 i stedet for 0xffffffff lar de resterende bitene være fri, noe som betyr noe når et annet undersystem allerede merker pakker på samme vert. Når begge er satt, skrives regelen som en utelukkelse, slik at merkede pakker hopper over tabellen som holder XFRM-ruten og faller gjennom til hovedtabellen:
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
Les så svaret med markeringen anvendt. Uten den undersøker du veien den beskyttede trafikken tar, som er det motsatte av spørsmålet i denne delen.
Hva automatisk installasjon forutsetter om bygget
Automatisk ruteinstallasjon for et XFRM-grensesnitt avhenger av strongSwan-versjonen og konfigurasjonen. Grensesnitt-ID-en, den installerte policyen og assosiasjonen må alle vise til de tiltenkte objektene. En uoverensstemmelse viser seg som en rute som stille peker et reelt sted.
Å kopiere et tabellnummer eller en markmaske fra en annen gateway er måten kollisjoner starter på. Sjekk først hva som allerede bruker det. En kollisjon påvirker trafikk langt utover tunnelen du ville endre, og symptomet peker sjelden på kopien.
Endringer av peer-adressen hører hjemme i designet. En vertsrute for gårsdagens adresse er ikke en gjenopprettingsplan for endepunktet, mens en markering overlever den endringen.
Følg med på den første fornyelsen
Kontroller den ytre veien etter at de beskyttede rutene er installert, ikke før. Følg så med på neste fornyelse og én applikasjonsutveksling. Feilen viser seg vanligvis ved den overgangen og ikke ved oppstart.
ip -4 route get 198.51.100.44
sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or esp'
Å fjerne standardruten midlertidig gjenoppretter vanligvis forbindelsen. Resultatet er diagnostisk, ikke endelig.
Målet er en stabil deling mellom indre trafikk og de ytre pakkene som bærer den. Skriv den valgte mekanismen og tabellen eller markeringen i gatewayens notater. Ellers vil neste person som rører reglene gjeninnføre løkken.