IKE over TCP 4500: controleer beide kanten vóór de poortregel
TCP-encapsulatie wordt door beide kanten onderhandeld, niet door een firewallregel verleend. Voer de listenercontrole, de capture en de vier acceptatiefasen in volgorde uit.
Supporttickets komen vaak binnen terwijl de firewallwijziging al is goedgekeurd en de tunnel nog steeds weigert om op te komen. Dat is het verwachte resultaat wanneer slechts één kant de functie heeft: TCP-encapsulatie volgens RFC 9329 moet aan beide kanten worden geïmplementeerd en geconfigureerd, en de overeenkomst vindt plaats binnen de verbinding voordat beschermd verkeer kan bewegen. Een poort openen adverteert een listener die misschien niet bestaat, en een listener zonder de bijpassende configuratie aan de andere kant accepteert een verbinding en wordt dan stil. De volgorde hieronder zet de goedkope controles vooraan.
Weet wat de optie werkelijk toevoegt
Native IPsec vervoert versleutelde payloads als IP-protocol 50, zonder poortnummer dat moet worden toegestaan. NAT-traversal verpakt die pakketten in UDP naar poort 4500, en daarom noemen zoveel firewallregels die poort. RFC 9329 voegt een stroomweergave toe: IKE- en IPsec-pakketten reizen beide binnen één TCP-verbinding, normaal gesproken naar poort 4500.
De stroom is geen webservice. Een TCP-verbinding naar 4500 zegt niets over HTTP, TLS of proxyvriendelijkheid, en een HTTP-proxy in het pad zal de framing meestal breken in plaats van vervoeren.
Voorcontrole voordat u de firewall aanraakt
De standaard plaatst TCP als terugvaloptie voor netwerken die het UDP-pad laten vallen, niet als vervanging ervan. Verkrijg twee feiten van elke leverancier: de exacte functienaam en de versie die RFC 9329 implementeert in plaats van een eigen variant. Labels als IPsec over TCP zijn gebruikt voor ongerelateerde ontwerpen, dus vraag naar de documentreferentie en de configuratiesleutel die het inschakelt. Zonder beide antwoorden moet u niets aannemen over draadcompatibiliteit.
Bewijs het in een lab waar beide kanten van u zijn. Een gateway die op TCP 4500 antwoordt maar IKE nooit voltooit, is de signatuur van een listener zonder de bijpassende encapsulatie aan de andere kant, en dat daar ontdekken is veel goedkoper dan tijdens een wijzigingsvenster.
Aan de responderzijde: luistert er iets
Begin met de socket. ss -ltnp | grep 4500 laat zien of er een TCP-listener is en welk proces die bezit. Het ontbreken van een regel beëindigt het onderzoek bij de gatewayconfiguratie en niet bij het netwerk.
Als de socket er is, kijk dan naar de handshake in plaats van te gissen vanaf de clientzijde: tcpdump -ni any 'tcp port 4500'. Een voltooide drieweg-handshake gevolgd door stilte betekent dat de stroom is geaccepteerd en de IKE-uitwisseling erin is mislukt, terwijl een SYN zonder antwoord op filtering of op het verkeerde adres wijst.
Vergelijk met het UDP-pad in hetzelfde capturevenster zodat de twee niet worden verward: tcpdump -ni any 'udp port 4500 or proto 50'. Verkeer op protocol 50 of UDP-poort 4500 terwijl u denkt dat TCP wordt gebruikt, betekent dat de partijen het nooit eens zijn geworden over de terugval. Leg ook vast op de gateway als u kunt, omdat een capture aan de clientzijde niet kan laten zien wat de verre kant heeft gestuurd.
Accepteer in vier afzonderlijke fasen
Behandel het opkomen als vier resultaten. Elk kan om een andere reden mislukken, en één enkele geslaagd of mislukt verbergt welke het was, dus stop bij de eerste fase die mislukt en begin weer bovenaan.
| 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 |
Fase vier is degene die wordt overgeslagen. Een bestaande sessie kan blijven werken op gecachte toestand, dus open een nieuwe verbinding naar een host achter de gateway voordat u de wijziging sluit. Als fase twee mislukt terwijl fase één slaagt, zit de onenigheid in het voorstel of in de encapsulatie-instelling, niet in de firewall.
Terugdraaien, en de kosten van het aan laten staan
Plan het ongedaan maken vóór de wijziging: schakel de encapsulatieoptie aan beide kanten uit en bevestig dat de tunnel terugkeert via UDP. Houd de TCP-regel één reviewcyclus aan voor het geval de terugval opnieuw nodig is, en verwijder hem daarna. Een ongebruikte listener op 4500 is aanvalsoppervlak zonder enige operationele waarde.
Let op de prestatiesignatuur zodra er echt werk over gaat. TCP in TCP voegt bevestigingslagen toe die bij één verlies vastlopen, en stromen die één verbinding delen kunnen elkaar blokkeren, dus meet de applicatie die de tunnel gaat gebruiken in plaats van een ping.
Acceptatielijst
Bevestig de functienaam en versie aan beide kanten, de listener aan de responderzijde, de capture die een voltooide handshake toont, en de vier fasen vastgelegd met tijdstempels. Voeg de reden voor de terugval toe aan het wijzigingsrecord zodat de volgende ingenieur weet waarom TCP daar is. Oefen het terugdraaien voordat u het nodig hebt.
Als een fase mislukt, repareer dan alleen die fase. Het wijzigen van de cipher-suite of de identiteitsinstellingen om een transportprobleem na te jagen voegt meestal een tweede, ongerelateerde fout toe bovenop de eerste.