0 votos

¿Cómo asociar una ruta a una interfaz?

Tengo un Mac con dos interfaces de red, conectado a redes diferentes. Por el bien del argumento, digamos que una está conectada a una red privada y la otra a Internet.

Entiendo que puedo utilizar el panel de preferencias del sistema de redes para colocar la interfaz de Internet más arriba en el "orden de servicio" que la red privada y que, al hacerlo, su "Enrutador" se convertirá en la puerta de enlace predeterminada del sistema (y el "Enrutador" de la otra interfaz se ignora).

Sin embargo, esto obviamente resulta en todo el tráfico que se dirige a través de Internet (excepto la subred específica de la red privada a la que está conectada directamente la máquina). Quiero anular este comportamiento para el todo red privada, enrutando todo el tráfico privado a través de la interfaz correspondiente.

¿Cuál es la "forma Apple" de lograrlo? Simplemente ejecutando sudo route add ... sólo crea la ruta temporalmente, mientras que yo quiero asociarla a la interfaz de alguna manera permanente (es decir, que sobreviva al cambio de estado de la interfaz, o al reinicio del sistema).

Supongo que la solución consistirá en que launchd invoque un script después de que la interfaz haya salido ¿pero cómo?

0voto

klanomath Puntos 19587

1 - Aquí hay un copiado solución pero está en desuso:

En primer lugar, tienes que ser un administrador local.

Abra un terminal y cambie al directorio StartupItems

cd /Library/StartupItems

A continuación, cree un nuevo directorio con privilegios de root, por ejemplo, AddRoutes y cambie a él

sudo mkdir ./AddRoutes
cd ./AddRoutes

Ahora tienes que crear y editar el bash script

sudo touch ./AddRoutes
sudo nano ./AddRoutes

Pegue las siguientes líneas en el bash script y adaptarlo a su red

#!/bin/sh

# Set static routing tables

. /etc/rc.common

StartService ()
{
sleep 10
ConsoleMessage "Adding Static Routing Table"
sudo /sbin/route add -net 10.0.0.0 -netmask 255.0.0.0 -gateway w.x.y.z
}

StopService ()
{
return 0
}

StopService ()
{
return 0
}

RestartService ()
{
return 0
}

RunService "$1"

Cuando hayas terminado con el script, guárdalo.

A continuación, cree el plist correspondiente.

sudo touch StartupParameters.plist
sudo nano StartupParameters.plist

Cuando hayas creado el archivo plist, pega las siguientes líneas en él.

{
Description = "Add static routing tables";
Provides = ("AddRoutes");
Requires = ("Network");
OrderPreference = "None";
}

Cuando hayas terminado el archivo plist, guárdalo.

Por último, hay que establecer los derechos de acceso

sudo chmod 755 /Library/StartupItems/AddRoutes/*

Al final tienes que reiniciar y ahora tus rutas estáticas permanentes están establecidas.

Puede comprobarlo con lo siguiente

netstat -nr

2 - Aquí puede encontrar una solución más actual que implica un pequeño programa:

ruta estática

Las rutas estáticas configuradas sobreviven a un reinicio, y se añadirán y eliminarán automáticamente a medida que las interfaces de red suban y bajen.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X