¿Cómo enrutar solo una subred específica (ip de origen) a una interfaz particular?

31

¿Cómo enrutar solo una subred específica (ip de origen) a una interfaz particular?
SO: Linux

Sé que puedo hacerlo fácilmente por IP de destino usando algo como

route add 1.2.3.4/24 dev eth4

pero no veo cómo se puede enrutar según la IP de origen.

Alex
fuente

Respuestas:

30

Debe utilizar el enrutamiento basado en políticas. Algo así como

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>

<name>es el nombre de la tabla especificado /etc/iproute2/rt_tableso puede usar la identificación numérica ...

Esto prácticamente dice que todo el tráfico 1.2.3.4/24se enrutará utilizando la tabla de enrutamiento <name>. IIRC no utiliza la tabla predeterminada después de pasar por esto, por lo que si necesita otras rutas (es decir, puerta de enlace predeterminada), también debe agregarlas a la tabla.

zorro
fuente
1
una corrección (pero no estoy seguro si la suya también funcionará. para el segundo comando: ip route add default dev eth4 table <name>( tablecreo que la directiva debe ir al final, al igual que en el primer comando ... también defaultse puede reemplazar por una subred, como en su ejemplo )
Alex