Beruflich Dokumente
Kultur Dokumente
Arquitectura de Redes
ARQUITECTURA DE REDES
Boletn 6: BGP
Contenidos:
1. Introduccin........................................................................................... 2 2. Configuracin bsica de BGP ............................................................... 2 Habilitar BGP y la propagacin de redes ................................................. 2 Consulta de informacin sobre BGP ........................................................ 4 Limpieza de sesiones BGP ...................................................................... 6 Soft reconfiguration .................................................................................. 6 Sincronizacin BGP ................................................................................. 7 Configuracin de atributos de seleccin de ruta ...................................... 7 Listas de control de acceso ...................................................................... 9 Route maps ............................................................................................ 10 neighbor remove-private ........................................................................ 12 Filtrado y creacin de polticas BGP ...................................................... 13 Listas de filtros ....................................................................................... 13 Listas de distribucin.............................................................................. 13 Listas de prefijos .................................................................................... 14 Monitorizacin ........................................................................................ 15 3. Configuracin avanzada de BGP ........................................................ 16 Ruta por defecto..................................................................................... 16 Cambiar la distancia administrativa por defecto ..................................... 16 Cambiar parmetros que afectan al proceso de convergencia .............. 17 4. Bibliografa .......................................................................................... 17
Boletn 6: BGP
Arquitectura de Redes
1. Introduccin
En este guin vamos a aprender cmo configurar y administrar redes que utilizan el protocolo BGP (Border Gateway Protocol) [1] como protocolo de enrutamiento interdominio.
Router(config)# router bgp asn Router(config-router)# neighbor address remote-as asnv Router(config-router)# neighbor address description text Router(config-router)# network address mask mask Donde: router ospf asn habilita BGP en el router para el sistema autnomo cuyo identificador es asn. neighbor address remote-as asnv define cul es la direccin (address) de nuestro vecino (peer o neighbor) para el sistema autnomo con identificador asnv. neighbor address description text es opcional y se utiliza para proporcionar una descripcin acerca de la conexin. network address mask mask indica la direccin de red (address) junto con su mscara que el router anunciar a los vecinos. Los vecinos de un router pueden pertenecer a otro sistema autnomo o pueden ser del mismo sistema autnomo. Dependiendo de si pertenece al mismo sistema autnomo o no se ejecutar: internal Border Gateway Protocol (iBGP) para los routers que intercambian informacin dentro del mismo sistema autnomo. external Border Gateway Protocol (eBGP) para intercambiar informacin con routers que no son del mismo sistema autnomo.
Boletn 6: BGP
Arquitectura de Redes
De este modo, para configurar BGP en el router R1 de la Figura 1 utilizaramos la configuracin que se indica a continuacin:
R1(config)# router bgp 100 R1(config-router)# network 1.0.0.0 mask 255.0.0.0 R1(config-router)# neighbor 10.0.0.2 remote-as 300 R1(config-router)# neighbor 10.0.0.2 description Enlace con R5 R1(config-router)# neighbor 10.0.1.2 remote-as 400 R1(config-router)# neighbor 10.0.1.2 description Enlace con R6 R1(config-router)# neighbor 192.168.1.2 remote-as 100 R1(config-router)# neighbor 192.168.1.2 description Enlace con R4 R1(config-router)# neighbor 192.168.2.2 remote-as 100 R1(config-router)# neighbor 192.168.2.2 description Enlace con R3 En el caso de que en un mismo SA hubiese varios routers BGP haciendo de frontera con otros SAs es necesario que todos estos routers frontera estn conectados con todos por medio de iBGP. En esta situacin adems hay que tener en cuenta que en el caso de que el SA slo estuviese constituido por routers BGP que no ejecutan ningn protocolo de enrutamiento interno, sera necesario que utilizsemos el comando next-hop-self. Este comando reemplazara la direccin del siguiente salto para alcanzar un SA por su direccin. De esta forma, un router podra llegar a las rutas de un vecino interno al SA usndolo como siguiente salto, en vez de utilizar la interfaz que comparte el intercambio de informacin enrutamiento con otro vecino externo.
Boletn 6: BGP
Arquitectura de Redes
R1# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set 1.0.0.0/24 is subnetted, 1 subnets 1.0.0.0 is directly connected, FastEthernet0/1 2.0.0.0/8 [200/0] via 10.0.2.2, 02:51:03 3.0.0.0/8 [20/0] via 10.0.0.2, 02:52:37 4.0.0.0/8 [20/0] via 10.0.1.2, 02:52:27 5.0.0.0/8 [20/0] via 10.0.1.2, 02:52:27 6.0.0.0/8 [200/0] via 10.0.2.2, 02:51:03 7.0.0.0/8 [20/0] via 10.0.1.2, 02:52:27 8.0.0.0/8 [200/0] via 10.0.2.2, 02:51:03 10.0.0.0/24 is subnetted, 3 subnets 10.0.2.0 [110/144] via 192.168.0.2, 02:53:21, Serial1/0 [110/144] via 192.168.1.2, 02:53:23, Serial1/1 10.0.0.0 is directly connected, Serial1/3 10.0.1.0 is directly connected, Serial1/2 192.168.0.0/24 is directly connected, Serial1/0 192.168.1.0/24 is directly connected, Serial1/1 192.168.2.0/24 [110/96] via 192.168.0.2, 02:53:59, Serial1/0 192.168.3.0/24 [110/144] via 192.168.0.2, 02:53:59, Serial1/0 [110/144] via 192.168.1.2, 02:53:59, Serial1/1
C B B B B B B B O C C C C O O
Los principales comandos para consultar el estado de BGP son: show ip bgp. Muestra toda la informacin de configuracin de BGP.
Boletn 6: BGP
Arquitectura de Redes
show ip bgp neighbors. Muestra todos los vecinos as como informacin estadstica de cada uno de ellos. show ip bgp filter-list. Muestra rutas de acuerdo a listas de filtrado. show ip bgp paths. Muestra toda la informacin de rutas para el router. show ip bgp summary. Muestra un resumen del estado de todos los vecinos BGP.
0 0 49
Si le pasamos al comando show ip bgp como parmetro una de las redes recibidas, entonces no muestra la informacin detallada para esa ruta.
Boletn 6: BGP
Arquitectura de Redes
Router# show ip bgp 1.0.0.0 BGP routing table entry for 1.0.0.0/8, version 10 Paths: (3 available, best #2, table Default-IP-Routing-Table) Advertised to non peer-group peers: 10.0.0.2 10.0.1.2 192.168.1.2 192.168.2.2 Local 192.168.2.2 (metric 144) from 192.168.2.2 (1.0.0.2) Origin IGP, metric 97, localpref 100, valid, internal Local 0.0.0.0 from 0.0.0.0 (1.0.0.4) Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best Local 192.168.1.2 from 192.168.1.2 (1.0.0.3) Origin IGP, metric 49, localpref 100, valid, internal
Soft reconfiguration
Para evitar que pequeos cambios en la configuracin provoquen un procedimiento de restablecimiento, Cisco ha implementado una opcin de reconfiguracin suave (soft reconfiguration) la cual permite que se puedan realizar cambios sin limpiar la sesin BGP. Cuando este mecanismo se utiliza para generar actualizaciones entrantes de un vecino se le denomina soft reconfiguration inbound. Por el contrario, cuando se utiliza para enviar actualizaciones a un vecino, se le denomina soft reconfiguration outbound. El comando para configurar soft reconfiguration es: neighbor IP softreconfiguration inbound, donde IP es la direccin del router frontera un de SA vecino. Para configurar este mecanismo en el router R1, la forma incluirlo sera la siguiente:
Boletn 6: BGP
Arquitectura de Redes
R1(config)# router bgp 100 R1(config-router)# network 1.0.0.0 mask 255.255.255.0 R1(config-router)# neighbor 10.0.0.2 soft-reconfiguration inbound
Sincronizacin BGP
Cisco, por defecto, no incluye rutas que han sido aprendidas a travs de iBGP hasta que stas estn presentes en un protocolo de enrutamiento interno. Cuando en un SA todos los routers estn ejecutando slo BGP y no se emplea un protocolo de enrutamiento interno, no hay necesidad de tener la sincronizacin activa. En estos casos, para deshabilitarla tenemos el comando no synchronization. En la mayora de los casos, cuando vamos a configurar BGP se incluir la siguiente informacin:
RA1(config)# router bgp XXX RA1(config-router)# no synchronization RA1(config-router)# network XXX.XXX.XXX.XXX mask yyy.yyy.yyy RA1(config-router)# neighbor xxx.xxx.xxx.x.xx soft-reconfiguration inbound RA1(config-router)# Para el router de la Figura 1, la configuracin para intercambiar informacin con el router R5 del SA 300 sera:
RA1(config)# router bgp 100 RA1(config-router)# no synchronization RA1(config-router)# network 1.0.0.0 mask 255.255.255.0 RA1(config-router)# neighbor 10.0.0.2 soft-reconfiguration inbound RA1(config-router)#
Boletn 6: BGP
Arquitectura de Redes
9. Vecino IGP ms cercano 10. Menor Router ID A continuacin explicaremos cmo establecer aquellos atributos que nosotros podemos modificar durante el proceso de envo/recepcin de rutas a/de nuestros vecinos. El atributo weight es un atributo definido por Cisco y, por lo tanto, es propietario. Weight se considera una mtrica y se utiliza en un router (es local al router en el que se configura) para indicar la preferencia de las rutas aprendidas por otros vecinos BGP. Cuanto mayor es el valor, mejor es el camino. El valor puede ir entre 0 y 65535. Por defecto, las rutas aprendidas de otro vecino tiene un valor weight de 0 mientras que las aprendidas por el router local tienen un valor de 32768. Si en un router que tiene dos vecinos queremos elegir las rutas de uno frente al otro utilizando el atributo weight, la forma de configurarlo es la siguiente: R6(config)# router bgp 400 R6(config-router)# network 4.0.0.0 R6(config-router)# neighbor 192.168.2.1 remote-as 300 R6(config-router)# neighbor 192.168.2.1 weight 200 R6(config-router)# neighbor 192.168.1.2 remote-as 100 R6(config-router)# neighbor 192.168.1.2 weight 50
En este ejemplo el router R6 indica que las rutas a travs del SA 300 tienen mayor preferencia que las de SA 100. De esta forma si SA400 recibe un destino tanto a travs del SA 300 como del SA 100, el router R6 elegir a R5 como siguiente salto. El atributo local preference permite asignar valores de mtrica para el intercambio entre routers iBGP. A diferencia de weight, local preference s se intercambia con los vecinos internos del SA. Sin embargo, no se intercambia con los SA externos. Por defecto, su valor es 100. El atributo as-path indica los nmeros de los sistemas autnomos a travs de los cuales una ruta ha pasado. El atributo MED (Multi-Exit Discriminator), a diferencia de weight y local preference que son locales, indica a los vecinos del AS qu enlace tienen que utilizar para enviar el trfico. Se utilizar como una mtrica y nos ser de utilidad en los escenarios de multi-homing. Estos atributos se pueden modificar utilizando un mecanismo que veremos posteriormente y que se denomina route-maps. No obstante, antes de adentrarnos en la explicacin de los route maps, estudiaremos las denominadas listas de filtrado, distribucin y de prefijos as como para el filtrado de la informacin que enviaremos a otros vecinos, pues estos mecanismos nos sern de utilidad en la configuracin de route-maps.
Boletn 6: BGP
Arquitectura de Redes
Boletn 6: BGP
Arquitectura de Redes
access-list access-list-number [dynamic dynamic-name minutes]] {deny | permit} protocol source source-wildcard destination destination-wildcard [precedence precedence] [tos tos] [log | log-input] [time-range time-range-name][fragments]
[timeout
A continuacin mostramos un ejemplo de una lista que filtra el trfico SMTP (puerto 25). access-list 102 deny tcp any any eq 25 access-list 102 permit ip any any Una vez creada una lista, sta se puede aplicar a una interfaz mediante el comando ip access-group list {in | out} donde in y out indican si se aplica al trfico de entrada o de salida. Si no se especifica, por defecto, se aplica al de entrada.
Route maps
Los mapas de rutas (route maps) se utilizan para controlar y modificar la informacin de enrutamiento que se intercambia con los vecinos. A continuacin se muestra la forma de especificar la utilizacin un mapa de rutas para controlar la informacin de enrutamiento intercambiada con un vecino.
RA1(config)# router bgp XXX RA1(config-router)# network XXX.XXX.XXX.XXX mask yyy.yyy.yyy RA1(config-router)# neighbor xxx.xxx.xxx.x.xx remote-as zzz RA1(config-router)# neighbor xxx.xxx.xxx.x.xx route-map route-map-name
Para definir un mapa de rutas utilizaremos la siguiente sintaxis: routemap maptag [[permit | deny] | [sequencenumber]] donde map-tag es el nombre que se le da al route map. Si hay varias definiciones de route maps con el mismo nombre, entonces se considerarn como si fuese una sola. El uso de los parmetros permit o deny se utiliza para determinar si se permite o deniega la informacin de enrutamiento. En este comando, sequence-number permite especificar un nmero de orden entre los route maps asociados al mismo nombre (map-tag).
Boletn 6: BGP
10
Arquitectura de Redes
Cada comando route-map puede tener asociado una lista de comandos match y set. Mientras que con el comando match especificamos los criterios bajo los que se permite la redistribucin, el comando set especifica las acciones a realizar si se cumplen los criterios especificados con el comando match. En muchos casos como criterios de coincidencia se utilizan ACLs. Los comandos match que se pueden utilizar para BGP aparecen en [7, 8]. De estos comandos, nos sern de especial utilidad los siguientes: match as-path. Para comprobar si coincide una lista de acceso de camino de sistema autnomo. match ip interface. Comprueba rutas que tengan su siguiente salto en una de las interfaces especificadas. match ip address. Para comprobar rutas que tengan una direccin de red. match ip next-hop. Comprueba cualquier ruta que tenga una direccin de router de siguiente salto especificado en una lista de acceso especificada. match ip metric. Se utiliza para comprobar rutas con una mtrica especfica. match route type. Comprueba rutas de un tipo especfico. De forma similar a los comandos match, los comandos set que se pueden utilizar para BGP aparecen en [7, 8]. De estos comandos, los principales para nosotros sern: set as-path. Modifica un camino de sistema autnomo para una ruta BGP. Se utiliza para hacer prepend sobre un determinado camino a un SA. De esta forma la sentencia sera: set as-path prepend XX XX XX, donde XX es el mismo identificador repetido varias veces para alargar el camino de una ruta. set local preference. Para establecer la preferencia local. set metric. Establece la mtrica a utilizar (atributo MED). set next-hop. Especifica la direccin del siguiente salto. set origin. Establece el origen de las rutas (IGP o EGP). set weight. Permite establecer el peso. A continuacin mostramos un ejemplo de route-map que permite modificar la preferencia local y la mtrica para que en un escenario donde un SA (SA 600 en la Figura 1) est conectado a otro (SA 500 en la Figura 1) mediante dos enlaces, que uno de los enlaces se utilice como enlace primario y el otro para cuando falle el primero (backup). En este caso vemos que no se utiliza la sentencia match y s la sentencia set. La configuracin que se muestra no es completa, si no que se parte del supuesto que tenemos establecida ya la configuracin bsica.
Boletn 6: BGP
11
Arquitectura de Redes
R14(config)# route-map backupIn permit 10 R14(config-route-map)# set local-preference 90 R14(config)# route-map backupOut permit 10 R14(config-route-map)# set metric 10 R14(config)# router bgp 600 R14(config-router)# neighbor 10.0.0.2 remote-as 500 R14(config-router)# neighbor 10.0.0.2 route-map backupIn in R14(config-router)# neighbor 10.0.0.2 route-map backupOut out Basndonos en este ejemplo, lo podramos modificar para mostrar el uso de las clusulas match. En este escenario podramos indicar que uno de los enlaces es primario y otro secundario. Adems, podramos considerar que para el escenario nos interesa que el enlace de backup se utilice para cuando las rutas vienen del SA 400.
R4(config)# ip as-path access-list 5 permit _400$ R4(config)# route-map backupIn permit 5 R4(config-route-map)# match as-path 5 R4(config-route-map)# set local-preference 120 R4(config)# route-map backupIn permit 10 R4(config-route-map)# set local-preference 90 R4(config)# route-map backupOut permit 10 R4(config-route-map)# set metric 10 R4(config)# router bgp 600 R4(config-router)# neighbor 10.0.0.2 remote-as 500 R4(config-router)# neighbor 10.0.0.2 route-map backupIn in R4(config-router)# neighbor 10.0.0.2 route-map backupOut out
neighbor remove-private
Este comando permite eliminar los nmeros de sistema autnomo privado. As cuando en el router de un SA se produce una actualizacin que se enva a un vecino externo, los nmeros de SA privados se eliminan. En la Figura 1
Boletn 6: BGP
12
Arquitectura de Redes
el SA 400 sera el responsable de ocultar el nmero de SA 65512 al resto de los vecinos de SA. Un ejemplo de su uso sera el siguiente:
RA1(config)# router bgp 400 RA1(config-router)# network 4.0.0.0 RA1(config-router)# neighbor 10.0.4.2 remote-as 65000 RA1(config-router)# neighbor 10.0.4.2 remove-private-AS
Listas de filtros
Las listas de filtros (filter lists) nos permiten filtrar caminos de SAs. Este tipo de filtros utiliza expresiones regulares para comprobar si la informacin de los ASs que atraviesa una determinada ruta satisface una condicin y, en consecuencia, permitir o denegar esa ruta. Para configurar estas listas se utiliza el comando neighbor. A continuacin mostramos un ejemplo de una lista de filtros. En este caso el router R6 est filtrando a su vecino R7 todas las rutas que tienen origen en el SA 800. El ejemplo tiene los comandos que habra que aadir supuesto que ya tenemos la configuracin bsica. Una vez configurado, en el router R6 ejecutaramos el comando clear ip bgp *.
R6(config)# ip as-path access-list 1 deny _800$ R6(config)# ip as-path access-list 1 permit .* R6(config)# router bgp 400 R6(config-router)# neighbor 10.0.4.2 filter-list 1 out
Listas de distribucin
Las listas de distribucin (distribute lists) son ACLs que se utilizan para permitir o denegar rutas a travs de la red. Este filtrado de rutas BGP se puede llevar a cabo tanto en la entrada como en la salida. A continuacin se muestra un ejemplo de configuracin.
Boletn 6: BGP
13
Arquitectura de Redes
R7(config)# access-list 10 permit ip 172.16.0.0 0.0.255.255 host 255.255.0.0 R7(config)# router bgp 700 R7(config-router)# network 7.0.0.0 R7(config-router)# neighbor 10.0.4.1 remote-as 400 R7(config-router)# neighbor 10.0.4.1 distribute-list 10 in Al final de cada lista siempre hay un deny all implcito. En este ejemplo, se permite slo trfico de la red 172.16.0.0. El principal problema de estas listas es que su modificacin implica empezar de nuevo el proceso. Esto se debe a que las listas se leen en el orden en que se escriben.
Listas de prefijos
Las listas de prefijos (prefix lists) aparecen como una alternativa a las listas de distribucin. Entre ambas la principal diferencia es que las listas de prefijos son ms flexibles (permiten actualizaciones incrementales), ms fciles de configurar y ofrecen un mayor rendimiento a la hora de procesarlas. Estas listas permiten aadir o borrar lneas sin starting over. Para crear una lista de prefijos utilizamos el comando ip prefix-list. Su sintaxis es: ip prefix-list list-name [seq seq-value] deny|permit network/len [ge gevalue] [le le-value] donde: list-name es el nombre que le damos a la lista. seq-value un nmero de secuencia que identifica a un prefijo dado dentro de la lista. A la hora de hacer las comprobaciones se empieza por el menor nmero de secuencia. Estos nmeros se generan automticamente. [ge ge-value] [le le-value]. Permiten especificar el rango de la longitud del prefijo para ver si se produce coincidencia con los prefijos a comprobar. Si no se especifica un rango se buscar una comprobacin exacta. A continuacin se muestra un ejemplo de configuracin donde podemos ver cmo el router R6 filtra la informacin que le pasa a su vecino R8 permitiendo que pase slo la informacin de SA 600 y de SA 65000. En el ejemplo slo hemos reflejado la informacin que aadiramos a partir de la configuracin bsica de BGP. Hemos remarcado los comandos que permiten la definicin y aplicacin de las listas de prefijos.
Boletn 6: BGP
14
Arquitectura de Redes
RA6(config)# ip prefix-list myprefixes seq 10 permit 7.0.0.0/8 RA6(config)# ip prefix-list myprefixes seq 15 permit 4.0.0.0/8 RA6(config)# ip prefix-list myprefixes seq 20 permit 44.0.0.0/8 RA6(config)# router bgp 400 RA6(config-router)# neighbor 10.0.32 prefix-list myprefixes out
Monitorizacin
Para la monitorizacin del sistema y depurar problemas de conectividad, el router CISCO nos da la posibilidad de utilizar el modo debug. El modo debug (con el comando debug ip bgp X) en BGP permite especificar qu informacin queremos monitorizar (indicado en el parmetro X). En concreto, podemos monitorizar los siguientes parmetros BGP: o events. Los eventos que ocurren en el sistema. o in. Informacin recibida. o keepalives. Muestra los eventos relacionados con los paquetes BGP Keepalive. o Out. Muestra toda la informacin de salida de BGP. o updates. Muestra la informacin sobre todos los paquetes BGP Update. A continuacin se muestra alguna informacin de debug que aparece cuando queremos monitorizar los eventos. Para deshabilitar el debug bastar con que escribamos de nuevo el comando precedido de no.
Boletn 6: BGP
15
Arquitectura de Redes
Boletn 6: BGP
16
Arquitectura de Redes
que
afectan
al
proceso
de
Los parmetros que afectan al proceso de convergencia y que podemos modificar en BGP son los tiempos de keepalive y holdtime. Estos tiempos se pueden cambiar para todos los vecinos (con el comando timers bgp keepalive holdtime). Tambin se puede especificar para un vecino concreto (neighbor x.x.x.x timers keepalive holdtime).
4. Bibliografa
[1] Y. Rekhter, T. Li, S. Hares. A Border Gateway Protocol 4 (BGP-4). Request for Comments 4271. IETF (Enero de 2006). [2] CCNA: Cisco Certified Network Associated Study Guide. 5th Edition. Toadd Lammle. Sybex. [3] Troubleshooting IP Routing Protocols. CCIE Professional Development. Z. Aziz, J. Liu, A. Martey, F. Shamim. CiscoPress. [4] Cisco IOS IP Configuration Guide. http://www.cisco.com/en/US/docs/ios/12_0/np1/configuration/guide/1cbgp .html [5] Configuring IP Access Lists. http://www.cisco.com/en/US/products/sw/secursw/ps1018/products_tech_ note09186a00800a5b9a.shtml [6] Configuring Commonly Used IP ACLs. http://www.cisco.com/en/US/tech/tk648/tk361/technologies_configuration_ example09186a0080100548.shtml [7] Route-Maps for IP Routing Protocol Redistribution Configuration. http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00 8047915d.shtml [8] Cisco IOS IP Command Reference, Volume 2 of 4: Routing Protocols, Release 12.3. http://www.cisco.com/en/US/docs/ios/12_3/iproute/command/reference/ipr rp_r.html
Boletn 6: BGP
17