Obligar al cliente macOS Sierra L2TP a usar una interfaz específica

Tengo una conexión WiFi (en0) y Ethernet (en8) en mi máquina. Cada interfaz está en una red separada y en0 tiene prioridad sobre en8.

La puerta de enlace para en0 es 192.168.100.1y para en8 es172.20.10.1

Hay servicios a los que necesito acceder que solo están disponibles en la red en0, y la VPN solo está disponible a través de la red en2.

Quiero poder obligar al cliente macOS Sierra L2TP a usar en8. He agregado con éxito una ruta estática para enrutar la dirección IP a la que quiero conectarme, a la puerta de enlace de en2 y he verificado ejecutandotrace get <vpn address>

Sin embargo, la conexión aún falla y cuando miro los registros, /var/ppp/ppp.logparece que el cliente L2TP todavía está intentando pasar por la puerta de enlace en0:

Wed Mar 22 13:53:10 2017 : l2tp_get_router_address 192.168.100.1 from dict 1

Tabla de enrutamiento a continuación:tabla de ruteo

Vaya, lo he agregado ahora.
Agregue la salida denetstat -f inet -r
@klanomath He actualizado la publicación con la tabla de enrutamiento. Ahora estoy en una máquina nueva y las interfaces ahora son en0 y en8 respectivamente.

Respuestas (1)

Tener dos puertas de enlace predeterminadas en macOS dará como resultado: la puerta de enlace de la interfaz con la prioridad más alta será la predeterminada y la otra se descartará.

Para obtener el pedido ingrese en la Terminal: networksetup -listnetworkserviceorder.

Así que elimine la puerta de enlace predeterminada de la interfaz en8 y agregue una ruta personalizada al servidor VPN:

sudo route add -host <VPN-server-ip-address> -interface en8

o

sudo route add -host <VPN-server-ip-address> -link <MAC-of-en8>

o a la red (aquí la red de ejemplo: 10.0.0.0/16)

sudo route -n add -net 10.0.0.0/16  172.20.10.1

Dependiendo del entorno de red del servidor VPN, se debe agregar allí una segunda ruta invertida que apunte a su red local 172.20.10.0/28.