A métrica da ruta VPN cambia tras conectarse: que significa
Unha métrica máis baixa só desempata entre rutas igual de específicas. Le a regra de política, o prefixo e a ruta de host do extremo antes de editar calquera número de ruta VPN.
Conectas a VPN, executas route print e a ruta predeterminada agora leva unha métrica moito máis baixa que antes. A conclusión natural é que a VPN tomou a ruta predeterminada porque o seu número é menor. Ás veces iso é exactamente o que ocorreu. A miúdo a métrica non é o factor decisivo en absoluto, e editala non cambia nada porque a escolla se fixo antes, pola lonxitude do prefixo ou por unha regra de política.
O síntoma é real: o tráfico que antes saía polo adaptador Wi-Fi agora sae polo túnel, ou ao revés. A métrica é unha entrada dunha busca que se executa nunha orde fixa, e esa orde é o que hai que ler antes de tocar un número.
Con que compite realmente o número
A primeira comparación é a especificidade, non a preferencia. Unha ruta para 10.20.0.0/16 gaña a 10.0.0.0/8, e ambas gañan a 0.0.0.0/0, digan o que digan as súas métricas. Unha VPN que instala unha ruta predeterminada coa métrica máis baixa da máquina segue perdendo fronte a calquera ruta máis específica que coincida co destino, incluída a ruta de host que o cliente instala para o seu propio servidor.
Por iso baixar a métrica dunha ruta predeterminada non pode forzar unha subrede conectada directamente cara ao túnel. Se queres esa subrede dentro da VPN, engade unha ruta para o prefixo ou selecciona a táboa do túnel cunha regra de política. A métrica é a panca equivocada para ese traballo.
| Check in this order | Question | Where you read it |
|---|---|---|
| 1. Policy and table | Which routing table does this traffic use? | ip rule, client profile |
| 2. Prefix length | Which matching route is most specific? | route print, ip route |
| 3. Metric | Which of the equally specific routes is preferred? | route print, ip route |
| 4. Interface state | Is the chosen next hop reachable? | adapter status, link state |
Linux decide a táboa antes ca a métrica
En Linux o núcleo consulta primeiro a base de políticas. ip rule lista as regras e as táboas que seleccionan, e ip route get 203.0.113.10 informa da táboa, a ruta e o enderezo de orixe que o núcleo usaría realmente para ese destino. Unha métrica dentro da táboa 100 nunca compite cunha ruta da táboa principal, porque a regra escolleu a táboa antes de que se comparase ningunha métrica.
Por iso unha ruta pode verse correcta en ip route show table all e aínda así non levar tráfico. Le a regra que coincidiu, despois a táboa que seleccionou, despois compara as rutas dentro dela. Se se seleccionou a táboa equivocada, ningunha edición de métrica na outra táboa axudará.
Windows combina dúas métricas
Windows non ten base de políticas por defecto, pero combina unha métrica de ruta cunha métrica de interface, e a métrica automática de interface pode cambiar coa velocidade da ligazón e o estado do adaptador. Por iso a mesma ruta pode comportarse distinto despois de que apareza unha estación de acoplamento ou un adaptador virtual. Find-NetRoute -RemoteIPAddress 203.0.113.10 informa do enderezo de orixe, o seguinte salto e a interface escollidos, o que está máis preto da decisión real ca a táboa en bruto.
Le os valores de ruta e de interface xuntos. Subir a métrica dunha interface pode mover o tráfico sen que cambie ningunha entrada de ruta, e un cliente VPN que posúe as súas rutas reinstalarémolas ao reconectar e descartará a túa edición.
Mantén o extremo do túnel fóra do túnel
Todo túnel necesita un camiño ata o seu propio servidor que non pase polo túnel. Os clientes instalan unha ruta de host para o extremo a través da pasarela física, e esa ruta debe seguir sendo máis específica ca a predeterminada que engade o cliente. Bórraa, ou fai que o túnel gañe a busca para ese enderezo, e os paquetes encapsulados tentarán entrar no túnel que se supón que deben construír. A conexión falla ou entra en bucle.
Comproba esa ruta de host antes e despois de calquera cambio de métrica: debe apuntar ao seguinte salto físico e sobrevivir a unha reconexión. Se o cliente a posúe, cambia o perfil ou a configuración xestionada en lugar dun valor de execución que se sobrescribirá.
Comproba ambas as familias de enderezos e o contexto da aplicación
IPv4 e IPv6 son decisións separadas con táboas separadas. Unha VPN pode levar IPv4 mentres IPv6 segue usando o router local, e un cambio de métrica nunha familia non di nada da outra. Comproba ambas e despois comproba o contexto da aplicación. Un proceso ligado a unha interface, un namespace de contedor ou unha VPN por aplicación poden ver unha táboa distinta da túa shell.
Verifica coa ferramenta que informa da decisión para o destino real, non coa listaxe completa da táboa. Se a ruta escollida é a que pretende o deseño, detente. Unha métrica que non é o número máis pequeno da pantalla non é un fallo, e forzala a selo pode romper o camiño do extremo do que depende o túnel.