As páxinas de compra de routers presentan o enrutamento VPN como unha casilla, e a frase esconde tres preguntas distintas. ¿A regra coincide co dispositivo que envía o tráfico, co servidor que o recibe ou con ambos? Que ocorre co tráfico que non coincide con ningún? E cando dúas regras se solapan, cal gaña? Escribir a resposta como un par de orixe e destino converte unha vaga lista de funcións nun deseño comprobable.

O nome da función esconde dous extremos

Un reprodutor multimedia que debe usar o túnel é unha coincidencia de orixe. Un prefixo de oficina privado que debe ser accesible polo túnel é unha coincidencia de destino. Unha estación de traballo que debe usar o túnel só para un servizo é ambas as dúas cousas, e esa intersección é o caso que a maioría do firmware de consumo xestiona mal.

Escribe o requisito como un par antes de comparar produtos. Ese par é o que probarás despois.

Un produto que ofrece unha lista de dispositivos ou unha lista global de destinos pode non expresar «só este dispositivo, só estes destinos». A diferenza non é estética: unha regra global de destino envía o tráfico de todos os dispositivos cara a ese sitio polo túnel, e unha regra de dispositivo envía todo o tráfico dese dispositivo. Ningunha das dúas é o requisito. Proba ese caso con dous dispositivos antes de confiar na pantalla.

Constrúe a regra como unha intersección

Unha táboa mantén o deseño honesto. Pon o escenario á esquerda e despois nomea por separado a coincidencia de emisor e a de destino:

ScenarioSender matchTarget matchRule shape
Media player uses the tunnelPlayer addressAny internet destination except the LANSource only
Office prefix reachableAuthorized LAN devices10.40.0.0/16Target only
One app on one laptopLaptop addressThe service address setSource and target
Guest network never tunnelsGuest subnetAnyDeny, evaluated first

A terceira fila é a interesante, porque necesita as dúas metades á vez. Se o firmware só pode expresar un eixo, o requisito debe dividirse en dúas regras ou trasladarse a un dispositivo que si poida.

Mantén estable a identidade da orixe. Unha reserva DHCP, un segmento dedicado ou un mecanismo de identidade de dispositivo funcionan, pero un enderezo que cambia ao vencer o arrendamento non. Inclúe IPv6, porque un enderezo IPv4 non identifica todo o tráfico dun dispositivo.

A prioridade decide o solapamento

O solapamento de regras é normal. Unha regra ampla de dispositivo e unha regra estreita de destino poden describir un mesmo fluxo, e a orde de prioridade documentada decide cal gaña. Unha pantalla de configuración atractiva non che di esa orde.

Le o manual para a orde e para o caso sen coincidencia, e despois proba ambos con tráfico que poidas observar:

ip rule show
ip route get 203.0.113.10

Se a documentación non indica a orde, supón que a regra máis estreita pode non gañar e deseña tendo iso en conta. Dúas regras que non poden entrar en conflito son máis fáciles de manter que unha regra enxeñosa cunha precedencia non documentada.

Os nomes necesitan unha política de actualización

Un destino escrito como dominio engade un problema de mantemento. O router debe resolvelo, actualizar o mapeo, xestionar varios enderezos e subdominios e lidar co DNS de aplicacións que evita o resolutor esperado.

Copiar un resultado de consulta nunha regra IP é unha instantánea, non unha política de dominio.

Decide canto pode envellecer unha resposta antes de que a regra sexa incorrecta e que fai o router cando falla a resolución. Unha regra que conserva o último enderezo coñecido pode sobrevivir a unha migración de servizo; unha regra que descarta a entrada pode deter o túnel en silencio. Calquera dos dous comportamentos é aceptable se se anota xunto á regra.

Define o estado non dispoñible

Unha preferencia de ruta non impón tráfico só por VPN. Cando o túnel está caído, o router pode bloquear o fluxo, envialo directo ou usar outro túnel, e cada opción ten unha sinatura de fallo distinta.

Decide cal necesita o requisito e despois verifícao detendo o túnel e observando o fluxo:

curl -sS -o /dev/null -w "%{http_code}" --max-time 5 https://service.example/
ping -c 2 203.0.113.10

O tráfico orixinado polo router é un ámbito aparte. O reenvío DNS, as comprobacións de actualización e a monitorización poden iniciar fluxos novos desde o propio router en lugar de herdar a coincidencia de orixe do dispositivo. Ten en conta eses fluxos de forma explícita, ou aparecerán como fugas inexplicadas nos rexistros.

Artigos relacionados