Prečo hostiteľská trasa /32 udržiava koncový bod VPN dostupný
Hostiteľská trasa vyberá jednu adresu, nie podsieť. Môže udržať koncový bod tunela dostupný alebo pripútať jeden zdroj, ale starne, keď sa adresy menia.
Po pripojení otvoríte smerovaciu tabuľku a nájdete jednu adresu smerovanú cez tunel, zatiaľ čo podsieť okolo nej stále ide na lokálnu bránu. Tento záznam je hostiteľská trasa: jedna adresa, zhodná s prefixom samých jednotiek. Záleží na tom, pretože smerovacie rozhodnutia používajú najdlhší zhodný prefix, takže /32 môže prebiť /24 alebo predvolenú trasu bez toho, aby sa zmenila ktorákoľvek z nich. Či je to starostlivá výnimka alebo budúci výpadok, závisí od toho, ktorú adresu pomenúva a kto ju udržiava.
Jedna adresa, jeden záznam v tabuľke
Hostiteľská trasa IPv4 nesie prefix /32 a hostiteľská trasa IPv6 nesie /128, čo znamená, že záznam sa môže zhodovať presne s jednou cieľovou adresou. Nič iné v tabuľke sa nehýbe: krycia podsieť a predvolená trasa zostávajú tam, kde boli. Úzky záznam vyhráva pre túto adresu preto, že jeho prefix je dlhší, a nie preto, že bol pridaný neskôr.
Táto vlastnosť robí z hostiteľskej trasy dobrú výnimku a zlý zvyk. Dva záznamy /32, ktoré pomenúvajú vchodové dvere služby, nepokrývajú jej druhú adresu, jej adresu IPv6 ani adresu, na ktorú sa budúci mesiac presunie. Tabuľka plná nevysvetlených záznamov s jednou adresou zvyčajne znamená, že niekto stále záplatoval okolo rozhodnutia o podsieti namiesto toho, aby ho urobil. Najprv si prečítajte dĺžku prefixu a potom sa opýtajte, pred čím má záznam chrániť.
Čítajte záznam od klienta smerom von
Začnite na stroji s problémom, pretože tá istá adresa sa môže smerovať inak na notebooku a na bráne pred ním. Opýtajte sa jadra, ktorú cestu by zvolilo pre presnú adresu, ktorú aplikácia používa, namiesto čítania tabuľky zhora. Odpoveď obsahuje rozhranie a ďalší skok, ktoré spolu tvoria rozhodnutie.
ip route get 203.0.113.25
ip -6 route get 2001:db8:4::25
ip route show | grep -F 203.0.113.25
Find-NetRoute -RemoteIPAddress 203.0.113.25
Zopakujte dopyt pre rodinu adries, ktorú aplikácia skutočne volí, pretože klient môže uprednostniť IPv6 a potichu obísť výnimku IPv4. Porovnajte výsledok pred zdvihnutím tunela a po ňom a oba výstupy si ponechajte. Toto porovnanie ukáže, či klient záznam pridal pri pripojení alebo tam už bol.
Trvalý záznam a záznam runtime zlyhávajú rôzne. Záznam runtime zmizne so sedením, zatiaľ čo trvalý prežije reštart a ďalej posiela prevádzku bráne, ktorá už neexistuje.
Výnimka koncového bodu a pasca rekurzie
Klienti VPN zvyčajne inštalujú hostiteľskú trasu na vonkajšiu adresu servera cez pôvodnú bránu, skôr než presmerujú predvolenú trasu. Bez tohto záznamu by sa šifrované pakety posielali do tunela, ktorý sa snažia postaviť, a spojenie by sa točilo v slučke, kým by nevypršal čas.
Pasca sa objaví, keď prijímané podsiete tunela náhodou zahrnú tú adresu koncového bodu, alebo keď druhý profil neskôr pridá širšiu trasu. Záznam koncového bodu potom prehrá s dlhším prefixom a sedenie sa zrúti, len čo začne prepúšťať prevádzku. Zapísať adresu koncového bodu vedľa prijímaných podsietí je najlacnejší spôsob, ako si kolíziu všimnúť pred používateľmi. Vysvetľuje to aj to, prečo ten istý profil funguje z jednej siete a z inej zlyháva.
Overte cestu, ktorú aplikácia skutočne používa
Úspešný ping na názov hostiteľa je slabý dôkaz, keď sa aplikácia pripája na inú adresu alebo inú rodinu. Overte presnú kombináciu adresy, rodiny, portu a rozhrania na stroji, ktorý spúšťa klienta.
ip route get 203.0.113.25
sudo nft list ruleset | grep -A 4 'chain output'
curl -sS --max-time 8 -o /dev/null -w '%{remote_ip}
' https://app.example.net
Ak je cesta nesprávna, rozhodnite, či je požiadavka sieť alebo jedna adresa, skôr než čokoľvek upravíte. Požiadavka na jednu adresu odôvodňuje hostiteľskú trasu s komentárom a vlastníkom; služba s rotujúcimi adresami potrebuje smerovanie založené na doméne alebo čestné rozhodnutie o podsieti.
Odstraňujte záznamy, ktoré už nezodpovedajú skutočnému cieľu, a tie, ktoré si ponecháte, poznamenajte. Nevysvetlené /32 je o tri mesiace nerozoznateľné od chyby a ďalší človek ho zmaže bez toho, aby vedel, čo na ňom záviselo.