PROTOCOLOS DE ROUTING EXTERNO : BGP (BORDER GATEWAY PROTOCOL).
Realizado por :
BERNARDO
VANACLOCHA NAVASQUILLO.
INDICE
1.-INTRODUCCION.
2.-FUNCIONES DE BGP.
3.-MENSAJES DE BGP.
3.1.-MENSAJE
OPEN.
3.2.-MENSAJE
KEEPALIVE.
3.3.-MENSAJE
UPDATE.
3.4.-MENSAJE
NOTIFICATION.
4.-EBGP Y IBGP.
5.-EJEMPLO DE CONFIGURACION DE VECINOS.
BIBLIOGRAFIA
Comunicaciones y redes de computadores. (William Stallings)
RFC 1771
www.eduangi.com
(Apartado de Redes)
1.- INTRODUCCION.
Los
protocolos de routing externo son los que se utilizan para interconectar
Sistemas Autonomos. En los protocolos de routing externo la prioridad era
buscar rutas optimas atendiendo unicamente al criterio de minimizar la
‘distancia’ medida en terminos de la metrica elegida para la red.
La
selección de rutas entre sistemas autonomos plantea un problema diferente,ya
que la cuestion no se reduce a la selección de la ruta optima sino que se debe
atender a criterios externos de tipo politico,economico,administrativo,etc...
Hasta
1990 se utilizaba como protocolo de routing externo en la Internet el
denominado EGP(Exterior Gateway Protocol). Este protocolo no fue capaz de
sopotar el crecimiento de la Red y entonces se desarrollo un nuevo protocolo de
routing externo denominado BGP. Desde entonces se ha producido 4 versiones de
BGP, las especificaciones ahora vigentes de BGP-4 se encuentran en el RFC 1771.
BGP ES un protocolo de transporte fiable. Esto elimina la necesidad de llevar a cabo la fragmentación de actualización explícita, la retransmision, el reconocimiento, y secuenciacion.
2.- FUNCIONES DE BGP.
BGP
se diseño para permitir la cooperacion en el intercambio de informacion de
encaminamiento entre dispositivos de encaminamiento, llamados pasarelas, en
sistemas autonomos diferentes. El protocolo opera en terminos de mensajes, que
se envian utilizando TCP. El repertorio de mensajes es el siguiente:
1.- OPEN
2.-
UPDATE
3.- KEEPALIVE
4.- NOTIFICACION
BGP supone tres procedimientos
funcionales:
§
Adquisicion de vecino.
§
Deteccion de vecino alcanzable.
§
Deteccion de red alcanzable.
Dos
dispositivos de encaminamiento se considera que son vecinos si estan en la
misma subred. Si los dos dispositivos de encaminamiento estan en sistem
autonomos, podrian desear intercambiar informacion de encaminamiento. Para este
cometido es necesario realizar primero el proceso de adquisicion de vecino. Se requiere un mecanismo formal de encaminamiento ya que alguno de
los dos vecinos prodria no querer participar. Existiran situaciones en las que
un vecino no desee intercambiar informacion esto se puede deber a multiples
factores como por ejemplo que este sobresaturado y entonces no quiere ser responsable
del trafico que llega desde fuera del sistema.
En el
protocolo de adquisicion de vecino, un dispositivo envia un mensaje de peticion
al otro, el cual puede aceptar o rechazar el ofrecimiento. El protocolo no
indica como puede saber un dispositivo la direccion o incluso la exitencia de
otro dispositivo de encaminamiento. Estas cuestiones se tratan en el momento de
establecer la configuracion del sistema o por una intervencion activa del
gestor de la red.
Para
llevar a cabo la adquisicion de vecino, un dispositivo envia al otro un mensaje
OPEN. Si el otro dispositivo acepta la relacion, envia un mensaje de KEEPALIVE.
Una
vez establecida la relacion de vecino, se utiliza el procedimiento de deteccion
e vecino alcanzable para mantener la relacion. Este procedimiento consiste en
enviarse entre los dos vecinos periodicamente mensajes de KEEPALIVE para
asegurarse de que la relacion sigue establecida.
El
ultimo procedimiento especificado por BGP es la deteccion de red alcanzable.
Cada dispositivo de encaminamiento mantiene una base de datos con las redes que
puede alcanzar y la ruta preferida para
llegar hasta esa red. Siempre que se realiza un cambio en esa base de datos,
eldispositivo de almacenamienta envia un mensaje de UPDATE por difusion a todos
los dispositivos de encaminamiento que implementan BGP.
3.- MENSAJES BGP.
Los
mensajes BGP tienen una cabecera comun de 19 octetos que contiene los
siguientes tres campos:
§
Marcador: reservado para autentificacion. El emisor
puede insertar un valor en este campo para permitir al receptor comprobar la
veracidad del emisor.
§
Longitud: longitud del mensaje en octetos.
§
Tipo: tipo de mensaje:
OPEN,UPDATE,NOTIFICATION,KEEPALIVE.
3.1.- MENSAJE OPEN.
Para
adquirir un vecino, un dispositivo de encaminamiento abre primero una conexión
TCP con el dispositivo vecino y despues envia un mensaje OPEN. Este mensaje
identifica al AS al que pertenece el emisor y suministra la direccion IP del
dispositivo de encaminamiento.
En la siguiente figura se muestra el
formato del mensaje OPEN:
|
Campo |
Long
(bytes) |
|
Marcador |
16 |
|
Longitud |
2 |
|
Tipo |
1 |
|
Version |
1 |
|
AS |
2 |
|
Tiempo permanen. |
2 |
|
Identificador BGP |
4 |
|
Long. Opciones |
1 |
|
Opciones |
Variable |
Version: indica la versión del protocolo del mensaje.La version actual es 4.
AS: identifica al sistema autonomo del emisor del mensaje.
Tiempo de permanencia: indica el tiempo de que propone el emisor como Hold Time.
Identificador de BGP:identifica al BGP emisor.
3.2.- MENSAJE KEEPALIVE.
El
mensaje KEEPALIVE consta solo de la cabecera. Cada dispositivo de mantenimiento
envia regularmente estos mensajes para evitar que expire el temporizador mantenimiento.
En la
siguiente figura se muestra el formato del mensaje KEEPALIVE:
|
Campo |
Long
(bytes) |
|
Marcador |
16 |
|
Longitud |
2 |
|
Tipo |
1 |
3.3.- MENSAJE UPDATE.
El
mensaje UPDATE facilita dos tipos de informacion:
§
Informacion sobre una ruta particular a traves del
conjunto de redes. Esa informacion se puede incorporar a la base de datos de
cada dispositivo de encaminamiento que la recibe.
§
Una lista de rutas previamente anunciadas por este
dispositivo de encaminamiento que van a ser eliminadas.
En la
siguiente figura se muestra el formato del mensaje UPDATE:
|
Campo |
Long
(bytes) |
|
Marcador |
16 |
|
Longitud |
2 |
|
Tipo |
1 |
|
Long. Rutas no factibles |
2 |
|
Rutas retiradas |
Variable |
|
Long.Total atributos de camino |
2 |
|
Atributos de camino |
Variable |
|
Inf. De accesibilidad de la capa de red |
Variable |
Un
mensaje UPDATE puede contener uno o
ambos tipos de informacion. Consideremos primero el tipo de informacion 1. La
informacion sobre una ruta particular atraves de la red implica tres campos,
campo de informacion sobre la capacidad de alcanzar la capa de red (NLRI),
campo de longitud de los atributos del camino total, y el campo de los
atributos de camino. El campo NLRI contiene una lista de identificadores de
redes que se pueden alcanzar por esta ruta. Cada red se identifica por su
direccion IP, que es en realidad una parte de la direccion IP completa.
El
campo atributos de camino contiene una lista de atributos que se aplican a esta
ruta particular. Los atributos definidos son los siguientes:
§
Origen: indica si la informacion fue generada por un
protocolo de dispòsitivo de encaminamiento interior o exterior.
§
Camino_AS: una lista de los AS que son atravesados
por la ruta.
§
Siguiente_salto: direccion IP del dispositivo de
encaminamiento frontera que se debe usar como siguiente salto para alcanzar los
destinos indicados en el NLRI.
§
Multi_exit_disc: se usa para comunicar alguna
informacion sobre rutas internas a un AS.
§
Local_pref: usado por un dispositivo de
encaminamiento para informar a otros dispositivos de encaminamiento dentro del
mismo AS de su grado de preferencia por una ruta particular. No tiene
significado alguno para dispositivos de encaminamiento en otros AS.
§
Agregado_atomico, Agente_union: estos dos campos
implementan el concepto de union de rutas. En esencia, un conjunto de redes y
su espacio de direcciones correspondiente se pueden organizar jerarquicamente,
o como un arbol. En este caso las direcciones de las redes se estructuran en
dos o mas partes. Todas las redes de un subarbol comparten una direccion
internet parcial comun. Usando esta direccion parcial comun ,la cantidad de informacion que se debe
comunicar en NLRI se pude reducir significativamente.
El
atributo Camino_AS sirve realmente para dos objetivos. Ya que indica los AS que
debe atravesar un datagrama si sigue esta ruta., la informacion de camino_AS
habilita a un dispositivo de encaminamiento a que implemente un criterio de encaminamiento. Esto es un dispositivo de
encaminamiento puede construir un camino para pasar por un determinado AS.
3.4.- MENSAJE
NOTIFICATION.
Se envian
cuando se detecta algun tipo de error. Se puede informar de los siguientes tipos de errores :
§
Error en la cabecera del mensaje: incluye errores de
sintaxis y autentificacion.
§
Error en mensaje OPEN: incluye errores de sintaxis y
opciones no reconocidas en un mensaje OPEN. Este mensaje tambien se puede
utilizar para indicar que el tiempo de mantenimiento en el mensaje OPEN es
inaceptable.
§
Error en el mensaje UPDATE: incluye errores de
sintaxis y validacion en un mensaje UPDATE.
§
Tiempo de mantenimiento expirado: si el dispositivo
de encaminamiento que envia no recibe mensajes sucesivos de KEEPALIVE y/o
UPDATE y/o NOTIFICATION durante el tiempo de mantenimiento, entonces se
comunica este error y se cierra la conexión.
§
Error en la maquina de estados finitos: incluye
cualquier error de procedimiento.
§
Cese: utilizado por un dispositivo de encaminamiento
para cerrar una conexión con otro dispositivo de encaminamiento en ausencia de
cualquier otro error.
En la siguiente figura se muestra el formato
del mensaje NOTIFICATION:
|
Campo |
Long
(bytes) |
|
Marcador |
16 |
|
Longitud |
2 |
|
Tipo |
1 |
|
Codigo error |
1 |
|
Subcodigo error |
1 |
|
Datos |
Variable |
El
subcodigo de error nos da mas informacion sobre el error,los posibles codigos
son los siguientes:
Message Header Error subcodes:
1 - Connection Not Synchronized.
2 - Bad Message Length.
3 - Bad Message Type.
OPEN Message Error subcodes:
1 - Unsupported Version Number.
2 - Bad Peer AS.
3 - Bad BGP Identifier.
4 - Unsupported Authentication Code.
5 - Authentication Failure.
6 - Unacceptable Hold Time.
UPDATE Message Error subcodes:
1 - Malformed Attribute List.
2 - Unrecognized Well-known
Attribute.
3 - Missing Well-known Attribute.
4 - Attribute Flags Error.
5 - Attribute Length Error.
6 - Invalid ORIGIN Attribute
7 - AS Routing Loop.
8 - Invalid NEXT_HOP
9 -Optional Attribute Error.
10 - Invalid Network Field.
11 - Malformed AS_PATH.
4.- eBGP y iBGP
Si un AS tiene multiples routers BGP,podrian ser usados para ofrecer un servicio de transito para otros AS. En la figura observamos que AS200 es un AS de transito para AS100 y AS300.
Cuando BGP esta funcionando entre 2 diferentes AS lo llamamos exterior BGP (eBGP).Cuando BGP esta funcionado en elmismo AS lo llamamos iBGP.
5.- EJEMPLO DE CONFIGURACION DE VECINOS.

RTA#
router bgp 100
neighbor 129.213.1.1 remote-as 200
RTB#
router bgp 200
neighbor 129.213.1.2 remote-as 100
neighbor 175.220.1.2 remote-as 200
RTC#
router bgp 200
neighbor 175.220.212.1 remote-as 200