Varför ett fungerande VPN ändå får timeout på svaret
Att en begäran når en privat server är bara halva utbytet. Svaret måste hitta tunnelklienten genom den avsedda gatewayen, rutten eller översättningen.
Begäran kommer in, servern loggar den och klienten rapporterar fortfarande timeout. Den kombinationen betyder att svaret inte hittade vägen tillbaka, och det är ett av de få fel du kan bekräfta från båda ändarna samtidigt. Gå igenom kontrollerna i ordning och stanna när en av dem misslyckas.
Börja med var begäran kom in
Bekräfta att paketet nådde tjänsten innan du undersöker något annat. En loggpost på serversidan, en anslutningsräknare eller en tillåten avlyssning i den bortre änden svarar alla på samma fråga, och att de saknas skickar dig tillbaka till tunneln i stället för vidare till svaret. Det här är kontrollen som skiljer ett vidarebefordringsproblem från ett returvägsproblem.
Om begäran aldrig kom in, stanna här. Tunneln, routingen till det privata prefixet eller åtkomstregeln är ämnet, och returvägen är ännu inte relevant. Notera också källadressen som servern såg. Den är antingen adressen från poolen som klienten fick eller en översatt adress, och den skillnaden avgör vilken av de senare kontrollerna som gäller.
Svaret behöver en rutt till poolen
En fjärråtkomstklient får vanligtvis en adress från en pool, och det privata nätet behöver en rutt tillbaka till den poolen. En server vars standardrutt pekar på sin egen gateway lämnar paketet till den gatewayen, som inte har en aning om var poolen ligger, så svaret dör där. Klienten ser en timeout eftersom ingenting kom tillbaka, och det går inte att skilja från en begäran som aldrig lämnade maskinen.
Kontrollera rutten som servern väljer för klientadressen, inte rutten den använder för sitt eget subnät. De två sökningarna kan ge olika svar, och det andra är det som spelar roll här. Översättning är det alternativa utförandet och det ändrar vad servern ser. Det kan förenkla en returväg, och det tar också bort den ursprungliga klientadressen från serverns loggar, vilket påverkar varje regel eller rapport som bygger på det fältet.
Jämför avlyssningen på servern med avlyssningen på gatewayen
Jämför vad som lämnar servern med vad som kommer in till gatewayen. En avlyssning på serverns utgående gränssnitt och en avlyssning på tunnelgatewayen svarar på olika halvor av frågan, och gapet mellan dem lokaliserar förlusten.
ip route get 10.90.0.14
tcpdump -ni any host 10.90.0.14 and port 443
ip route show table all | grep 10.90.0.0| Where the reply stops | What it proves |
|---|---|
| Request in the server log, nothing on its outbound capture | The server picked a gateway that cannot reach the pool |
| Reply leaves the server but never shows up at the gateway | Loss on the LAN path, not on the tunnel |
| Reply reaches the gateway but not the client | Return translation or tunnel policy, not the server route |
En begäran som gatewayen själv genererar är en dålig ersättning för ett klienttest, eftersom den kommer från en annan adress och möter andra regler. Därför kan en lyckad ping från gatewayen och en misslyckad begäran från klienten båda vara sanna.
När det sitter flera routrar på vägen, kontrollera var och en som behöver en rutt till poolen. En design från plats till plats kräver ofta att det avlägsna prefixet är känt på mer än en enhet, och gatewayen själv måste vidarebefordra mellan tunneln och LAN-et; strongSwans anteckningar om vidarebefordran täcker sysctl- och brandvägssidan av det.
Notera poolen, prefixet och ansvarig
Fyra fakta hör hemma i anteckningen: poolen som klienten fick, det privata prefixet som behövdes, routern som ansvarar för svaret och översättningsregeln om den finns. Med dem är en senare gatewayändring en jämförelse och inte en utredning.
Testa sedan igen med en vanlig klient och det riktiga applikationskontot. Att utöka applikationens rättigheter kan inte reparera returvägen för ett paket, och en kontoförändring under den här diagnosen kommer att förvirra nästa jämförelse. Om utförandet vilar på översättning, dokumentera den där serverns loggar läses. Den som ser en okänd källadress i ett revisionsspår bör inte behöva återupptäcka mappningen från ett ärende.