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.

Artigos relacionados