Clientes descendentes detrás dun VPN superior: ruta ou NAT?
Un VPN superior só coñece o enderezo do cliente, así que reenviar outra subrede require unha ruta acordada ou unha tradución de orixe deliberada.
Unha pasarela executa WireGuard para os teus propios dispositivos e un cliente OpenVPN cara á rede doutra persoa. O reenvío entre as dúas interfaces internas funciona, e é fácil concluír que a subrede descendente xa forma parte do servizo superior. Non o é. Unha ruta que o cliente extrae dille á túa pasarela onde enviar as peticións; non di nada sobre como a rede remota devolve o tráfico a dispositivos dos que nunca oíu falar. Escolle un modelo de retorno que o servizo superior admita de verdade antes de engadir unha soa regra.
Decide o modelo de retorno antes de tocar o encamiñamento
Neste percorrido, os clientes descendentes usan 10.90.0.0/24, o enderezo do túnel superior asignado á pasarela é 10.80.0.6, e o recurso remoto aprobado é 172.20.0.30. Dous modelos encaixan nesa forma: conservar a orixe descendente e conseguir que o lado remoto a encamiñe, ou traducir a orixe ao enderezo do túnel da propia pasarela. Todo o posterior a esta decisión é mecánico, e a decisión en si necesita o propietario do servizo. Unha das filas de arriba é un acordo de encamiñamento co lado remoto; a outra é un cambio de política local que podes facer só. Confundir as dúas é o que converte un cambio de dez minutos nunha negociación.
preserved: 10.90.0.23 -> 172.20.0.30
translated: 10.80.0.6 -> 172.20.0.30Escolle unha fila e comprométete con ela. As filas son alternativas, non pasos, e mesturalas produce un deseño que ninguén pode explicar na revisión.
Conservación da orixe con encamiñamento
O lado remoto recibe unha petición dun enderezo descendente, así que necesita unha ruta admitida e a propiedade do peer para esa subrede, ademais de autorización para aceptala. Son axustes remotos, e ningunha ruta local de Linux os crea. Pídeos de forma explícita e por escrito, co prefixo e o peer do túnel que a transportará, e espera que a resposta dependa de se o servizo admite ou non arranxos de sitio a sitio.
Se a resposta é si, a configuración local é pequena: reenvío activado, os allowed-ips do peer de WireGuard que cobren o rango descendente, e unha política de devasas que permite o cruzamento en ambos os sentidos.
Tradución de orixe deliberada
Se o servizo só devolve o tráfico ao enderezo do cliente conectado, traduce a orixe a ese enderezo á saída e conserva o estado de conntrack que a invirte para as respostas. Limita a regra ás orixes descendentes previstas, aos destinos remotos previstos e á interface superior. Unha regra que traduce todo o que sae de cada interface é unha política moito maior que este requisito, e sorprenderate máis adiante.
IPv6 necesita o seu propio deseño; copiar unha liña de masquerade de IPv4 non é unha arquitectura. Proba a ruta traducida cunha conexión nova en lugar dunha na caché.
A ruta de datos local aínda ten que funcionar
A tradución non elimina o traballo local: a pasarela segue necesitando unha ruta para os destinos descendentes, a propiedade correcta da orixe do peer de WireGuard, o reenvío activado e unha política de devasas estreita entre interfaces. Unha petición xerada na propia pasarela non exerce ningún deses permisos, e por iso as probas locais na pasarela pasan e os dispositivos descendentes seguen fallando.
Proba desde un dispositivo descendente real, non desde a pasarela. O enderezo de orixe é todo o sentido do exercicio.
Unha orixe significa unha identidade de sesión
O servizo remoto ve a sesión autenticada da pasarela e o seu enderezo traducido, non unha autenticación independente para cada dispositivo descendente. Mantén explícitos os permisos por dispositivo e as identidades de aplicación, e confirma co propietario do servizo que unha pasarela que actúa por varios dispositivos está permitida. A tradución non é unha forma de saltar un requisito de alta por dispositivo; se o servizo esixe que cada dispositivo se dea de alta, usa ese modelo ou negocia un arranxo de sitio a sitio.
Escribe esa confirmación no runbook xunto á regra, porque o seguinte revisor preguntará se o deseño foi aprobado ou só conveniente.
Define o estado desconectado e despois proba tres peticións
Decide que ocorre cando cae o túnel superior. O tráfico remoto autorizado non debería seguir en silencio un respaldo WAN ordinario onde iso está prohibido, así que a política de devasas que permite o cruzamento tamén debe fallar pechada. Despois proba tres casos desde un dispositivo descendente real: unha petición permitida que funciona, unha petición non permitida que falla, e un fallo superior que detén a permitida.
Rexistra a reversión nunha liña por regra, para que o cambio poida desfacerse sen reconstruír a intención.