Ruteo dinámico
En un post anterior se describieron las características del ruteo estático y dinámico, explicando ventajas y desventajas de cada uno. En este caso, se explicarán los diferentes tipos de ruteo dinámico y las características de cada uno. Existen fundamentalmente dos tipos de protocolos de enrutamiento dinámico: los de vector distancia y los de estado de enlace. Ambos se tratan a continuación.
Protocolos de vector distancia.
En una red donde se utiliza un protocolo de vector distancia cada dispositivo envía actualizaciones periódicas indicando una por una las redes que puede alcanzar y la métrica para llegar a ellas (es decir, cuánto le cuesta llegar a esa red). De esta manera, cada router conoce sólo a sus vecinos, las redes que puede alcanzar por medio de ellos y el costo de ir por cada vecino (en caso de existir múltiples caminos para un mismo destino). Para su funcionamiento se basan en el algoritmo de Bellman-Ford.
Por su naturaleza, los protocolos de vector distancia no tienen un conocimiento global de la topología entera de la red, lo cuál puede traer asociadas algunas dificultades como la posibilidad de bucles de ruteo. Adicionalmente, en una red de dimensiones considerables, el intercambio de información propia de estos protocolos puede generar un gran tráfico en la red. No obstante, cuentan con dos ventajas importantes: son simples en su funcionamiento lo cuál implica facilidad de configuración y detección de errores y la ejecución de su algoritmo consume pocos recursos en los routers.
Protocolos de estado de enlace.
Los protocolos de estado de enlace, por su parte, se basan para funcionar en dos bases fundamentales:
- Un conocimiento global de la red, con nodos, enlaces y los costos de los mismos.
- Un algoritmo capaz de encontrar los caminos mínimos desde un punto a cada destino.
Las ventajas de los protocolos de enrutamiento de estado de enlace es que al tener un conocimiento global de la red siempre eligen los caminos óptimos y no corren riesgos de sufrir bucles de ruteo. Además convergen de manera rápida y reaccionan de una forma mucho más veloz al detectar algún problema en la red. Otra gran ventaja es que son escalables lo que permite que sean utilizados en redes medianas y grandes, dado que algunos de ellos soportan un diseño de red jerárquico. Además suelen consumir pocos recursos de la red una vez que está funcionando y si la misma se mantiene estable.
Las mayores desventajas de estos protocolos son, por un lado, su complejidad de funcionamiento, lo que requiere que el administrador tenga un conocimiento profundo para que funcionen de forma óptima y poder resolver eventuales problemas. Los mismos utilizan el algoritmo de Dijsktra para desempeñar su función. Otra desventaja es que son bastante más demandantes en capacidad de procesamiento en comparación con los de vector distancia.
Clasificación de los protocolos más conocidos.
| Protocolo | Tipo |
| RIP | Vector distancia. |
| OSPF | Estado de enlace. |
| IS-IS | Estado de enlace. |
| EIGRP | Vector distancia (aunque se podría decir que es un híbrido, dado que tiene características de los protocolos de estado de enlace). |
| BGP | Vector de ruta. |
Ruteo estático frente a ruteo dinámico
Introducción.
Para que una red funcione correctamente es necesario que todos los routers conozcan las distintas redes que pueden alcanzar y por dónde. Este conocimiento y la decisión de a quién enviar el tráfico es responsabilidad del router. Ahora bien, para obtener el conocimiento necesario, un equipo se puede basar básicamente en dos estrategias: ruteo estático y ruteo dinámico.
Ruteo estático.
El ruteo estático es la forma más sencilla y que menos conocimientos exige para configurar las tablas de ruteo en un dispositivo. Es un método manual que requiere que el administrador indique explícitamente en cada equipo las redes que puede alcanzar y por qué camino hacerlo.
La ventaja de este método, además de la simpleza para configurarlo, es que no supone ninguna sobrecarga adicional sobre los routers y los enlaces en una red. Sin embargo, las desventajas principales son determinantes en muchos casos para no escoger este método.
Por un lado, configurar rutas estáticas en una red de más de unos pocos routers puede volverse un trabajo muy engorroso para el administrador, además de aumentar la probabilidad de cometer un error, en cuyo caso puede llegar a ser bastante dificultoso encontrar dicho error. Pero además, existe un problema aún más importante: la redundancia. Cuando se utiliza ruteo estático en una red con redundancia y hay un fallo en un enlace el administrador debe modificar las rutas manualmente, lo cuál implica un tiempo de respuesta ante una falla mucho mayor que si se utiliza un método automático.
Ruteo dinámico.
En contraposición con el método estático, el ruteo dinámico utiliza diferentes protocolos cuyo fin es el de intercambiar rutas entre dispositivos intermedios con el objetivo de tener una red totalmente accesible. En este caso, los routers envían y reciben información de enrutamiento que utilizan para armar sus tablas de ruteo.
El ruteo dinámico tiene varias ventajas que lo convierten en el preferido en la mayoría de los casos: configurar el ruteo en una red mediana a grande implica mucho menos trabajo para el administrador, a la vez que permite que la red completa se ponga en funcionamiento en un tiempo mucho menor; es capaz también de adaptarse a los problemas, ya que puede detectar la falla de un enlace principal y utilizar entonces un enlace alternativo para alcanzar el destino (si lo hubiera).
Las desventajas son que, al intercambiar información entre los dispositivos y requerir que cada router procese dicha información se utiliza tanto ancho de banda de los enlaces como tiempo de procesamiento en los equipos, lo cuál en algunas circunstancias puede convertirse en un problema. Adicionalmente, dependiendo del protocolo que se utilice, el enrutamiento dinámico requiere un mayor conocimiento por parte del administrador, tanto para configurarlo de forma correcta como para solucionar problemas.
Conclusión.
En este breve post se ha visto una introducción a cada tipo de protocolo de ruteo. La elección de un tipo sobre el otro depende siempre del administrador, aunque en muchos casos también puede existir una limitación en el hardware utilizado o en las políticas de la organización.
Curso de CCNP
Desde el día de mañana hasta el miércoles inclusive me encontraré haciendo un curso intensivo de CCNP, el correspondiente a ROUTE 642-902. Dicho curso abarca los siguientes temas:
- Planificación, diseño, implementación y verificación del ruteo en una red.
- EIGRP.
- OSPF multiárea.
- Redistribución en protocolos IGP.
- Ruteo basado en políticas e IP SLA.
- BGP.
- Conectividad de oficinas y trabajadores remotos.
- IPv6: fundamentos, funcionamiento, protocolos de ruteo y coexistencia con redes IPv4.
La metodología del curso es la misma que las de los CCNA aunque el material de trabajo ya no es en línea sino que se utiliza un libro. Al momento he tenido que leer todo el contenido y los temas me han resultado muy interesantes, veré sobre qué se trabaja en estos tres días de curso. Lo bueno es que probablemente, basado en el aprendizaje que obtenga, habrá algún post referido a alguno de los temas del curso.
VLANs con Linux
Introducción
Crear múltiples VLANs en Linux e incluso armar un trunk con dicho sistema operativo es muy sencillo y explicar cómo se hace es el objetivo de este post. Los motivos por los cuáles se puede querer hacer esto son potencialmente muchos, aunque a continuación dejo algunos ejemplos:
- Utilizar el equipo como punto de concentración y ruteo de varias redes diferentes.
- Host de máquinas virtuales, necesitando que las diferentes máquinas estén en VLANs distintas.
Configuración
El prerequisito para hacer esto es contar con el paquete de VLAN que, en Debian y derivados es pecisamente vlan. Por ello, en esos sistemas:
aptitude install vlan
Luego, para crear una interfaz de con un VLAN ID 22, con nombre vlan22, asociada a la interfaz eth0 y con la IP 192.168.22.2:
vconfig add eth0 22 vlan22 ifconfig vlan22 192.168.22.2 netmask 255.255.255.0 up
De la misma manera, para eliminar la interfaz creada:
vconfig rem vlan22
Ahora bien, esto es necesario hacerlo cada vez que arranca el equipo. Para que el cambio sea permanente, en los Debian/Ubuntu, editar el archivo /etc/network/interfaces y agregar las siguientes líneas:
auto vlan22
iface vlan22 inet static
address 192.168.22.2
netmask 255.255.255.0
NOTA: si el equipo con Linux recibe tráfico sin taggear, lo interpretará directamente en su interfaz eth0. Si el tráfico viene taggeado con el ID 22 entonces deberá leerse en la interfaz vlan22. Obviamente pueden agregarse tantas interfaces de VLAN a la misma interfaz física como se deseen y, de esta manera, el equipo podría recibir un trunk con cada una de las VLANs.
Tipos de NAT y configuración en Cisco
Existen básicamente tres modos de funcionamiento de NAT que son los que explicaré a continuación.
NAT estático
Consiste básicamente en un tipo de NAT en el cuál se mapea una dirección IP privada con una dirección IP pública de forma estática. De esta manera, cada equipo en la red privada debe tener su correspondiente IP pública asignada para poder acceder a Internet. La principal desventaja de este esquema es que por cada equipo que se desee tenga acceso a Internet se debe contratar una IP pública. Además, es posible que haya direcciones IP públicas sin usar (porque los equipos que las tienen asignadas están apagados, por ejemplo), mientras que hay equipos que no puedan tener acceso a Internet (porque no tienen ninguna IP pública mapeada). Para configurar este tipo de NAT en Cisco nos valemos de los siguientes comandos, donde se ve que el equipo con IP 192.168.1.6 conectado por medio de la interfaz fastEthernet 0/0 será nateado con la IP pública 200.41.58.112 por medio de la interfaz de salida serial 0/0.
Router(config)# ip nat inside source static 192.168.1.6 200.41.58.112 Router(config)# interface fastEthernet 0/0 Router(config-if)# ip nat inside Router(config)# interface serial 0/0 Router(config-if)# ip nat outside
NAT dinámico
Este tipo de NAT pretende mejorar varios aspectos del NAT estático dado que utiliza un pool de IPs públicas para un pool de IPs privadas que serán mapeadas de forma dinámica y a demanda. La ventaja de este esquema es que si se tienen por ejemplo 5 IPs públicas y 10 máquinas en la red privada, las primeras 5 máquinas en conectarse tendrán acceso a Internet. Si suponemos que no más de 5 máquinas estarán encendidas de forma simultánea nos garantiza que todas las máquinas de nuestra red privada tendrán salida a Internet eventualmente. Para configurar este tipo de NAT definimos el pool de IPs públicas disponibles y el rango de direcciones privadas que deseamos que sean nateadas.
En el siguiente ejemplo se cuenta con las direcciones IPs públicas desde la 163.10.90.2 a la 163.10.90.6 y la subred privada 192.168.1.0/24.
Router(config)# ip nat pool name DIR_NAT_GLOB 163.10.90.2 163.10.90.6 netmask 255.255.255.240 Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255 Router(config)# ip nat inside source list 10 pool DIR_NAT_GLOB Router(config)# interface fastEthernet 0/0 Router(config-if)# ip nat inside Router(config)# interface serial 0/0 Router(config-if)# ip nat outside
NAT con sobrecarga
El caso de NAT con sobrecarga o PAT (Port Address Translation) es el más común de todos y el más usado en los hogares. Consiste en utilizar una única dirección IP pública para mapear múltiples direcciones IPs privadas. Las ventajas que brinda tienen dos enfoques: por un lado, el cliente necesita contratar una sola dirección IP pública para que las máquinas de su red tengan acceso a Internet, lo que supone un importante ahorro económico; por otro lado se ahorra un número importante de IPs públicas, lo que demora el agotamiento de las mismas.
La pregunta casi obvia es cómo puede ser que con una única dirección IP pública se mapeen múltiples IPs privadas. Bien, como su nombre lo indica, PAT hace uso de múltiples puertos para manejar las conexiones de cada host interno. Veamos esto con el siguiente ejemplo:
La PCA quiere acceder a www.netstorming.com.ar. El socket está formado por:
- IP origen: PCA.
- Puerto origen: X.
- IP destino: www.netstorming.com.ar.
- Puerto destino: 80.
Al llegar el requierimiento anterior al router que hace PAT, el mismo modifica dicha información por la siguiente:
- IP origen: router.
- Puerto origen: Y.
- IP destino: www.netstorming.com.ar.
- Puerto destino: 80.
Además, el router arma una tabla que le permite saber a qué máquina de la red interna debe dirigir la respuesta. De esta manera, cuando recibe un segmente desde el puerto 80 de www.netstorming.com.ar dirigido al puerto Y del router, este sabe que debe redirigir dicha información al puerto X de la PCA.
La forma de configurar NAT con sobrecarga es la siguiente.
Router(config)# access-list 10 permit ip 192.168.1.0 0.0.0.255 Router(config)# ip nat inside source list 10 interface serial 0/0 overload Router(config)# interface fastEthernet 0/0 Router(config-if)# ip nat inside Router(config)# interface serial 0/0 Router(config-if)# ip nat outside



