NXDOMAIN VPN:n yli ei tarkoita tunnelin katkeamista
Kielteinen vastaus tarkoittaa, että resolver vastasi, ei että paketit pysähtyivät. Lue koodi, resolver ja välimuistiin tallennettu vastaus ennen kuin rakennat mitään uudelleen.
On houkuttelevaa lukea yksi epäonnistunut haku todisteeksi siitä, että tunneli romahti, varsinkin kun nimi toimi kymmenen minuuttia aiemmin. Vastaus sanoo toisin. NXDOMAIN on valmistunut DNS-tapahtuma, jossa resolver ilmoitti, ettei kysyttyä nimeä ole olemassa; rikkinäinen tunneli tuottaa yleensä hiljaisuuden, aikakatkaisun tai ratkaisuyrityksen väärää palvelinta vastaan. Argumentin wiresharkiton versio on yksi kysely, yksi vastaaja ja yksi vastauskoodi, ja tämä kolmikko kannattaa tallentaa ennen mitään kokoonpanomuutoksia.
Mitä vastaus itse asiassa todistaa
DNS erottelee tulokset, jotka asiakkaat usein yhdistävät yhdeksi virheeksi. Olematon nimi tuottaa kielteisen vastauksen NXDOMAIN-koodilla, kun taas nimi, joka on olemassa mutta jolla ei ole pyydetyn tyyppistä tietuetta, tuottaa onnistuneen vastauksen tyhjällä vastausosalla. Molemmat näyttävät sovellukselle hyödyttömiltä, ja vain toinen niistä tarkoittaa, että nimi on väärä.
Tämä ero ratkaisee, mihin korjaus kuuluu. Puuttuva AAAA-tietue isännässä, jolla on A-tietue, ei ole puuttuva isäntä, ja sertifikaatin uudelleen myöntäminen tai tunnelin uudelleenrakentaminen sen perässä juoksemiseksi tuhlaa ainoan saatavilla olleen vihjeen. Ero määrittää myös jatkon muodon: nimeämisongelma korjataan vyöhykkeessä ja tyyppiongelma korjataan kysymällä oikeaa tietuetta tai hyväksymällä, että osoiteperhe yksinkertaisesti puuttuu.
Myytti: puuttuva yksityinen nimi tarkoittaa, että tunneli epäonnistui
Myytti elää, koska nämä kaksi tapahtumaa saapuvat niin usein yhdessä. Asiakas yhdistää VPN:ään, käyttöjärjestelmä pitää resolverin, johon se jo luotti, ja sisäistä nimeä, jota se nyt tarvitsee, kysytään palvelimelta, joka ei ole koskaan kuullut yksityisestä vyöhykkeestä. Se palvelin vastaa rehellisesti ja kielteisesti. Tunneli kuljettaa pakettia; vastaus koskee yksinkertaisesti nimiavaruutta, jota vastaaja ei palvele.
Split-horizon-järjestelyt tekevät tästä rutiinia: sama vyöhykkeen nimi on olemassa julkisesti ja sisäisesti eri sisällöillä, ja vain sisäinen resolver tuntee yksityiset tietueet. Siksi auktoriteettiselta näyttävän kielteisen vastauksen saaminen on todiste siitä, kuka resolver vastasi, ei todiste rajapinnan tilasta.
Kaksi kokoonpanon yksityiskohtaa ratkaisee tuloksen. Tunnelin on työnnettävä tai valittava sisäinen resolver, ja asiakkaan on sovellettava tätä valintaa haettavaan nimeen. Yhden toimialueen sääntö, joka nimeää hieman erilaisen liitteen kuin kirjoittamasi tietue, lähettää kyselyn julkiselle polulle, ja vastaus on oikea ja hyödytön.
Kysy oikealta resolverilta oikealla nimellä
Tallenna vastaaja ennen tuomion tallentamista. Haku, joka ei näytä, mikä palvelin vastasi, ei voi erottaa käytäntöongelmaa nimiavaruusongelmasta, ja näiden kahden korjaukset eivät liity toisiinsa.
resolvectl query vpn.internal.example
resolvectl status | grep -A3 'DNS Servers'
dig +search app.intranet.example A
dig @10.8.0.1 app.intranet.example A
Kaksi ensimmäistä riviä näyttävät, mitä paikallinen resolver päätti ja keneltä se kysyisi. +search-haku toistaa sen, mitä sovellus tekee lisätessään hakuliitteen, joka on usein varsinainen kysely eikä diagnostiikkatyökaluun kirjoitettu. Viimeinen rivi kysyy sisäiseltä palvelimelta suoraan asiakaskäytännön ohi; jos se onnistuu, kun tavallinen haku epäonnistuu, vyöhyke on kunnossa eikä kyselyjen reititys ole.
Kielteinen välimuisti selittää viiveen korjauksen jälkeen
Kielteiset vastaukset välimuistiin tallennetaan suunnittelun mukaan, ja RFC 2308 kuvaa, miten kielteisen välimuistin elinikä johdetaan vyöhykkeen valtuutustietueesta. Siksi tietueen tai resolverisäännön korjaaminen ei takaa välitöntä muutosta asiakkaalla, eikä välimuistiin tallennettua vastausta yhä palauttavan haun toistaminen todista mitään uutta. Vain toinen vastaaja, toinen nimi tai tyhjennetty välimuisti tuottaa tuoreita todisteita.
Tyhjennä paikallinen välimuisti ja toista sitten sama kysely samaa vastaajaa vastaan. Järjestelmissä, jotka käyttävät paikallista resolveripalvelua, se on yksi komento; toisissa se on palvelun uudelleenkäynnistys tai alustan apuohjelma, ja konkreettinen työkalu on vähemmän tärkeä kuin samanlaisen testin toistaminen sen jälkeen.
Erota nimi polusta
Kun nimi on ratkennut odotetuksi yksityiseksi osoitteeksi, DNS on aiheena valmis ja sovelluksen polusta tulee seuraava kysymys. Isäntä, joka vastaa hakuihin mutta hylkää yhteyden, kärsii eri ongelmasta, ja resolvereiden säätämisen jatkaminen oikean vastauksen jälkeen on tapa, jolla tapaus saa kolme toisiinsa liittymätöntä muutosta. Vertaa ratkennutta osoitetta siihen, jossa palvelu todella kuuntelee, ennen kuin oletat, että kaksi täsmäävät.
Säilytä tallenne: kysely, vastaaja, koodi ja ratkennut osoite. Tämä kirjaus on myös se, mikä tekee myöhemmästä raportista todennettavan, ja se on ero diagnoosin ja hitaalta vaikuttaneesta tunnelista kertovan tarinan välillä.