IKE över TCP 4500: kontrollera båda ändarna före portregeln
TCP-inkapsling förhandlas av båda ändarna, den ges inte av en brandväggsregel. Kör lyssnarkontrollen, avbildningen och de fyra acceptanstegen i ordning.
Supportärenden kommer ofta in när brandväggsändringen redan är godkänd och tunneln fortfarande vägrar att komma upp. Det är det förväntade resultatet när bara ena änden har funktionen: TCP-inkapsling enligt RFC 9329 måste implementeras och konfigureras i båda ändarna, och överenskommelsen sker inne i anslutningen innan någon skyddad trafik kan röra sig. Att öppna en port annonserar en lyssnare som kanske inte finns, och en lyssnare utan matchande konfiguration i andra änden tar emot en anslutning och blir sedan tyst. Ordningen nedan sätter de billiga kontrollerna först.
Vet vad alternativet faktiskt tillför
Inbyggd IPsec transporterar krypterade nyttolaster som IP-protokoll 50, utan ett portnummer som måste tillåtas. NAT-traversal packar in dessa paket i UDP till port 4500, och därför nämner så många brandväggsregler den porten. RFC 9329 lägger till en strömrepresentation: IKE- och IPsec-paket färdas båda inne i en enda TCP-anslutning, vanligtvis till port 4500.
Strömmen är inte en webbtjänst. En TCP-anslutning till 4500 säger ingenting om HTTP, TLS eller proxyvänlighet, och en HTTP-proxy på vägen bryter vanligtvis ramningen i stället för att bära den.
Förkontroll innan du rör brandväggen
Standarden placerar TCP som en reservlösning för nätverk som släpper UDP-vägen, inte som en ersättning för den. Skaffa två fakta från varje leverantör: det exakta funktionsnamnet och versionen som implementerar RFC 9329 i stället för en egen variant. Etiketter som IPsec over TCP har använts för orelaterade konstruktioner, så be om dokumentreferensen och konfigurationsnyckeln som slår på den. Utan båda svaren bör du inte anta något om kabelkompatibilitet.
Bevisa det i ett labb där båda ändarna är dina. En gateway som svarar på TCP 4500 men aldrig slutför IKE är signaturen för en lyssnare utan den matchande inkapslingen i andra änden, och det är mycket billigare att upptäcka där än under ett ändringsfönster.
På respondersidan: lyssnar något
Börja med socketen. ss -ltnp | grep 4500 visar om det finns en TCP-lyssnare och vilken process som äger den. Avsaknaden av en rad avslutar undersökningen vid gatewaykonfigurationen i stället för vid nätverket.
Om socketen finns, observera handskakningen i stället för att gissa från klientsidan: tcpdump -ni any 'tcp port 4500'. En slutförd trevägshandskakning följd av tystnad betyder att strömmen accepterades och att IKE-utbytet inuti den misslyckades, medan ett SYN utan svar pekar på filtrering eller på fel adress.
Jämför med UDP-vägen i samma avbildningsfönster så att de två inte förväxlas: tcpdump -ni any 'udp port 4500 or proto 50'. Trafik på protokoll 50 eller UDP-port 4500 när du tror att TCP används betyder att parterna aldrig kom överens om reservvägen. Avbilda även på gatewayen om du kan, eftersom en avbildning på klientsidan inte kan visa vad den bortre änden skickade.
Acceptera i fyra separata steg
Behandla uppstarten som fyra resultat. Varje kan misslyckas av olika skäl, och ett enda godkänt eller underkänt döljer vilket det var, så stanna vid det första steget som misslyckas och börja om från toppen.
| Stage | What you check | What it proves |
|---|---|---|
| 1 | TCP connection established to 4500 | A listener exists and the path permits it |
| 2 | IKE_SA authenticated in the gateway log | Both peers agreed on the encapsulation |
| 3 | CHILD_SA installed, visible with ip xfrm state | Keys exist for the protected traffic |
| 4 | A new application exchange succeeds | The data path works, not just the control path |
Steg fyra är det som hoppas över. En befintlig session kan fortsätta att fungera på cachat tillstånd, så öppna en ny anslutning till en värd bakom gatewayen innan du stänger ändringen. Om steg två misslyckas medan steg ett godkänns, ligger oenigheten i förslaget eller i inkapslingsinställningen, inte i brandväggen.
Tillbakarullning, och kostnaden för att låta det stå på
Planera ångrandet före ändringen: stäng av inkapslingsalternativet i båda ändarna och bekräfta att tunneln kommer tillbaka via UDP. Behåll TCP-regeln en granskningscykel om reservvägen behövs igen, och ta sedan bort den. En oanvänd lyssnare på 4500 är angreppsyta utan något driftvärde.
Håll utkik efter prestandasignaturen när den bär riktigt arbete. TCP inuti TCP lägger till bekräftelseskikt som stannar vid ett enda förlust, och strömmar som delar en anslutning kan blockera varandra, så mät applikationen som ska använda tunneln i stället för en ping.
Acceptanslista
Bekräfta funktionsnamn och version i båda ändarna, lyssnaren på respondersidan, avbildningen som visar en slutförd handskakning och de fyra stegen registrerade med tidsstämplar. Lägg till skälet till reservvägen i ändringsloggen så att nästa ingenjör vet varför TCP finns där. Öva tillbakarullningen innan du behöver den.
Om något steg misslyckas, åtgärda bara det steget. Att ändra chifferpaketet eller identitetsinställningarna för att jaga ett transportproblem lägger vanligtvis till ett andra, orelaterat fel ovanpå det första.