NXDOMAIN per VPN nereiškia tunelio sutrikimo
Neigiamas atsakymas reiškia, kad resolveris atsakė, o ne kad paketai sustojo. Prieš ką nors atstatydami perskaitykite kodą, resolverį ir podėlyje saugomą atsakymą.
Vilioja vieną nepavykusią užklausą perskaityti kaip įrodymą, kad tunelis sugriuvo, ypač kai vardas veikė prieš dešimt minučių. Atsakymas sako ką kita. NXDOMAIN yra užbaigta DNS transakcija, kurioje resolveris pareiškė, kad užklaustas vardas neegzistuoja; sugedęs tunelis paprastai sukuria tylą, laiko limitą arba bandymą išspręsti prie netinkamo serverio. Argumento versija be wireshark yra viena užklausa, vienas atsakantis ir vienas atsakymo kodas, ir šį trejetą verta užfiksuoti prieš bet kokius konfigūracijos pakeitimus.
Ką atsakymas iš tikrųjų įrodo
DNS atskiria rezultatus, kuriuos klientai dažnai sulieja į vieną gedimą. Neegzistuojantis vardas sukuria neigiamą atsakymą su NXDOMAIN kodu, o egzistuojantis vardas, neturintis prašyto tipo įrašo, sukuria sėkmingą atsakymą su tuščiu atsakymo skyriumi. Abu programai atrodo kaip nieko naudingo, ir tik vienas iš jų reiškia, kad vardas neteisingas.
Šis skirtumas nulemia, kur priklauso taisymas. Trūkstamas AAAA įrašas hoste, turinčiame A įrašą, nėra trūkstamas hostas, o sertifikato pakartotinis išdavimas ar tunelio atstatymas jo persekiojimui iššvaisto vienintelį turimą užuominą. Skirtumas taip pat nulemia tolesnio veiksmo formą: vardų problema taisoma zonoje, o tipo problema taisoma paprašius teisingo įrašo arba priėmus, kad adresų šeimos tiesiog nėra.
Mitas: trūkstamas privatus vardas reiškia, kad tunelis nepavyko
Mitas gyvuoja, nes šie du įvykiai taip dažnai ateina kartu. Klientas prisijungia prie VPN, operacinė sistema išlaiko resolverį, kuriuo jau pasitikėjo, o vidinis vardas, kurio dabar reikia, klausiamas serverio, kuris niekada negirdėjo apie privačią zoną. Tas serveris atsako sąžiningai ir neigiamai. Tunelis neša paketą; atsakymas tiesiog apie vardų erdvę, kurios atsakantysis neaptarnauja.
Split-horizon išdėstymai tai daro įprasta: tas pats zonos vardas egzistuoja viešai ir viduje su skirtingu turiniu, ir tik vidinis resolveris žino privačius įrašus. Todėl autoritetingai atrodančio neigiamo atsakymo gavimas yra įrodymas, kuris resolveris atsakė, o ne sąsajos būklės įrodymas.
Rezultatą nulemia dvi konfigūracijos detalės. Tunelis turi stumti arba pasirinkti vidinį resolverį, o klientas turi pritaikyti tą pasirinkimą ieškomam vardui. Taisyklė pagal domeną, nurodanti šiek tiek kitokią priesagą nei įvestas įrašas, nukreips užklausą viešuoju keliu, ir atsakymas bus teisingas ir nenaudingas.
Klauskite teisingo resolverio teisingu vardu
Užfiksuokite atsakantįjį prieš užfiksuodami nuosprendį. Užklausa, kuri nerodo, kuris serveris atsakė, negali atskirti politikos problemos nuo vardų erdvės problemos, o jų taisymai nesusiję.
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
Pirmosios dvi eilutės rodo, ką nusprendė vietinis resolveris ir ko jis klaustų. +search užklausa atkuria tai, ką daro programa pridėdama paieškos priesagą, kuri dažnai yra tikroji užklausa, o ne ta, kuri įvesta diagnostikos įrankyje. Paskutinė eilutė klausia vidinio serverio tiesiogiai, apeinant kliento politiką; jei tai pavyksta, o paprasta užklausa nepavyksta, zona tvarkinga, o užklausų maršrutizavimas ne.
Neigiamas podėliavimas paaiškina vėlavimą po taisymo
Neigiami atsakymai podėliuojami pagal projektą, ir RFC 2308 aprašo, kaip neigiamo podėlio gyvavimo trukmė išvedama iš zonos autoriteto įrašo. Todėl įrašo ar resolverio taisyklės pataisymas negarantuoja nedelsiant pasikeitimo kliente, o užklausos, kuri vis grąžina podėlyje saugomą atsakymą, kartojimas nieko naujo neįrodo. Tik kitas atsakantysis, kitas vardas arba išvalytas podėlis duoda naujų įrodymų.
Išvalykite vietinį podėlį, tada pakartokite tą pačią užklausą tam pačiam atsakančiajam. Sistemose, naudojančiose vietinę resolverio tarnybą, tai viena komanda; kitose tai tarnybos paleidimas iš naujo ar platformos įrankis, ir konkretus įrankis mažiau svarbus nei po to pakartotas identiškas bandymas.
Atskirkite vardą nuo kelio
Kai vardas išsprendžiamas į lauktą privatų adresą, DNS kaip tema baigiasi ir sekantis klausimas tampa programos kelias. Hostas, kuris atsako į užklausas, bet atmeta ryšį, turi kitą problemą, o tolesnis resolverių derinimas po teisingo atsakymo yra būdas, kuriuo incidentas įgyja tris nesusijusius pakeitimus. Palyginkite išspręstą adresą su tuo, kuriuo tarnyba iš tikrųjų klausosi, prieš manydami, kad du sutampa.
Išsaugokite įrašą: užklausą, atsakantįjį, kodą ir išspręstą adresą. Šis įrašas taip pat daro vėlesnę ataskaitą patikrinamą, ir tai skirtumas tarp diagnozės ir istorijos apie tunelį, kuris atrodė lėtas.