Tengo una aplicación VPN que crea una interfaz lógica en OS X mediante programación.
Una vez creado, se configura con la IP privada y los parámetros y se actualiza la tabla de enrutamiento en consecuencia.
Se elimina la "puerta de enlace por defecto de la interfaz física" presentada inicialmente. La "puerta de enlace predeterminada de la interfaz lógica se añade" mediante programación.
Al cabo de un tiempo, el propio sistema Mac OS X actualiza la tabla de enrutamiento con la "puerta de enlace por defecto de la interfaz física" y tiene el siguiente aspecto
Destination Gateway Flags Refs use Netif Expire
--------------------------------------------------------------------
default xxx.xx.x.x UGSc 1 0 en3
default yyy.yyy.y.y UGScI 1 0 en1
- es3: interfaz lógica creada por la aplicación
- es1: interfaz física
De acuerdo con las entradas de enrutamiento anteriores, todo el tráfico se enruta a la interfaz lógica creada por la aplicación. Esto está bien en escenarios normales.
Requisito:
Necesito enrutar sólo IPs de destino específicas a través de la interfaz lógica. Todo el tráfico restante debe ser enrutado a través de la interfaz física directamente.
Problema que se enfrenta:
Una vez que se añade la ruta por defecto para la interfaz lógica, todo el tráfico se enruta a través de ella. No hay control sobre ello.
Aunque se impida a la aplicación añadir la ruta para la interfaz lógica, el sistema Mac OS X actualiza la tabla de enrutamiento y establece el valor por defecto sólo para la interfaz lógica.
Por lo tanto, no se puede cumplir el requisito.