VPN vardų serveris nuolat atsiduria žemiau LAN vardų serverio, o /etc/resolv.conf redagavimas tai sutvarko kelioms minutėms. Šis failas generuojamas, todėl pataisa niekada neišlieka. Debian resolvconf tvarkos įvestis yra /etc/resolvconf/interface-order, ir ji rūšiuoja įrašų pavadinimus, o ne DNS adresus. Prieš liesdami bet kurį iš dviejų failų, patvirtinkite, kuris resolver dėklas iš tikrųjų atsakingas.

Patvirtinkite, kad išvestį valdo resolvconf

Pradėkite klausdami, kas įrašė dabartinį failą ir kas jį įrašys dar kartą. Paketas resolvconf apibūdina save kaip dinaminės resolver konfigūracijos pagrindą, o sistema, vykdanti systemd-resolved arba NetworkManager valdomą resolver, iš išorės gali atrodyti taip pat, nors naudoja visiškai kitą politiką.

readlink -f /etc/resolv.conf
dpkg -l resolvconf 2>/dev/null | tail -n 1

Jei išspręstas kelias neveda į resolvconf vykdymo katalogą, sustokite čia: šis vadovas priklauso kitam dėklui.

Tik po šio patikrinimo verta išvardyti įrašus, kuriuos resolvconf šiuo metu laiko.

Perskaitykite įrašus prieš rašydami šablonus

interface-order atitinka tiekėjo įrašų pavadinimus, o ne adresus ir ne branduolio sąsajų pavadinimus. Išvardykite, kas užregistruota, kad jūsų šablonai rodytų į egzistuojančius įrašus.

ls /run/resolvconf/interfaces
cat /etc/resolvconf/interface-order

Įrašo pavadinimas paprastai turi priesagą, nurodančią jo tiekėją, todėl tunelio įrašas ir DHCP įrašas gali dalytis sąsajos priešdėliu ir vis tiek rikiuotis skirtingai. Nukopijuokite tikslius pavadinimus iš katalogo sąrašo. Neišveskite pavadinimo iš sąsajos pavadinimo, nes kliento integracija nusprendžia, kas registruojama. Išgalvotas pavadinimas niekada nesutaps, o įrašas be jokio klaidos pranešimo nukris į viską sugaunantį šabloną.

Užrašykite tvarką kaip pirmo atitikimo šablonus

Failas yra shell glob šablonų sąrašas, vienas eilutėje. Įrašas užima pirmo šablono, kurį atitinka, vietą, todėl platus šablonas virš konkretaus padaro konkrečią eilutę nepasiekiamą.

# /etc/resolvconf/interface-order
lo*
tun_work.*
enp*
*

Konkretų tunelio šabloną dėkite virš viską sugaunančio šablono ir virš fizinės sąsajos šablono.

Išsaugokite kitas eilutes, kurios jau buvo faile. Pakeisti visą politiką pavyzdžiu yra būdas, kuriuo nesusiję tiekėjai tyliai pasislenka; pakeiskite vieną eilutę, generuokite iš naujo ir palyginkite. Šablonuose negali būti tarpų, pasvirųjų brūkšnių ar pradinio taško bei tildės, o tuščios eilutės ir komentarai su grotelėmis ignoruojami.

Generuokite iš naujo ir patikrinkite rezultatą

Tvarka taikoma, kai atnaujinimo scenarijai perstato failą. Paleiskite palaikomą atnaujinimo kelią, o ne redaguokite sugeneruotą išvestį, tada perskaitykite, ką resolver iš tikrųjų gavo.

resolvconf -u
cat /etc/resolv.conf

Patikrinkite dvi užklausas, o ne vieną: privatų vardą, kuris turėtų išsispręsti per tunelį, ir viešą kontrolinį vardą. Jei privatus vardas vis dar nepavyksta, nors tvarka atrodo teisinga, problema yra vardų erdvės maršrutizavimas, o ne įrašų prioritetas, ir joks perrikiavimas to nepataisys. Palyginkite kiekvieną atsakymą su serveriu, kuris jį grąžino, o ne tik su sėkme. Neteisingo resolver atsakytas privatus vardas vis tiek yra klaida, ir naudotojui tai atrodo kaip DNS sutrikimas.

Išimkite pasenusį įrašą iš naudojimo, o ne sumažinkite jo rangą

Pasenęs VPN įrašas, kuris po atsijungimo vėl pasirodo, yra kliento integracijos gyvavimo ciklo klaida. Jo perkėlimas į sąrašo pabaigą paslepia simptomą ir palieka negyvą resolver sąraše.

Išimkite jį per komponentą, kuris jį registruoja, tada patvirtinkite, kad įrašų katalogas jo nebelistuoja.

Užrašykite tiekėjo pavadinimą, pakeistą šabloną ir dvi užklausas, kurias atlikote. Kitam žmogui tų pavadinimų reikia labiau nei istorijos.

Susiję straipsniai