La palabra router es una de las que más leemos o escuchamos cuando hablamos de redes. Sin embargo, nunca está demás conocer un poco más respecto a cómo funcionan internamente. En esta ocasión, vamos a hablar de las tablas de enrutamiento. Este es uno de los componentes esenciales para que un router pueda cumplir su función, y esa consiste en dirigir a los paquetes de datos al destino a través de la ruta más adecuada.
Una tabla de enrutamiento es un conjunto de reglas que sirven para determinar qué camino deben seguir los paquetes de datos. Todo esto a través de toda red que trabaje con el protocolo IP. Cualquier dispositivo que tenga la posibilidad de tener una dirección IP, incluyendo routers y PC como Windows, Linux o Mac, tienen una tabla de enrutamiento para saber cómo llegar al destino. Para tener una idea más clara, veremos qué es y sus diferentes componentes.
¿Qué es la tabla de enrutamiento?
La tabla de enrutamiento en un router es una parte muy importante que gestiona la dirección de los paquetes de datos en una red. Funciona almacenando información sobre las rutas disponibles y determinando la mejor manera de enviar un paquete desde su origen hasta su destino. Por ejemplo, si te preguntas como es posible que el router sepa dónde tiene que enviar los paquetes de datos, la clave está en que crea una tabla de enrutamiento basada en la red en la que se encuentra para enviar estos datos sin inconvenientes.
Cuando un router recibe un paquete, examina la dirección IP de destino y consulta su tabla de enrutamiento. Esta tabla contiene entradas con información como la dirección IP de destino, la máscara de red y la interfaz de salida. La decisión sobre la ruta se toma basándose en reglas y protocolos de enrutamiento configurados en el router.
Diferentes protocolos de enrutamiento, como RIP, OSPF y BGP, facilitan el intercambio de información entre routers para mantener actualizada la tabla de enrutamiento. Cada ruta en la tabla tiene una métrica asociada que indica el “coste” de esa ruta, basado en factores como la velocidad de la conexión o la distancia. El router elige la ruta con la métrica más baja como la mejor opción.
La actualización dinámica de la tabla de enrutamiento es importante en entornos de red que son cambiantes. Los routers intercambian información constantemente para adaptarse a cambios en la tipología de red. Además, existen dos tipos principales de enrutamiento: estático, donde las rutas se configuran de manera manual por el usuario, y dinámico, donde los routers intercambian información de manera automática para actualizar sus tablas sin necesidad de que el administrador de redes intervenga. De este modo, la tabla de enrutamiento es como un mapa que guía el flujo de datos a través de la red, basándose en la información actualizada y las métricas de la ruta para mejorar la eficiencia de la red.
Hay que tener en cuenta que una tabla de enrutamiento cuenta con una lista de rutas a redes ya conocidas. Esto se consigue a través de las redes conectadas de manera directa, rutas estáticas y los diferentes protocolos de enrutamiento dinámico.
Componentes de una tabla de enrutamiento
Una tabla de este tipo contiene toda la información necesaria para hacer que uno o varios paquetes de datos puedan viajar a través de la red utilizando el mejor camino. Así, se garantiza su llegada al destino, siempre que se utilicen protocolos de la capa de transporte orientados a conexión, como TCP, ya que TCP sí nos garantiza que un paquete llega al destino correctamente. Es bueno recordar que cada paquete de datos contiene, valga la redundancia, datos adicionales que nos ayudan a saber respecto a la dirección de IP origen y la IP de destino, entre otra información que va en la cabecera.
Citemos como ejemplo a un router, este tipo de dispositivos cuentan con una (o varias) tabla de enrutamiento. Lo que hace dicha tabla es permitir que dicho dispositivo pueda mandar el paquete de datos al siguiente salto, es decir, ante la próxima interfaz de red con la que pueda encontrarse. Sin embargo, esto depende únicamente de la manera que hemos configurado nuestros dispositivos de redes. En este caso, los routers.
Los componentes de una tabla de enrutamiento son:
- Red de destino: esto corresponde a la red de destino donde deberá ir el paquete de datos.
- Máscara de subred: es la que se utiliza para definir la máscara de subred de la red a la que debemos ir.
- Distancia administrativa: es la que identifica la fiabilidad del origen de la ruta. Por ejemplo, los valores más bajos son los que indican el origen de ruta preferido.
- Siguiente salto: en inglés a esto se lo conoce como next hop. Es la dirección de IP de la interfaz de red por donde viajará el paquete de datos, para seguir con su camino hasta el final.
- Interfaz de salida: es la interfaz de red por donde deben salir los paquetes, para posteriormente llegar finalmente al destino.
- Route timestamp: en este caso es el que identifica el tiempo que ha pasado desde que se ha conseguido descubrir la ruta en cuestión.
- Métricas: tienen varias aplicaciones. Una de ellas consiste en indicar el número mínimo de saltos hasta la red de destino, o simplemente el «coste» para llegar hasta la red de destino, y sirve para dar prioridad.
Los tipos de rutas que se pueden almacenar en una tabla de enrutamiento son:
- Conectadas directamente
- Rutas remotas
- De host
- Rutas por defecto
- El destino
Es sumamente importante tener reforzado el concepto de ruteo. Es decir, cuál es la función de un router en la red:
- Recibe el paquete de datos.
- Busca cuál es la dirección de destino.
- Verifica la tabla de enrutamiento que tiene configurada.
- Procede a enviar el paquete a destino por la mejor ruta posible.
Principios de la tabla de enrutamiento
Existen tres principios de tabla de enrutamiento. Estos abordan los diferentes problemas mediante una adecuada configuración de protocolos de red dinámicos o estáticos, en todos los routers de origen y destino.
- Cada router toma sus decisiones de forma independiente. Esto lo hace basándose en la información que tiene la propia tabla de enrutamiento. Por lo cual uno de estos dispositivos puede reenviar paquetes según su propia tabla, pero desconoce las de los demás routers.
- Las tablas de enrutamiento no tienen que coincidir con las de otro router. Si un determinado aparato tiene ciertas rutas hacia cierta red, y que esta ruta pase por otro router, no quiere decir que el router por el cual pasa conozca la tabla del primero.
- La información del routing sobre una determinada ruta no proporciona información de esa ruta en su retorno. Por lo cual, si nuestro router recibe un paquete con una dirección IP de destino de un PC y la dirección IP de origen de otro PC, el hecho de que el router sepa enviar de nuevo ese paquete no significa que sepa enviar los paquetes originados en el primer PC a la red del segundo.
Protocolo de ruteo
Su uso está destinado a descubrir, comparar y seleccionar las que sean las rutas más óptimas hacia destinos concretos de la red. Se encargan de ejecutar lo que llamamos el Ruteo Dinámico, el cual veremos más abajo en la entrada, mediante algoritmos. Y existen una gran variedad de estos protocolos, algunos de ellos son:
- RIP (Routing Information Protocol)
- OPSF (Open Shortest Path First)
- EIGRP (Enhaced Interior Gateway Protocol)
- BGP (Border Gateway Protocol)
Estos soportan protocolos enruteables con mecanismos usados para el intercambio de las vías o la propia topología de la red, y así compartir la información requerida. También establecerán la comunicación entre los routers para realizar intercambios y el posterior y necesario mantenimiento de todas las tablas de ruteo.
¿Cómo se realiza el mantenimiento de esta tabla?
Básicamente, de tres maneras: las redes conectadas directamente que se mantienen de forma automática, ya que son las conectadas directamente y las rutas se añaden automáticamente. También tenemos el routing estático, donde el administrador de la red añade o quita una o varias rutas, y, por último, tenemos el routing dinámico.
Hoy en día, se da mucha importancia al routing dinámico. ¿Cómo funciona? Los dispositivos de red, en este caso los routers, crean y actualizan sus tablas de enrutamiento automáticamente. Lo hacen mediante protocolos de enrutamiento para intercambiar información respecto a las topologías de red. Si se cuenta con una red grande o muy grande, el routing estático y, en consecuencia, el mantenimiento manual del mismo, implicará muchísimas horas de esfuerzo del personal técnico. Esto último resulta muy poco práctico y mucho menos productivo. Las tablas de enrutamiento dinámico permiten que los dispositivos de red conectados se «escuchen» entre sí, de manera a que puedan actualizar automáticamente sus tablas de enrutamiento de acuerdo a los eventos de la red. Sobre todo, si hablamos de fallos o congestión en la red.
A continuación, revisaremos con algo más detalle tanto al ruteo estático como el dinámico.
Routing estático
Como hemos comentado, las rutas estáticas se configuran en el router en forma manual, lo mismo que ocurre con su mantenimiento. ¿En qué momento se podría dar un requerimiento de cambiar? Cuando hay cambios en la topología de red. A pesar de que, generalmente, el routing estático es muy trabajoso, sobre todo a la hora de realizar el mantenimiento, tiene un par de beneficios que lo convierten aún en una opción para configurar el ruteo:
- Mayor seguridad de que una ruta se ha introducido correctamente y no hay problemas, ya que son introducidas manualmente por el administrador.
- Eficiencia a la hora de gestionar los recursos, porque no hay ningún protocolo funcionando en el router.
Existen dos tipos principales de ruteo estático: a una red específica y estática predeterminada (o ruta por defecto). Para tener un mejor contexto, si se utiliza IPv4 la configuración del ruteo estático a una red específica tiene la siguiente estructura:
DirecciónIP MáscaradeSubred IPsiguientesalto | InterfazDeSalida
Apliquemos esta estructura a un comando de router del fabricante Cisco:
ip route 192.168.0.0 255.255.255.0 192.168.10.5
En vez de la IP del siguiente salto, o sea, la IP de la interfaz por donde seguirá navegando el paquete de datos, podemos indicar la interfaz:
ip route 192.168.0.0 255.255.255.0 serial 0/0/1
Ahora bien, por el lado de la ruta estática predeterminada o ruta por defecto, debemos saber que esto sirve cuando la tabla de enrutamiento no tiene una ruta específica para la red de destino. Esto se aplica especialmente cuando hay que configurar routers que permitan la salida a Internet. ¿Por qué no nos sería útil la ruta a una red específica si vamos a navegar en Internet? Porque nadie tiene seguro a qué tipo de sitios y servicios web va a estar accediendo cada día. No lo percibimos, pero nosotros como usuarios de la red de redes, estamos accediendo a múltiples redes a diario. Por lo que es inviable la ruta estática específica, ni tampoco la dinámica porque los routers domésticos no soportarían todas las redes del mundo. De ahí a que la ruta por defecto nos permitirá ir a donde queramos, cuando necesitamos de la salida a Internet, ya que se encargará de enviar todos los paquetes por defecto al router del operador.
Sin embargo, la estructura del comando de configuración es muy similar a la ruta estática «normal». Veamos su estructura:
0.0.0.0 0.0.0.0 IPsiguientesalto | InterfazDeSalida
Apliquemos esta estructura nuevamente a un comando de router de Cisco:
ip route 0.0.0.0 0.0.0.0 192.168.10.5
En vez de la IP del siguiente salto, o sea, la IP de la interfaz por donde seguirá navegando el paquete de datos, podemos indicar la interfaz:
ip route 0.0.0.0 0.0.0.0 serial 0/0/1
En este caso, si se realiza algún tipo de cambio o reconfiguración de la red, estas se verán afectadas en mayor medida, pues es necesario prestarles atención y ponerlas de nuevo en comunicación.
Routing dinámico
Los routers se valen de los distintos protocolos de routing dinámico para compartir todo dato relacionado al estado de las redes. En lugar de que un administrador de red configure manualmente las tablas de enrutamiento, los protocolos de enrutamiento dinámico se encargan de esto. Lo único que tendrá que hacer el administrador es configurar correctamente el protocolo de enrutamiento dinámico, y compartir las redes que tiene directamente conectadas, para que otros routers sepan dónde deben ir en caso de que se requiera acceso a esa red. Esta especie de aprendizaje permite que se determine la mejor ruta para cada caso para posteriormente, agregarla a la tabla de enrutamiento del router.
Estos métodos, nos proporcionan mayor grado de escalabilidad, permitiendo que la operación de grandes redes, las cuales manejan muchas direcciones y cambios de forma constante, se realicen de forma más sencilla. Otra ventaja puede ser la redundancia, ya que si por algún motivo el proceso tiene algún fallo, este puede establecer de nuevo la comunicación hacia su destino sin que esté error represente un inconveniente.
Para todo esto, cuentan con gran capacidad para establecer otras rutas hacia otras redes a través de varias conexiones o enlaces, a mayores de optimizar el rendimiento entre los diferentes enlaces mediante el balanceo del tráfico. En cambio, según el protocolo enviado, esto nos puede requerir un mayor gasto en cuanto a lo que los recursos disponibles puede generar. Esto afectará a la CPU y memoria.
Estos protocolos son conjuntos de reglas que determinan cómo se realizará el intercambio de información entre los diferentes dispositivos o máquinas que se encuentran en la red. Para ello se proporcionan reglas sintácticas y semánticas, donde se determinan los diferentes formatos para los paquetes, sus definiciones y cómo estos se interpretan. Se podría decir que son algoritmos, los cuales permiten especificar los procesos sin la necesidad de conocer todas las vías de comunicación
Es importante citar un par de ventajas relacionadas al routing dinámico. La más importante tiene que ver con la capacidad de determinar una nueva mejor ruta si es que la que se determinó en un principio ha quedado fuera de operación. Por otro lado, la intervención humana no es necesaria en ningún caso, ni ante los cambios de topología de red más complejos.
Protocolos de enrutamiento de pasarela interior (IGP)
Dentro de un AS (Sistema Autónomo) existen varios protocolos de enrutamiento dinámico que se pueden utilizar para intercambiar información de enrutamiento entre los diferentes routers, y todo ello de forma automática sin que tengamos que intervenir en absoluto por nuestra parte, aunque lógicamente tendremos que configurarlos adecuadamente.
Algunos protocolos de enrutamiento IGP son los siguientes:
- RIP (Routing Information Protocol): este protocolo es uno de los más antiguos que existen, y se sigue utilizando hoy en día en redes pequeñas y medianas. Debemos tener en cuenta que este protocolo no permite más de 15 saltos, a partir del número 15 la ruta se considera inalcanzable. Por este motivo, este protocolo RIP se usa en redes pequeñas donde tenemos pocos routers interconectados. Por ejemplo, Movistar con su Movistar TV utiliza RIPv2 para recibir los canales de TV.
- OSPF (Open Shortest Path First): este protocolo es uno de los mejores que existen en la actualidad, es muy rápido y eficiente, es ideal para redes medianas, grandes y muy grandes. OSPF lo suelen utilizar los operadores que tienen cientos de routers. Además, este protocolo nos permite subdividir el sistema autónomo en pequeñas áreas, con el objetivo de optimizar aún más el intercambio de información entre los routers. Si vas a montarte tu propio AS, valora muy bien el configurar OSPF porque será la elección acertada.
- IS-IS (Intermediate System to intermediate System): este protocolo también es un protocolo de estado de enlace como OSPF, se puede usar en redes medianas y también en redes grandes. Muchos operadores usan IS-IS en lugar de OSPF porque consume algo menos de recursos, también permite dividir el AS en áreas más pequeñas. Un detalle importante es que IS-IS se ejecuta en la capa de enlace de datos (L2) mientras que OSPF lo hace en capa de red (L3). Otras diferencias es que OSPF permite enlaces virtuales y IS-IS no lo permite.
Tal y como podéis ver, tenemos tres protocolos IGP ampliamente usados, aunque también existe el protocolo EIGRP que es propietario de Cisco.
Protocolos de enrutamiento de pasarela exterior (EGP)
En cuanto a los protocolos de enrutamiento de pasarela exterior, disponemos del protocolo BGP (Border Gateway Protocol). Este protocolo se encarga de comunicar las rutas entre diferentes AS (Sistemas Autónomos). BGP funciona en conjunción con los protocolos IGP, mientras que los protocolos IGP intercambian información de enrutamiento dentro del AS, BGP lo hace entre sistemas autónomos, y es uno de los protocolos más importantes que existen para la intercomunicación de todo el mundo en Internet. Si BGP falla, simplemente las rutas entre los AS desaparecen y hay comunicación inter-AS. Debemos recordar que Facebook sufrió un gran «apagón» debido al protocolo BGP, y es que simplemente desapareció de Internet durante varias horas.
Niveles de complejidad
Las tablas de enrutamiento son herramientas esenciales para la gestión y el direccionamiento de redes de datos. Y como tal, su complejidad puede variar significativamente dependiendo del tamaño y la de otros factores que pueden influir en gran medida. En redes pequeñas y simples, las tablas de enrutamiento pueden ser relativamente sencillas y fáciles de gestionar. En estas redes, los routers pueden ser capaces de realizar el enrutamiento de forma automática, sin necesidad de intervención humana. En estos casos, las tablas de enrutamiento pueden constar de sólo unos pocos registros, que indican las rutas de los paquetes de datos en la red.
Por otro lado, en redes más grandes y complejas, las tablas de enrutamiento pueden ser extremadamente complejas. En estas redes, puede haber cientos o incluso miles de routers, cada uno con su propia tabla de enrutamiento. Además, puede haber diferentes protocolos de enrutamiento y múltiples redes interconectadas, lo que aumenta la complejidad del sistema.
Para manejar la complejidad de las tablas de enrutamiento en redes grandes, se utilizan técnicas avanzadas de enrutamiento. Estas técnicas incluyen el enrutamiento dinámico, en el que los enrutadores intercambian información sobre la topología de la red y los enlaces disponibles para determinar las mejores rutas de enrutamiento. También se utilizan técnicas de enrutamiento basadas en políticas, que permiten a los administradores de redes establecer políticas para el enrutamiento de paquetes.
En todo caso, se pueden simplificar tablas de enrutamiento complejas mediante diversas técnicas. La simplificación de la tabla de enrutamiento es importante porque puede mejorar el rendimiento de la red y reducir la carga en los routers. Lo cual puede ser de gran ayuda, a medida que se va aumentando tanto el tamaño como la complejidad de la red.
- Sumarización de rutas.
- Enrutamiento basado en políticas.
- Utilizar enrutamiento dinámico.
- Configuración adecuadamente los routers.
Ruta conectada directamente
Por otro lado está la red conectada directamente o la ruta conectada directamente. En este caso se trata de la opción del router para que pueda aprender sobre las redes remotas, para ello, lo cierto es que debe contar con al menos una interfaz activa que esté configurada con una IP y una máscara de subred. De esta forma, los routers consiguen añadir una ruta conectada directamente cuando una interfaz se configura de esta manera.
En este caso, se indica con el código de estado C dentro de la tabla de enrutamiento. Además, hay que tener en cuenta que la ruta cuenta tanto con un prefijo de red como con una longitud de prefijo. Y es que, en el momento en el que la interfaz se haya configurado con una dirección IP y la máscara de subred, las redes conectadas a los enrutadores se pasan automáticamente a la tabla de enrutamiento.
Actualizar tablas de enrutamiento
Como has podido ver, las tablas de enrutamiento son colecciones de información donde se establece una red de referencia para el router. Por cada uno de los paquetes enviados por la red, se envía un paquete de respuesta. El router con la tabla de enrutamiento dinámico, recibe los paquetes de retorno, y examina toda la información de la cabecera para ver la ruta en la que fur tomada. Luego esta información se puede utilizar para realizar una actualización de la tabla de enrutamiento.
En estos casos, si paquete regresa a la puerta de enlace que está de forma predeterminada, no se actualiza nada. Ya que todos los paquetes que van a la red que los recibe, ya se enrutan a través de los puertos desde el inicio. Por ejemplo, si un paquete se envía por el puerto número 4 para una determinada red y se devuelve por el puerto número dos, la tabla se actualizará de forma automática. En ese caso ya se mostrará que ambas redes involucradas en el envío de esos paquetes, se pueden alcanzar a través del puerto número 2 que hemos visto previamente. Por lo cual, el siguiente paquete destinado a la red, saldría por el puerto número 2, en lugar de la puerta de enlace que se tenía establecida previamente.
De esta forma, ayuda a que las todo se haga de una forma más automatizada. Lo cual puede beneficiar a que la red sea más eficiente en muchos casos. Ya que no van a necesitar tanta mano de los administradores para realizar estas tareas. Esto se realiza sobre las tablas dinámicas, ya que con las estáticas no se podría. Aunque la finalidad de ambas redes es prácticamente la misma, a nivel administrativo las dinámicas son mucho más permisivas. Ya que, en las estáticas, cualquier cambio se debe establecer de forma concreta.
Tal y como habéis visto, tenemos diferentes formas de intercambiar las rutas, tanto usando rutas estáticas gestionadas por el administrador de la red, como también rutas dinámicas gestionadas por un protocolo de enrutamiento, ya sea IGP o EGP.
¿Tiene desventajas el uso de estas tablas?
Las tablas de enrutamiento, como ya hemos visto, son esenciales para dirigir paquetes en redes, y no podemos obviarlas, sin embargo, tienen algunas desventajas que es importante conocer, así que vamos a ver una lista con las principales:
- Escalabilidad limitada: A medida que la red crece, las tablas de enrutamiento pueden volverse muy grandes, lo que aumenta los tiempos de búsqueda y puede afectar el rendimiento general del enrutador.
- Consumo de recursos: Las tablas de enrutamiento ocupan memoria y requieren de procesamiento, por lo que, como cualquier otro programa o sistema, van a necesitar de un equipo con hardware suficiente. En dispositivos de baja capacidad, esto puede generar cuellos de botella o incluso fallas en la red.
- Actualización de rutas: En redes dinámicas, los protocolos de enrutamiento (como OSPF o BGP) actualizan las tablas de forma continua, lo que puede generar un alto tráfico de control y aumentar la latencia.
- Errores humanos: Aunque por norma general, una persona individual, en su casa, no se tiene que ocupar de esto, en algunos casos, configurar rutas estáticas de manera incorrecta puede provocar fallos en el enrutamiento o bucles en la red, afectando la conectividad.
- Limitaciones en redes dinámicas: Aunque los protocolos de enrutamiento automático facilitan la actualización de las tablas, también pueden introducir problemas como envenenamiento de rutas, bucles de enrutamiento o inconsistencias temporales.
En la mayoría de casos, como decíamos, el usuario no se ocupa de nada, y todo esto es algo que debemos conocer más por simple conocimiento que por necesidad, sin embargo, está bien descubrir cuáles pueden ser los problemas que generan estas tablas, sobre todo en grandes redes.