You are on page 1of 9

Rodrigo Ibez Guantes

David Garca Gutirrez


2015-2016

BGP: Border Gateway Protocol

TPRT

1. Introduccin
BGP (Border Gateway Protocol, Protocolo de Puerta de Enlace de Frontera) es el protocolo
ms utilizado en Internet. Fue establecido como un estndar de Internet en 1989 y siendo
definida su primera versin en el RFC 1105, adoptndose como un protocolo para la
comunicacin entre dominios dentro de la comunicacin EGP (Exterior Gateway Protocol).
Posteriormente, se desarrollaron nuevas versiones como la versin 2 en 1990 (definida en el
RFC 1163) y la versin 3 en 1991 (definida en el RFC 1267). Finalmente, se defini la versin 4
(BGP-4) en el RFC 1771 y RFC 4271 que es la utilizada en la actualidad y es la primera versin
que admite encaminamiento entre dominios sin clase (CIDR, Classless Interdomain Routing) y
agregado de rutas.
BGP es un protocolo que funciona sobre TCP por el puerto 179. BGP intercambia
informacin de encaminamiento entre sistemas autnomos (grupo de redes IP que poseen
una poltica de rutas propia e independiente) a la vez que garantiza una eleccin de rutas libres
de bucles. Puesto que es un protocolo fcilmente escalable, estable y est dotado de los
mecanismos necesarios para soportar polticas de encaminamiento complicadas, es el
protocolo principal de publicacin de rutas utilizado por las compaas ms importantes de ISP
en Internet.
Debido a que los requisitos del encaminamiento de Internet cambian, el protocolo BGP
sigue desarrollndose en el IETF (Internet Engineering Task Force, Grupo de Trabajo de
Ingeniera de Internet) para continuar proporcionando mecanismos que controlen la
informacin de encaminamiento y soporten los nuevos requisitos.

2. Funcionamiento
BGP es un protocolo interdominio (entre sistemas autnomos) e intradominio (entre
routers BGP dentro del mismo sistema autnomo), por lo que cada sistema autnomo tendr
sesiones internas (iBGP) y adems sesiones externas (eBGP).
El protocolo BGP permite el encaminamiento de los paquetes IP que se intercambian entre
los distintos sistemas autnomos. Para ello, se precisa el intercambio de prefijos de rutas entre
los diferentes AS de forma dinmica, lo cual se lleva a cabo mediante el establecimiento de
sesiones de comunicacin BGP entre los routers de borde de los sistemas autnomos (sesin
eBGP). Para conseguir una entrega fiable y segura de la informacin, estas sesiones de
comunicacin estn basadas en TCP en el puerto nmero 179, tal y como mencionamos en la
introduccin, de tal forma que ninguna informacin de encaminamiento puede ser
intercambiada hasta que se ha establecido dicha sesin TCP. Esta sesin debe mantenerse
conectada debido a que ambos extremos de la comunicacin peridicamente se intercambian
y actualizan informacin. Al inicio de la sesin BGP, cada router enva al vecino toda su
informacin de encaminamiento y posteriormente nicamente se enviarn las nuevas rutas,
las actualizaciones o la eliminacin de rutas transmitidas con anterioridad.

BGP: Border Gateway Protocol

TPRT

BGP es el nico protocolo adecuado para el uso entre sistemas autnomos, debido a la
ayuda inherente que las polticas sobre rutas proporcionan para el encaminamiento. Estas
polticas permiten que se acepte o rechace la informacin de cambio de encaminamiento
antes de que se utilice para tomar decisiones de envo. Esta capacidad da a los operadores de
red un alto grado de proteccin contra informacin de encaminamiento que puede ser no
deseada, y as controlar la informacin de encaminamiento segn sus necesidades
particulares.
Cada sistema autnomo emplea un protocolo de Gateway internos (IGP) con una
definicin distinta para el coste de los enlaces, lo cual hace imposible encontrar el camino ms
corto hacia cada uno de los destinos. De esta forma, una vez aplicadas las restricciones sobre
las rutas, BGP emplea un algoritmo parecido al vector de distancia, conocido como pathvector, que permite seleccionar aquellas rutas que atraviesen el menor nmero de AS.
Las tablas de encaminamiento de BGP almacenan las rutas que permiten alcanzar las redes
deseadas (indicadas mediante prefijos). Para seleccionar la mejor ruta de entre las posibles, el
protocolo emplea un proceso de eleccin determinista, empleando las cualidades de la ruta
como criterios, polticas de la red, o reglas que utilizan varios atributos de ruta BGP. A
diferencia de los IGP (como RIP, OSPF y EIGRP), BGP no considera caractersticas como nmero
de saltos, ancho de banda, o retardo para la determinacin de dichas rutas. En cuanto a la
constitucin de estas rutas, estn compuestas por una secuencia de nmeros de sistemas
autnomos que deben ser seguidos para alcanzar el prefijo indicado. El ltimo nmero de AS
de la ruta pertenece al AS donde se encuentra el destino. La razn por la que se almacenan las
rutas completas, desde el origen hasta el destino, es la de detectar y eliminar bucles, evitando
de esta forma que los paquetes estn envindose infinitamente pasando varias veces por un
mismo AS.

3. Tipo de Mensajes
Existen 4 tipos de mensaje BGP. Cada mensaje tiene un tamao est entre 19 y 4096 bytes
(octetos). Todos los mensajes incluyen la misma cabecera de 19 bytes, la cual est formada por
un marcador (16 bytes) que contiene informacin de sincronizacin y de seguridad, un campo
de longitud (2 bytes) que indica la longitud total del mensaje y un campo tipo (1 byte) que
indica el tipo de mensaje. En la siguiente imagen (Figura 1) se puede observar el formato de un
mensaje BGP, donde el campo Dato corresponde al tipo de mensaje que se enva, los cuales
explicaremos a continuacin.
Marcador
(16 bytes)

Longitud
(2 bytes)

Tipo
(1 byte)

Dato
(variable)

Figura 1. Formato del mensaje BGP.

Los 4 tipos de mensaje son los siguientes:

OPEN: Este mensaje es el primero que se enva tras el establecimiento de la


conexin TCP. Su funcin es la de informar a sus vecinos sobre la versin del
protocolo BGP empleado, el nmero de AS (sistema autnomo) y el nmero

BGP: Border Gateway Protocol

TPRT

identificador del proceso BGP. Adems, este mensaje incluye un valor de tiempo
durante el cual se mantiene la sesin (normalmente 90 segundos). Si se indica el
valor 0 significa que la sesin no va a tener lmite de duracin. Una vez que se
enva este mensaje, el proceso BGP se queda a la espera de recibir un mensaje
KEEPALIVE.
KEEPALIVE: Este mensaje se utiliza para confirmar un mensaje OPEN. Si el tiempo
establecido para la duracin de la sesin es limitado, es necesario que los procesos
BGP enven este mensaje cada cierto tiempo (normalmente 30 segundos) para
indicar que se mantiene la sesin. De esta manera, en el caso de que no haya
modificacin de la tabla de encaminamiento, los routers BGP slo intercambian
este tipo de mensaje de forma peridica.
NOTIFICATION: Este mensaje se utiliza para cerrar la sesin BGP, cerrando
tambin la conexin TCP. Adems, se enva un cdigo para indicar su hubo errores,
como por ejemplo la recepcin de un mensaje incorrecto, un problema del
proceso BGP o la ausencia de mensajes KEEPALIVE durante 90 segundos.
UPDATE: Este tipo de mensaje se utiliza para intercambiar la informacin de
encaminamiento, las rutas a eliminar, el conjunto de atributos de cada ruta, las
informaciones sobre los prefijos de redes accesibles (red y longitud de la mscara)
o NLRI (Network Layer Reachability Information) y la longitud de cada ruta. Este
mensaje se enva solamente cuando existe algn cambio y su recepcin produce la
activacin del proceso BGP.

4. Sesiones BGP
En una sesin BGP participan nicamente dos routers vecinos (peers). Para que pueda
tener lugar una comunicacin BGP, ambos routers deben establecer su vecindad, lo cual
harn envindose la siguiente informacin:

Nmero de versin BGP


Nmero de AS
Router ID (RID) de BGP

En la sesin BGP tiene lugar el proceso conocido como peering, que consiste en que un
sistema autnomo informa a otro sobre las redes que puede alcanzar a travs de este. Dos
vecinos BGP pueden establecer dos tipos de peering: iBGP y eBGP. Cuando el peering tiene
lugar entre dos routers vecinos pertenecientes a un mismo SA se conoce como iBGP. Para
evitar bucles de routing dentro de un SA, es imprescindible una buena configuracin de iBGP:
segn la especificacin de la versin 4 de BGP, en eBGP los prefijos que aprende un router de
un vecino, pueden ser anunciados a otro vecino empleando iBGP y viceversa, pero un prefijo
aprendido de un vecino mediante iBGP no puede reanunciarse a otro vecino por iBGP. Por otra
parte, cuando el peering tiene lugar entre dos routers vecinos de dos SA distintos se conoce
como eBGP. Estos dos routers vecinos han de tener en comn una subred.
Puesto que, como hemos mencionado anteriormente, no se pueden reanunciar prefijos
entre routers iBGP, es necesario que exista conectividad entre todos los routers vecinos que
se comuniquen a travs de iBGP dentro de un mismo AS, por lo que para conectar a todos los

BGP: Border Gateway Protocol

TPRT

routers entre s, se emplea un mallado total entre stos (full-mesh, como el mostrado en el
AS2 de la Figura 2). En la prctica, esta malla es virtual, debido a que se efecta de una forma
independiente a la conectividad fsica. De esta forma, y al contrario de lo que sucede en eBGP,
los vecinos no tienen que estar conectados de forma directa.

Figura 2. Distintos AS con sus respectivas conexiones eBGP e iBGP

La conectividad entre los routers de borde que intercambian sus informaciones BGP a
travs de iBGP en un mismo AS vendr asegurada por el protocolo IGP empleado. Si un router
de borde no logra llegar a una ruta de su propio SA, la cual le ha sido anunciada por un vecino
interno, esta ruta no ser propagada a los vecinos BGP tanto internos como externos.
A continuacin se enumeran los pasos que emplea BGP para activar una sesin entre dos
routers vecinos (Figura 3):
1. Los dos routers interesados en el intercambio de informacin BGP establecen una
conexin a nivel de transporte TCP, de tal forma que BGP sea capaz de crear una
comunicacin fiable con su par.
2. Ya establecida la conexin a nivel de transporte, el par de routers intercambian
mensajes para abrir y confirmar los parmetros de la sesin BGP (nmero de la versin
BGP, nmero del SA, valores de timeout de los mensajes del protocolo e informacin
de autenticacin).
3. Con la sesin BGP abierta, primeramente se produce entre los routers un intercambio
de las tablas de las rutas. La informacin de cada ruta est constituida por una lista de
los SA que deberan ser atravesados para poder alcanzar el destino.
4. Una vez ha finalizado el intercambio de informacin, se enviarn actualizaciones
solamente cuando se produzca algn cambio en las tablas de rutas. Para el envo de
estos cambios se precisa de un servicio a nivel de transporte, siendo este el motivo por
el que BGP trabaja sobre TCP.
5. Se envan mensajes KEEPALIVE para conocer el estado de la conexin
6. Si se produce algn error, se enva un mensaje NOTIFICATION, y se cierra la conexin.

BGP: Border Gateway Protocol

TPRT

Figura 3. Inicio de una sesin BGP

5. Estados BGP
Un enlace BGP pasa por diferentes estados durante una sesin BGP, los cuales tambin se
aprecian en la Figura3 anterior. Estos estados tambin son conocidos como neighbor states.
Inicialmente, todos los enlaces se encuentran en el estado Idle State. En las siguientes lneas se
explican detalladamente cada uno de los estados por los que puede pasar un enlace:
Idle State (estado paralizado):
En este estado, BGP rechaza todas las conexiones BGP entrantes. Inicialmente, todas las
comunicaciones comienzan por este estado, para posteriormente iniciar la conexin en la capa
de transporte y si esta resulta exitosa, cambiar su estado a Connect.
Connect State (estado conectado):
En este estado BGP est a la espera de que finalice la conexin en la capa de transporte. Si la
conexin finaliza exitosamente, borra el temporizador de reintento de conexin
(ConnectRetry), completa la inicializacin, enva un OPEN a su par, y cambia su estado a
OpenSent.

BGP: Border Gateway Protocol

TPRT

Si por el contrario la conexin falla, el emisor reinicia el temporizador, sigue a la espera de una
conexin y cambia su estado a Activate State, estado en el que cualquier evento de inicio ser
ignorado.
Active State (estado activo):
En este estado, BGP est intentando que el enlace inicie una conexin en la capa de
transporte. Si la conexin se realiza con xito se procede como en el caso homlogo del estado
conectado.
Si por el contrario, finalizara el temporizador de reintento de conexin, se reiniciara e iniciara
una sesin en la capa de transporte con otro vecino, seguira a la espera de una conexin y en
tal caso cambiara su estado a Connect.
Si tuviese lugar este otro caso en el cual el sistema local detecta que un vecino remoto est
intentando establecer una conexin BGP, y la direccin IP del mismo no se conoce, reiniciara
el ConnectRetry, rechazara el intento de conexin, seguira a la espera de una conexin que
podra iniciarse por un enlace BGP remoto, y seguira en Active State.
OpenSent State (estado open enviado):
En este estado BGP permanece esperando recibir un mensaje del tipo OPEN de su par. Cuando
se recibe, los campos son analizados y si es detectado algn error, el sistema local enviara una
NOTIFICATION al enlace y cambiara al Idle State.
Si no es detectado error alguno, BGP enva un KEEPALIVE e inicia un temporizador Keepalive.
Por otra parte, si se recibiese un mensaje de desconexin en la capa de transporte, el sistema
local cerrara la conexin BGP, reiniciara el temporizador ConnectRetry, se pondra a la espera
de otra conexin y modificara su estado a Activate State.
Si el tiempo de espera finalizase, el sistema local mandara un NOTIFICATION con el cdigo de
error 4 (Hold Timer Expired) y se cambiara a Idle State.
Si tiene lugar cualquier otro evento, el sistema local enva un NOTIFICATION con el cdigo de
error 5 (Finite State Machine Error) y se cambiara a Idle State.
Cuando un sistema BGP cambia su estado de OpenSent State a Idle State, cierra la conexin
BGP (y en la capa de transporte) y rechaza toda la informacin relativa a dicha conexin
OpenConfirm State (estado confirmacin de un open):
En este estado, BGP se mantiene esperando un mensaje KEEPALIVE o NOTIFICATION. Si el
sistema local recibe un KEEPALIVE, cambia su estado a Established.
Si se diese el caso en el que el tiempo de espera expirar antes de recibir algn KEEPALIVE, el
sistema local enviara un NOTIFICATION con el cdigo de error y se cambiara a Idle State.

BGP: Border Gateway Protocol

TPRT

En caso de recibir un NOTIFICATION, cambiara su estado a Idle State. Si el tiempo del


KeepAlive expirara, el sistema local enviara un KEEPALIVE y reiniciara el temporizador del
KeepAlive.
Si se recibiera una notificacin de desconexin en la capa de transporte, el sistema local
cambiara su estado a Idle State.
Durante este estado, cualquier inicio de sesin sera desestimado. Ante cualquier otro evento,
el sistema local enviara un NOTIFICATION con el cdigo de error y se cambiara a Idle State.
Established State (estado establecido):
Durante este estado BGP puede intercambiar mensajes del tipo UPDATE, NOTIFICATION y
KEEPALIVE con su par.
Si el sistema local recibiese un UPDATE o un KEEPALIVE, ste reiniciara el Hold-Timer si se
hubiera acordado que este fuera mayor que 0.
Si por otra parte el sistema recibiera un NOTIFICATION este cambiara a Idle State. Si recibe un
UPDATE y es detectado un error en ste, se enva un mensaje NOTIFICATION con el cdigode
error 4 y cambia su estado a Idle State.
Si el tiempo del KeepAlive finaliza, el sistema local enviara un KEEPALIVE y reiniciara el
temporizador.
Cuando el sistema local manda un KEEPALIVE o un UPDATE, este reinicia el tiempo del
KeepAlive, siempre que el valor del Hold-Timer sea diferente a 0.
Durante este estado los eventos de inicio de sesin son ignorados.
Ante cualquier otro evento, el sistema local enviara un NOTIFICATION con el cdigo de error 5
y cambiara su estado Idle State.
Siempre que BGP cambia su estado de Established State a Idle State, se cierra la conexin BGP,
incluyendo la capa de transporte, y desestima toda la informacin relacionada con esa
conexin y elimina todas las rutas recibidas durante esta conexin.

6. Criterios de seleccin de rutas


El protocolo BGP trabaja con una tabla privada de rutas que incluye las rutas de la tabla de
rutas aprendidas por BGP de todos los vecinos.
En la tabla de rutas BGP puede haber varias rutas para ir al mismo destino, de las que se
seleccionan solamente las rutas ms prioritarias para instalarlas en la tabla de rutas activas del
equipo. Para ello el protocolo BGP maneja diversos parmetros que determinan la prioridad de
cada ruta. Estos parmetros son los siguientes:

BGP: Border Gateway Protocol

TPRT

Preferencia (Distancia Administrativa): La Preferencia de una ruta equivale a la


Distancia Administrativa entre protocolos en el equipo. Este parmetro es el ms
prioritario a la hora de seleccionar una ruta para instalarla en la tabla de rutas
activas del equipo. Cada protocolo tiene un valor de Preferencia por defecto, en el
caso de BGP este valor es 170.
Preferencia2 (tie-breaker): Este parmetro se utiliza para resolver casos de
conflicto entre dos rutas de la misma Preferencia.
Mtrica: Indica el coste de la ruta, y slo es comparable entre rutas de un mismo
protocolo.
Mtrica2: Si no se ha asignado ningn valor (se muestra none) se considera de
mxima preferencia.
AS_path: Este parmetro indica a travs de que Sistemas Autnomos se ha
aprendido una ruta por BGP.

6.1 Eligiendo una ruta


Las reglas que utiliza el protocolo BGP para elegir la mejor ruta o salto a un determinado
destino son las siguientes:

La ruta con la menor Preferencia es la elegida.


Si dos rutas tienen la misma Preferencia, se elige la ruta con la menor Preferencia2.
Si las dos rutas se han aprendido por BGP se aplican los siguientes criterios:
o Se prefiere la ruta con mayor Mtrica2.
o Una ruta con informacin de AS-path es preferida frente a otra sin AS-path.
o Entre dos rutas con AS-path, provenientes del mismo AS, y con informacin de
Mtrica, se prefiere aquella que tiene menor valor de Mtrica.
o Entre dos rutas con AS-path distintos, se prefiere la de origen IGP, y si no la de
origen EGP.
o Entre dos rutas con AS-path distintos y con mismo origen, se prefiere la de ASpath de menor longitud.
Se prefieren las rutas instalables en la tabla de rutas activas frente a las rutas no
instalables.
Se prefiere la ruta que tenga el siguiente salto con el valor de direccin IP ms bajo.

7. Referencias
[1] Router Teldat. Protocolo BGP. ltima consulta: Marzo 2016.
[2] Fundamentos BGP. ltima consulta: Marzo 2016.
[3] Jorge Prez Calleja. Seguridad en BGP, ataques al protocolo y fallos de configuracin.
Universidad pontificia de comillas. ltima consulta: Marzo 2016.
[4] Ruteo IP y tecnologas de transporte. Instituto de ingeniera elctrica, Universidad de la
Repblica. ltima consulta: Marzo 2016.

You might also like