Tlačiareň na stole funguje ďalej po tom, čo sa tunel zdvihne, zatiaľ čo server v druhej kancelárii sa potichu preloží na niečo lokálne. Oba prejavy vychádzajú z rovnakého pravidla: vyhráva najkonkrétnejšia trasa a priamo pripojený prefix je čo najkonkrétnejší. Zvyčajne je to želaný dizajn a práve tak duplicitný privátny rozsah ukradne vzdialenú adresu. Keď si najprv prečítate voľbu jadra, záhadné zlyhanie sa zmení na porovnanie prefixov.

Pripojený prefix je konkrétnejší ako predvolená trasa

Tunel zvyčajne nainštaluje predvolenú trasu alebo množinu prefixov, zatiaľ čo lokálne rozhranie nesie pripojený prefix plus trasu do celej LAN. Medzi nimi rozhoduje zhoda najdlhšieho prefixu, takže cieľ vnútri prefixu LAN sa do tunela nikdy nedostane. Preto zostávajú tlačiareň, administrátorská stránka routera a lokálny NAS dostupné, kým je VPN zapnutá. Preto aj vzdialený zdroj v prekrývajúcom sa rozsahu ide na nesprávny stroj.

Privátny adresný priestor nie je jedinečný a to, že dve lokality zvolia rovnaký prefix, je dosť bežné na to, aby sa s tým počítalo. Keď sa rozsahy prekryjú, lokálna odpoveď príde rýchlo a pôsobí autoritatívne, takže zlyhanie sa ľahko prečíta ako problém s prihlásením. Cieľ odpovedal, len to nebol ten, ktorý ste mysleli.

Prečítajte si voľbu, ktorú by jadro urobilo

Spýtajte sa jadra, ktorú trasu by použilo pre presný cieľ, namiesto čítania tabuľky zhora. Potom hľadajte pravidlá politiky, ktoré by mohli vybrať inú tabuľku. Dva príkazy odpovedajú na obe otázky v priebehu niekoľkých sekúnd.

ip route get 10.20.30.41
ip route show table all | grep -E '10\.|default'
ip rule show

Prvý výstup uvádza rozhranie, ďalší skok a zdrojovú adresu, ktoré by jadro použilo, a to je odpoveď, na ktorej záleží. Hodnota dev ukazujúca na lokálny most znamená, že paket do tunela nikdy nevstúpi, čokoľvek tvrdí stavový panel VPN klienta. Filtrovaný zoznam tabuliek ukazuje, či iná tabuľka drží rovnaký prefix, a zoznam pravidiel ukazuje poradie, v ktorom sa tieto tabuľky konzultujú. Pravidlo politiky môže poslať prefix cez konkrétnu tabuľku aj keď hlavná tabuľka nesúhlasí, takže to poradie je súčasťou odpovede.

Lokálny prístup je samostatné oprávnenie

Mať trasu nie je to isté ako mať oprávnenie ju použiť. Väčšina klientov dokáže zablokovať lokálnu sieťovú komunikáciu, kým je tunel zdvihnutý, a to nastavenie je rozhodnutie politiky, nie artefakt smerovania. Keď do návrhu patrí dôveryhodná blízka služba, zapnite podporovanú voľbu lokálneho prístupu namiesto vymýšľania trás. Keď je zariadenie na verejnej Wi-Fi, nechajte ju vypnutú.

Obe vrstvy zlyhávajú inak. Zablokovaná lokálna cesta vyvolá časový limit, aj keď trasa existuje, zatiaľ čo prekrývajúca sa trasa vráti odpoveď od nesprávneho hostiteľa. Rozlíšiť ich stojí jeden dotaz a ušetrí popoludnie zmien firewallu, a usporiadanie preposielania je opísané v poznámky strongSwanu k preposielaniu.

Opravte prekrytie bez hromadenia trás k hostiteľom

Trasa k hostiteľovi pre jednu adresu vyzerá, že prekrytie opraví, a zlyhá v okamihu, keď je potrebná druhá adresa z rovnakého rozsahu. Po dvadsiatich takých už nikto nepovie, ktorý prefix je smerodajný. Trvalé riešenia sú zmena adresovania, zdokumentovaná topológia, ktorá sa vyhýba duplicitnému rozsahu, alebo preklad na jednom konci. Každé stojí čas na plánovanie raz, namiesto údržby navždy.

Ak je dočasná trasa k hostiteľovi naozaj nutná, zapíšte vedľa nej dôvod, vlastníka a dátum, aby sa dala neskôr odstrániť. Potom otestujte presnú adresu a službu plus verejný cieľ, pretože zmena lokálneho prístupu, ktorá potichu vylúči nesúvisiace aplikácie z tunela, je horšia než pôvodná porucha. Držte lokálny prefix a vzdialený prefix zapísané oddelene; ten zvyk bráni tomu, aby sa funkčný lokálny ping posúval ako dôkaz, že vzdialená kancelária je dostupná.

Súvisiace články