Kontrola rozhrania VPN v Linuxe pomocou ip link, vrstva po vrstve
Príznaky a počítadlá opisujú iba jednu vrstvu. Prečítajte si najprv prepojenie, potom počítadlá a až napokon adresy a trasy, skôr než usúdite, že tunel je pokazený.
Ikona klienta hlási pripojenie, rozhranie existuje a aplikácia napriek tomu nedosiahne nič. Takáto kombinácia je bežná, pretože virtuálne rozhranie môže zostať prítomné, aj keď chýba jeho vzdialený peer, adresy alebo trasy. ip link je správny prvý nástroj a zároveň ten, ktorý sa najľahšie prečíta príliš optimisticky. Príznaky a počítadlá opisujú jednu vrstvu a vrstvy nad nimi zlyhávajú nezávisle. Je to tiež nástroj, ktorý ľudia citujú, keď chcú dokázať, že tunel beží, hoci práve tento záver sám o sebe neunesie.
Prečítajte si rozhranie skôr, než uveríte ikone
Začnite príkazom ip -details link show dev tun0 podľa dokumentácie v manuáli k ip-link, pričom namiesto konvenčného názvu dosaďte rozhranie, ktoré váš klient skutočne používa. Príznaky, typ, MTU a identita rozhrania sú užitočné pozorovania. Znenie stavu virtuálneho rozhrania sa nemusí správať ako indikácia nosnej frekvencie fyzického kábla, takže UP berte ako tvrdenie o rozhraní, nie o tuneli.
Tento rozdiel vysvetľuje najzložitejší prípad: rozhranie pretrváva, zatiaľ čo vzdialená strana sa znova pripája alebo je nedostupná.
Nastavenia trvalosti môžu držať prepojenie práve preto, aby ho opätovné pripojenie nemuselo znovu vytvárať, čo znamená, že prítomnosť nie je zdravie.
Pridajte počítadlá a požiadavku, ktorá ich má použiť
Použite podporovaný pohľad na štatistiky, ip -s link show dev tun0, a všimnite si počty paketov a bajtov v oboch smeroch. Potom vygenerujte neškodnú požiadavku, ktorá by mala prejsť rozhraním, a porovnajte príslušný smer. Požiadavka, ktorá išla priamou trasou inej aplikácie, týmito počítadlami nepohne, a o to práve ide.
Ak sa počítadlo odosielania hýbe a počítadlo prijímania nie, paket odišiel a nič sa nevrátilo. To je iný problém než rozhranie, ktoré nikdy nič neprenieslo. Ak sa hýbu obe počítadlá a aplikácia stále zlyháva, chyba je nad rozhraním, čo je pokrok, nie slepá ulička.
Odčítajte hodnoty dvakrát, raz pred a raz po, namiesto dôvery jedinému snímku.
Adresy a trasy sú samostatné kroky
Prepojenie môže existovať bez prefixu, konfigurácie prekladača alebo trasy, ktorú aplikácia potrebuje. Adresu skontrolujte príkazom ip address show dev tun0, potom zistite, ktorú trasu by cieľ zvolil, príkazom ip route get pre skutočný cieľ. Tie tri pozorovania odpovedajú na tri rôzne otázky a iba posledné sa týka smerovania.
Pri IPsec môže záležať aj na bezpečnostnej politike a stave asociácie a nie každý návrh IPsec sa prejaví ako jednoduché rozhranie tun. Hľadanie zariadenia tun, ktoré nikdy nemalo vzniknúť, je rýchla cesta k nesprávnemu záveru.
Pri každom výstupe, ktorý si ponecháte, zaznamenajte presný názov, menový priestor a čas, pretože rovnako vyzerajúci názov v inom kontajneri alebo v obnovenej relácii predstavuje úplne iný kontext.
Nemažte to, čo ste neidentifikovali
Neznáme rozhranie nie je automaticky zastarané. Pred odstránením zistite jeho vlastníka a keď je odstránenie naozaj zamýšľané, použite dokumentovaný postup ukončenia v klientovi alebo spravovanú konfiguráciu. Zmazať živý tunel len aby ste videli, čo sa stane, je test, ktorý odpovedá na otázku, ktorú nikto nepoložil.
Ak rozhranie patrí kontajnerovému runtime alebo menovému priestoru siete, ktorý ste nevytvorili, vlastník je vzdialený jeden príkaz a stojí za to ho najprv nájsť.
Toto upozornenie platí aj pre ip link set down, ktorý vyzerá vratne a často nie je.
Čo by vám kontrola mala nechať
Dobrá kontrola končí štyrmi faktami: názov rozhrania a menový priestor, jeho príznaky a MTU, rozdiel počítadiel z reálnej požiadavky a trasa a adresa, ktorú aplikácia skutočne potrebuje. Keď sú zapísané, ďalší krok je zrejmý a patrí konkrétnej vrstve. Bez nich je každá ďalšia zmena dohad s plánom návratu.
Porovnajte tie štyri fakty s rovnakými štyrmi z funkčnej relácie. Ak sa názov rozhrania a menový priestor zhodujú, ale rozdiel počítadiel je nula, požiadavka sa k tunelu nikdy nedostala. Ak je rozdiel počítadiel zdravý a trasa ukazuje inam, tunel je v poriadku a smerovanie nie. Práve toto porovnanie mení kopu výstupu na rozhodnutie.
Výstup priložte k tiketu, pretože neskoršie porovnanie má zmysel len vtedy, keď vidíte, čo sa zmenilo.
Potom uzavrite slučku tým, že aplikáciu znova otestujete, pretože rozhranie nikdy nebolo to, na čom používateľovi záležalo.