El comando route
en Linux es una herramienta fundamental para la administración de la tabla de enrutamiento del kernel. Permite a los administradores de red configurar, modificar y eliminar rutas de red estáticas en el sistema operativo, lo cual es esencial para la gestión del tráfico de red y la conectividad entre diferentes redes.
¿Qué es una Tabla de Enrutamiento?
La tabla de enrutamiento es una base de datos que mantiene el sistema operativo para determinar hacia dónde enviar los paquetes de red. Cada entrada en la tabla de enrutamiento contiene una dirección de destino, una máscara de red, una puerta de enlace y una interfaz de red.
Sintaxis del Comando route
La sintaxis básica del comando route
es la siguiente:
route [opciones] [comando] [dirección]
Donde:
- opciones: Son parámetros opcionales que modifican el comportamiento del comando.
- comando: Es la acción que se desea realizar (e.g.,
add
,del
). - dirección: Es la dirección IP o red específica para la cual se quiere realizar la acción.
Comandos Comunes
- Mostrar la Tabla de Enrutamiento:
route
oroute -n
La opción-n
muestra las direcciones IP en formato numérico, lo cual puede ser útil para evitar demoras en la resolución de nombres. - Agregar una Ruta:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
En este ejemplo, se agrega una ruta a la red192.168.1.0/24
a través de la puerta de enlace192.168.1.1
. - Eliminar una Ruta:
route del -net 192.168.1.0 netmask 255.255.255.0
Este comando elimina la ruta específica a la red192.168.1.0/24
. - Agregar una Ruta por Defecto:
route add default gw 192.168.1.1
Aquí se establece una ruta por defecto a través de la puerta de enlace192.168.1.1
. Esto significa que todo el tráfico que no tenga una ruta específica en la tabla se enviará a esta puerta de enlace. - Eliminar la Ruta por Defecto:
route del default
Este comando elimina la ruta por defecto configurada en el sistema.
Opciones Útiles
- -n: Muestra las direcciones y nombres de red en formato numérico, lo cual puede acelerar el proceso de visualización al evitar la resolución DNS.
- -e o -ee: Muestra información adicional sobre las rutas.
- -A [familia]: Especifica la familia de protocolos, como
inet
(para IPv4) oinet6
(para IPv6).
Ejemplos Prácticos
- Visualizar la Tabla de Enrutamiento:
route -n
Salida típica:Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
- Agregar una Ruta a una Red Específica:
route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.1.1
- Eliminar una Ruta Específica:
route del -net 10.10.10.0 netmask 255.255.255.0
Consideraciones de Seguridad y Buenas Prácticas
- Privilegios de Superusuario: La mayoría de las operaciones con
route
requieren privilegios de superusuario. Usesudo
para ejecutar los comandos necesarios. - Persistencia de Rutas: Los cambios realizados con
route
no son persistentes tras un reinicio. Para hacer persistentes los cambios, es necesario agregar las rutas en los scripts de configuración de red específicos de su distribución Linux.
Comando Alternativo: ip route
El comando route
es una herramienta antigua y ha sido reemplazada en muchas distribuciones modernas por ip route
, que forma parte del paquete iproute2
. El comando ip route
ofrece más funcionalidades y una sintaxis más coherente.
Ejemplo equivalente de agregar una ruta con ip
:
ip route add 192.168.1.0/24 via 192.168.1.1
Conclusión
El comando route
sigue siendo una herramienta útil y esencial para la gestión de rutas en sistemas Linux. Con una comprensión clara de su sintaxis y opciones, los administradores de red pueden gestionar eficazmente la conectividad y el enrutamiento de sus sistemas. Para nuevas implementaciones, considere usar ip route
para aprovechar sus capacidades avanzadas.