No se puede configurar una ruta de host estática: "SIOCADDRT: no existe ese proceso"

11

En mi oficina, hay un enrutador Windows Server 2008, 192.168.16.1, que es nuestra puerta de enlace predeterminada. Esto envía datos a través de nuestra conexión a internet principal. Esto funciona perfectamente

192.168.16.1 también tiene otra conexión a Internet que actualmente está sin usar. Esto se conecta a un enrutador, 192.168.1.254, que luego se conecta a nuestra conexión a Internet secundaria.

He configurado Enrutamiento y acceso remoto para enrutar el rango 192.168.1. * A nuestra red interna, y puedo hacer ping a 192.168.1.254 desde mi escritorio que tiene una dirección IP de 192.168.16.22.

Tengo una tarea de carga y descarga muy intensiva para una caja de Linux en la misma oficina, por lo que quiero configurar una ruta estática para no vincular nuestra conexión a Internet principal y afectar a mis compañeros de trabajo. Entonces, mi plan es configurar este cuadro con una ruta estática.

Desde el cuadro de Linux, puedo hacer ping a 192.168.1.254, pero no puedo agregar una ruta estática al servidor de destino en nuestro centro de datos:

$ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0
SIOCADDRT: No such process

De Google extenso, este mensaje de error parece indicar que no puedo acceder a 192.168.1.254 para configurar una ruta, pero puedo hacer ping. Intenté agregar una ruta estática a 192.168.1.254, que funcionó perfectamente, pero esto no resolvió el problema (como se esperaba).

No estoy lo suficientemente avanzado en redes para diagnosticar este problema aún más, ya que mi experiencia es el desarrollo de software, no la administración del sistema. Estaría muy agradecido por cualquier consejo dado.

Gracias por tu tiempo.

Steve Rukuts
fuente

Respuestas:

8

¿Está el escritorio en 192.168.16.0/24?

No puede agregar una ruta (a ningún objetivo) a través de una puerta de enlace a la que no está conectado directamente, porque su computadora no sabe cómo llegar al enrutador sin pasar por la ruta predeterminada.

3molo
fuente
Correcto, la decisión de enrutamiento debe establecerse en 192.168.16.1.
Mark Wagner el
2

Puede obtener el error "SIOCADDRT: No such process" si "Intentó establecer una ruta para una red antes de establecer una ruta de host para la puerta de enlace que maneja el tráfico para esa red".

por ejemplo, para local -> 172.19.0.1 -> 172.19.0.xx

[root@local]# route add -net 172.19.0.0 gw 172.19.0.1 netmask 255.255.255.0 dev eth0
SIOCADDRT: No such process

RESPUESTA: Primero cree una ruta de host, luego cree una ruta neta.

por ejemplo, para la red en cuestión: local -> 192.168.1.254 -> 123.123.123.123

sudo route add -host 192.168.1.254 dev eth0

sudo route add -net 123.123.123.123 netmask 255.255.255.255 gw 192.168.1.254 dev eth0

Una ruta estática seguirá cargando la red , supongo que depende;). El tráfico de carga / descarga tiene que cruzar la red. Por lo tanto, afectará a otros usuarios de la red. Puede limitar el ancho de banda del tráfico o mover ese tráfico a horas más tranquilas si desea reducir el efecto en otros usuarios de la red. por ejemplo, rsync tiene buenas opciones de limitación de ancho de banda.

Tuve un problema similar con el enrutamiento y SIOCADDRT. local -> dockerserver -> dockercontainer. Al agregar la ruta del host y luego la ruta neta, la ruta funcionó en una dirección.

Esto me ayudó a https://support.symantec.com/en_US/article.TECH142841.html

Ejemplo de enrutamiento completo, enrutamiento que funciona en ambos sentidos:

dockerserver=172.19.0.1
dockerservernet=172.19.0.0
dockercontainer=172.19.0.25
local=192.168.111.23
localnet=192.168.111.0

### 0. create host route for gw and net route local->docker
[root@local]# route add -host $dockerservernet dev eth0
[root@local]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0

### 1. route on dockerserver to local
[root@dockerserver ~]# route add -net $localnet netmask 255.255.255.0 dev eno1
[root@dockerserver ~]# ping $local

### 2. route FROM dockercontainer to local (via gateway dockerserver)
[root@dockercontainer /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1
[root@dockercontainer /]# ping $local
gaoithe
fuente
0

Con respecto a la parte de la pregunta sobre la configuración de rutas persistentes en una instancia de AWS EC2 que ejecuta Ubuntu, el lugar correcto para colocar rutas estáticas para persistir durante un reinicio de AWS, detener y comenzar es /etc/rc.local.

Dentro de ese archivo, debe colocar sus rutas en la línea encima de la última línea. Sus líneas deberían verse así:

route add -net XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX

La ejecución del sudocomando se perderá al reiniciar.

Duke Hall
fuente