4. Conceptos previos sobre encaminamiento 4.1.

Encaminamiento IP

Una función importante de la capa IP es el encaminamiento para la interconexión de distintas redes físicas. Esta tarea consiste en la selección de caminos y en el reenvío entre nodos intermedios de los datagramas IP hasta llegar al destino. Cuando un datagrama IP llega a un host común, el software de red del sistema lo entrega al nivel IP para verificar la dirección de destino. En el caso de que ésta concuerde con la dirección IP de la maquina local, se acepta el datagrama y se entrega a las capas superiores. En caso contrario, el datagrama es descartado. Por otra parte, si el que recibe el datagrama IP es un router, éste compara la dirección de destino con la suya propia. En el caso de que coincidan, el datagrama pasa a las capas superiores. Por el contrario, si no se trata de su dirección IP se aplica un algoritmo de encaminamiento que selecciona el siguiente salto del datagrama (el siguiente host al que se reenviará). Este nuevo destino puede estar en cualquiera de las redes físicas con las que el host está conectado. Un router básico es capaz de reenviar (formarding) los datagramas IP que recibe hacia el destino correspondiente. Para ello, necesita conocer información acerca de cuatro tipos de destino: •

Los hosts conectados directamente a una de las redes físicas a las que está conectado el propio router.



Los host o redes que han sido añadidos específicamente en la información de que dispone el router.



Los hosts o redes para las que el host ha recibido un mensaje ICMP redirect.



Un destino por defecto para el resto de destinos de los que no se tiene información.

Además de estas informaciones, un router necesita intercambiar información con otros routers de la red para conseguir la interconexión con otros nodos de redes remotas y para poder adaptarse a los cambios de la red. Ello conlleva el uso de protocolos adicionales de encaminamiento. En general, se pueden distinguir dos tipos de encaminamiento, según sean de entrega directa o de entrega indirecta. El encaminamiento directo se da cuando el host de destino está conectado a la misma red en la que se encuentra el host fuente. En este caso se puede enviar un datagrama IP directamente encapsulándolo en una trama. En cambio, el encaminamiento indirecto ocurre cuando el host de destino no está en una red conectada directamente al host fuente. En este caso, la única forma de alcanzar el destino es a través de uno o más routers intermedios. La dirección del primer

router (primer salto) es la única información que necesita el host fuente para enviar el datagrama IP. Será el router que reciba el datagrama el que se responsabilizará del segundo salto, y así sucesivamente hasta llegar al destino. Para saber si el host destino de un datagrama está o no dentro de la misma red física es necesario el uso de máscaras de subred. Así, un host puede distinguir si una ruta es directa o indirecta comparando la dirección de subred de la IP destino, la cual puede obtener aplicando la máscara de subred, con sus propias direcciones de subred. Si ésta coincide con la dirección de subred de alguna de las interfaces, entonces la ruta es directa. Por otro lado, una vez que se sabe si el destino es directo o indirecto, el host necesita ser capaz de direccionar correctamente el destino. Para ello se puede utilizar ARP (Address Resolution Protocol) u otro protocolo que permita obtener la dirección del nivel de enlace asociada a la IP destino. Para rutas indirectas, el único conocimiento requerido es la dirección del nivel de enlace asociada a la IP del router local que conduzca hacia el siguiente salto para llegar a la red remota. Las direcciones IP de destino que conoce un host se guardan en una tabla de encaminamiento en la que se asocia cada red destino con el router siguiente por el que ésta puede ser alcanzada. Esta tabla de encaminamiento puede contener tres tipos de entradas: •

Rutas directas, para redes conectadas localmente.



Rutas indirectas, para redes accesibles a través de uno o más routers.



Una ruta por defecto (la red 0.0.0.0) que indique la IP del router por defecto al que se enviarán los paquetes IP dirigidos a una red desconocida.

Una entrada corresponde a un destino si la dirección de red operada lógicamente por medio de AND con la máscara de red es precisamente la dirección de destino operada lógicamente por medio de AND con su máscara de red. La tabla de encaminamiento IP de estos routers configurados manualmente puede contener información acerca de las redes conectadas localmente, de las direcciones IP de otros routers localizados en ellas y de otras redes IP que se hallan aún más lejos. Sin embargo, estos routers sólo disponen de una información parcial de la red y no son capaces de detectar si una entrada en la tabla de encaminamiento es errónea o inalcanzable. Por ello, para que un router tenga la función completa de encaminamiento debe soportar una serie de protocolos de encaminamiento dinámicos que le permitan intercambiar información con otros routers de la red y construir la tabla de encaminamiento de forma automática y dinámica.

4.2.

Necesidad del encaminamiento dinámico

El encaminamiento estático supone el introducir las rutas en la tabla de encaminamiento de cada sistema de forma manual. Esto permite al administrador realizar una configuración estable, pudiendo llevar a cabo la selección de redes de una

forma directa, de manera que se puedan tomar precauciones sobre el destino al que enviar. Sin embargo, la configuración manual implica un trabajo largo y complejo con un riesgo de errores de configuración importante en el caso de tener redes grandes (con más de 10 encaminadores o routers). Además, el mantenimiento de la red se hace difícil en caso de evolución. Por otro lado, la redundancia en el encaminamiento estático sólo se aplica a los fallos de enlace directos (ya que un fallo en un enlace remoto no puede detectarse y no se eliminaría la ruta correspondiente de la tabla). Por todo esto, el encaminamiento estático se reserva a los casos de redes pequeñas, en los que sólo será necesario indicar una ruta por defecto hacia la pasarela más próxima. Por su parte, el encaminamiento dinámico se basa en el uso de un protocolo para comunicar las rutas entre los distintos routers de la topología y construir, a partir de las rutas recibidas, la tabla de encaminamiento. Para esto último, los protocolos de encaminamiento utilizan un algoritmo que obtenga el camino con coste mínimo hacia cada destino, representando el coste como el número de saltos, el régimen binario o el retraso, según el caso. De este modo, se consigue una configuración de las tablas de encaminamiento que varía poco con el número de routers y que es capaz de adaptarse de forma dinámica a los cambios en la red (vida o muerte de routers y de sus enlaces). Los objetivos que debe cumplir un protocolo de encaminamiento dinámico son los siguientes: •

Optimización: selección de la mejor ruta cuando se dispone de más de una ruta hacia una red.



Eliminación de bucles de encaminamiento (rutas circulares).



Eficacia: poco consumo de ancho de banda y de recursos de CPU.



Estabilidad: convergencia y reconfiguración rápidas.



Simplicidad: administración simple.

4.3.

Algoritmos de encaminamiento

Los tres algoritmos principales utilizados por los protocolos de encaminamiento son los siguientes: •

Vector de distancia (Distance Vector): Este algoritmo de encaminamiento es utilizado dentro de un AS por protocolos IGP como RIP para la obtención de las rutas inter-AS de las tablas de encaminamiento. Se trata de un algoritmo iterativo (continúa mientras haya informaciones a enviar), asíncrono (cada nodo es independiente) y distribuido (ningún nodo tiene una visión completa de la red). Cada router difunde a sus nodos adyacentes un vector con su tabla de encaminamiento, es decir, las rutas (redes destino) que conoce junto con el coste asociado para llegar a éstas. En un principio, las rutas que se anunciarán serán las redes que comparte con los diferentes vecinos accesibles directamente.

Posteriormente, cuando un router recibe una nueva tabla de encaminamiento de un vecino, se efectúa una serie de tratamientos para cada entrada de la tabla, basados en el algoritmo de Bellman-Ford: •

Si la entrada no está en la tabla de encaminamiento del router, ésta se añade.



Si el coste de la ruta más el coste para ir hasta el router emisor es inferior al coste indicado en la tabla de encaminamiento del router, se modifica la tabla teniendo en cuenta esta ruta más óptima.



En caso contrario, no hay cambio de la tabla de encaminamiento.

La modificación de una entrada de la tabla de un router implica la emisión de la nueva tabla hacia todos los vecinos. Si un router tiene información errónea transmitirá dicha información no válida a todos los demás routers, de manera que es necesario que los protocolos de vectores de distancia requieran de algoritmos complejos para dudar de cualquier actualización que reciban. El problema que puede ocurrir con este tipo de algoritmos es que se cuente hasta infinito para llegar a un nodo debido a que exista un bucle o que dicho nodo sea inaccesible por un fallo en un enlace. En este caso, los routers se anuncian continuamente una ruta antigua de forma que la distancia asociada crece indefinidamente. Para evitar la cuenta sin límite se define el horizonte infinito como un valor pequeño, considerando como inaccesible un nodo para el que se tiene un camino con un coste de llegada superior al límite. Como solución al problema de los bucles se utiliza también la técnica del horizonte dividido (split horizon) en la que se hace que un router no anuncie nunca una ruta a un vecino si ese vecino es el próximo nodo para llegar al destino. Otra técnica más agresiva para evitar los bucles en el encaminamiento es el envenenamiento inverso (poisoned reverse), en el que un router anuncia a su vecino una ruta con coste infinito si ese vecino es el próximo nodo hacia el destino de la ruta. •

Estado del enlace (Link State): Este algoritmo también es utilizado por protocolos IGP como OSPF. A diferencia que en el algoritmo anterior, los routers emiten mensajes de encaminamiento cuando el estado de un enlace evoluciona. Así, cada nodo envía al resto de nodos (y no sólo a sus vecinos) la información sobre el estado de sus enlaces con sus vecinos directos mediante paquetes LSP (Link State Packet). Cuando un nodo recibe un LSP se tienen los siguientes casos posibles: •

Si no está ya registrado, se actualiza el mapa que se tiene de la red con éste y se difunde el LSP a todos los nodos adyacentes excepto al que lo envió.



Si está ya en la base de datos del router, se compara el número de secuencia del paquete LSP recibido con el del almacenado para ver cuál es más actual. En el caso de que el número de secuencia del paquete recibido sea mayor (más actual), se difunde a todos los nodos vecinos excepto al que lo emitió.

Al final, cada nodo tendrá un mapa de la red con información del estado de todos los enlaces, pudiendo hacer un cálculo centralizado en cada nodo de las mejores rutas hacia cada destino y evitando los posibles bucles. Este cálculo se basa en el algoritmo SPF (Shortest Path First) de Dykstra, en el que cada nodo calcula todos los caminos más cortos desde todos los nodos hasta él, obteniendo así un árbol de recubrimiento con raíz en este nodo. •

Vector de camino (Path Vector): Este algoritmo se utiliza por protocolos EGP como BGP para la obtención de las rutas que comunican los diferentes AS. Se trata de un algoritmo similar al de vector de distancia, ya que utiliza también BellmanFord para calcular el camino más corto y el número de saltos como métrica. Sin embargo, el número de saltos no representa los routers sino los AS a atravesar. Además, otra diferencia es que en lugar de intercambiar sólo los costes a cada destino, cada entrada del vector intercambiado almacena la trayectoria completa (todas las pasarelas) que es necesario atravesar para llegar al destino. De este modo, los vectores intercambiados contendrán tablas de encaminamiento bastante grandes.

4.4.

Algunos protocolos IGP

4.4.1. RIP RIP (Routing Information Protocol) es un protocolo de encaminamiento de vectores de distancia destinado a redes pequeñas con un diámetro máximo formado por menos de 15 routers. Se trata de un protocolo no propietario ampliamente desplegado que fue desarrollado en la década de 1970 y del cual existen diferentes versiones: RIPv1 (RFC1058); RIPv2 (RFC1387, RFC1388 y RFC1723), versión más avanzada que permite el encaminamiento CIDR, la difusión multicast y la autentficación de los routers; y RIPng (RFC2080 y RFC2453), que se adapta para IPv6. RIP utiliza una métrica fija para el coste de los enlaces (no variable con el tiempo) y el tiempo de convergencia es aceptable (de unos pocos minutos). El funcionamiento de RIP se basa en un algoritmo de tipo vector de distancia en el que se asigna una métrica a cada ruta igual al número de saltos, es decir, al número de routers que es necesario atravesar para llegar al destino. El número máximo de saltos es de 15, de forma que se considera como inaccesible una ruta hacia un nodo de más de 15 saltos. Cuando un router se inicializa, las únicas rutas que conoce son las redes a las que está directamente conectado. Una vez que está en funcionamiento el protocolo RIP, cada router envía anuncios a sus vecinos de forma sistemática cada 30 segundos sobre el puerto udp 520 para IPv4 y udp 521 para IPv6. Estos anuncios contienen las redes que sabe encaminar y las métricas asociadas. Cada router actualizará su tabla de encaminamiento con las rutas que son más actuales o de las que no tenía constancia. Para la actualización de la tabla de encaminamiento se utiliza una serie de relojes: •

Routing-update (30 ± 0-5 segundos): Sirve para que el router sepa cuánto tiempo debe esperar antes de enviar actualizaciones periódicas. Este proceso periódico de actualización garantiza que los routers puedan determinar si otros routers están apagados. Sin embargo, el breve periodo de tiempo que el

protocolo RIP espera entre dos actualizaciones, junto con el hecho de que en cada actualización se anuncia toda la tabla de encaminamiento, pueden provocar que la utilización de este protocolo consuma buena parte de la anchura de banda en el caso de redes complejas. El tiempo entre dos anuncios de un router es perturbable de forma aleatoria de 0 a 5 segundos para evitar que todos los routers emitan sus anuncios de forma sincronizada, lo que podría producir ráfagas de paquetes y riesgos de congestión. •

Route-timeout (180 segundos): Duración de vida asociada a cada una de las rutas obtenidas mediante RIP, de forma que cuando este contador expira se marca la ruta como inválida en la tabla de informaciones de RIP. En realidad, una ruta marcada no será borrada hasta que no expire también el contador route-flush. De este modo, un router puede propagar rutas marcadas como inválidas a sus vecinos para avisarles de que una ruta ya no es operativa. Si se recibe la misma ruta a la marcada como inválida, esta última es reemplazada considerándola entonces como verdadera.



Route-flush o garbage-collection (120 segundos): periodo de limpieza de la tabla de informaciones de RIP durante el cual se eliminan las rutas inválidas.

A continuación se muestra el formato de los mensajes RIP:



Comando: indica si el paquete es una petición o una respuesta. La petición sirve para pedir a un router su tabla de informaciones de encaminamiento, mientras que la respuesta puede ser no solicitada (en caso de un anuncio regular) o solicitada por una petición.



Versión: 2 actualmente (la versión 1 de RIP ya no se utiliza).

El campo de entrada (RIP Entry) del paquete RIPv2 tiene el siguiente formato:

• • • • • •

AFI (Address Family Identifier): Tipo de protocolo. Route tag: Marcador que sirve para distinguir las rutas internas (obtenidas por RIP) de las obtenidas mediante otro protocolo de encaminamiento (como OSPF, por ejemplo). Dirección IP de la red anunciada como alcanzable. Máscara de red: Campo binario cuyos bits a 1 indican la longitud del prefijo que se obtiene a partir de la IP de la red. Next Hop: dirección IP del router siguiente hacia el cual es necesario encaminar para llegar a la red indicada como destino. Métrica: valor de la métrica de esa ruta (entre 1 y 15).

Los paquetes de tipo respuesta pueden contener hasta 25 rutas por paquete, de manera que será necesario enviar más de un paquete si la tabla de encaminamiento a anunciar contiene más de 25 rutas. Finalmente, es importante señalar las mejoras más útiles que introduce la versión 2 del protocolo RIP: •

Soporte VLSM (Variable Length Subset Mask): Las máscaras de subred pueden ser de tamaño variable y se transmiten con las actualizaciones.



Actualizaciones mutidifundidas: Las actualizaciones se transmiten mediante multidifusión (multicast) en lugar de utilizar difusión normal (broadcast), evitando así el gasto innecesario de capacidad de procesamiento en servidores no RIP.



Soporte de autenticación: Se admite la autenticación de texto no cifrado para los routers compatibles.

4.4.2. OSPF OSPF (Open Shortest Path First) es un protocolo de encaminamiento dinámico de pasarela interior o IGP (Interior Gateway Protocol), que se creó para solucionar las

limitaciones que tenía RIP. Este protocolo permite gestionar redes con un diámetro mayor que 16, mejorando además el tiempo de convergencia y la agregación de rutas. El algoritmo utilizado por OSPF es más complejo que el utilizado por RIP, por lo que se necesitan routers con más potencia de procesador y memoria, y se requiere más tiempo de diseño e implementación. De este modo, se puede afirmar que ambos protocolos se han diseñado para entornos totalmente distintos: OSPF está diseñado para redes grandes y complejas, mientras que RIP está destinado a redes pequeñas con una configuración sencilla. A diferencia del algoritmo de vector de distancia utilizado por RIP, OSPF se basa en un algoritmo de estado de los enlaces (link state). Por ello, este protocolo no envía a los encaminadores adyacentes el número de saltos que los separa, sino el estado del enlace que los separa. De esta manera, cada router es capaz de construir un mapa completo del estado de la red y, por consecuencia, puede elegir en cada momento la ruta más apropiada para enviar un mensaje a un destino dado. Como cada router contiene el mismo mapa de la topología de la red, OSPF no requiere que las actualizaciones se envíen a intervalos regulares. De este modo, OSPF reduce el consumo de red necesario para el intercambio de actualizaciones mediante la multidifusión, enviando una actualización sólo cuando se detecta un cambio (en lugar del envío periódico) y enviando cambios de la tabla de encaminamiento (en vez de la tabla completa) sólo cuando es necesaria una actualización. Además, el hecho de no tener que ir incrementando el número de saltos cada vez que se pasa por un router intermedio se traduce en una cantidad de información a intercambiar mucho menos abundante y, por tanto, en un ancho de banda libre mejor que en el caso de RIP. La métrica utilizada es más sofisticada que en el caso de RIP, ya que se basa en el ancho de banda del enlace (por omisión, coste = 10^8/ancho de banda (b/s)). Por ejemplo, para el caso de un enlace mediante Ethernet 10Mb/s se tiene un coste de 10. Existen diferentes versiones de este protocolo: OSPFv1 (RFC1131 y RFC1247); OSPFv2 (RFC2328); y OSPFv3 (RFC2740), el cual está adaptado para IPv6. En las redes encaminadas por OSPF se define la siguiente jerarquía: •

Área: Constituye una frontera para el cálculo en la base de datos del estado del enlace. Los routers que están en la misma área contienen la misma base de datos topológica. Un área es en realidad una subdivisión de un AS (Autonomous System). El área principal se denomina backbone y a ésta se conectan el resto de áreas (sean conexiones física o virtualmente). Las diferentes áreas se conectan entre sí mediante unos routers de borde que se encargan de intercambiar las diferentes tablas de encaminamiento.



ABR (Area Border Router): Router que contiene enlaces en varias áreas dentro del mismo AS, cuya función consiste en resumir las informaciones de encaminamiento y gestionar los intercambios de rutas entre áreas.



IR (Internal Router): Router cuyos enlaces pertenecen todos a un área determinada.



DR (Designated Router): Cada segmento de red tiene un DR y un BDR, por lo que un router conectado a múltiples redes puede ser DR de un segmento y un router normal del otro segmento. En realidad es la interfaz del router la que actúa como DR o BDR. La principal función del DR es minimizar el flooding (inundación por anuncios) y la sincronización de las DBs (Data Bases) centralizando el intercambio de información. De este modo, los routers de un mismo segmento no intercambian información del estado del enlace entre ellos sino que lo hacen con el DR.



BDR (Backup Designated Router): Es el router elegido como anunciante secundario (generalmente el segundo con la prioridad más alta). El BDR no hace nada mientras haya un DR en la red (solo actúa si el DR falla). Un BDR detecta que un DR falla porque durante un cierto tiempo no escucha LSAs (Link State Advertisements).



ASBR (Autonomous System Border Router): Router que contiene enlaces a distintos AS y que sirve de gateway entre OSPF y otros protocolos de encaminamiento (IGRP, EIGRP, ISIS, RIP, BGP, Static).

En un principio, cada router identifica (o conoce ya por configuración) a sus vecinos inmediatos. De entre todos los routers de un mismo segmento se eligen un router principal (DR) y un router principal de seguridad (que lo sustituirá en caso de que éste falle). Generalmente, se elige como DR al router con la prioridad más alta de entre todos los routers que pertenecen al mismo segmento de red (la prioridad varía entre 0 y 255). Como la prioridad por defecto suele ser 1, para desempatar se usa el que tenga mayor RID o router ID (donde el router ID suele ser la @IP más alta de una interfaz activa del router). Los routers con prioridad igual a 0 no pueden ser elegidos como DRs. Una vez que se han elegido el DR y el BDR, se pasa a la fase de descubrimiento de rutas. Para ello, el DR y el DBR forman una adyacencia con cada uno de los routers de su mismo segmento de red. Una adyacencia es una relación que se establece entre un router y su DR y BDR mediante el protocolo Hello. En cada adyacencia, uno de los dos routers actúa como master (el de mayor routerID, que suele ser el DR) y el otro como slave. El master envía un resumen de su DB al slave y este la reconoce y viceversa. Entonces, el slave compara la información recibida y pide que le envíe aquellas entradas que no tiene. De este modo, cada router difunde al DR los mensajes LSA con los cambios que se producen en la red y el DR se encarga de actualizar la base de datos de cada uno de los routers de su segmento de red haciendo flooding de la información de encaminamiento. A partir de la base de datos con la topología de la red, en cada router se calculan localmente los caminos más cortos a todos los destinos mediante el algoritmo SPF (Shortest Path First) de Djkstra para poder construir así la tabla de encaminamiento. Cuando se tienen redes con una gran cantidad de routers el número de LSUs enviado produce un gran consumo de ancho de banda, a la vez que se hacen también grandes el tiempo de convergencia y el tamaño de las bases de datos de los routers para guardar la información sobre la topología de toda la red. Por ello, el encaminamiento OSPF propone como solución la división de la red de una forma jerárquica en áreas, que

delimita el dominio de envío de los mensajes LSA a un conjunto de routers y redes en un mismo AS. Por otra parte, en una red multiárea se tienen distintos tipos de mensajes LSA: •

Router LSA (tipo 1): Cada router genera estos paquetes hacia el resto de routers de su misma área, indicando la lista de sus vecinos inmediatos y el coste (métrica) de sus enlaces.



Network LSA (tipo 2): Estos paquetes son generados por los routers DR (de una red BMA) sobre los routers vinculados a esa red BMA y solo se envían dentro del área.



Summary LSA (tipo 3): Estos paquetes son generados por los ABR para anunciar las redes internas procedentes de un área específica a otros ABR del mismo AS. Se genera un resumen por cada subred de cada área hacia las demás áreas. Estas informaciones se envían primeramente al backbone (área 0), el cual se encargará después de distribuirlas hacia el resto de áreas del AS.



ASBR summary LSA (tipo 4): Generados por los ABR’s describen rutas al ASBR’s. Los routers ABR deben propagar también las informaciones de encaminamiento hacia los ASBR para que éstos puedan conocer cómo alcanzar los routers externos en otras AS (Autonomous System).



AS external LSA (tipo 5): Generados por los ASBR’s describen rutas externas al AS (entre ellas la ruta por defecto para salir del AS).

Los mensajes de encaminamiento OSPF se encapsulan como un protocolo de transporte con número 89:

A continuación se muestra el formato de la cabecera del paquete OSPF:

Todos los paquetes OSPF incluyen en su cabecera información básica relacionada con el router: •

Version: Identifica la versión OSPF.



Type: Identifica el tipo de paquete OSPF. Hay 5 tipos de paquetes OSPF: o HELLO packets (Type = 1). o Database Description (DBD) packets (Type = 2). o Link-State Request (LSR) packets (Type = 3). o Link-State Update (LSU) packets (Type = 4). o Link-State ACK (LSAck) packets (Type = 5).



Packet Length: Longitud del paquete (incluida la cabecera OSPF).



Router ID (RID): Identifica el origen del paquete OSPF (normalmente cada router escoge como RID la @IP mayor entre las @IP activas del mismo).



Area ID: Identifica el área al cual pertenece el paquete OSPF.



Checksum.



Authentication type: o Type 0: no authentication.

o Type 1: clear-text password or simple authentication. o Type 2: cryptographic or MD5 authentication. •

Authentication information: Contiene la información de autentificación.



Data: Encapsula información de encaminamiento. La siguiente figura muestra el formato del paquete HELLO:

Los paquetes Hello (saludo) se utilizan para verificar comunicaciones bidireccionales, anunciar requerimientos de vecindad y elegir routers designados. Así, los anuncios permiten establecer y mantener una adyacencia, que consiste en una conexión virtual a un vecino para poder transferir anuncios de estado del enlace. Estos paquetes de saludo se envían a intervalos periódicos de tiempo (HelloInterval = 10 segundos) usando la dirección multicast 224.0.0.5.

Los paquetes Hello tienen el formato siguiente:



Network mask: Máscara asociada con esa interfaz.



Hello Interval: Intervalo en que se envían paquetes HELLO (10 segundos).



Options: Capacidades opcionales que soporta este router.



Router Priority: Prioridad (por defecto =1).



Router-Dead-Interval: Tiempo que espera un router hasta que deja de considerar que un vecino está activo (4*HelloInterval).



DR y BDR: Direcciones IP de ambos (0.0.0.0 si inicialmente desconocidas y hay que descubrirlos).



Neighbours: RouteID de cada vecino que ha escuchado durante los últimos RouterDead-Interval segundos. Por otro lado, se tienen los mensajes DBD, LSR, LSU y LSAck:



Paquetes de descripción de base de datos (DBD): describe el contenido de ls DB, incluyendo encabezamientos LSA (no todo el LSA) para que el router receptor confirme que tiene todos los LSA requeridos.



Paquetes de petición de estado del enlace (LSR): Solicitan a los vecinos los LSA que están en el listado de petición de estado del enlace. Este listado lleva un registro de los LSA que deben solicitarse porque no se dispone de ellos o porque no se tiene la versión más actualizada. El router sabe qué paquetes le faltan gracias a la recepción de paquetes de petición de otros routers o de paquetes de descripción de base de datos de otros routers.



Paquetes de actualización de estado del enlace (LSU): Suministran los LSA (Link State Advertisements) a los routers remotos.



Paquetes de acuse de recibo de estado del enlace (LSAck): Sirven de acuse de recibo explícito a uno o más LSU.

Los LSAs (Link-State Advertisements) son unidades de datos que describen el estado local de un router o red. Para un router, esto incluye el estado de las interfaces del router y sus adyacencias. Un LSA va empaquetado en paquetes DBD, LSU, LSR o LSAck.

4.5.

CIDR (Classless Inter Domain Routing)

Con el crecimiento explosivo de las redes locales comenzó a agotarse el espacio de direcciones útil, debido a la gran demanda de direcciones de clase B, mientras que direcciones de clases C permanecían sin asignar por ser muy pequeñas. Para solucionar este problema se desarrolló el esquema de direcciones sin clase, que consiste en asignar a una misma organización un bloque continuo de direcciones de clase C. El esquema de direcciones sin clase genera el problema de aumentar la información que debe incluirse en las tablas de encaminamiento. CIDR resuelve el problema al incluir en las tablas información acerca del tamaño de los bloques y el número de bloques, de forma que en las tablas de enrutamiento IP se tienen pares (destino, router), donde destino no es una dirección de host o red tradicional, sino que incluye información acerca del número de redes que incluye el bloque y el tamaño de cada una de esas redes. Así, CIDR debe incluir en las tablas de encaminamiento cuál es la primera red que compone el bloque, cuántos bits se emplean como prefijo de red y la máscara de subred que se emplea. Un aspecto importante a destacar es que el algoritmo básico de encaminamiento IP no cambia. Por el contrario, al cambiar el contenido de las tablas sí cambia el método de búsqueda de direcciones destino. Éste consiste en que cualquier dirección cuya máscara de destino tenga menos bits incluye a la que tiene más bits, es decir, cuantos menos bits tenga el prefijo de red más direcciones de red abarca. Por esta razón, cuando se explora la tabla de encaminamiento IP se hace una búsqueda que inicia con las mascaras de más bits y termina en la de menos bits. Para hacer más eficientes estas búsquedas se emplean métodos como el árbol binario, en el cual cada bit representa una nueva rama en el árbol.

BGP-4 se creó principalmente para soportar CIDR. De este modo, a la hora de anunciar rutas éstas se pueden agregar (fundir varias rutas en una), lo cual evita el agotamiento del espacio de direcciones IP y el crecimiento de las tablas de encaminamiento. Como ejemplo, considérese un ISP (Internet Service Provider) que tiene un conjunto de clientes, todos ellos con IP clase C que comienzan con el prefijo 204.71.

CIDR permite que el ISP pueda agregar las redes de clase C de sus clientes en un simple anuncio de dirección de redes sin clases. En el ejemplo anterior, bastaría reemplazar el bloque de direcciones por 204.71.0.0/16. El resultado es proporcionar encaminamiento para cientos de clientes inyectando sólo un anuncio en la malla global de Internet. De este modo, se logra una importante reducción de tamaño en las tablas de encaminamiento manteniendo el nivel de conectividad. En realidad, el propio ISP no ve ninguna reducción en el tamaño de sus tablas de encaminamiento al llevar a cabo la agregación de rutas, sino que el ahorro es visto por otros ISP. Otro ejemplo sería el siguiente: AS1 anuncia a AS3 la ruta 193.212.0.0/24 y, por otra parte, AS2 anuncia la ruta 193.212.1.0/24 a AS3. Como resultado de la agregación de las dos rutas, AS3 anunciaría la ruta 193.21.0.0/23 que incluiría a las dos anteriores.