A interface levántase, a configuración do par parece correcta e ningún aperto de mans chega a completarse. Engadir unha ruta predeterminada a través do túnel é o paso que adoita provocalo: a mesma táboa de rutas decide agora onde deben ir os propios paquetes cifrados do túnel, e a resposta que produce volve entrar no túnel. Nada pode transportar o paquete exterior que transportaría o interior, así que a conexión detense antes de comezar. A reparación é pequena, pero ten unha orde, e a verificación importa máis que a edición.

Confirme o bucle antes de cambiar unha ruta

Lea o enderezo actual do extremo do par e despois pregunte á pila de encamiñamento onde iría un paquete a ese enderezo. Se a resposta nomea a interface do túnel, o bucle está confirmado e non fai falta máis diagnóstico. Garde ambas as saídas no rexistro de cambios antes de tocar nada, porque a comparación despois da reparación son os mesmos dous comandos. Un bucle non é sutil unha vez visto; a dificultade é que a interface parece sana mentres ocorre.

sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show

Inclúa as regras de política nesa captura. Unha ruta predeterminada que parece correcta na táboa principal aínda pode perder fronte a unha regra que selecciona outra táboa para o tráfico marcado ou non marcado, e o bucle reaparecerá cunha táboa de rutas que parece correcta.

Lea o camiño do extremo, non o camiño do túnel

O camiño do extremo é a ruta que toman os datagramas cifrados ata o enderezo público do par, e debe permanecer fóra do túnel mentres o túnel exista. O camiño do túnel é todo o que se permite transportar ao par. Eses dous camiños comparten unha táboa de rutas, e por iso exactamente unha soa entrada comodín pode colapsalas unha dentro da outra. Separar o tráfico do túnel do propio transporte do túnel é todo o problema de deseño, e cada ferramenta compatible resólveo nalgún punto de forma algo distinta.

Comprobe ambas as familias de enderezos por separado se a interface leva as dúas. Unha exclusión IPv4 que funciona non di nada sobre se o extremo IPv6 segue sendo alcanzable, e unha configuración mixta pode parecer que funciona ata que se selecciona o enderezo IPv6 do par.

Restabeleza o camiño do extremo cun só cambio coherente

Existen dous enfoques compatibles, e mesturalos é como unha configuración que funciona se volve imprevisible. O primeiro é deixar que a ferramenta que posúe a interface xestione todo o túnel: wg-quick ten un manexo dedicado para un rango de par predeterminado que instala unha táboa separada, regras de política e unha marca de socket, o que mantén os paquetes exteriores fóra do túnel. Deixe esa maquinaria intacta en lugar de reproducir a metade a man. Unha configuración que mestura unha ruta predeterminada engadida a man cun xestor que xa instala marcas e regras adoita fallar tras reconectar, cando o xestor reescribe o estado que o paso manual daba por suposto.

O segundo é un deseño manual no que o extremo recibe unha ruta de host explícita a través da pasarela física. Engada esa ruta antes da predeterminada, substitúa en lugar de engadir para que unha entrada obsoleta non poida gañar, e confirme a consulta despois.

sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1

Verifique e despois conserve unha forma de volver

Unha marca de tempo de aperto de mans que avanza é a primeira proba, e é máis forte que unha interface que simplemente existe. Séguia cunha proba de aplicación a través do túnel, despois baixe a interface a propósito e confirme que o host volve a un estado utilizábel en lugar de manter unha ruta predeterminada que apunta a nada. Ese último paso é o que a xente salta, e é o que decide se un reinicio deixará a máquina varada.

sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20

Antes de todo isto, garde o estado de encamiñamento actual e asegúrese de que hai unha vía de entrada que non dependa do túnel: unha consola, un enderezo de xestión fóra de banda ou un colega no sitio. Unha máquina remota que perde a súa ruta predeterminada non se pode recuperar pola conexión que acaba de perder, e o paso máis seguro do runbook é o que se toma antes do primeiro comando.

Artigos relacionados