Linuxin VPN-liitännän tutkiminen ip linkillä, kerros kerrokselta
Liput ja laskurit kuvaavat vain yhtä kerrosta. Lue linkki, sitten laskurit, sitten osoitteet ja reitit, ennen kuin päättelet tunnelin olevan rikki.
Asiakkaan kuvake näyttää yhdistettyä, liitäntä on olemassa, eikä sovellus silti tavoita mitään. Yhdistelmä on tavallinen, koska virtuaalinen liitäntä voi pysyä olemassa, vaikka sen etäpää, osoitteet tai reitit puuttuvat. ip link on oikea ensimmäinen työkalu ja samalla helpoimmin ylitulkittava. Liput ja laskurit kuvaavat yhtä kerrosta, ja niiden yläpuoliset kerrokset epäonnistuvat itsenäisesti. Se on myös työkalu, jota ihmiset lainaavat halutessaan todistaa tunnelin olevan pystyssä, juuri se väite, jota se ei yksin pysty tukemaan.
Lue liitäntä ennen kuin luet kuvaketta
Aloita ip -details link show dev tun0 kuten ip-link-käsikirjassa kuvataan, ja korvaa tavanomainen nimi liitännällä, joka asiakkaallasi todella on. Liput, tyyppi, MTU ja liitännän identiteetti ovat hyödyllisiä havaintoja. Virtuaalisen liitännän tilan sanamuodon ei tarvitse käyttäytyä kuin fyysisen kaapelin kantoaallon osoitin, joten käsittele UP:tä väitteenä liitännästä, ei tunnelista.
Tämä ero selittää hämmentävimmän tapauksen: liitäntä, joka pysyy, kun etäpää yhdistää uudelleen tai on tavoittamattomissa.
Pysyvyysasetukset voivat pitää linkin juuri siksi, ettei uudelleenyhdistäminen rakenna sitä uudelleen, mikä tarkoittaa, ettei läsnäolo ole terveyttä.
Lisää laskurit ja pyyntö, jonka pitäisi käyttää niitä
Käytä tuettua tilastonäkymää ip -s link show dev tun0 ja kirjaa paketti- ja tavulaskurit molempiin suuntiin. Luo sitten harmiton pyyntö, jonka pitäisi kulkea liitännän läpi, ja vertaa kyseistä suuntaa. Pyyntö, joka otti toisen sovelluksen suoran reitin, ei liikuta näitä laskureita, ja juuri siinä harjoituksen pointti on.
Jos lähetyslaskuri liikkuu ja vastaanottolaskuri ei, paketti lähti eikä mitään tullut takaisin. Se on eri ongelma kuin liitäntä, joka ei koskaan kuljettanut mitään. Jos molemmat laskurit liikkuvat ja sovellus silti epäonnistuu, vika on liitännän yläpuolella, mikä on edistystä eikä umpikuja.
Ota lukema kahdesti, kerran ennen ja kerran jälkeen, sen sijaan että luottaisit yhteen tilannekuvaan.
Osoitteet ja reitit ovat erillisiä vaiheita
Linkki voi olla olemassa ilman etuliitettä, resolverin asetusta tai reittiä, jota sovellus tarvitsee. Tarkista osoite komennolla ip address show dev tun0, tarkista sitten minkä reitin kohde valitsisi komennolla ip route get varsinaiselle kohteelle. Nämä kolme havaintoa vastaavat kolmeen eri kysymykseen, ja vain viimeinen koskee välitystä.
IPsecissä myös tietoturvakäytännöllä ja assosiaation tilalla voi olla merkitystä, eikä jokainen IPsec-ratkaisu näy yksinkertaisena tun-liitäntänä. Sellaisen tun-laitteen etsiminen, jota ei koskaan pitänyt olla, on nopea tie väärään johtopäätökseen.
Kirjaa tarkka nimi, nimiavaruus ja aika minkä tahansa säilytettävän tulosteen yhteyteen, koska samannäköinen nimi toisessa kontissa tai palautetussa istunnossa edustaa täysin toista asiayhteyttä.
Älä poista sitä, mitä et ole tunnistanut
Tuntematon liitäntä ei ole automaattisesti vanhentunut. Selvitä sen omistaja ennen kuin poistat mitään, ja kun poistaminen on todella tarkoitus, käytä asiakkaan dokumentoitua purkamista tai hallittua määritystä. Toimivan tunnelin poistaminen sen nähdäkseen, mitä tapahtuu, on testi, joka vastaa kysymykseen, jota kukaan ei esittänyt.
Jos liitäntä kuuluu konttiympäristölle tai verkon nimiavaruudelle, jota et luonut, omistaja on yhden komennon päässä ja kannattaa löytää ensin.
Sama varovaisuus koskee myös komentoa ip link set down, joka näyttää peruttavalta eikä usein ole.
Mitä tarkastuksen pitäisi jättää sinulle
Hyvä tarkastus päättyy neljään tosiseikkaan: liitännän nimi ja nimiavaruus, sen liput ja MTU, laskurien delta todellisesta pyynnöstä sekä reitti ja osoite, jonka sovellus todella tarvitsee. Kun ne on kirjoitettu, seuraava askel on ilmeinen ja kuuluu tietylle kerrokselle. Ilman niitä jokainen myöhempi muutos on arvaus, jolla on palautussuunnitelma.
Vertaa näitä neljää tosiseikkaa samoihin neljään toimivasta istunnosta. Jos liitännän nimi ja nimiavaruus täsmäävät mutta laskurien delta on nolla, pyyntö ei koskaan saavuttanut tunnelia. Jos delta on terve ja reitti osoittaa muualle, tunneli on kunnossa ja reititys ei. Juuri tämä vertailu muuttaa tulostekasan päätökseksi.
Pidä tuloste lipun yhteydessä, koska myöhempi vertailu on hyödyllinen vain jos näet, mikä muuttui.
Sulje sitten silmukka testaamalla sovellus uudelleen, koska liitäntä ei koskaan ollut se, josta käyttäjä välitti.