Practica 13: Enrutamiento dinámico entre sistemas
autónomos con BGP
Michelle Chimbo
Universidad de Cuenca, Facultad de Ingenierı́a, Redes de Computadores
[email protected] Resumen In this computer networks laboratory, a network topology was desig-
ned that has three autonomous systems, AS100, AS200 and A300 respectively,
once our network was implemented in the GNS3 simulator, we proceeded to con-
figure the dynamic routing with BGP necessary for the interconnection of all
autonomous systems. Finally, to verify its operation, different methods of verifi-
cation of the operation of the network as a whole were carried out and the GBP
messages were analyzed using Wireshark
Keywords: Enrutamiento · Dinámico · IPv4 · BGP · Sistemas Autónomos
1. Objetivos
Diseñar una topologı́a de red.
Definir un plan de direccionamiento IPv4 para la red propuesta
Configurar el enrutamiento dinámico BGP necesario para la interconexión de sis-
temas autónomos.
Verificar el funcionamiento correcto y la conectividad total de la red utilizando el
simulador GNS3.
2. Marco Teórico
2.1. BGP
BGP, o Protocolo de puerta de enlace de frontera, es el protocolo de routing que
hace que Internet funcione. El protocolo intercambia información de routing a través
de Internet, utilizando routers y tablas de routing que se expresan en BGP. BGP dirige
paquetes entre sistemas autónomos (AS): redes administradas por una sola empresa o
proveedor de servicios. El tráfico que se enruta dentro de una única red AS se conoce
como BGP interno o iBGP. Más a menudo, BGP se utiliza para conectar un AS a otros
sistemas autónomos, y luego se denomina BGP externo o eBGP.
La función principal de BGP es intercambiar información de capacidad de alcance
de la red con otros sistemas BGP. El Protocolo de puerta de enlace de frontera construye
un gráfico de sistemas autónomos basado en la información intercambiada entre routers
BGP.
2 Michelle Chimbo
2.2. Cómo Funciona BGP
En la terminologı́a BGP, un dominio de routing independiente, que casi siempre
significa una red ISP, se denomina sistema autónomo. BGP siempre se usa como el pro-
tocolo de routingde elección entre diferentes ISP, lo que se conoce como BGP externo.
Los ISP grandes también usan BGP como el protocolo de routing central dentro de sus
propias redes, lo que se denomina BGP interno.
Para permitir la transferencia de información de routing entre ISP vecinos, BGP re-
quiere acuerdos de pares, que comprenden los términos y condiciones necesarios para
el intercambio de tráfico. El protocolo se adhiere a estos acuerdos, al tiempo que evalúa
las tablas de routing y la información a lo largo de múltiples rutas entre los ISP. Lo hace
utilizando un algoritmo de selección que determina la mejor ruta para dirigir el tráfico
en función de comandos y atributos especificados. Sin embargo, el mejor camino no
siempre es el más corto.
Todos los demás protocolos de routing se ocupan únicamente de encontrar la ruta
óptima hacia todos los destinos conocidos. BGP no puede adoptar este enfoque simplis-
ta porque los acuerdos de pares entre ISP casi siempre resultan en polı́ticas de routing
complejas. Para ayudar a los operadores de red a implementar estas polı́ticas, BGP lleva
una gran cantidad de atributos con cada prefijo IP, incluidos los siguientes:
La ruta del sistema autónomo (AS) es la ruta completa que documenta los sistemas
autónomos por los que un paquete tendrı́a que viajar para llegar al destino.
La preferencia local es el costo interno de un destino, que se utiliza para garantizar
la coherencia en todo el AS.
El discriminador de múltiples salidas (MED) les da a los ISP adyacentes la posibi-
lidad de preferir un punto de interconexión sobre otro.
Comunidades es un conjunto de etiquetas genéricas que pueden indicar varias polı́ti-
cas administrativas entre routers BGP.
Debido a la complejidad inherente de BGP, los clientes y los ISP pequeños a menu-
do implementan BGP solo donde es necesario, por ejemplo, en puntos de interconexión
y en un subconjunto mı́nimo de routers centrales, los que se encuentran entre los puntos
de interconexión, como se muestra en el siguiente diagrama.
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 3
2.3. ¿Por qué usar BGP?
Figura 1. Uso de BGP
BGP ofrece estabilidad de red que garantiza que los routers puedan adaptarse rápi-
damente para enviar paquetes a través de otra re-conexión si una ruta de Internet se
cae. BGP toma decisiones de routing basadas en rutas, reglas o polı́ticas de red confi-
guradas por un administrador de red. Cada router BGP mantiene una tabla de routing
estándar utilizada para dirigir paquetes en tránsito. Esta tabla se usa junto con una tabla
de routing separada, conocida como la Routing Information Base (RIB), que es una
tabla de datos almacenada en un servidor en el router BGP. El RIB contiene informa-
ción de ruta tanto de pares externos conectados directamente como de pares internos,
y actualiza continuamente la tabla de routing a medida que ocurren cambios. BGP se
basa en TCP/IP y utiliza la topologı́a cliente-servidor para comunicar la información de
enrutamiento, con el cliente-servidor iniciando una sesión BGP mediante el envı́o de
una solicitud al servidor [1].
4 Michelle Chimbo
2.4. Mensaje BGP
Existen cuatro tipos de mensajes:
OPEN: Este mensaje protocolo BGP utilizado, el número de AS y el número identi-
ficador del proceso BGP. Además, este mensaje incluye un valor de tiempo durante
el cual se va a mantener la sesión (90 segundos normalmente). Si se indica el valor
0 significa que la sesión no va a tener lı́mite de duración. Una vez que se envı́a es-
te mensaje, el proceso BGP se queda en espera de recibir un mensaje KEEPALIVE.
KEEPALIVE: Este mensaje sirve como confirmación a un mensaje OPEN. Si el
tiempo que se estableció para la duración de la sesión es limitado, es necesario que
los procesos BGP envı́en este mensaje cada cierto tiempo (30 segundos normal-
mente) para indicar que se mantiene la sesión. De este modo, en el caso de que
no haya modificación de la tabla de encaminamiento, los routers BGP sólo inter-
cambian este tipo de mensaje de forma periódica, lo cual genera un tráfico de unos
5bits/s en el nivel BGP (cada mensaje tiene un tamaño mı́nimo de unos 19 octetos).
NOTIFICATION: Este mensaje sirve para cerrar la sesión BGP, cerrando también
la conexión TCP. Además, se envı́a un código para indicar si hubo errores, como
por ejemplo la recepción de un mensaje incorrecto, un problema del proceso BGP
o la ausencia de mensajes KEEPALIVE durante 90 segundos (hello time). La con-
secuencia del cierre de la sesión BGP es la anulación de todas las rutas aprendidas
en dicha sesión.
UPDATE: Este mensaje sirve para intercambiar las informaciones de encamina-
miento como las rutas a eliminar, el conjunto de atributos de cada ruta, las informa-
ciones sobre los prefijos de redes accesibles (red y longitud de la máscara) o NLRI
(Network Layer Reachability Information) y la longitud de cada ruta. Este mensaje
se envı́a sólo cuando existe algún cambio y su recepción produce la activación del
proceso BGP, que se encargará entonces de modificar convenientemente las tablas
RIB y de emitir a su vez un mensaje UPDATE hacia los otros vecinos [2].
3. Metodologı́a
3.1. Topologı́a de red propuesta
El esquema de la red que queremos emular es el que se ve en la imagen siguien-
te. Podemos ver que tenemos 3 Routers (ROUTER3, ROUTER4 y ROUTER5) que
funcionan como router BGP de los sistemas autónomos AS100, AS200 y AS300 res-
pectivamente.
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 5
Figura 2. Topologı́a de la Red
3.2. Enrutamiento dinámico
Antes de comenzar con la configuración de los routers para el enrutamiento dinámi-
co entre sistemas autónomos, hay que montar nuestra red según la topologı́a planteada
y levantar las interfaces, este procedimiento no se explicara debido a que se lo realizó
en practicas anteriores.A continuación se mostrará las rutas que conoce los routers R3,
R4 y R5 antes del enrutamiento con BGP.
Figura 3. Rutas que conoce R3 antes de la configuración
6 Michelle Chimbo
Figura 4. Rutas que conoce R4 antes de la configuración
Figura 5. Rutas que conoce R5 antes de la configuración
Como se puede ver en las figuras anteriores, en las rutas de los routers R3, R4 y
R5 solo se encuentran las redes que tiene directamente conectadas y las aprendidas por
BGP.
Para configurar los routers con enrutamiento dinámico mediante BGP en el router
R3, es necesario ingresar el siguiente comando, en el cual se debe indicar el área de este
sistemas autónomo, entonces:
>>configure terminal
>>router bgp 100
>>neighbor 172.20.29.106 remote-as 200
>>network 172.20.29.104 mask 255.255.255.252
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 7
>>redistribute ospf 1
>>end
>>write
Si observamos las redes que tiene el R3 (con el comando show ip route) se ve
que no se ha actualizado las redes de sistemas autónomo 200, es decir que el R3 se
encuentra configurado con BGP pero no aprende nada de los otros sistemas autónomos,
esto sucede debido a que estos no están hablando BGP.
Figura 6. Rutas conocidas por R3
A continuación se procede a realizar la configuración para el enrutamiento dinámico
para el router 4, para esto se ejecuta los siguientes comandos teniendo en cuenta que en
este router se debe configurar BGP tanto para el AS100 como para el AS300.
>>configure terminal
>>router bgp 200
>>neighbor 172.20.29.105 remote-as 100
>>neighbor 172.20.29.110 remote-as 300
>>network 172.20.29.104 mask 255.255.255.252
>>network 172.20.29.108 mask 255.255.255.252
>>redistribute ospf 1
>>end
>>write
Entonces en la figura 7 se encuentra ya que el R3 aprendió con BGP las redes del
enrutador R4, y de la misma manera R4 aprende las redes de R3 (ver figura 8).
8 Michelle Chimbo
Figura 7. Nuevas rutas en R3
Figura 8. Nuevas rutas en R4
Este procedimiento se debe llevar cabo también con el router R5 correspondiente
del sistema autónomo 300 con los siguientes comandos.
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 9
>>configure terminal
>>router bgp 300
>>neighbor 172.20.29.109 remote-as 200
>>network 172.20.29.108 mask 255.255.255.252
>>redistribute ospf 1
>>end
>>write
Otro punto de vital importancia en la configuración de BGP es que los Router R3,
R4 y R5 den dar a conocer a su red interna lo que ha aprendido por BGP, entonces para
esto, se entra a la configuración de OSPF de estos routers y se ingresan los siguientes
comandos.
Router R3
>>configure terminal
>>router ospf 1
>>redistribute bgp 100 subnets
>>end
>>write
Router R4
>>configure terminal
>>router ospf 1
>>redistribute bgp 200 subnets
>>end
>>write
Router R5
>>configure terminal
>>router ospf 1
>>redistribute bgp 300 subnets
>>end
>>write
Si procedemos a verificar la tabla de enrutamiento de R1, el cual es un enrutador
interno de sistema autónomo 100, se tendrá la siguiente tabla, donde se verifica que
ahora el router R3 redistribuyó las redes aprendidas por BGP.
10 Michelle Chimbo
Figura 9. Tabla de enrutamiento de R1
De la misma manera podemos comprobar la tabla de enrutamiento del router interno
del AS 300 (router R6), de esta manera se obtuvo los correctos resultados (ver figura
10).
Figura 10. Tabla de enrutamiento de R6
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 11
3.3. Funcionamiento del enrutamiento
Para verificar el funcionamiento del enrutamiento se utilizará el comando ping, el
cual comprueba el estado de la comunicación del anfitrión local con uno o varios equi-
pos remotos de una red, este ping se lo realizará entre un cliente de cada subred de AS
100 y AS 300, y un cliente perteneciente al AS 200 con la IP 172.20.28.12 (PC15), de
esta manera se probará que existe conexión entre las diferentes maquinas. Los clientes
escogidos para esta acción fueron:
AS100>>Red 172.20.0.0: Cliente 172.20.0.11
AS100>>Red 172.20.8.128: Cliente 172.20.8.11
AS100>>Red 172.20.16.0: Cliente 172.20.16.11
AS100>>Red 172.20.20.0: Cliente 172.20.20.11
AS100>>Red 172.20.24.0: Cliente 172.20.24.11
AS100>>Red 172.20.26.0: Cliente 172.20.26.11
AS300>>Red 172.20.29.0: Cliente 172.20.29.11
AS300>>Red 172.20.29.32: Cliente 172.20.29.41
AS300>>Red 172.20.29.64: Cliente 172.20.29.75
AS300>>Red 172.20.29.80: Cliente 172.20.29.91
Después de esto, se procederá a verificar las tablas de enrutamiento y rutas apren-
didas mediante BGP en los enrutadores R3, R4 y R5, de tal forma que en estas consten
todas las subredes de los otros SA. A continuación se utilizaran diferentes comandos de
verificación de BGP para probar el correcto funcionamiento de la red en su conjunto,
entonces los comandos utilizados se explicarı́an a continuación:
Para la verificación del funcionamiento de la red en conjunto se utilizará el coman-
do show ip route bgp, el cual nos mostrará únicamente la tabla de enrutamiento con
rutas aprendidas con bpg
Para mostrar el estado de todas las conexiones del Border Gateway Protocol (BGP)
se utiliza el comando show ip bgp summary, el cual nos muestra toda la base de
datos de las redes que hablan BGP.
También se llevo a cabo un análisis de los distintos tipos de mensajes intercambia-
dos entre enrutadores BGP, para esto se escogió la conexión serial entre el enrutador
R3 y R4 de modo que con Wireshark obtendremos los paquetes que pasen por dicha
conexión.
Después de esto, como comando de verificación de conectividad se utilizo el co-
mando traceroutepara mostrar las posibles rutas o caminos de los paquetes.
4. Análisis de Resultados
4.1. Funcionamiento del Enrutamiento dinámico
En la figura 24 se muestra los ping realizados desde los clientes de cada subred.
Como se puede observar en esta figura existe conexión entre estos clientes y el cliente
12 Michelle Chimbo
del router R3, que son clientes que se encuentran en subredes de interfaces distintas,
existiendo ası́ comunicación entre estas maquinas.
Figura 11. Ping de un cliente de SA 200 con clientes de diferentes interfaces de los SA 100 y
300
4.2. Verificar las tablas de enrutamiento y rutas aprendidas mediante BGP
En esta sección se va a observar las tablas de enrutamiento de cada router BGP
(R3, R4 y R5), viéndose ası́ que en dichas tablas ya no se encuentran solo las redes
conectadas y las directamente y las establecidas con OSPF sino también las que fueron
aprendidas mediante el protocolo de enrutamiento dinámico BGP.
Router R3
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 13
Figura 12. Tabla de enrutamiento de R3
Router R4
Figura 13. Tabla de enrutamiento de R4
14 Michelle Chimbo
Router R5
Figura 14. Tabla de enrutamiento de R5
4.3. Comandos de verificación, protocolos y database de BGP
Los comandos que se usaran para verificar son los siguientes:
show ip route bgp
Como se dijo anteriormente este procedimiento se lo realizo con los tres routers
BGP correspondientes a cada AS, entonces en las figuras 15, 16 y 17 se tienen la
tabla de enrutamiento únicamente con las rutas aprendidas mediante BGP para los
routers de borde mencionados.
Figura 15. Tabla de enrutamiento BGP en R3
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 15
Figura 16. Tabla de enrutamiento BGP en R4
Figura 17. Tabla de enrutamiento BGP en R5
show ip bgp summary
Mediante este comando podremos saber cuáles son los vecinos BGP conectados,
cuantos mensajes BGP han sido enviados y cuantos han sido recibidos, entre otra
información de atributos para todas las conexiones a los vecinos de BGP, en las
figuras 18, 19 y 20 se ve la ejecucion de este comando en los router de borde.
16 Michelle Chimbo
Figura 18. Tabla de resumen BGP del router R3
Figura 19. Tabla de resumen BGP del router R4
Figura 20. Tabla de resumen BGP del router R5
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 17
4.4. Análisis de los distintos tipos de mensajes intercambiados entre enrutadores
BGP
Se realizo la captura de paquetes en Wireshark en la conexión serial que conecta los
router R3 y R4 como se muestra en la figura 21, de esta interface serial se tiene que el
router R3 tiene como geteway a la IP 172.20.29.105 mientras que el router R4 tiene de
gateway a 172.20.29.106.
Figura 21. Interface serial en la cual se capturara paquetes
Al realizar el análisis con wireshark se coloco un filtro BGP para poder observar
únicamente los paquetes BGP que fueron enviados, se obtuvo los paquetes mostrados
en la figura 22 como se puede observar se tiene paquetes BGP originados tanto en R3
como en R4.
Figura 22. Paquetes BGP capturados con Wireshark
18 Michelle Chimbo
En la figura anterior se puede ver que los enrutadores han intercambiado tres tipos
de mensajes BGP, especı́ficamente, mensajes del tipo: Open, Keep Alive y Update.
Open Packet
Este paquete se envia tanto desde el router de R3 (172.20.29.105) como del router
R5 (172.20.29.106), en la figura anterior se podı́a observar que estos paquete Open
son los primeros mensajes enviados por cada router que trabaja con BGP y cual es
utilizado para informar a sus vecinos sobre la version de protocolo BGP utilizado,
el numero de AS y el numero identificador de proceso.
Figura 23. Mensajes Open del router R3 y R4
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 19
En la imágenes anteriores se puede ver que los dos paquetes contienen la misma
versión BGP esto debido a que los dos enrutadores BGP intentarán negociar una
versión compatible sino coinciden habrá sesión BGP. También en cada paquete se
especifica el numero de AS en el router R3 se tienen el AS 100 mientras que en
router R4 es el AS 200. Otro parámetro importate en el mensaje OPEN es el BGP
Identifier, el cual es un número único de 32 bits que identifica al enrutador BGP
se puede utilizar como un mecanismo de prevención de bucles para los enrutadores
anunciados dentro de un sistema autónomo generalmente representan una dirección
IPv4 que reside en el enrutador, entonces el ID del Enrutador R3 es 172.20.29.105
y el del router es R4 172.20.29.113. Por ultimo en las imágenes se pueden ver que
el tiempo de espera o Hold Time es de 180 para los dos paquetes.
Keep Live
En la figura 22, se puede observar que los paquetes Keep Alive son intercambiados
una vez se tenga una comunicación bidireccional entre routers BGP, estos mensajes
son usado como confirmación a un mensaje OPEN para indicar que se mantiene la
sesión.
Figura 24. Mensajes BGP Keep Alive del router R3 y R4
En la figura 22 se puede ver que en el caso de que no haya modificación de la
tabla de encaminamiento, los routers BGP sólo intercambian este tipo de mensaje
de forma periódica cada 30s aproximadamente.
Update
Los paquetes Update son usados para intercambiar las informaciones de enruta-
miento, anuncia cualquier ruta factible, retira rutas previamente anunciadas o puede
hacer ambas cosas
20 Michelle Chimbo
Figura 25. Mensajes BGP Update del router R3
Figura 26. Mensajes BGP Update del router R4
En la figura 25 se tiene el mensaje Update enviado desde el router R3, en este pa-
quete se puede ver que se encuentra información sobre los prefijos que se anuncian,
NLRI (Información de accesibilidad de la capa de red), en este caso lso prefijos
anunciados son:
• 172.20.29.104 /30
• 172.20.29.100 /30
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 21
• 172.20.29.96 /30
• 172.20.8.0 /21
• 172.20.0.0 /21
• 172.20.26.0 /23
• 172.20.24.0 /23
• 172.20.20.0 /22
• 172.20.16.0 /22
Mientras que para el router R4 el prefijo anunciado es el 172.20.19.104 /30, esto
debido a que las capturas obtenidas se realizaron cuando únicamente se habı́a confi-
gurado al AS100 y al AS200 con BGP. Ambos paquetes Update también contienen
los atributos de las rutas los cuales se muestran en la siguiente figura.
Figura 27. Atributos de Ruta
22 Michelle Chimbo
En la imagen anterior se encuentran algunos parámetros de los cuales hablaremos
a continuación.
Longitud de ruta retirada
Muestra la longitud del campo Rutas retiradas en bytes, es este caso está estableci-
da en 0, es decir que no hay rutas retiradas y el campo Rutas retiradas no aparecerá.
Longitud total del atributo de ruta Muestra la longitud total del campo Atributos
de ruta, en este caso es de 27.
Atributos de ruta
En esta sección se almacena los atributos BGP para el prefijo se almacenan aquı́,
por ejemplo: origen, as path, next hop, med, preferencias locales, entre otros. Estos
atributos de ruta se almacenan en formato TLV (Tipo, Longitud, Valor). También
se tienen una bandera de atributo para indicar al enrutador BGP cómo tratar el atri-
buto, entre estas se tiene:
Opcional: El atributo es conocido y este bit se establece en 0, cuando es opcional,
se establece en 1.
Transitivo: Cuando el atributo opcional es transitivo, este bit se pone a 1.
Parcial: Cuando el atributo opcional está completo este bit se establece en 0, cuan-
do es parcial, se establece en 1.
Longitud ampliada: Cuando la longitud del atributo es de 1 octeto, se pone a 0.
4.5. Comandos de verificación de conectividad
En lo que respecta a este comando de verificación de conectividad, se utilizará el
comando trace, el cual nos va a dar información acerca de la ruta que toma un paquete
que será enviado desde un cliente en una red de R2 (172.20.24.11) hasta un cliente en
una red de R6 (172.20.29.11), y viceversa. De esta manera se irá solicitando a cada uno
de los enrutadores que se encuentre por el camino una respuesta al paso de este paquete.
Trace desde 172.20.24.11 hasta 172.20.29.11
Figura 28. Trace de la PC10 a la PC 22
Practica 13: Enrutamiento dinámico entre sistemas autónomos con BGP 23
Trace desde 172.20.29.11 hasta 172.20.24.11
Figura 29. Trace de la PC22 a la PC 10
En las dos figuras anteriores se puede observar que este paquete se encuentran via-
jando de gateway en gateway de los routers que se encuentran en el camino desde el
origen al destino.
5. Conclusiones
A través de esta práctica se pudo verificar que el protocolo BGP es un protocolo
tipo path-vector por lo cual mantiene muchas caracterı́sticas comunes con los de
vector distancia, BGP usa la distancia o el número de saltos para determinar la ruta
de transmisión.
BGP más adecuado para servir entre redes de gran tamaño divididos en sistemas
autónomos por lo cual este protocolo BGP diseñando para ser escalable, cuando
se realiza la configuración se empleo tres sistemas autónomos que utilizan como
protocolo de enrutamiento interno a OSPF v2, para realizar la comunicaciones entre
los AS se procedió a configurar con BGP a los routers de borde de los mismos, pero
también es necesario que estas rutas aprendidas por BGP sean distribuidos dentro
del sistema autónomo en sı́, por lo cual también se lleva a acabo esta configuración.
Cuando se llevo a acabo el análisis de paquetes BGP mediante wireshark se pudo
observar que a diferencia de los otros tipos de enrutamiento, BGP no utiliza UDP ni
emplea IP directamente sino que BGP es un protocolo que funciona sobre TCP por
el puerto 179, mediante el cual fue posible permite el enrutamiento de los paquetes
IP que se intercambian entre los distintos AS, también se encontró que en este pro-
tocolo intervienen una serie de mensajes BGP, los cuales son Open para configurar
y establecer la adyacencia BGP, Update para anunciar, actualizar o retirar rutas,
Keep Alive para garantizar que los vecinos de BGP sigan vivos y Notification para
indicar una condición de error o un cierre de sesión a un vecino BGP.
Referencias
1. CCNA, “Bgp: Border gateway protocol.” [Online]. Available: https://ccnadesdecero.es/
bgp-border-gateway-protocol/
2. D. E. Villanueva Rojas, J. Forero Morales, J. A. Paez Ruiz et al., “Diseño estructural de una
red lan para el colegio metrovivienda de usme basado en la tecnologı́a cisco,” 2019.