To klienter bag samme router taler med én IPsec-gateway, og den ene bliver ved med at falde ud, mens den anden holder sig oppe. Native ESP er IP-protokol 50 uden porte, så en oversætter har intet at hænge en mapping på, når flere klienter deler én adresse. NAT-traversal lukker det hul ved at pakke ESP ind i UDP på 4500, og den header forklarer de fleste af de symptomer, der følger. Den peger også på den enhed, der skal ændres.

Hvorfor dataplanet flytter til port 4500

Under opsætningen sammenligner IKEv2 de adresser og porte, som hver side mener at bruge, ved at udveksle hashes i deres NAT-detekteringsnotifikationer. Når hasherne er uenige, sidder der en oversætter et sted på vejen, og begge parter skifter den beskyttede trafik til UDP-indkapsling. Derfor ser en session, der har mødt en oversætter, anderledes ud end en, der ikke har.

Indpakningen er en kuvert, ikke en protokolændring: ESP beholder sin header, integritetskontrol og kryptering, og UDP leverer kun de porte, som oversætteren har brug for. Port 500 bærer IKE-udvekslingen; 4500 bærer de indkapslede data efter detekteringen og ofte også de senere IKE-beskeder. Ingen af portene gør flowet til en TCP-forbindelse, den antagelse der vildleder de fleste, der læser en optagelse.

Kontrollér de to faser i rækkefølge

Bevis først kontroludvekslingen, derefter datastien, og hold de to adskilt i dine noter. En optagelse, der viser trafik på 500 og aldrig på 4500, betyder normalt, at datastien er filtreret, så rettelsen hører i firewall-reglen og ikke i klienten.

Overvåg begge porte med tcpdump -ni any 'udp port 500 or udp port 4500', og læs oversættelsestabellen på routeren, mens en session er aktiv. Tabellen viser den kildeport, som gatewayen faktisk vil se, og en optagelse på laptop'en er uenig med vilje: laptop'en tror 500, mens gatewayen ser 4500 med en oversat kildeport, og begge har ret. Det samme flow, før og efter oversættelse:

client 192.0.2.10:500 -> router 203.0.113.7:62000 -> gateway 198.51.100.9:4500

Symptomer, som indpakningen forklarer, og to, som den ikke gør

En router, der tillader kontroludvekslingen og blokerer de indkapslede data giver rapporten om, at tunnelen er oppe, men der går intet igennem. Mapping-tabeller udløber, så en inaktiv session har brug for keepalive-trafik, som parterne sender med vilje, og de pakker er ikke sundhedstjek. Når flere klienter bag én gateway fejler sammen, skal du undersøge den gateways oversættelse og enhver gammel passthrough-funktion. Indpakningen forklarer ikke et program, der fejler hos alle klienter, efter tunnelen er oppe, eller en certifikatadvarsel på en blokeringsside; begge ligger over dette lag.

Læs mapping-tabellen for to klienter på én gang: hvis begge viser samme oversatte port, adskiller enheden dem ikke, som gatewayen kræver. En passthrough-tilstand, der giver native ESP til kun én vært, svarer ikke til at betjene flere oversatte klienter, selvom leverandører beskriver begge som IPsec-venlige. Dobbelt NAT tilføjer et mapping-lag og endnu et udløbspunkt, men det bryder ikke automatisk udgående forbindelser.

Keepalive-trafik fortjener sin egen linje i driftshåndbogen, fordi det er den, der holder svarstien åben gennem inaktive perioder. Aktivér den, hvor leverandøren dokumenterer det, og kontrollér den først, når en session dør efter minutters stilhed i stedet for ved første brug.

Skift ejeren af mappingen, og test igen

Følg de understøttede NAT-traversal-indstillinger på begge parter i stedet for at gætte på en port. Redigering af den lokale kildeport på én klient kan ikke ændre den tjeneste, der lytter i den anden ende, og den ødelægger normalt den mapping, der allerede er bygget. Hvis klienten sidder bag en enhed, du ikke kontrollerer, hører ændringen til dens ejer.

Efter enhver ændring skal du gentage begge fasekontroller og bekræfte, at en datapakke passerer, ikke blot at statusskærmen blev grøn. Hold tuplerne, mapping-tabellens output og regelændringen i ét notat, så den næste person ikke starter forfra ved kontroludvekslingen. strongSwan-notaterne om NAT-traversal dækker indkapslingen og keepalive-indstillingerne bag begge faser.

Relaterede artikler