Den skickade DNS-servern finns i loggen, tunneln är uppe och interna namn misslyckas fortfarande. Ingenting är trasigt i själva utskicket; inställningen kom fram och stannade där. Ett skickat DNS-alternativ är ett meddelande till klienten, inte en instruktion till operativsystemets resolver, och överlämningen mellan dem är där de flesta av dessa fall slutar. Fem kontroller, i ordning, hittar överlämningen som inte skedde.

Kontroll ett: hur anslutningen börjar

Ägaren av anslutningen avgör vem som kan tillämpa resolverinställningar. Ett direkt openvpn-kommando från ett skal äger ingenting utöver sin egen process, medan en systemd-enhet, NetworkManager eller en leverantörsklient var och en har sitt eget sätt att publicera DNS. Läs processlistan och enhetsnamnet innan du antar något av dem.

En kommandoradsprocess är inte automatiskt en NetworkManager-anslutning, och en NetworkManager-anslutning är inte automatiskt det som skrev resolv.conf. Dessa två antaganden förklarar det mesta av de bortkastade timmarna i den här undersökningen. Fråga vilken komponent som skulle publicera DNS för det gränssnitt du faktiskt ser.

Skriv ner ägaren innan du fortsätter. Varje senare kontroll beror på den.

Kontroll två: vad resolverns länk faktiskt innehåller

På en systemd-resolved-värd listar resolvectl status varje länk med dess DNS-servrar och domäner. Hitta tunnel-länken och läs dess poster, och anta inte att gränssnittet heter tun0, eftersom numreringen följer ordningen de skapades i. Om den skickade adressen saknas på länken misslyckades överlämningen och inte frågan.

Om adressen finns är nästa fråga vilka domäner den länken gör anspråk på. En länk utan domänlista svarar bara på namn den tillfrågas direkt om, och det är sällan vad en split-DNS-utrullning vill ha. Adressen ensam är nödvändig men inte tillräcklig.

Jämför länknamnet i resolverns utdata med gränssnittsnamnet i VPN-loggen innan du drar någon slutsats. En avvikelse där betyder vanligtvis att loggraden kom från en annan process.

Kontroll tre: om namnrymden väljer den länken

En resolver kan ha rätt server och ändå inte bli tillfrågad. Domänen per länk avgör vilka frågor som går till vilken länk, och utan en routingdomän faller den privata namnrymden tillbaka på vad standardlänken säger. Därför kan resolvectl query för det interna namnet lyckas medan ett program fortfarande misslyckas. Programmet använder kanske en helt annan resolverväg.

Kontrollera domäntilldelningen, inte bara serverns adress. En domän skriven som ~corp.example är en routingdomän, och tilde-tecknet ändrar hur namnet matchas.

Om programmet har en egen resolver, testa med samma mekanism som det använder i stället för med systemverktyget. Ett frågeverktyg som kringgår systemresolvern lyckas oavsett länkens tillstånd.

Kontroll fyra: en ägare, inte två

Om NetworkManager redan hanterar VPN:en och resolverns tillstånd skapar tillägget av ett orelaterat hook-skript konkurrerande skribenter. Hooken som paketet tillhandahåller för systemd-resolved är en stödd integration och förväntar sig en viss livscykel: script-security 2, en up-sökväg, up-restart, en down-sökväg och down-pre. Dessa alternativ gör att registrering och borttagning sker vid rätt tillfällen i stället för bara vid den första anslutningen.

Använd den installerade sökvägen från paketet i stället för en illustrativ som kopierats från en guide. Behörigheter spelar också roll, eftersom hooken körs efter att privilegierna sänkts.

Att redigera ett distributions-resolverskript för att ändra dess utdatamål registrerar en omväg för en enda värd. Det är inte en allmän reparation.

Kontroll fem: samma resultat efter en återanslutning

Anslut igen och läs länken igen. En registrering som dyker upp en gång och försvinner vid nästa övergång är felet som hela den här checklistan finns för att fånga. Testa efter en vilolägenhet, efter en påtvingad återanslutning och efter en omstart av resolvertjänsten. Varje övergång prövar ett annat antagande om ordningen.

Först när alla fem kontrollerna går igenom vid en återanslutning kan du säga att de skickade inställningarna används. Allt tidigare är en ögonblicksbild av ett lyckligt ögonblick.

Relaterade artiklar