Prečo funkčná VPN napriek tomu vyprší na odpovedi
To, že požiadavka dorazí na privátny server, je len polovica výmeny. Jej odpoveď musí nájsť klienta tunela cez zamýšľanú bránu, trasu alebo preklad.
Požiadavka dorazí, server ju zapíše do logu a klient napriek tomu hlási vypršanie časového limitu. Taká kombinácia znamená, že odpoveď nenašla cestu späť, a je to jedna z mála porúch, ktorú môžete potvrdiť z oboch koncov naraz. Vykonávajte kontroly po poradí a zastavte sa, keď niektorá zlyhá.
Začnite tým, kam požiadavka dorazila
Skôr než začnete skúmať čokoľvek iné, potvrďte, že paket dorazil k službe. Záznam v logu na strane servera, počítadlo spojení alebo povolené zachytenie na vzdialenom konci odpovedajú na tú istú otázku, a ich neprítomnosť vás vracia k tunelu, nie vpred k odpovedi. Toto je kontrola, ktorá oddeľuje problém s preposielaním od problému so spätnou cestou.
Ak požiadavka nikdy nedorazila, zastavte sa tu. Témou je tunel, smerovanie k privátnemu prefixu alebo prístupové pravidlo a cesta odpovede zatiaľ nie je podstatná. Poznamenajte si aj zdrojovú adresu, ktorú server videl. Je to buď adresa z fondu, ktorú klient dostal, alebo preložená adresa, a tento rozdiel určuje, ktorá z ďalších kontrol platí.
Odpoveď potrebuje trasu do fondu
Klient vzdialeného prístupu zvyčajne dostane adresu z fondu a privátna sieť potrebuje trasu späť do tohto fondu. Server, ktorého predvolená trasa ukazuje na jeho vlastnú bránu, odovzdá paket tejto bráne, ktorá nemá poňatia, kde sa fond nachádza, a odpoveď tam zomrie. Klient vidí vypršanie, pretože sa nič nevrátilo, čo sa nedá odlíšiť od požiadavky, ktorá nikdy neodišla.
Skontrolujte trasu, ktorú server vyberá pre adresu klienta, nie trasu, ktorú používa pre vlastnú podsieť. Tieto dve vyhľadania môžu dať rôzne odpovede a tu je podstatné to druhé. Preklad je alternatívny návrh a mení to, čo server vidí. Môže zjednodušiť spätnú cestu a tiež odstraňuje pôvodnú adresu klienta z logov servera, čo ovplyvňuje každé pravidlo alebo správu postavenú na tomto poli.
Porovnajte zachytenie na serveri so zachytením na bráne
Porovnajte, čo opúšťa server, s tým, čo dorazí na bránu. Zachytenie na odchádzajúcom rozhraní servera a zachytenie na bráne tunela odpovedajú na rôzne polovice otázky a medzera medzi nimi lokalizuje stratu.
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 |
Požiadavka, ktorú vygeneruje samotná brána, je slabou náhradou testu z klienta, pretože pochádza z inej adresy a naráža na iné pravidlá. Preto úspešný ping z brány a neúspešná požiadavka z klienta môžu platiť obe súčasne.
Keď je na ceste viac routerov, skontrolujte každý, ktorý potrebuje trasu do fondu. Návrh sieť-sieť často vyžaduje, aby bol vzdialený prefix známy na viac ako jednom zariadení, a brána sama musí preposielať medzi tunelom a lokálnou sieťou; poznámky strongSwan k preposielaniu pokrývajú stránku sysctl a firewallu.
Zaznamenajte fond, prefix a zodpovednú osobu
Do poznámky patria štyri skutočnosti: fond, ktorý klient dostal, privátny prefix, ktorý potreboval, router zodpovedný za odpoveď a pravidlo prekladu, ak existuje. S nimi je neskoršia zmena brány porovnaním, nie vyšetrovaním.
Potom otestujte znova s bežným klientom a skutočným účtom aplikácie. Rozšírenie oprávnení aplikácie nemôže opraviť spätnú cestu paketu a zmena účtu počas tejto diagnostiky zmätie nasledujúce porovnanie. Ak sa návrh spolieha na preklad, zdokumentujte ho tam, kde sa čítajú logy servera. Kto v audítnej stope uvidí neznámu zdrojovú adresu, nemal by znova objavovať mapovanie z ticketu.