O WireGuard pode ter um handshake recente e nenhum endereço ao mesmo tempo, e esse estado é coerente, não contraditório. O handshake é um evento do par, o endereço pertence à interface, e a rota decide por qual link ascendente um pacote sai. Três camadas, três donos, e cada uma pode falhar enquanto as outras duas parecem saudáveis.

Lê-los como um único status é o que transforma um diagnóstico de dois minutos numa tarde inteira de reiniciar serviços.

Um handshake é um evento do par, não um evento de endereçamento

O handshake do WireGuard prova que o par configurado respondeu com uma chave válida e que as chaves de sessão estão atualizadas. Não diz nada sobre o endereço local na interface, nem sobre se alguma rota aponta para lá. O endereço é atribuído por um assistente ou gestor de rede, enquanto a configuração do protocolo apenas nomeia pares e chaves. Confundir os dois é como um handshake saudável é lido como um túnel que funciona.

Por isso o wg show pode relatar um handshake de segundos numa interface que não consegue aceitar um único pacote de uma aplicação.

Um gestor que recria a interface pode derrubar o endereço sem tocar na configuração do par, e o handshake seguinte tem sucesso imediato porque as chaves nunca mudaram. A linha de registo sobre um handshake bem-sucedido é exata e irrelevante para a falha.

ObservationWhich layer it belongs toWrong conclusion it invites
Handshake a few seconds oldPeer and keysThe tunnel is usable for application traffic
Address present on wg0Interface configurationTraffic actually egresses through it
Route points at wg0Forwarding tableThe outer packet uses the intended uplink

O endereço da interface tem o seu próprio dono

Um endereço no dispositivo de túnel pode vir da linha Address de um assistente, de um cliente DHCP em execução na interface, ou de um daemon de gestão que o cria ao ligar. Seja qual for, esse componente é dono do endereço e vai restaurá-lo ou não segundo a sua própria lógica. Ler o endereço sem nomear o seu dono deixa-o sem explicação de por que desapareceu.

Dois donos numa interface é a falha clássica. Arrancar um assistente e um gestor de rede de ambiente de trabalho sobre o mesmo dispositivo cria uma corrida em que um remove o que o outro acabou de configurar, e o ponto final continua a responder durante todo o tempo.

Escolha um único dono e deixe a outra ferramenta observar em vez de gerir. Essa decisão merece ser registada, porque o sintoma aparece semanas depois e parece uma perda aleatória de endereço.

A rota escolhe um link ascendente, a interface não

Uma rota interna que aponta para wg0 decide que o tráfego entra no túnel. Uma decisão separada envia os pacotes externos cifrados para o par, e num anfitrião com vários links ascendentes essa decisão vem da tabela de encaminhamento e das regras de política. Um roaming Wi-Fi pode mudar o caminho externo sem tocar no endereço interno.

Assim, um túnel a funcionar e um par inalcançável são estados compatíveis, e também o são um par correto e uma rota interna quebrada. As três observações têm de ser tomadas em conjunto, no mesmo momento, ou a comparação não faz sentido.

Compare os três estados numa só passagem

Três comandos apenas de leitura respondem às três perguntas na ordem que isola a falha mais depressa. Execute-os sem alterar nada entre eles.

ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer

O primeiro mostra se a interface tem algum endereço, e o segundo mostra que dispositivo um destino concreto usaria agora. O terceiro relata a hora do último handshake e os contadores de bytes, e é o único dos três que descreve o par e não o anfitrião local.

Leia os contadores e também o carimbo temporal. Um handshake que se renova constantemente enquanto a transferência fica plana significa que o par responde mas nada de útil atravessa, o que aponta para o encaminhamento ou uma ACL e não para as chaves. Um carimbo temporal que deixa de avançar com um endereço presente aponta para montante. Ambas as leituras vêm da mesma linha de saída, e nenhuma é visível se só verificar que existe um handshake.

Corrija o estado concreto que está errado e depois teste novamente a aplicação, não o túnel. Um handshake recente é evidência sobre o par, e a evidência sobre o par não é evidência de que o próximo pedido do seu navegador encontre um endereço, uma rota e um link ascendente a funcionar. O manual do wg-quick diz explicitamente quais dessas coisas o assistente monta e quais pertencem ao protocolo.

Artigos relacionados