El enrutamiento es el proceso de decidir por dónde enviar un paquete de red para que llegue a su destino. Linux puede actuar como simple equipo final (host) o como enrutador (router) que interconecta redes.
25.1. Introducción al enrutamiento en Linux
En ambos casos, el kernel mantiene una tabla de enrutamiento que se consulta para cada paquete saliente.
Existen dos formas principales de llenar esa tabla:
- Enrutamiento estático: las rutas se configuran manualmente con los comandos
ip routeoroute. Son simples y estables, pero no se adaptan a cambios de topología. - Enrutamiento dinámico: un demonio (como Quagga, FRR, BIRD) ejecuta protocolos de enrutamiento (OSPF, RIP, BGP) que intercambian información con otros routers y ajustan las rutas automáticamente.
En el examen LFCS, se espera que puedas ver la tabla de enrutamiento, añadir y eliminar rutas estáticas, activar el reenvío de paquetes (IP forwarding) y comprender los conceptos básicos de los protocolos dinámicos.
25.2. Conceptos fundamentales
25.2.1. La tabla de enrutamiento
Cada entrada de la tabla de enrutamiento tiene al menos:
- Destino: red o dirección IP de destino (ej.
192.168.2.0/24,0.0.0.0/0para el default gateway). - Gateway: dirección del siguiente salto (router) al que se envían los paquetes si no están directamente conectados.
- Interfaz: dispositivo de red por el que se envía el paquete.
- Métrica: coste de la ruta (menor es preferida).
- Tipo: cómo se aprendió la ruta (kernel, static, dynamic, etc.).
25.2.2. Rutas directas y default gateway
- Las rutas directas se crean automáticamente cuando una interfaz tiene una IP. Por ejemplo, si
eth0tiene192.168.1.10/24, el kernel añade una ruta a192.168.1.0/24poreth0. - El default gateway (
0.0.0.0/0) es la ruta a la que se envían los paquetes cuando no hay coincidencia más específica. Es la salida típica hacia Internet.
25.2.3. Reenvío de IP (IP forwarding)
Para que un sistema Linux reenvíe paquetes entre interfaces (actúe como router), debe tener habilitado net.ipv4.ip_forward:
sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
Para hacerlo persistente, añadir a /etc/sysctl.d/99-router.conf:
net.ipv4.ip_forward = 1
25.3. Visualización de la tabla de enrutamiento
El comando moderno es ip route, que reemplaza a route y netstat -r.
ip route
ip route show
ip route show table main
Salida típica:
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
También se puede usar:
route -n
netstat -rn
Ambos muestran la tabla de enrutamiento. -n evita resolución DNS.
25.4. Enrutamiento estático: configuración manual
25.4.1. Añadir una ruta estática
ip route add 10.0.0.0/8 via 192.168.1.1 dev eth0
Opciones:
via: gateway del siguiente salto.dev: interfaz de salida (opcional si se especifica via).metric: prioridad de la ruta.
Ejemplo sin gateway (red directamente conectada):
ip route add 192.168.50.0/24 dev eth1
25.4.2. Añadir una ruta por defecto
ip route add default via 192.168.1.1
25.4.3. Eliminar una ruta
ip route del 10.0.0.0/8
ip route del default
25.4.4. Reemplazar una ruta
ip route replace 10.0.0.0/8 via 192.168.1.2
25.4.5. Comandos antiguos (route)
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1
route del -net 10.0.0.0 netmask 255.0.0.0
route add default gw 192.168.1.1
Ambos métodos son válidos, pero ip route es el recomendado.
25.5. Persistencia de rutas estáticas
Las rutas añadidas con ip route add son temporales; desaparecen al reiniciar la red o el sistema. Para hacerlas permanentes, se configuran en los archivos de red de la distribución.
25.5.1. Debian/Ubuntu
Para interfaces configuradas con ifupdown (/etc/network/interfaces), se puede añadir la línea up ip route add ... dentro de la configuración de la interfaz:
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
up ip route add 10.0.0.0/8 via 192.168.1.1
En /etc/network/interfaces también se puede crear una interfaz de loopback para rutas, pero es más común usar scripts en /etc/network/if-up.d/.
25.5.2. RHEL/CentOS/Fedora
En /etc/sysconfig/network-scripts/route-<interfaz> (ej. route-eth0) se escriben rutas:
10.0.0.0/8 via 192.168.1.1 dev eth0
default via 192.168.1.1
En sistemas con NetworkManager, se pueden añadir con nmcli:
nmcli con mod eth0 +ipv4.routes "10.0.0.0/8 192.168.1.1"
25.6. Enrutamiento dinámico
25.6.1. Protocolos de enrutamiento dinámico
Los protocolos más importantes son:
- RIP (Routing Information Protocol): antiguo, distancia-vector, métrica por saltos, máximo 15 saltos. Simple pero limitado.
- OSPF (Open Shortest Path First): estado-enlace, jerárquico, rápido, estándar abierto. Muy usado en redes empresariales.
- BGP (Border Gateway Protocol): protocolo de pasarela exterior, base de Internet. Escala a miles de rutas.
- IS-IS: similar a OSPF, usado en grandes ISP.
Para LFCS, el conocimiento conceptual es suficiente; no se espera que configures OSPF o BGP completos, pero sí que sepas qué son y cómo funcionan los demonios.
25.6.2. Herramientas de enrutamiento dinámico
Los proyectos más comunes son:
- Quagga: suite antigua que implementa RIP, OSPF, BGP, etc. Utiliza demonios separados (
ripd,ospfd,bgpd) y un demonio centralzebra. - FRRouting (FRR): fork moderno de Quagga, más activo y con más características. Archivos de configuración en
/etc/frr/frr.conf, interfazvtysh. - BIRD: otro suite popular, especialmente en IXPs.
Aunque no es imprescindible para el examen, conocer la existencia de FRR y su configuración mínima puede ser útil.
25.6.3. Ejemplo básico de FRR con OSPF
Instalar FRR (Debian/Ubuntu):
sudo apt install frr
Habilitar demonios en /etc/frr/daemons:
ospfd=yes
zebra=yes
Iniciar y entrar a la interfaz:
sudo systemctl start frr
sudo vtysh
Dentro de vtysh:
configure terminal
router ospf
network 192.168.1.0/24 area 0
network 10.0.0.0/24 area 0
exit
Esto configura OSPF en las redes indicadas, permitiendo el intercambio de rutas con otros routers OSPF.
25.7. Solución de problemas de enrutamiento
| Problema | Posible causa | Solución |
|---|---|---|
| No hay conectividad a una red remota | Falta ruta estática o default gateway | Verificar con ip route, añadir la ruta |
ping falla a un destino conectado | Interfaz caída o IP mal configurada | Revisar ip link, ip addr |
| El router no reenvía paquetes | IP forwarding desactivado | sysctl net.ipv4.ip_forward=1 |
| Rutas estáticas desaparecen tras reinicio | No se hicieron persistentes | Configurar en archivos de red |
| Tabla de enrutamiento con métricas inesperadas | Rutas conflictivas | Usar ip route replace, ajustar métricas |
| Enrutamiento dinámico no intercambia rutas | Demonio no corriendo o config incorrecta | systemctl status frr, logs |
Herramientas de diagnóstico:
ip route: ver tabla.traceroute: seguir la ruta de paquetes.ping: comprobar alcance.tcpdump: capturar paquetes.mtr: combinación de ping y traceroute.
25.8. Ejercicios prácticos
Visualización de rutas: Ejecuta
ip routey explica cada línea. Identifica la ruta por defecto y las rutas directas.Rutas estáticas temporales: Crea una red simulada con dos interfaces (pueden ser virtuales con
ip link add dummy0 type dummy). Asígnales IPs. Añade una ruta a una red ficticia a través de un gateway. Verifica conip route. Elimínala.Configurar un router simple: 3.1. Con dos máquinas virtuales (o contenedores), configura un sistema con dos interfaces, una conectada a “Internet” y otra a la red interna. 3.2. Activa IP forwarding y configura NAT con iptables (MASQUERADE) para que los clientes internos salgan a Internet. 3.3. Añade una ruta estática en el cliente para una red remota a través del router.
Persistencia: Haz persistente la ruta estática en Debian (interfaces) y en RHEL (route-eth0). Reinicia y verifica.
Enrutamiento dinámico (opcional): Instala FRR y configura OSPF en una red con dos routers (pueden ser máquinas virtuales). Verifica que intercambian rutas (
show ip routeen vtysh).
25.9. Resumen y consejos para LFCS
- El comando esencial es
ip routepara ver y modificar rutas. - Las rutas estáticas son temporales; para persistencia se usan archivos de configuración de red.
- IP forwarding (
net.ipv4.ip_forward=1) es necesario para actuar como router. - El enrutamiento dinámico usa demonios como FRR/Quagga; para el examen basta con comprender los conceptos y quizá reconocer un archivo de configuración.
- Practica la resolución de problemas: ver tabla, añadir rutas, comprobar conectividad.
Con este capítulo has aprendido a manejar el enrutamiento en Linux. En el próximo capítulo exploraremos los sistemas de archivos cifrados y espacio de intercambio cifrado, fundamentales para proteger datos en reposo.
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.
