You are on page 1of 22

NetGUI: Conguraci on de BGP en Quagga

Sistemas Telem aticos Departamento de Sistemas Telem aticos y Computaci on (GSyC)

Febrero de 2012

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

c 2012 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike disponible en http://creativecommons.org/licenses/by-sa/2.1/es

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

Quagga
Quagga (www.quagga.net) es un software que gestiona la tabla de
!!

Zebra (www.zebra.org) es m un que seg gestiona tabla de encaminamiento encaminamiento de una asoftware quina Linux un el la funcionamiento de varios segn el funcionamiento de varios protocolos de encaminamiento de la arquitectura protocolos de encaminamiento de la arquitectura TCP/IP. TCP/IP. La arquitectura de Zebra est formada por un conjunto de procesos:
!

Zebra

!!

La arquitectura de Quagga est a formada por un conjunto de procesos:


Proceso zebra : actualiza la de tabla de encaminamiento e intercambia rutas seg un Proceso zebra : actualiza la tabla encaminamiento e intercambia rutas segn diferentes protocolos deprotocolos encaminamiento diferentes de encaminamiento
Proceso de de cada protocolo de encaminamiento: ripd, opsfd , bgpd Proceso cada protocolo de encaminamiento: ripd , opsfd,

!
!!

bgpd

Utilizaremos Zebra para probar los siguientes protocolos: BGP-4, RIPv2, OSPFv2

Utilizaremos Quagga para probar los siguientes protocolos: RIPv2, OSPFv2 y BGP-4.

!"#$%&#'()!' bgpd

!"#$%&#'*+!' ripd !"#$%&#'/%0"1' zebra

!"#$%&#',-!.' ospfd

-#=>1"%'4%' !"#$$#'

21031'4%'%5$1675167%58#'4%3'9%"5%3'4%':75;<'
2
GSyC - 2012 GSyC 2009 NetGUI: Conguraci on de BGP en Quagga 3

Conguraci on y monitorizaci on de los procesos de Quagga


Los procesos del software Quagga pueden congurarse de dos formas:
1 2

A trav es de cheros de conguraci on A trav es de VTY (Virtual Terminal Interface): conexiones a trav es de telnet con cada uno de los procesos de quagga. VTY permite, adem as de congurar los protocolos de encaminamiento, monitorizar su comportamiento. Conguraci on a trav es de los cheros:
daemons (ver p ag. 7) bgpd.conf (ver p ag. 8)

En las pr acticas utilizaremos:

Monitorizaci on a trav es de:


capturas de tr aco, utilizando tcpdump con la opci on -s 0 que permite capturar los paquetes completos. VTY (p ags. 1012): telnet localhost bgpd

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

Iniciar Quagga

Al iniciar un router en NetGUI normalmente el software de quagga no estar a arrancado. Para arrancarlo:
1 2 3

Se editan los cheros de conguraci on (p ags 69). Se arranca quagga (/etc/init.d/quagga start) Si es necesario modicar la conguraci on, se interrumpe la ejecuci on de quagga (/etc/init.d/quagga stop), se modican los cheros, y se vuelve a arrancar quagga (/etc/init.d/quagga start)

En algunos escenarios puede que algunos routers est en precongurados para que arranquen con quagga ya lanzado.

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

Ficheros de conguraci on
Los cheros de conguraci on de quagga se encuentran en el directorio /etc/quagga: zebra.conf:
Conguraci on general del software de quagga.
No lo modicaremos.

daemons:
Procesos de encaminamiento que se desean habilitar.
Lo modicaremos para activar los protocolos de encaminamiento que deseemos que ejecute el router (p.ej, BGP).

ripd.conf, ospfd.conf, bgpd.conf:


Ficheros de conguraci on de cada uno de los protocolos de encaminamiento que est an habilitados en el chero daemons.
Modicaremos bgpd.conf para especicar la conguraci on de rutas que deseamos exportar con el protocolo de encaminamiento.
GSyC - 2012 NetGUI: Conguraci on de BGP en Quagga 6

daemons
# ... # Entries are in the format: <daemon>=(yes|no|priority) # ... # ... # /usr/doc/quagga/README.Debian for details. # Daemons are: bgpd quagga ospfd ospf6d ripd ripngd isisd zebra=yes bgpd=yes ospfd=no ospf6d=no ripd=no ripngd=no

Activa BGP en el router

Las l neas que comienzan por # son comentarios.

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

bgpd.conf
! -*- bgpf -*! ! BGPd sample configuration file ! hostname bgpd password zebra router bgp 200 bgp router-id 20.1.0.20 neighbor 20.1.0.10 remote-as 100 Contrase na para el acceso VTY por telnet al proceso bgpd Activa BGP con identicador de AS=200

bgpd.conf

!"#$%

!!"!"#"#$!%&

$%"''#

!"#
!"#&%

'#"!"#"!#&

'#"!"#"'#&
redistribute connected
!"#$%

!&&

!"#'% !"#&%

$%&''#
!'"("#"#$!%&

!'"!"#"#$!%&

Router vecino en AS100 al que se enviar an anuncios Identicador del router BGP. Es costumbre que sea su IP m as alta

Se anunciar an por BGP las redes a las que el router est a directamente conectado (en este caso: 20.1.0.0/16, 12.1.0.0/16, 12.5.0.0/16). Es equivalente a haber puesto: network 20.1.0.0/16 network 12.1.0.0/16 network 12.5.0.0/16

Las l neas que comienzan por ! son comentarios.


GSyC - 2012 NetGUI: Conguraci on de BGP en Quagga 8

bgpd.conf: Agregaci on de Rutas


Utilizando CIDR pueden agruparse varias redes bajo un solo prejo para optimizar el n umero de entradas en las tablas de los routers. En el chero bgpd.conf se incluir a el comando: aggregate-address a.b.c.d/prefix summary-only
si una red a anunciar se encuentra incluida en a.b.c.d/prefix, se anunciar a a.b.c.d/prefix en vez de dicha red.

Ejemplo:
... router bgp 200 ... aggregate-address 12.0.0.0/14 summary-only ...
(agrega las redes 12.0.0.0/16, 12.1.0.0/16, 12.2.0.0/16, 12.3.0.0/16)
GSyC - 2012 NetGUI: Conguraci on de BGP en Quagga 9

Conguraci on de BGP mediante conexi on telnet


En el software de quagga, cada proceso de un protocolo de encaminamiento (RIP, OSPF, BGP) y el propio proceso de quagga escucha conexiones TCP en un puerto determinado. En los ejercicios, nos conectaremos al proceso de BGP (bgpd) para visualizar la informaci on. Este proceso est a escuchando en el puerto 2605. Para ello usaremos el comando telnet para establecer una conexi on TCP con la propia m aquina (localhost) y el puerto 2605 (o bgpd, ya que el chero /etc/services asocia el identicador bgpd al puerto 2605):
r1:~# telnet localhost bgpd

Al conectarnos se solicitar a una contrase na: la denida en el chero bgpd.conf (por defecto, zebra): Una vez establecida la conexi on podremos introducir comandos para congurar o monitorizar BGP.
GSyC - 2012 NetGUI: Conguraci on de BGP en Quagga 10

VTY (I)
r1:~# telnet localhost bgpd Trying 127.0.0.1... Connected to r1. Escape character is ^]. Hello, this is Quagga (version 0.99.10). Copyright 1996-2005 Kunihiro Ishiguro, et al. User Acess Verification Password: zebra bgpd> ? enable exit help list quit show terminal who bgpd>

Turn on privileged mode command Exit current mode and down to previous mode Description of the interactive help system Print command list Exit current mode and down to previous mode Show running system information Set terminal line parameters Display who is on vty

El comando ? es el comando de ayuda: muestra todos los comandos disponibles.


GSyC - 2012 NetGUI: Conguraci on de BGP en Quagga 11

VTY (II)
El comando show ip bgp muestra la informaci on sobre la tabla de encaminamiento BGP del router (el ejemplo muestra la conguraci on del router r2 de la gura):
bgpd> show ip bgp BGP table version is 0, local router ID is 10.1.0.20 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop *> 11.1.0.0/16 20.1.0.10 *>20.1.0.0/16 *>12.1.0.0/16 *>12.5.0.0/16 0.0.0.0 0.0.0.0 0.0.0.0 Metric 0 0 0 0 LocPrf Weight 32768 32768 32768 Path 100

bgpd.conf
i i i i

!"#$%
*: Indicador de ruta v alida >: Indicador de ruta elegida

!!"!"#"#$!%&

$%"''#
Atributo AS PATH para la ruta a 11.1.0.0/16 que ha aprendido a trav es de r1. No hay AS PATH para las rutas internas de AS200

!"#
!"#&%

'#"!"#"!#&

Atributo NEXT HOP para la ruta a 11.1.0.0/16

'#"!"#"'#&
!"#$%

!&&

!"#'% !"#&%

$%&''#
!'"("#"#$!%&

!'"!"#"#$!%&
GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

12

Redistribuci on de rutas entre protocolos

Un router puede ejecutar varios protocolos de encaminamiento diferentes As , por ejemplo, un router frontera de un AS ejecutar a tanto BGP como un protolo interior (RIP u OSPF). Para que las rutas aprendidas por RIP/OSPF se propaguen hacia el exterior anunci andose a trav es de BGP es necesario congurarlo expl citamente en el chero bgpd.conf. Para que las rutas aprendidas por BGP se propaguen internamente utilizando RIP/OSPF es necesario congurarlo expl citamente en el chero ripd.conf/ospfd.conf.

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

13

Redistribuci on entre RIP y BGP: Rutas aprendidas por RIP en anuncios BGP
Si AS200 est a ejecutando RIP entre todos sus routers internos, el router frontera r2 debe estar ejecutando tanto BGP como RIP. El chero daemons tendr a activado: zebra, ripd y bgpd.
Los cheros ripd.conf de cada uno de los routers de AS200 estar an congurados adecuadamente para que se anuncien por RIP las rutas interiores de AS200. Para que las rutas aprendidas por r2 a trav es de RIP se anuncien por BGP es necesario a nadir la siguiente l nea en el chero bgpd.conf: ... router bgp 200 ... redistribute rip ...
GSyC - 2012

!"#$%

!!"!"#"#$!%&

'("%%#

!"#

$%&"&%&"%#

!"#&%

$%&"&%&$%#
!"#$%

!"#"$%&'()*+($&"(%",&-./$%0"( 12(-#3/'(%"32-"/'(12(!4566(( /7-2"1%1/'(7&-(89+(


!"#'%

!$&

!"#&%

'($%%# '()&

NetGUI: Conguraci on de BGP en Quagga

14

Redistribuci on entre RIP y BGP: Rutas aprendidas por BGP en anuncios RIP
Para que los routers internos de AS200 puedan alcanzar los destinos de AS100, r2 puede redistribuir la informaci on que ha aprendido por BGP utilizando RIP. Para ello, el chero ripd.conf de r2 debe incluir la siguiente l nea: ... router rip ... redistribute bgp ... r2 NO tiene en su chero de conguraci on ripd.conf la l nea network 20.1.0.0/16, ya que en esa subred no hay otros routers RIP. Para que se anuncie la subred 20.1.0.0/16 dentro del AS es necesario a nadir en ripd.conf la l nea redistribute connected. As , en r2 el chero ripd.conf quedar a: ... router rip network 12.1.0.0/16 network 12.5.0.0/16 redistribute connected redistribute bgp ...
!"#'%

%%&%&'&'(%)$

!"'$$%

&'%

#$('($('$%

!"#$%

#$('($(#$%
!"#'%

!"#"$%&'()*+($&"( %",&-./$%0"(12(-#3/'( /4-2"1%1/'(4&-(56+(


!"#&% '#()($(#%

&#$

'#('($(#% %*&%&'&'(%)$

!"#$%

%*&+&'&'(%)$

!"#$$%

!"#$

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

15

Redistribuci on entre OSPF y BGP: Rutas aprendidas por OSPF en anuncios BGP
Si AS200 est a ejecutando OSPF entre todos sus routers internos, el router frontera r2 debe estar ejecutando tanto BGP como OSPF. El chero daemons tendr a activado: zebra, ospfd y bgpd.

Los cheros ospfd.conf de cada uno de los routers de AS200 estar an congurados adecuadamente para que se anuncien por OSPF las rutas interiores de AS200. Para que las rutas aprendidas por r2 a trav es de OSPF se anuncien por BGP es necesario a nadir la siguiente l nea en el chero bgpd.conf: ... router bgp 200 ... redistribute ospf ...
GSyC - 2012

!"#$%

!!"!"#"#$!%&

'("%%#

!"#

$%&"&%&"%#

!"#&%

$%&"&%&$%#
!"#$%

!"#"$%&'()*+($&"(%",&-./$%0"( 12(-#3/'(%"32-"/'(12(!4566(( /7-2"1%1/'(7&-(84+9(


!"#'%

!$&

!"#&%

'($%%# '()*&

NetGUI: Conguraci on de BGP en Quagga

16

Redistribuci on entre OSPF y BGP: Rutas aprendidas por BGP en anuncios OSPF
Para que los routers internos de AS200 puedan alcanzar los destinos de AS100, r2 puede redistribuir la informaci on que ha aprendido por BGP utilizando OSPF. Para ello, el chero ospfd.conf de r2 debe incluir la siguiente l nea: ... router ospf ... redistribute bgp ... r2 NO tiene en su chero de conguraci on ospfd.conf la l nea network 20.1.0.0/16, ya que en esa subred no hay otros routers OSPF. Para que se anuncie la subred 20.1.0.0/16 dentro del AS es necesario a nadir en ospfd.conf la l nea redistribute connected. As , en r2 el chero ospfd.conf quedar a: ... router ospf network 12.1.0.0/16 area 0 network 12.5.0.0/16 area 0 redistribute connected redistribute bgp ...
!"#'%

&&'&'('()&*%

!"'$$%

&'%

#$('($('$%

!"#$%

#$('($(#$%
!"#'%

!"#"$%&'()*+,($&"( %"-&./0$%1"(23(.#40'( 05.3"2%20'(5&.(67+(


!"#&% '#()($(#%

&#%

'#('($(#% &+'&'('()&*%

!"#$%

&+','('()&*%

!"#$$%

!"#$%

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

17

Pol ticas de exportaci on de rutas

Las relaciones entre ASs dictan unas reglas de exportaci on de rutas. Para explicitarlas, hay que incluir la relaci on de rutas que se exportan en el chero bgpd.conf mediante el comando neighbor ... prefix-list ... out. Tambi en podr an denirse listas de importaci on de rutas mediante neighbor ... prefix-list ... in, pero no lo utilizaremos.

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

18

Pol ticas de exportaci on de rutas: Ejemplo


Conguraci on de bgpd.conf en r2:
router bgp 200 neighbor 20.3.0.30 remote-as 300 neighbor 20.3.0.30 prefix-list redistribute ... redistribute ... aggregate-address ... aggregate-address ... ip prefix-list listaExpHaciaAS300 permit 12.1.0.0/16 ip prefix-list listaExpHaciaAS300 permit 12.2.0.0/16 listaExpHaciaAS300 out

"$! )( !"#$%&!'( +$!"+( &,-./+% (

!"($$%
)( !"#$%&!'( *( "#!

'#!

*(

#$)&)$)#$% #$)&)$)&$%
$%&$&'&'($)! $%&%&'&'($)!

Denici on de las rutas que forman parte de la lista de exportaci on listaExpHaciaAS300

Hacia el vecino 20.3.0.30 se exportar an s olo las rutas de la lista listaExpHaciaAS300

$#&$&'&'($)! $#&%&'&'($)!

!"#$$%

!"&$$%

NOTA: las l neas ip prefix-list deben aparecer despu es de las redistribute y de las aggregate-address que hubiera en el chero.
GSyC - 2012 NetGUI: Conguraci on de BGP en Quagga 19

Orden de preferencia para la selecci on de ruta


Cuando un router recibe diferentes rutas para alcanzar un mismo destino, incluye todas ellas en su tabla BGP y decide cu al es la mejor ruta en funci on de un LOCAL PREF mayor. En caso de empate, se elegir a por el ASPATH m as corto (existen m as criterios para la selecci on pero no los estudiaremos). LOCAL PREF es un atributo que s olo tiene sentido dentro de un AS y no se propaga fuera del mismo. En la gura, r2 deber a elegir la ruta hacia AS400 a trav es de AS300 (su cliente). Sin embargo en la conguraci on BGP de r2 no se puede expresar si un vecino BGP es proveedor, cliente o mantiene con el una relaci on entre iguales.
!"#$$%
!*+*,-.%/0%123% 3+4)0/03%/0%!"($$% !"5!678#$$9%($$%

)#% !" #" !"

!"&$$% )&%
!*+*,-.%/0%123% 3+4)0/03%/0%!"($$% !"5!678'$$9%($$%

!"

!*+*,-.%/0%123% 3+4)0/03%/0%!"($$ % !"5!678($$%

#" !"'$$% )'%


!*+*,-.%/0%123% 3+4)0/03%/0%!"($$ % !"5!678($$%

!" #" #" !"($$% )(%

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

20

Conguraci on del atributo LOCAL PREF


Para que r2 seleccione la ruta hacia AS400 a trav es de AS300, en r2 el atributo LOCAL PREF del vecino de AS300 debe ser mayor que el LOCAL PREF del vecino de AS100.
router bgp 200 neighbor 20.1.0.10 remote-as 100 neighbor 20.2.0.30 remote-as 300

!"#$$% )#%
$%&'&%&'%" !"
*+,!*%-./013$$%

$%&'&%&$%"

!"

!"&$$% )&%
*+,!*%-./012$$%

#"

$%&$&%&$%" !" $%&$&%&(%" #" !"'$$% )'%

neighbor 20.1.0.10 route-map confLocalPrefAS100 in neighbor 20.2.0.30 route-map confLocalPrefAS300 in redistribute ... redistribute ... aggregate-address ... aggregate-address ... route-map confLocalPrefAS100 permit 10 set local-preference 500

!" #" #" !"($$% )(%

route-map confLocalPrefAS300 permit 10 set local-preference 600

#24$4$4$5#2%

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

21

Conguraci on del atributo LOCAL PREF


En la tabla BGP se muestra el valor LOCAL PREF asociado a cada ruta. En r2 se puede consultar la tabla BGP para ver los atributos LOCAL PREF asignados a las rutas aprendidas.
bgpd> show ip bgp BGP table version is 0, local router ID is 10.1.0.20 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network *>16.0.0.0/16 * Next Hop 20.2.0.30 20.1.0.10 Metric LocPrf 600 500 Weight 0 0 Path 300 400 i 100 400 i

!"#$$% )#%
$%&'&%&'%" !"
*+,!*%-./013$$%

$%&'&%&$%"

!"

!"&$$% )&%
*+,!*%-./012$$%

#"

$%&$&%&$%" !" $%&$&%&(%" #" !"'$$% )'%

!" #" #" !"($$% )(%

Si en la tabla BGP no aparece valor LOCAL PREF para una ruta, este par ametro tomar a su valor por defecto que es 100.

#24$4$4$5#2%

GSyC - 2012

NetGUI: Conguraci on de BGP en Quagga

22

You might also like