Si estás experimentando con la red Linux, a veces la puerta de enlace predeterminada se niega a cambiar o quieres echar un vistazo a la configuración de enrutamiento actual. No es precisamente una ciencia exacta, pero estos comandos y archivos pueden ser un poco confusos si eres nuevo o si las cosas no parecen funcionar como deberían. Esta guía pretende aclarar esto, especialmente cuando parece que Linux se está haciendo el difícil con su tabla de enrutamiento o rutas predeterminadas. Después de esto, tendrás un buen manejo de la visualización, adición, eliminación y modificación de rutas, además de mantener las cosas intactas tras reinicios. Porque, claro, Linux tiene que hacerlo un poco más complejo que pulsar un botón, ¿verdad?
Cómo ver y administrar rutas de red en Linux
Cómo ver la tabla de enrutamiento actual
En primer lugar, para ver qué rutas usa Linux actualmente (el punto de partida), simplemente ejecute: # ip route. Este comando genera la tabla de enrutamiento completa. Obtendrá información como la puerta de enlace predeterminada (los paquetes de ruta se dirigen cuando no hay una ruta específica), rutas estáticas, rutas creadas por el kernel y sus métricas. En esencia, es una instantánea de cómo Linux dirige el tráfico.
Por ejemplo, es posible que veas líneas como:
default via 192.168.1.1 dev enp0s3 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201
Esa línea predeterminada muestra adónde se envía el tráfico no destinado a la red local; en este caso, a través de 192.168.1.1 en la interfaz enp0s3. Para ser aún más específico, puede preguntarle a Linux qué interfaz usaría para enviar un paquete a una IP:
# ip route get 192.168.2.45
Esto podría devolver algo como 192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201. Resulta útil para solucionar problemas de conectividad o averiguar qué ruta de red está tomando Linux.
Agregar y eliminar rutas estáticas
¿Estás pensando en redirigir el tráfico a otro lugar o simplemente modificar la topología de la red? Puedes añadir rutas estáticas con: # ip route add 192.168.0.0/24 via 192.168.1.1. Básicamente, le dices a Linux: «Si ves tráfico destinado a 192.168.0.0/24, envíalo a través de 192.168.1.1».Tiene sentido si estás configurando una nueva subred o solucionando problemas de enrutamiento.
De forma similar, puedes agregar una ruta directamente a una sola IP de host con: # ip route add 192.168.1.50 via 192.168.1.1. O incluso desviar el tráfico a una red específica con una ruta nula (similar a un agujero negro): `ip route add blackhole 10.1.20.0/24`. Ideal para bloquear o aislar segmentos.
¿Quieres eliminar una ruta? Simplemente ejecuta: # ip route del 192.168.0.0/24. Es rápido y temporal, hasta que reinicies o la modifiques. Para que sean estáticas y persistentes, tendrás que editar los archivos de configuración.
En distribuciones basadas en CentOS o RHEL, busque el nombre de su interfaz de red con # ip a. Luego abra:
# nano /etc/sysconfig/network-scripts/route-enp0s3
Y agrega tu ruta como: 192.168.0.0/24 via 192.168.1.1. Guárdala y reinicia la red con:
# systemctl restart network
En Debian/Ubuntu, la cosa cambia: se editan los archivos en /etc/network/interfaces o se usan las configuraciones de netplan. Pero para CentOS, este método es sencillo.
Si desea que las rutas se restablezcan automáticamente tras reiniciar, puede agregarlas en /etc/rc.local o crear scripts de ruta dedicados que se ejecuten al inicio. Recuerde que cualquier manual ip route addes temporal a menos que se guarde en configuraciones o scripts.
Cómo cambiar o restablecer la puerta de enlace predeterminada
A veces, necesitas cambiar la ruta predeterminada; quizás la puerta de enlace se movió o estás cambiando de red. Para eliminar la ruta predeterminada actual, ejecuta:
# ip route del default via 192.168.1.1 dev enp0s3
Y para establecer una nueva puerta de enlace predeterminada, simplemente:
# ip route add default via 192.168.1.2
O bien, si desea reemplazar el valor predeterminado existente por uno nuevo:
# ip route replace default via 192.168.1.2
Tenga en cuenta que todo esto es temporal a menos que incluya esos comandos en scripts de inicio o archivos de configuración de red. Y si realmente desea cambiarlo permanentemente, edite los archivos de configuración correspondientes para su distribución (como /etc/sysconfig/network-scripts/route-
Resumen
Las redes pueden ser un poco complicadas a veces, sobre todo cuando las rutas no cambian o no aparecen donde esperas. Experimentar con ip routecomandos y archivos de configuración como un experto suele solucionar el problema. Es normal que tengas que probar y equivocarte; Linux no siempre es del todo intuitivo con la configuración persistente. Pero al final, un pequeño ajuste manual ayuda mucho a que tu ruta funcione a la perfección. Ojalá que alguien pueda solucionar esas molestas rutas sin tener que preocuparse demasiado.
Resumen
- Úselo
# ip routepara ver la tabla de enrutamiento actual. - Agregue rutas estáticas con
# ip route add. - Eliminar rutas con
# ip route del. - Cambie la puerta de enlace predeterminada utilizando
# ip route add default via...oreplace. - Conserve rutas editando archivos de configuración o scripts como /etc/rc.local.