Laboratorio de BGP
- Relaciones de tránsito
- Relación entre iguales
- Políticas de exportación y orden de preferencia en la selección de rutas
En el fichero lab-BGP.tgz se encuentran los ficheros de configuración para crear un escenario de red como el que se muestra en la figura.

En esta figura hay tres AS (Sistemas Autónomos): AS10, AS20 y AS30. Se ha configurado OSPF dentro de AS20 y AS30 y se desea configurar BGP para conectar los 3 sistemas autónomos. En AS10 no se utilizará ningún protocolo de encaminamiento interior ya que sólo hay una red interna.
Se realizará la configuración por pasos. Supondremos para la configuración de BGP que AS10 y AS20 mantienen una relación de tránsito y que AS10 y AS30 mantienen una relación de tránsito, siendo en ambos casos AS10 el proveedor.
Relaciones de tránsito
pcs y routers de AS20 con OSPF
Descomprime el fichero de configuración del escenario
lab-BGP.tgz. Al arrancar NetGUI debes abrir el escenario definido en el directoriolab-BGP.Arranca de una en una sólo las máquinas de AS20.
Las máquinas tienen configurada una dirección IP en cada una de sus interfaces de red. Los pcs además tienen configurada una ruta por defecto al único router al que están directamente conectados.
Los routers de AS20 (
as20-r1,as20-r2yas20-r3) tienen configurado el protocolo OSPF para que intercambien información de encaminamiento dentro de AS20 (consulta los ficherosdaemonsyospfd.confde estos routers). Arrancaquaggaen todos los routers de AS20.Consulta las tablas de encaminamiento utilizando la interfaz VTY con los procesos
ospfdde cada router y mediante el comandoroute.Comprueba utilizando
pingque todos los pcs y routers tienen conectividad dentro de AS20.Modifica la configuración de
quaggaenas20-r1para que utilice además de OSPF el protocolo BGP. Define como vecino suyo aas10-r1. Utiliza únicamente la redistribución de las subredes directamente conectadas (redistribute connected). No uses aún la redistribución de rutas entre OSPF y BGP. Reiniciaquaggaenas20-r1.¿Debería haber aprendido alguna ruta
as20-r1por BGP? Compruébalo consultando la tabla de encaminamiento mediante el mandatoroutey conectándote a la interfaz VTY del procesobgpd.¿Deberían haber aprendido alguna ruta
as20-r2yas20-r3?
pc y router de AS10
Arranca
as10-pc1yas10-r1. La máquinaas10-pc1tiene configurada una dirección IP y una ruta por defecto al router al que está directamente conectado. El routeras10-r1tiene configuradas direcciones IP, una en cada interfaz, pero no tiene configurada ninguna ruta adicional a las de las subredes a las que está directamente conectado.Configura
quaggaenas10-r1para que utilice el protocolo BGP. Define como vecinos suyos aas20-r1y aas30-r1.Captura el tráfico con
tcpdumpenas20-r1(eth0), con la opción-spara capturar paquetes enteros y-wpara guardar la captura en un fichero.Arranca
quaggaenas10-r1. Espera un minuto e interrumple la captura.Analiza la captura realizada:
Observa que el tráfico de BGP va dentro de una conexión TCP.
Localiza los mensajes
OPENque intercambian los routers vecinos. Observa en ambos mensajesOPENlos siguientes campos:My ASIdentificador del router BGP
Hold timeEn los parámetros opcionales, el campo
Capabilities Advertisementque contiene información del número de sistema autónomo de 32 bits.
Localiza los mensajes
KEEPALIVEque intercambian los routers. Además de la cabecera obligatoria de BGP (Marker,LengthyType) ¿qué otra información viaja en este tipo de mensajes?Localiza los mensajes
UPDATEque intercambian los routers. Observa en ambos mensajesUPDATElos siguientes campos:Rutas eliminadas
Rutas anunciadas
Atributos, en particular el valor de
NEXT_HOPyAS_PATH.El atributo
ORIGINtiene como valorINCOMPLETEporque esas subredes se anuncian debido a la redistribución de subredes y no a través de líneasnetwork. Elimina en el ficherobgpd.confdeas10-r1la línea:redistribute connectedy añade las siguientes líneas:
network 11.1.0.0/16 network 20.1.0.0/16 network 20.2.0.0/16Interrumpe
quaggaenas10-r1, inicia una captura de tráfico enas20-r1(eth0)y arrancaquaggaenas10-r1de nuevo. Pasado 2 minutos aproximadamente, fíjate en el valor del atributoORIGINen el mensaje UPDATE que generaas10-r1para dichas subredes. Puedes observar como el valor de este atributo (i=IGP, e=EGP, ?=incomplete) también se observa en la tabla BGP, en la columnaPath, junto al ASN que originó el anuncio.
Consulta la tabla de encaminamiento utilizando la interfaz VTY con el proceso
bgpdy con el comandorouteen los routersas10-r1yas20-r1. Observa las diferencias.Prueba a hacer un
pingdesdeas10-pc1haciaas20-pc2y comprueba que no funciona. ¿Por qué? (Explica la tabla de encaminamiento que tieneas10-r1).Modifica la configuración del fichero
bgpd.confdeas20-r1para que se redistribuyan las rutas aprendidas por OSPF de AS20 a otros ASs utilizando BGP. Reiniciaquaggaenas20-r1. Comprueba que ahoraas10-r1tiene rutas a todas las redes de AS20. En la tabla BGP deas10-r1fíjate en el atributoORIGINpara las subredes de AS20.Prueba a hacer un
pingdesdeas10-pc1haciaas20-pc2y comprueba que todavía no funciona. ¿Por qué? (Explica la tabla de encaminamiento que tieneas20-r2).Modifica la configuración del fichero
ospfd.confdeas20-r1para que se redistribuyan las rutas aprendidas por BGP a los routers de AS20 mediante OSPF. Reiniciaquaggaenas20-r1. Comprueba queas20-r2tiene ruta a la red de AS10.Comprueba que ahora sí funciona el
pingentreas10-pc1yas20-pc2.
pcs y routers de AS30 con OSPF
Arranca todas las máquinas de AS30 de una en una. Los routers tienen configurada una dirección IP por cada una de sus interfaces. Los pcs tienen configurada una dirección IP y una ruta por defecto al router al que están directamente conectados.
Los routers de AS30 (
as30-r1,as30-r2yas30-r3) tienen configurado el protocolo OSPF para que intercambien información de encaminamiento dentro de AS30 (consulta los ficherosdaemonsyospfd.confde estos routers). Arrancaquaggaen todos los routers de AS30.Consulta las tablas de encaminamiento utilizando la interfaz VTY con los procesos
ospfdde cada router y mediante el comandoroute.Comprueba utilizando
pingque todos los pcs y routers tienen conectividad dentro de AS30.Modifica la configuración de
quaggaenas30-r1para que utilice además el protocolo BGP. Define como vecino suyo aas10-r1. No uses aún la redistribución de rutas entre OSPF y BGP.Captura el tráfico con
tcpdumpenas10-r1(eth2), con la opción-spara capturar paquetes enteros y-wpara guardar la captura en un fichero.Reinicia
quaggaenas30-r1. Espera un minuto e interrumpe la captura.Analiza la captura realizada:
Observa que el tráfico de BGP va dentro de una conexión TCP.
Localiza los mensajes
OPENque intercambian los routers vecinos. Observa en ambos mensajesOPENlos siguientes campos:My ASIdentificador del router BGP
Hold timeEn los parámetros opcionales, el campo
Capabilities Advertisementque contiene información del número de sistema autónomo de 32 bits.
Localiza los mensajes
KEEPALIVEque intercambian los routers. Comprueba que son similares a los que ya observaste en el apartado anteriorTrata de suponer qué rutas le anunciará
as10-r1aas30-r1en sus mensajesUPDATE. ¿QuéAS_PATHcrees que traerán esas rutas? Como los atributos de un mensajeUPDATEson comunes a todas las rutas anunciadas, ¿podrá anunciaras10-r1todas las subredes que conoce en un solo mensajeUPDATE?Trata de suponer qué rutas le anunciará
as30-r1aas10-r1en sus mensajesUPDATE.Localiza en la captura los mensajes
UPDATEque intercambian los routers y confirma si tus suposiciones son ciertas. Observa el valor de los atributosNEXT_HOPyAS_PATH.
¿Debería haber aprendido alguna ruta
as30-r1? Compruébalo consultando la tabla de encaminamiento mediante el mandatoroute.El resto de routers de AS30 ¿deberían haber aprendido alguna otra ruta? Compruébalo.
Prueba a hacer un
pingdesdeas10-pc1haciaas30-pc3y comprueba que no funciona. ¿Por qué? (Explica la tabla de encaminamiento deas10-r1).Modifica la configuración del fichero
bgpd.confdeas30-r1para que se redistribuyan las rutas aprendidas por OSPF de AS30 a otros ASs utilizando BGP. Reiniciaquaggaenas30-r1. Comprueba que ahoraas10-r1tiene rutas a todas las redes de AS30. En la tabla BGP deas10-r1fíjate en el atributoORIGINpara las subredes de AS30.Prueba a hacer un
pingdesdeas10-pc1haciaas30-pc3y comprueba que todavía no funciona. ¿Por qué? (Explica la tabla de encaminamiento deas30-r3).Modifica la configuración del fichero
ospfd.confdeas30-r1para que se redistribuyan las rutas aprendidas por BGP a los routers de AS30 mediante OSPF. Reiniciaquaggaenas30-r1. Comprueba que ahoraas30-r3tiene ruta a la red de AS10.Comprueba que ahora sí funciona el
pingentreas10-pc1yas30-pc3.Comprueba que hay conectividad entre todos los pcs de la figura.
Agregación de rutas
La configuración de BGP realizada en el apartado anterior provoca que las subredes del sistema autónomo AS20 se almacenen de forma independiente, ocupando cada una de ellas una entrada diferente en las tablas de encaminamiento de los routers de AS10 y AS30. De forma equivalente, cada una de las subredes de AS30 ocupan entradas diferentes en las tablas de encaminamiento de los routers de AS10 y AS20.
Utilizando CIDR pueden agruparse estas entradas para que los anuncios por BGP que emiten AS20 y AS30 optimicen el número de entradas en las tablas de encaminamiento en los routers externos a dichos sistemas autónomos.
Interrumpe la ejecución de
quaggaenas20-r1yas30-r1.Configura BGP en AS20 para que se optimice el número de entradas en las tablas de encaminamiento de los routers de AS10 y AS30. Ten en cuenta que al realizar la agregación de rutas, dicha agregación sólo puede referirse a subredes que pertenezcan a AS20.
Configura BGP en AS30 para que se optimice el número de entradas en las tablas de encaminamiento de los routers de AS10 y AS20. Ten en cuenta que al realizar la agregación de rutas, dicha agregación sólo puede referirse a subredes que pertenezcan a AS30.
Captura el tráfico con
tcpdumpenas10-r1(eth2), con la opción-spara capturar paquetes enteros y-wpara guardar la captura en un fichero.Inicia
quaggaenas20-r1yas30-r1.Analiza la captura realizada:
Trata de suponer cómo serán los nuevos mensajes
UPDATEque intercambien los routers anunciando las redes de AS20 y AS30. Localízalos en la captura y confirma si tus suposiciones son ciertas.Fíjate en el atributo
ORIGINpara estas subredes en los mensajesUPDATEy en la tabla BGP deas10-r1, su valor es diferente después de realizar la agregación.
Consulta las tablas de encaminamiento de los routers de AS20 y AS30 mediante el comando
route, para ver cómo se han agregado las rutas hacia el sistema autónomo externo.Consulta la tabla BGP en
as20-r1, observarás como las subredes de AS20 con el prefijo agregado aparecen como ruta preferida y serán las que se anuncian a otros vecinos BGP. Además, las subredes que se anunciaban previamente de forma independiente y ahora se anuncian dentro del prefijo agregado también aparecen pero marcadas con unasque indica que se suprimen. Consulta esta misma información en la tabla BGP deas30-r1para las subredes de AS30 que agrega este router.
Relación entre iguales
AS20 y AS30 se dan cuenta de que intercambian mucho tráfico entre ellos
y deciden conectar directamente as20-r1 y as30-r1 definiendo una
relación entre iguales entre los mismos.
Interrumpe quagga en
as20-r1yas30-r1.Interrumpe la ejecución de los routers
as20-r1yas30-r1, apagando cada uno de ellos desde la interfaz gráfica de NetGUI. Dibuja un enlace directo entre ambos routers y arráncalos de nuevo, uno después de otro.Asigna la dirección 20.3.0.20 a la nueva interfaz de
as20-r1y la dirección 20.3.0.30 a la nueva interfaz deas30-r1, ambas direcciones de la red 20.3.0.0/16.No apliques por ahora ninguna política de exportación de rutas. Modifica la configuración de BGP de
as20-r1yas30-r1para añadir en cada uno al otro como nuevo vecino. Por defecto si no se configuran políticas de exportación, se anuncian todas las rutas seleccionadas como preferidas.Arranca
quaggaenas20-r1yas30-r1.Comprueba mediante
routeenas20-r1la ruta hacia las redes de AS30, y enas30-r1la ruta hacia las redes de AS20. Utilizando la interfaz VTY en ambos routers observa cómo cada uno tiene dos rutas alternativas para el sistema autónomo vecino, y ha elegido una de ellas. ¿Cuál? ¿Por qué? Ten en cuenta queLOCAL_PREFno se ha modificado y por tanto valdrá para todas las interfaces su valor por defecto, 100.Observa la tabla BGP de
as20-r1e indica cuántas rutas alternativas existen para las subredes 20.1.0.0/16, 20.2.0.0/16 y 20.3.0.0/16. Indica cómoas20-r1ha aprendido estas rutas alternativas y cuál se ha seleccionado como preferida.¿Qué ruta crees que seguirán los paquetes intercambiados entre
as20-pc3yas30-pc2? Compruébalo.¿Qué ruta crees que seguirán los paquetes enviados desde
as30-pc3con destinoas10-pc1? Compruébalo utilizandotraceroute. Utilizando la interfaz VTY enas30-r1comprueba cómo tiene dos rutas alternativas para la red11.1.0.0/16. Observa cuál es la elegida y por qué.Apaga la interfaz
eth0deas30-r1conifconfig eth0 down. Espera unos 3 minutos. ¿Qué habrá pasado ahora con la ruta que seguirán los paquetes enviados desdeas30-pc3con destinoas10-pc1? Compruébalo utilizandotraceroute. Utilizando la interfaz VTY enas30-r1comprueba que ahora sólo tiene una ruta para la red11.1.0.0/16. Dada las relaciones entre AS10, AS20 y AS30 indica si esta situación perjudica a alguno de los AS y por qué.Teniendo en cuenta las relaciones entre AS10, AS20 y AS30:
¿Qué rutas debería exportar AS20 a AS30, y qué rutas no debería exportarle?
¿Qué rutas debería exportar AS30 a AS20, y qué rutas no debería exportarle?
Teniendo en cuenta las rutas que deben exportarse y las que no, vuelve a configurar BGP en
as20-r1yas30-r1para que se anuncien y se exporten sólo las rutas que a cada AS le interesa.Vuelve a levantar la interfaz
eth0deas30-r1conifconfig eth0 up. Reiniciaquaggaen los 3 routers BGP:as10-r1,as20-r1yas30-r1.Comprueba ahora las tablas de encaminamiento en
as20-r1yas30-r1, tanto conroutecomo con la interfaz VTY.¿Qué ruta crees que seguirán ahora los paquetes intercambiados entre
as20-pc3yas30-pc2? Compruébalo.¿Qué ruta crees que seguirán ahora los paquetes enviados desde
as30-pc3con destinoas10-pc1? Compruébalo utilizandotraceroute. Utilizando la interfaz VTY enas30-r1comprueba qué rutas tiene disponibles hacia la red11.1.0.0/16.Apaga la interfaz
eth0deas30-r1conifconfig eth0 down. ¿Qué habrá pasado ahora con la ruta que seguirán los paquetes enviados desdeas30-pc3con destinoas10-pc1? Compruébalo utilizandotraceroute. Utilizando la interfaz VTY enas30-r1comprueba qué rutas hay ahora para la red11.1.0.0/16.
Políticas de exportación y orden de preferencia en la selección de rutas
En el fichero lab-BGP2.tgz se encuentran los ficheros de configuración
para crear un escenario de red como el que se muestra en la
siguiente figura.

En esta figura hay 6 AS (Sistemas Autónomos): AS10, AS20, AS30, AS40, AS50 y AS60. Se ha configurado OSPF dentro de AS20, OSPF dentro de AS30 y BGP en todos ellos para intercambiar la información de encaminamiento. Se desea que:
AS30 y AS10 tengan una relación de tránsito, donde AS30 sea el proveedor y AS10 el cliente.
AS30 y AS40 tengan una relación de tránsito, donde AS30 sea el proveedor y AS40 el cliente.
AS40 y AS50 tengan una relación de tránsito, donde AS40 sea el proveedor y AS50 el cliente.
AS40 y AS60 tengan una relación de tránsito, donde AS40 sea el proveedor y AS60 el cliente.
AS10 y AS20 tengan una relación de tránsito, donde AS10 sea el proveedor y AS20 el cliente.
AS20 y AS60 tengan una relación de tránsito, donde AS20 sea el proveedor y AS60 el cliente.
AS10 y AS40 tengan una relación entre iguales.
AS20 y AS50 tengan una relación entre iguales.
Arranca todas las máquinas de una en una. Por defecto, al arrancar las
máquinas se arranca quagga. En el escenario se ha configurado OSPF y
BGP. Sin embargo, no se han configurado las políticas de exportación ni
el atributo LOCAL PREF de BGP.
Piensa en qué routers debería existir una lista de exportación de rutas e indica qué rutas deberían estar en dicha lista y a qué router/s se le exportaría. Interrumpe
quaggaen los routers en los que necesites cambiar la configuración y realiza dicha configuración. Inicia nuevamentequaggaen dichos routers.Comprueba en tu nueva configuración las siguientes reglas consultando cada una de las tablas BGP de los routers de la figura:
Un AS no anuncia a su proveedor las subredes aprendidas de otro AS proveedor o de un AS con relación entre iguales.
Un AS no anuncia a un AS con relación entre iguales las subredes aprendidas de un AS proveedor o de otro AS con relación entre iguales.
Fíjate en la tabla BGP de
as50-r1. ¿Cuántas rutas hay en la tabla BGP para alcanzar AS60?Interrumpe
quaggaenas20-r1. Fíjate en la tabla BGP deas50-r1. ¿Cuántas rutas hay en la tabla BGP para alcanzar AS60?¿Cuál es la ruta que aparece en la tabla de encaminamiento de
as50-r1para alcanzar AS60?Inicia
quaggaenas20-r1. Espera 2 minutos aproximadamente para queas50-r1yas20-r1hayan intercambiado la información de encaminamiento BGP. ¿Cuántas rutas hay en la tabla BGP para alcanzar AS60?¿Cuál es la ruta que aparece en la tabla de encaminamiento de
as50-r1para alcanzar AS60?¿Es consistente esta ruta con las relaciones entre ASs definidas previamente?
Piensa en los atributos LOCAL PREF que configurarías en
as50-r1y realiza dicha configuración en el escenario. Reiniciaquaggaenas50-r1.Interrumpe
quagganuevamente enas20-r1. Fíjate en la tabla BGP deas50-r1. ¿Cuántas rutas hay en la tabla BGP para alcanzar AS60?Inicia
quaggaenas20-r1. Espera 2 minutos aproximadamente para queas50-r1yas20-r1hayan intercambiado la información de encaminamiento BGP. ¿Cuántas rutas hay en la tabla BGP para alcanzar AS60?¿Cuál es la ruta que aparece en la tabla de encaminamiento de
as50-r1para alcanzar AS60? Ahora debería ser consistente con las relaciones entre ASs definidas previamente.
Ruta por defecto
Cambia la configuración de
as40-r1de forma que AS40 anuncie a AS50 una ruta por defecto. No elimines aún los anuncios de las subredes individuales.Reinicia
quaggaenas40-r1y observa la tabla de encaminamiento y la tabla BGP deas50-r1. Comprueba que en ambas tablas hay una ruta por defecto, pero siguen estando las rutas individuales. Las rutas a las subredes individuales, al ser más específicas serán las utilizadas, sin llegar a usarse nunca la ruta por defecto.Cambia la configuración en
as40-r1para evitar que siga anunciando a AS50 las subredes individuales.Reinicia
quaggaenas40-r1y comprueba que la tabla de encaminamiento y la tabla BGP deas50-r1ahora sólo tienen la ruta por defecto.