Ordem de registos do resolvconf no Debian: coloque o registo VPN primeiro
O servidor de nomes da VPN cai sempre abaixo do da LAN porque o resolvconf ordena nomes de registo. Edite interface-order, regenere e verifique duas consultas.
O servidor de nomes da VPN acaba sempre abaixo do da LAN, e editar /etc/resolv.conf corrige isso por alguns minutos. Esse ficheiro é gerado, pelo que a correção nunca sobrevive. No resolvconf do Debian a entrada de ordenação é /etc/resolvconf/interface-order, e ordena nomes de registo em vez de endereços DNS. Confirme que pilha de resolução manda realmente antes de tocar em qualquer dos dois ficheiros.
Confirme que o resolvconf é dono da saída
Comece por perguntar o que escreveu o ficheiro atual e o que voltará a escrevê-lo. O pacote resolvconf descreve-se como uma estrutura para configuração dinâmica de resolvedores, e um anfitrião que execute systemd-resolved ou um resolvedor gerido pelo NetworkManager pode parecer igual de fora enquanto usa uma política completamente diferente.
readlink -f /etc/resolv.conf
dpkg -l resolvconf 2>/dev/null | tail -n 1
Se o caminho resolvido não conduzir ao diretório de execução do resolvconf, pare aqui: este guia pertence a outra pilha.
Só depois dessa verificação vale a pena listar os registos que o resolvconf mantém neste momento.
Leia os registos antes de escrever padrões
interface-order corresponde aos nomes dos registos do fornecedor, não a endereços nem a nomes de interface do núcleo. Enumere o que está registado para que os seus padrões se refiram a entradas que existem.
ls /run/resolvconf/interfaces
cat /etc/resolvconf/interface-order
Um nome de registo costuma trazer um sufixo que identifica o seu fornecedor, pelo que um registo de túnel e um registo DHCP podem partilhar um prefixo de interface e ainda assim ordenar-se de forma diferente. Copie os nomes exatos da listagem do diretório. Não deduza um nome a partir do nome da interface, porque é a integração do cliente que decide o que regista. Um nome inventado nunca corresponderá, e o registo cairá no padrão que apanha tudo sem qualquer mensagem de erro.
Escreva a ordem como padrões de primeira correspondência
O ficheiro é uma lista de padrões glob de shell, um por linha. Um registo ocupa a posição do primeiro padrão com que corresponde, pelo que um padrão amplo acima de um concreto torna a linha concreta inatingível.
# /etc/resolvconf/interface-order
lo*
tun_work.*
enp*
*
Coloque o padrão concreto do túnel acima do padrão que apanha tudo e acima do padrão da interface física.
Mantenha as outras linhas que o ficheiro já tinha. Substituir toda a política por um exemplo é como fornecedores não relacionados se deslocam em silêncio; altere uma linha, regenere e compare. Os padrões não podem conter espaços, barras inclinadas nem um ponto ou til inicial, e as linhas vazias e os comentários com cardinal são ignorados.
Regenere e verifique o resultado
A ordem aplica-se quando os scripts de atualização reconstroem o ficheiro. Acione o caminho de atualização suportado em vez de editar a saída gerada, e depois leia o que o resolvedor recebeu realmente.
resolvconf -u
cat /etc/resolv.conf
Verifique duas consultas, não uma: um nome privado que deveria resolver-se pelo túnel e um nome de controlo público. Se o nome privado continuar a falhar enquanto a ordem parece correta, o problema é o encaminhamento do espaço de nomes e não a prioridade dos registos, e nenhuma reordenação o corrigirá. Compare cada resposta com o servidor que a devolveu, não apenas com o sucesso. Um nome privado respondido pelo resolvedor errado continua a ser uma falha, e para o utilizador parece uma falha de DNS.
Retire o registo obsoleto em vez de o despromover
Um registo VPN obsoleto que reaparece após a desconexão é um erro de ciclo de vida na integração do cliente. Movê-lo para o fundo esconde o sintoma e deixa um resolvedor morto na lista.
Retire-o através do componente que o regista e depois confirme que o diretório de registos já não o lista.
Anote o nome do fornecedor, o padrão que alterou e as duas consultas que executou. A pessoa seguinte precisa mais desses nomes do que da história.