VPN brána potrebuje IP preposielanie: čo skontrolovať
Brána môže odpovedať na vlastnej adrese a pritom nič neprechádza medzi rozhraniami. Skontrolujte preposielanie podľa rodiny a potom spiatočnú cestu.
Váš klient môže pingnúť adresu brány, zatiaľ čo všetky zdroje za ňou zostávajú nedostupné. Táto dvojica pozorovaní opisuje hostiteľa, ktorý s vami hovorí, a router, ktorý neroutuje, čo sú rôzne úlohy na tom istom stroji. Preposielanie je prepínač medzi nimi.
Obe úlohy sú nezávislé, rovnako ako obe rodiny adries.
Odpoveď na vlastnú adresu nič nedokazuje
Keď je paket adresovaný samotnej bráne, miestny zásobník ho spotrebuje a žiadne rozhodnutie o preposielaní sa neprijme. Preto úspešný ping na adresu tunela alebo na správne rozhranie hovorí, že démon žije a tunel je hore, ale nič nehovorí o prevádzke určenej sieti za krabicou. Jadro sa na svoju cestu preposielania obracia len pri paketoch, ktoré nie sú adresované jemu.
Čítajte požiadavku ako úlohu, nie ako nastavenie: tento hostiteľ musí presúvať pakety medzi dvoma rozhraniami. Notebook, ktorý potrebuje len dosiahnuť vzdialenú sieť, túto úlohu nikdy nepreberá, a koncový bod site-to-site ju preberá vždy. Takéto čítanie požiadavky vysvetľuje, prečo funkčná klientská konfigurácia zlyhá, keď sa presunie na bránu.
To isté platí pre firewall pred rozhodnutím o preposielaní, ktorý má vlastnú politiku o tom, čo sa smie preposielať.
Skontrolujte každú rodinu adries zvlášť
Preposielanie IPv4 je jeden prepínač a preposielanie IPv6 je iný, s vlastným správaním na každom rozhraní. Zapnutie prvého nehovorí nič o druhom a klient s duálnym zásobníkom môže dosiahnuť polovicu siete, zatiaľ čo zvyšok zostáva tmavý. Dvaja klienti rôznych rodín sa preto môžu nezhodnúť na tej istej bráne. Pred úpravou ktoréhokoľvek nastavenia sa spýtajte, ktorú rodinu použil zlyhávajúci klient. Potvrďte obe, kým usúdite, že návrh routovania je nesprávny.
sysctl net.ipv4.ip_forward
sysctl -a --pattern 'net.ipv6.conf.(all|default).forwarding'
nft list ruleset | head -n 40
V mnohých distribúciách hodnotu, ktorú čítate za behu, umiestnila služba alebo konfiguračný súbor, takže zmena vykonaná jednorazovým príkazom môže pri reštarte zmiznúť. Pred úpravou hodnoty za behu nájdite súbor, ktorý nastavenie vlastní.
Preposielanie je jedna zo štyroch požiadaviek
Funkčný preposielaný tok potrebuje štyri veci naraz: klient musí vedieť, že cieľ je za tunelom, brána musí mať cestu ďalej, odpovede musia mať cestu späť a firewall musí prevádzku povoliť. Preklad zdroja patrí do tohto návrhu ako voľba, nie ako pravidlo, pretože privátna routovaná sieť so symetrickými cestami ho nepotrebuje a asymetrická ho zvyčajne potrebuje. Každá zo štyroch zlyháva nezávisle, preto oprava jednej len zriedka pohne príznakom. Zapíšte všetky štyri, kým ktorúkoľvek zmeníte.
Cloudové platformy pridávajú piaty aspekt. Niektoré na inštanciách vynucujú kontroly zdroja a cieľa, čo zahadzuje preposielané pakety bez ohľadu na to, ako je nakonfigurované jadro hosťa. Autoritou je tam vlastná dokumentácia platformy k sieti, nie výstup sysctl vo vnútri VM.
Testujte z klienta, nie z brány
Test spustený v samotnom shelli brány neprejde žiadnou časťou cesty preposielania, ktorú ste práve povolili. Generujte prevádzku z klienta, ktorý má problém, a potvrďte, že dosiahne niečo za bránou, nie samotnú bránu. Je to jediný test, ktorý precvičuje úlohu, ktorú ste zmenili.
Držte pravidlá počúvania a pravidlá preposielania oddelene v hlave aj v zázname zmien. Otvorenie portu VPN pustí klientov k službe; v sieti za ňou im nič nedáva, a v zozname firewallu, ktorý roky rástol, vyzerajú obe rovnako.
Ak pakety dorazia a služba potom používateľa odmietne, už ste za hranicou sietí. Pokračujte autorizáciou aplikácie namiesto ďalšieho rozširovania politiky preposielania.