Ayer expliqué cómo visualizar las tablas de rutas en Linux, pero no vimos cómo agregar nuevas rutas, modificarlas o borrarlas. Vamos a ver en una entrada rápida unos ejemplos básicos del comando route que nos enseñarán a modificar la tabla de rutas. Partimos de esta base:
$ route -n Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic Métric Ref Uso Interfaz 192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Vamos a añadir una nueva ruta cuyo destino tenga la red 169.255.0.0/16. Todo tráfico contra esa red será redirigido a la interfaz eth0 y usará la puerta de enlace (gateway) 192.168.1.1:
$ sudo route add -net 169.255.0.0/16 gw 192.168.1.1 dev eth0
$ route -n Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic Métric Ref Uso Interfaz 192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 169.255.0.0 192.168.1.1 255.255.0.0 UG 0 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Para eliminar esta ruta en lugar de route add usamos route del:
$ sudo route del -net 169.255.0.0/16 eth0
También podríamos enrutar tráfico de una LAN sin necesidad de pasar por una gateway:
$ sudo route add -net 169.255.0.0/16 dev eth0
O establecer la gateway (puerta de enlace) por defecto. Será utilizada en caso de no haber otra regla efectiva por delante:
$ sudo route add default gw 192.168.2.1
Como siempre, para más información:
$ man route
Recordad que estos cambios no son persistentes a reinicios, tendréis que añadir los comandos a /etc/rc.local.