Routerns genomströmningsbrytare är vidarebefordringskoncessioner för en enhet bakom dem, inte VPN-tjänster. De registrerar inte routern som klient, håller inga inloggningsuppgifter och trycker inte igenom varje enhet i huset via en fjärr utgång. Det de gör är att forma hur ett protokoll korsar adressöversättningen och filtren. När det är klart är brytaren lätt att testa och lätt att lämna avstängd.

Vad routern egentligen gör

Routern sitter mellan en klient och en IPsec-peer och vidarebefordrar paket som den aldrig var designad att förstå. Tillverkarna implementerar funktionen på minst tre sätt: en protokollhjälpare som följer eller skriver om tillstånd, ett filterundantag som slutar släppa ESP, eller ett kompatibilitetsläge för äldre klienter. Etiketten i webbgränssnittet säger sällan vilken av de tre du har. Bara firmwareanteckningarna eller en paketinspelning säger det.

En hjälpare kan också göra saken värre. Hjälp skriven för ett äldre flöde stör ibland en klient som redan hanterar översättningen korrekt. När en modern klient fungerar med alternativet av, är det den bättre konfigurationen att låta det vara av.

Genomströmningen ger aldrig routern peerarnas nycklar. Den ser fortfarande de yttre adresserna och portarna och tillämpar fortfarande sin egen vidarebefordringspolicy på dem.

NAT och NAT-T avgör vägen

IPsec byggdes inte för att överleva adressöversättning, så standarderna lade till ett omslag. NAT-traversering kapslar in ESP i UDP, vilket låter en vanlig NAT-tabell bära flödet, och förhandlingen enas om den växlingen under IKE (RFC 3948). IKE själv använder UDP 500, medan den inkapslade vägen vanligtvis använder UDP 4500.

Därför räcker inte en brandväggsregel som bara tillåter protokoll 50 på en översatt väg. Att blockera 4500 bryter fallet som omslaget finns för, och att blockera 500 stoppar förhandlingen innan någon tunnel bildas. Båda riktningarna spelar roll, eftersom en tillståndsbaserad router vanligtvis tillåter svaret först efter att ha sett begäran. Att nå en port är inte samma sak som att slutföra autentiseringen, och inte heller som att vidarebefordra skyddad trafik.

Äldre upplägg skiljer sig tillräckligt för att en guide skriven för dem kan vilseleda. När en klient erbjuder båda lägena, testa det som din peer dokumenterar och inte det med fler sökträffar.

Hitta steget som misslyckas

Dela upp problemet i förhandling, autentisering, skydd av barnet och inre vidarebefordran, och samla sedan bevis för ett steg i taget. En omstart som tillfälligt ändrar resultatet bevisar bara att något tillstånd var inblandat.

sudo tcpdump -ni any 'udp port 500 or udp port 4500'
ip xfrm state list
ip xfrm policy list

Inspelningen visar om utbytet når peeren och om svar kommer tillbaka, vilket skiljer ett filtreringsproblem från ett inloggningsproblem. Tillståndslistan visar etablerade säkerhetsassociationer, så en tom lista efter ett försök pekar på förhandling och inte på routing. Policylistan visar vilka selektorer som är installerade, och det är där en destination utanför subnätet utesluts. Läs båda xfrm-utskrifterna innan du rör routern, eftersom de beskriver vad värden tror och inte vad routern tillåter.

Om paketen lämnar och ingenting kommer tillbaka, flytta inspelningen till routerns WAN-sida. Att jämföra de två inspelningarna lokaliserar droppet utan att gissa.

Stäng av det du inte behöver

En enda fungerande bärbar dator bevisar inte att routern betjänar flera klienter samtidigt. Varje klient skapar sitt eget översättningstillstånd och sin egen förhandling, och vissa hjälpare följer bara ett flöde. Testa antalet samtidiga sessioner du faktiskt behöver, från nätverken du faktiskt använder. Om den andra klienten misslyckas medan den första blomstrar, är det fyndet och inte en instabil tunnel.

Låt alternativet vara på bara när en inspelning visar att det behövs. Anteckna firmwareversionen bredvid resultatet, eftersom detta beteende ändras mellan versioner. Målet är en klienttunnel du har verifierat, inte en brytare du slog på i hopp.

Relaterade artiklar