Qué es el enrutamiento: construcción de tablas de enrutamiento en Linux
13:47, 05.10.2022
En Internet, toda la información se transmite en pequeños bloques de datos, llamados paquetes. El paquete propiamente dicho consta de bits de inicio, una cabecera, un remolque y una carga útil; cada uno de estos bloques de datos se transmite a lo largo de una ruta específica, que a su vez está determinada por el router. La ruta de la red se "enruta" en base a la información recibida de las tablas de enrutamiento según los protocolos de enrutamiento y las instrucciones del administrador de la red.
Las tablas de enrutamiento contienen los parámetros necesarios para identificar y leer correctamente la ruta de la red. Contienen las siguientes secciones:
- Destino ( Target). La dirección IP de la red de destino es el destino final de los paquetes de datos.
- Máscara de red (Genmask). La máscara de red de la red.
- Puerta de enlace. La dirección IP de la puerta de enlace.
- Interfaz. La dirección de la interfaz de red.
- Métrica. Este parámetro define la prioridad de la ruta.
La tabla de enrutamiento también puede especificar opcionalmente la dirección del remitente, el tamaño de la ventana TCP y el tamaño máximo del paquete. Todo ello contribuye a optimizar la transmisión de datos en la red. El siguiente artículo explicará cómo gestionar el enrutamiento de Linux y compartirá consejos útiles de configuración.
Comandos de la vista de la tabla de enrutamiento
La gestión del enrutamiento para Linux se realiza mediante tres comandos:
- route - permite ver la tabla de enrutamiento actualmente en funcionamiento;
- netstat - muestra más detalles, incluyendo la dirección IP del objetivo, la puerta de enlace, el remitente, y también muestra el protocolo de transmisión y la interfaz de red que se está utilizando;
- ip - esta herramienta se utiliza para configurar las interfaces de red en profundidad.
Veamos algunos ejemplos básicos de cómo utilizar estos comandos en Linux.
route -n netstat -rn ip route show cat /proc/net/route
Estos comandos permiten ver la tabla de enrutamiento o algunos de sus elementos individuales.
Sin embargo, el comando route sólo puede utilizarse para obtener información en forma numérica completa, pero no puede utilizarse para establecer políticas de enrutamiento. Para ello se debe utilizar el comando ip. Por ejemplo:
ip route add 172.16.10.0/24 via 192.168.1.1 – añadir una ruta a través de una pasarela; ip route add 172.16.10.0/24 dev eth0 – añadir una ruta a través de la interfaz; ip route add 172.16.10.0/24 dev eth0 metric 100 – ruta con una métrica.
También es posible crear una "ruta nula" y los paquetes que pasen por ella se descartarán automáticamente por "No route to host". Para ello, utilice el comando:
ip route add blackhole 10.56.50.0/27
Se recomienda su uso para ataques DoS desde el host.
Comandos para acciones con rutas
Como hemos señalado anteriormente, el comando add permite añadir rutas. Pero esta no es la única operación posible, hay otras tres:
- del - para eliminar una ruta.
- replace - permite sustituir una ruta por otra.
- change - para cambiar los parámetros de la ruta.
Ejemplos de enrutamiento estático
Suponga que tiene dos oficinas conectadas entre sí a través de un túnel IP. Una oficina tiene una dirección IP de 192.168.1.4 y la segunda oficina tiene una dirección IP de 192.168.1.6. Para conectar la LAN entre ellas es necesario escribir un comando en el segundo router:
route add -net 172.16.10.0/24 gw 192.168.1.4
Esto conectará la puerta de enlace "192.168.1.4" para la red "172.16.10.0/24". Luego, en el primer router, escribe lo siguiente:
route add -net 172.20.0.0/24 gw 192.168.1.6
Como puede ver, todo es bastante sencillo y transparente.
Para cambiar la red local del segundo router, simplemente borramos la antigua entrada:
route del -net 172.20.0.0/24 gw 192.168.1.6
Y luego añadir una nueva ruta en el primer router:
route add -net 172.20.0.0/24 gw 192.168.1.6
Dónde se encuentran los archivos de configuración
Las configuraciones de enrutamiento estático estarán ubicadas en diferentes directorios, dependiendo de la distribución utilizada:
- Debian GNU/Linux: /etc/network/interfaces
- RHEL/CentOS/Scientifix: etc/sysconfig/network-scripts/route-<interface name>
- Gentoo: /etc/conf.d/net
Allí también puedes establecer ciertos ajustes y parámetros para el enrutamiento. Si todavía tiene preguntas, póngase en contacto con nuestros especialistas a través de Livechat.