El enrutamiento es uno de los temas más interesantes de las redes de datos. En esta entrada busco describir cómo se comprende el enrutamiento en Internet con base en la idea del Sistema Autónomo. Disfrútenlo.

¿Qué es el enrutamiento?

Por supuesto, habrá que comenzar por definir el enrutamiento. A continuación voy a hacer una descripción básica sobre enrutamiento, si usted no tiene ni idea de qué es enrutamiento, por favor visite mis otras entradas sobre el tema antes de continuar.

Básicamente el enrutamiento consiste en controlar por dónde transitan los flujos de información en una red cuyo propósito es precisamente transportar los datos. Cada flujo de información desde un dispositivo de red (p. ej.: un PC) a otro en Internet consiste en un conjunto (flujo) de paquetes marcados con la misma dirección origen y destino, cada uno de ellos empieza un viaje autónomo donde cada dispositivo en el camino decide (también autónomamente) qué hacer con cada paquete que le llegue. Si un dispositivo intermedio soporta enrutamiento, mirará la dirección IP destino y buscará en su información de enrutamiento la mejor forma de reenviar ese paquete a un vecino que resulte estar más cerca del destino del paquete particular.

Entonces, el enrutamiento es el conjunto de mecanismos que aplica un dispositivo para garantizar que cada paquete dentro de un flujo de datos que transitan por sus interfaces de red se acerquen a su destino. La base del enrutamiento es entonces el concepto de RED que lo podríamos asimilar a un identificador de sitio o ubicación, sin embargo no hay una relación implícita que me permita calcular, a partir de la dirección de red de un paquete, una distancia a su red destino. Para determinar qué tan lejos está una red de un dispositivo particular, hay que compartir información con todos los dispositivos, nodo a nodo, hasta los que pueden alcanzar directamente a ese destino, de ésta manera se logra identificar de entre los vecinos inmediatos de cada enrutador, cuál de ellos está más cerca a una red particular.

El enrutamiento más común es el enrutamiento IP, es decir, el que se basa en direcciones IP. Otros protocolos  enrutables serían IPX que también tienen un identificador de red que lo hace enrutable o direcciones CLNS que también identifican las redes. En enrutamiento IP, cada dispositivo (enrutador) recolecta todas las posibles redes destinos que tiene a su alcance y mapea cada uno de esos destinos a una interfaz de salida, con la convicción de que esa salida llevará a los paquetes que tengan cierto destino a un dispositivo más cercano al mismo. El criterio de cercanía a una red destino se basa en el concepto de métrica, que se asimila al costo, en otras palabras, con la información que comparten los enrutadores nodo a nodo, se halla un costo para llegar a una red desde el dispositivo que lo calcula por cada una de las diferentes rutas posibles, evidentemente, la interfaz que se elige como salida es aquella a la cual se calculó una ruta de menor costo.

¿Qué es un sistema autónomo?

Cuando tenemos una red de PCs, tenemos tantas direcciones IPs diferentes como computadores haya en la red, si los enrutadores tuvieran que recordar todas las direcciones posibles y comparar cada paquete que leen con una tabla de ese tamaño, la tarea sería simplemente imposible. Para evitar eso se agrupan las direcciones de una misma red en una dirección de red. En una organización, todos los enrutadores administran su tabla de enrutamiento con base en el intercambio de información de redes destino y costos que se pueden calcular automáticamente o se pueden establecer manualmente, pero siempre con base en direcciones IP de red. Si la administración de la red de una organización es unificada y la topología es más o menos uniforme o bajo el control de la misma administración, no hay problema en confiar en los cálculos automáticos que hacen los protocolos de enrutamiento dinámico para encontrar las mejores rutas a todas las redes destino, si la administración no es unificada, una parte de la organización puede decidir hacer su enrutamiento dinámico con un protocolo y otra parte de la organización con otro protocolo diferente y éstos no ser compatibles entre sí, en éste último caso, la decisión de cómo hacer el enrutamiento no se basa en los cálculos automáticos sino en las preferencias administrativas de cada parte de la organización. Lo que acabo de describir se llama enrutamiento basado en políticas, es decir, no se basa en métricas técnicas sino en conveniencias administrativas.

Un sistema autónomo es una organización con políticas de administración de enrutamiento unificadas, es decir, la forma en que administra sus direcciones IP y su enrutamiento depende de sus políticas administrativas. En ese caso, usualmente las políticas se basan en elegir protocolos de enrutamiento y confiar en sus cálculos automáticos, en otras palabras, el enrutamiento lo calculan los protocolos. Usualmente un SA (o AS en inglés) posee un grupo de direcciones IP públicas, enrutables en Internet, reservadas en una organizacion regional como LACNIC (Latin-america NIC).

A cada SA se le asocia un número que lo identifica (0 a 65535) y a éste se le asocian todas las redes que posee, por lo tanto, los enrutadores de mayor jerarquía establecen caminos en Internet que consisten en secuencias de números de SA por los que debe pasar un paquete para llegar a una red destino. De acá se deduce que existen algunos caminos especiales en Internet y que para que exista enrutamiento completo en Internet no es necesario que todos los enrutadores tengan todas las direcciones IP posibles en Internet, sólo necesitan tener un camino hacia algunos enrutadores muy potentes que tienen resumenes de rutas apropiadas.

¿Cómo funciona el enrutamiento en Internet?

Entonces Internet funciona en dos niveles de enrutamiento, un nivel intra-SA y un nivel Inter-SA, es decir dentro de un sistema autónomo y entre sistemas autónomos. El enrutamiento dentro de un SA es el que se estudia en los cursos básicos de enrutamiento: RIP, OSPF, EIGRP, IS-IS. A éste nivel, el enrutamiento lo deciden los cálculos que hagan los protocolos de pasarela interior (IGP por sus siglas en inglés Internal Gateway Protocol). De hecho podríamos decir que es un enrutamiento basado en métricas.

El segundo nivel de enrutamiento de internet es entre sistemas autónomos, éste último tiene que alcanzar hasta el último SA de Internet, por lo tanto no se pueden usar métricas para calcular las mejores rutas, de hecho no es conveniente ¿qué tiempos se esperarían si tuvieramos que esperar convergencia en protocolos que recorran toda Internet?. Es mejor decidir políticas de enrutamiento y que el enrutamiento hacia el exterior de mi SA sea decidido por las políticas administrativas. El enrutamiento intra-SA se hace exclusivamente con BGP.

BGP o Border Gateway Protocol es un protocolo exterior (EGP por sus siglas en inglés) basado en políticas que enruta tráfico de redes entre sistemas autónomos. Es un protocolo de vector de ruta (path vector) que se configura en enrutadores de borde y obtiene gigantescas tablas de enrutamiento según los vecinos y la configuración que se le haga. Las rutas que se propagan por BGP usualmente son una porción de todas las rutas posibles de Internet, del orden de 100.00o ó 120.000 redes destino.

BGP es un protocolo altamente configurable, a cada ruta se le asocian un conjunto de atributos, la selección de la mejor ruta se basa en una serie de reglas cuidadosas para examinar y comparar esos atributos. BGP se considera un protocolo basado en políticas debido a que los atributos son modificables por el administrador y porque si una organización tiene varios accesos a Internet, es la administración quien decide por cuál de ellos es más conveniente salir.

El funcionamiento y configuración de BGP es un poco abrumador, aunque el principio es realmente simple: establecer adyacencias con vecinos inmediatos en sistemas autónomos diferentes y aplicar políticas de enrutamiento a las actualizaciones de rutas que se envíen o reciban por esa adyacencia. BGP establece sesiones TCP con los vecinos sólo si aquel tiene establecido que se puede hacer una adyacencia con el enrutador que envía la solicitud, esa adyacencia se puede autenticar y se implementa en la configuración del proceso BGP.

¿Cómo veo las rutas de BGP (Internet)?

Cuando una tabla de enrutamiento es más grande de unas 100 redes, ya es difícil manejarla. En un SA es usual manejar rutas en ese orden de magnitud, máximo 100 ó 200 redes y yo verifico los problemas de enrutamiento mirando directamente las tablas de enrutamiento de cada enrutador que me interesa. Cuando hablamos de BGP, la tabla de enrutamiento tiene 200.000 líneas, es decir, que si damos un show ip route y la consola tiene 40 líneas (sólo tiene 25), tendría que oprimir barra espaciadora (para pasar a la siguiente página) ¡5000 veces!. En la universidad existe enrutamiento con BGP y su tabla de enrutamiento tiene al rededor de 15000 rutas (muy pequeña), para mirar esa tabla de enrutamiento habría que oprimir barra espaciadora 375 veces.

Como no tiene mucho sentido mirar una tabla de enrutamiento de esas (pero puede ser necesario), ahora se mira la tabla BGP que indica los vecinos configurados y la información que nos han enviado. El comando es show bgp summary. En Internet hay varios lugares en los que se puede consultar información sobre las tablas de enrutamiento de enrutadores del núcleo de Internet. Por ejemplo, route views archive project es un proyecto de monitorización de las tablas de enrutamiento de Internet y en su archivo se puede acceder a dos enrutadores con acceso público a las tablas de enrutamiento de Internet ( route-views.routeviews.org y route-views3.routeviews.org).

¿Cuándo usar BGP?

Queda por aclarar cuándo es necesario usar BGP. Básicamente hay dos casos:

  1. Los ISP
  2. Empresas con direcciones IP propias

En el primer caso, la configuración de BGP consiste en definir una serie de salidas a Internet y establecer políticas de enrutamiento entre los clientes del ISP y las salidas a Internet. Usualmente un ISP usa muchas de las posibilidades de simplificación del enrutamiento que tiene BGP y explota su flexibilidad. El segundo caso es cuando una empresa decide que es indispensable tener direcciones IP propias y que tiene que enrutar en Internet de manera pública y transparente. Los currículos de Cisco que exploran estos escenarios son CCIP y CCNP respectivamente, es decir, en el primero se exploran las características de BGP necesarias para configurar enrutamiento en un ISP y en el segundo se exploran las características básicas de BGP que permiten a una empresa configurar varios accesos a Internet.

Conclusiones

Lo que podemos concluír de todo lo escrito en esta entrada, es que el enrutamiento en un sistema autónomo es muy simple y las posibles relaciones de adyacencia posible en una red con tantos nodos como Internet es muy compleja. La configuración de BGP es un poco compleja y requiere un fuerte conocimiento de las muchas reglas y posibilidades de éste importantísimo protocolo. Éste protocolo  es un tema avanzado que se ve superficialmente en el currículo de CCNP y con cierta profundidad (todo un semestre) en CCIP.

Estoy tentado a empezar a escribir sobre temas más avanzados que el nivel CCNA, así que atentos que en cualquier momento empiezo a escribir sobre la configuración y verificación de tecnologías como QoS, BGP, conmutación multicapa, etc. En la medida en que tenga tiempo escribiré sobre éstos temas.

Tags: , , ,

1 comentario on Comprendiendo el enrutamiento en Internet

  1. […] Pero el tiempo de inactividad no es la única razón por la que no se puede acceder a un sitio web. Tal vez esté bloqueado en tu país, bloqueado por un software de seguridad, o no puedas acceder a él debido a problemas de enrutamiento del ISP. […]

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.