Poradie záznamov v Debian resolvconf: dajte záznam VPN na prvé miesto
Názvový server VPN neustále padá pod ten sieťový, pretože resolvconf triedi názvy záznamov. Upravte interface-order, znova vygenerujte a overte dve dopytovania.
Názvový server VPN neustále končí pod tým v LAN a úprava /etc/resolv.conf to opraví na pár minút. Tento súbor sa generuje, takže oprava nikdy nevydrží. V debianskom resolvconf je vstupom pre poradie /etc/resolvconf/interface-order a triedi názvy záznamov, nie adresy DNS. Predtým než sa dotknete ktoréhokoľvek z dvoch súborov, overte, ktorý zásobník prekladu mien je skutočne nadradený.
Overte, že výstup vlastní resolvconf
Začnite otázkou, čo zapísalo aktuálny súbor a čo ho zapíše znova. Balík resolvconf sa opisuje ako rámec pre dynamickú konfiguráciu prekladača a hostiteľ so systemd-resolved alebo prekladačom spravovaným NetworkManagerom môže zvonku vyzerať rovnako, ale používať úplne inú politiku.
readlink -f /etc/resolv.conf
dpkg -l resolvconf 2>/dev/null | tail -n 1
Ak preložená cesta nevedie do bežiaceho adresára resolvconf, zastavte sa tu: tento návod patrí inému zásobníku.
Až po tejto kontrole má zmysel vypísať záznamy, ktoré resolvconf práve drží.
Prečítajte si záznamy skôr, než začnete písať vzory
interface-order porovnáva názvy záznamov dodávateľa, nie adresy a nie názvy rozhraní jadra. Vypíšte, čo je zaregistrované, aby vaše vzory odkazovali na existujúce položky.
ls /run/resolvconf/interfaces
cat /etc/resolvconf/interface-order
Názov záznamu zvyčajne nesie príponu určujúcu jeho dodávateľa, takže záznam tunela a záznam DHCP môžu zdieľať predponu rozhrania a napriek tomu sa triediť inak. Skopírujte presné názvy z výpisu adresára. Neodvodzujte názov z názvu rozhrania, pretože o tom, čo sa zaregistruje, rozhoduje integrácia klienta. Vymyslený názov nikdy nesedí a záznam prepadne vzoru, ktorý chytá všetko, bez akéhokoľvek chybového hlásenia.
Zapíšte poradie ako vzory prvého výskytu
Súbor je zoznam vzorov shell glob, jeden na riadok. Záznam zaujme pozíciu prvého vzoru, ktorému zodpovedá, takže široký vzor nad konkrétnym robí konkrétny riadok nedostupným.
# /etc/resolvconf/interface-order
lo*
tun_work.*
enp*
*
Umiestnite konkrétny vzor tunela nad vzor, ktorý chytá všetko, a nad vzor fyzického rozhrania.
Zachovajte ostatné riadky, ktoré súbor už mal. Nahradenie celej politiky príkladom je spôsob, akým sa nesúvisiaci dodávatelia ticho presúvajú; zmeňte jeden riadok, znova vygenerujte a porovnajte. Vzory nesmú obsahovať medzery, lomky ani začiatočnú bodku či vlnku a prázdne riadky a komentáre s mriežkou sa ignorujú.
Znova vygenerujte a overte výsledok
Poradie sa uplatní, keď aktualizačné skripty súbor znova zostavia. Spustite podporovanú aktualizačnú cestu namiesto úpravy generovaného výstupu a potom si prečítajte, čo prekladač skutočne dostal.
resolvconf -u
cat /etc/resolv.conf
Overte dve dopytovania, nie jedno: súkromný názov, ktorý sa má preložiť tunelom, a verejný kontrolný názov. Ak súkromný názov stále zlyháva, aj keď poradie vyzerá správne, problém je v smerovaní menného priestoru, nie v priorite záznamov, a žiadne preusporiadanie to nespraví. Každú odpoveď porovnávajte so serverom, ktorý ju vrátil, nie iba s úspechom. Súkromný názov zodpovedaný nesprávnym prekladačom je stále zlyhanie a používateľovi to pripadá ako výpadok DNS.
Vyraďte zastaraný záznam namiesto toho, aby ste ho degradovali
Zastaraný záznam VPN, ktorý sa po odpojení znova objavuje, je chyba životného cyklu v integrácii klienta. Presun na koniec skryje príznak a v zozname nechá mŕtvy prekladač.
Vyraďte ho cez komponent, ktorý ho registruje, a potom overte, že adresár záznamov ho už neuvádza.
Zapíšte názov dodávateľa, vzor, ktorý ste zmenili, a dve dopytovania, ktoré ste spustili. Ďalšiemu človeku sú tie názvy užitočnejšie než príbeh.