Está en la página 1de 27

11.

Configuracin de BGP
En este apartado se van a ver los pasos necesarios para la configuracin de BGP
y una serie de ejemplos prcticos de configuracin de routers BGP. Adems, se van a
tratar otros aspectos importantes en la configuracin como la sincronizacin, el uso de
comunidades para filtrado mediante listas de acceso, el uso de peer groups para la
aplicacin de polticas de encaminamiento mediante route maps y la agregacin de
rutas.

11.1. Habilitando el encaminamiento BGP


En primer lugar, se va a suponer que se dispone de dos routers BGP llamados
RTA y RTB, los cuales no tienen por qu ser adyacentes, y entre los que se va a
establecer una sesin BGP para el intercambio de informacin de encaminamiento. En
el primer ejemplo, RTA y RTB pertenecen a diferentes AS, mientras que en el segundo
ambos se encuentran en el mismo AS.
La primera accin a realizar en la configuracin de un router BGP es definir el
proceso BGP y el nmero de AS al que el router pertenece. El comando utilizado para
habilitar BGP en un router es: router bgp ASN. En el primer ejemplo se van a
configurar los routers RTA y RTB para que ejecuten el proceso BGP y para indicar que
pertenecen a los AS100 y AS200, respectivamente. Las sentencias necesarias para ello
seran las siguientes:
RTA#
router bgp 100
RTB#
router bgp 200

Ejemplo 1:

El siguiente paso en el proceso de configuracin consiste en definir los vecinos


BGP, es decir, los routers con los que se intentar establecer una sesin BGP (peering).
Dos routers se convierten en vecinos (peers) cuando se establece una conexin TCP
entre ambos para el intercambio de actualizaciones de rutas. Una vez establecida la
conexin TCP, ambos routers se envan mensajes OPEN para intercambiar parmetros
como sus ASN, la versin BGP que utilizan, el router ID y el tiempo de espera para el
envo de mensajes KEEPALIVE (enviados para asegurar que la conexin permanezca
activa). Despus de que estos valores sean confirmados y aceptados la sesin BGP
podr establecerse entre los vecinos.
El comando utilizado para establecer la conexin TCP con un vecino es el
siguiente: neighbor dir_IP remote-as ASN. El nmero de AS corresponde al AS
remoto al que pertenece el router con el que se quiere conectar y cuya direccin IP es
dir_IP. En el caso de sesiones E-BGP la direccin IP corresponde a la interfaz del
router directamente conectado (next hop), mientras que en el caso de una sesin I-BGP
la direccin IP indicada puede ser una cualquiera de las del router destino, el cual no
tiene por qu estar directamente conectado al router origen.
Un aspecto que es necesario tener en cuenta es que las dos direcciones IP
configuradas con el comando neighbor en cada router sean alcanzables entre s. Para
verificarlo, una forma segura es mediante el uso del comando ping forzando al router a
que utilice como direccin IP fuente la especificada en el comando neighbor en lugar de
la direccin IP de la interfaz por la que realmente se enva el ping.
Otro aspecto importante es aplicar un reset a la conexin con el vecino de tal
forma que los cambios realizados en la configuracin tengan efecto. Para ello, se puede
utilizar el comando clear ip bgp dir_IP (donde dir_IP es la direccin IP del
vecino) o clear ip bgp * (para resetear todas las conexiones con los vecinos).

En el ejemplo 1 la configuracin de los vecinos BGP sera la siguiente:


RTA#
router bgp 100
neighbor 129.213.1.1 remote-as 200
RTB#
router bgp 200
neighbor 129.213.1.2 remote-as 100
neighbor 175.220.1.2 remote-as 200
RTC#
router bgp 200
neighbor 175.220.212.1 remote-as 200

En este caso los routers RTA y RTB hacen uso de E-BGP, mientras que el router
RTC usa I-BGP, lo cual puede comprobarse al coincidir el ASN del AS del router RTC
y el ASN del vecino indicado (ASN=200). Adems, los vecinos E-BGP deben estar
directamente conectados, por lo que los routers RTA y RTB tienen direcciones IP que
pertenecen al mismo segmento de red (129.213.1.0/24).
Por otro lado, para la configuracin de las sesiones I-BGP se utilizan
normalmente interfaces loopback, las cuales permiten asegurar las sesiones I-BGP
indicando una direccin IP virtual para un vecino mediante el comando neighbor, de
manera que dicha direccin IP sea independiente a las interfaces fsicas del router
vecino y se pueda establecer la sesin I-BGP por una o por otra interfaz fsica. Del lado
del vecino, ste debe indicar al proceso BGP que est utilizando una interfaz loopback
en lugar de una interfaz fsica para el inicio de la conexin TCP con el vecino.
El comando utilizado para indicar una interfaz loopback de un vecino es el
siguiente: neighbor dir_IP update-source interfaz. El siguiente ejemplo muestra
el uso de este comando:
Ejemplo 2:

RTA#
router bgp 100
neighbor 190.225.11.1 remote-as 100
neighbor 190.225.11.1 update-source int loopback 1
RTB#
router bgp 100
neighbor 150.212.1.1 remote-as 100

En el ejemplo anterior, RTA y RTB estn ejecutando I-BGP en el interior del AS


100. El router RTB utiliza la interfaz loopback de RTA (150.212.1.1) mediante el
comando neighbor. En este caso, el router RTA debe forzar que BGP use la direccin IP
loopback definida como direccin fuente en la conexin TCP con el vecino. Para ello,
con la sentencia neighbor 190.225.11.1 update-source int loopback 1, el
router RTA fuerza a BGP a que use la direccin IP de su interfaz loopback cuando se
comunica con el vecino 190.225.11.1. En cambio, RTA indica mediante el comando
neighbor la direccin IP 190.225.11.1 que se corresponde con la direccin de la
interfaz fsica del router RTB, por lo que RTB no tiene que hacer ninguna configuracin
especial.

11.2. Comandos para el envo de rutas


Una vez visto cmo se inicia el proceso BGP y cmo se definen los vecinos, en
este apartado se van a ver dos formas de configuracin para el envo de informacin de
encaminamiento mediante BGP. En realidad, un router BGP enva a un vecino las rutas
que aprende de otros vecinos (internos o externos), pero tambin puede generar nuevas
rutas mediante los comandos network y redistribute. De este modo, para las rutas
generadas de esta manera el AS origen corresponder al AS al que pertenece el router
que ejecuta los dos comandos anteriores.
El formato del comando network es el siguiente: network network-number
[mask network-mask]. Este comando indica al proceso BGP las rutas que debe
anunciar, las cuales se expresan como una direccin IP y una mscara. Para que estas
rutas puedan ser anunciadas es necesario que el router las conozca, bien a travs de
encaminamiento esttico o dinmico, o bien porque las redes destino estn conectadas
directamente al router. El nmero mximo de redes a anunciar mediante este comando
es de 200. La siguiente configuracin muestra un ejemplo de uso de este comando:
RTA#
router bgp 100
network 192.213.0.0 mask 255.255.0.0
ip route 192.213.0.0 255.255.0.0 null 0

En este ejemplo el router RTA generar una entrada en la lista de redes a


anunciar para el prefijo 192.213.0.0/16. La mscara indica que se van a anunciar los
dos primeros octetos de la ruta 192.213.0.0. Dicha ruta necesita ser aadida a la tabla
de encaminamiento del router, para lo cual se utiliza el comando esttico ip route.
Otra forma de anunciar rutas en BGP es redistribuyendo las rutas aprendidas por
el router mediante un protocolo IGP. Es importante en este caso aplicar polticas de
filtrado de manera que no se distribuyan al exterior de un AS todas las rutas aprendidas
internamente por el protocolo IGP, sino slo aqullas que se quieren anunciar. En el
siguiente ejemplo, el router RTA anuncia la ruta 129.213.1.0 y RTC anuncia la ruta
175.220.0.0:

RTC#
router rip
network 175.220.0.0
redistribute bgp 200
router bgp 200
neighbor 1.1.1.1 remote-as 300
neighbor 1.1.1.1 distribute-list 1 out
redistribute rip
access-list 1 permit 175.220.0.0 0.0.255.255

La lista de acceso se utiliza para controlar las rutas que van a ser anunciadas
desde el AS 200. As, slo se anunciar el prefijo 175.220.0.0, evitando que se
anuncie la ruta 129.213.1.0 como si su AS origen fuese el AS 200 en vez del AS 100.
Al igual que se pueden redistribuir las rutas aprendidas a travs de un protocolo
IGP, en BGP tambin es posible redistribuir las rutas configuradas estticamente en la
tabla de encaminamiento, para lo cual se utiliza el comando redistribute static. La
nica diferencia en este caso es que BGP considera estas rutas con un origen
INCOMPLETE (no conocido).
Un aspecto importante a destacar es que un router no acepta anuncios de una
sesin BGP si las rutas tienen origen en el AS al que dicho router pertenece. Esto se
hace para evitar bucles inter-AS.

11.3. Internal BGP


I-BGP se utiliza en un AS en el caso de que dicho AS funcione como sistema de
trnsito para otros AS. Este protocolo se utiliza de forma especfica para el intercambio
de rutas entre routers de borde BGP de un mismo AS, de manera que se consigue una
mayor eficiencia y flexibilidad que en el caso de E-BGP con redistribucin de rutas
mediante un protocolo IGP. Por ejemplo, el uso de I-BGP permite elegir el router de
salida del AS, para lo cual se modifica el atributo LOCAL_PREF. En la figura que se
muestra a continuacin se puede ver un ejemplo de sesiones I-BGP dentro de un AS:

RTA#
router bgp 100
neighbor 190.10.50.1 remote-as 100
neighbor 170.10.20.2 remote-as 300
network 150.10.0.0
RTB#
router bgp 100
neighbor 150.10.30.1 remote-as 100
neighbor 175.10.40.1 remote-as 400
network 190.10.50.0
RTC#
router bgp 400
neighbor 175.10.40.2 remote-as 100
network 175.10.0.0

En la configuracin anterior se tienen dos sesiones I-BGP establecidas: una entre


RTA y RTB, y otra entre RTA y RTD. Los anuncios BGP provenientes de RTB hacia
RTA sern reenviados por RTA hacia RTE (que pertenece a otro AS), pero no hacia
RTD (perteneciente al mismo AS). sta es la causa por la que en este diagrama debera
existir tambin una sesin entre RTB y RTD, de forma que se establezca una malla
completa (full mesh) entre todos los routers I-BGP del AS 100.
Como conclusin, se puede afirmar que cuando un router BGP recibe un anuncio
de otro router BGP de su propio AS (I-BGP peers), el router receptor no redistribuir
dicho anuncio a otro router de su mismo AS. Por el contrario, dicho anuncio s ser
redistribuido al resto de routers vecinos que pertenecen a otros AS.

11.4. Sincronizacin
Como introduccin al concepto de sincronizacin se plantea el siguiente
escenario de ejemplo:

En este escenario el router RTC (AS 300) enva anuncios de la red 170.10.0.0.
Los routers RTA y RTB se intercambian informacin de encaminamiento por I-BGP
(no es necesario que estn directamente conectados), por lo que RTB recibir la ruta
170.10.0.0 con NEXT_HOP igual a 2.2.2.1 (el valor de este atributo no se modifica
por I-BGP).
Para alcanzar el NEXT_HOP RTB tendr que enviar el trfico al router
intermedio RTE. El problema surge si RTA no ha redistribuido la red 170.10.0.0 al
resto de routers del AS mediante IGP, de forma que en dicho caso RTE no sabra cmo
encaminar el trfico proveniente de RTB hacia el AS 300. Adems, RTB anunciar
dicha ruta a otros vecinos (RTD, por ejemplo) y todo el trfico que se enve a dicha ruta
no llegar a su destino debido a que RTE no la conoce.
El mecanismo de sincronizacin funciona por defecto en todos los routers BGP
y se aplica para evitar el problema anterior en el caso de que un AS sirva de trnsito
para el trfico proveniente de otro AS hacia un AS tercero. As, para conseguir la
sincronizacin un router no puede anunciar una ruta a otra AS antes de que todos los
routers del AS al que pertenece el router anunciante hayan aprendido dicha ruta
mediante IGP. Por esto, los pares de routers de borde de dos AS distintas (peers
externos) tendrn que esperar cuando quieran anunciar una ruta de otro AS a que dicha
ruta se haya propagado por IGP en todo los routers su mismo AS.
En el ejemplo anterior, el router RTB tendr que esperar a recibir la ruta
170.10.0.0 (que ya conoce por I-BGP) por IGP antes de comenzar a enviar anuncios al
router RTD del AS 400.

En algunos casos no es necesario el mecanismo de sincronizacin, como por


ejemplo cuando un AS no sirve de trnsito para el trfico intercambiado entre dos AS o
cuando en todos los routers del AS funciona BGP. La finalidad de deshabilitar el
mecanismo de sincronizacin en los casos en que no es necesario es evitar el envo de
menos rutas por IGP y conseguir una convergencia ms rpida de BGP.
En el caso de que se tenga un AS con todos los routers BGP y no se tenga
ningn protocolo IGP funcionando, la desactivacin del mecanismo de sincronizacin
se hace necesaria ya que un router se quedara esperando indefinidamente a recibir una
ruta por IGP antes de anunciarla a un router externo (external peer). Para desactivar la
sincronizacin de forma manual se utiliza el comando no synchronization.
El siguiente ejemplo muestra un caso en el que se desactiva la sincronizacin:

RTB#
router bgp 100
network 150.10.0.0
neighbor 1.1.1.2 remote-as 400
neighbor 3.3.3.3 remote-as 100
no synchronization

(RTB guardar la ruta 170.10.0.0 en su tabla de encaminamiento y la


anunciar al router RTD incluso si no dispone de un camino IGP para llegar).
RTD#
router bgp 400
neighbor 1.1.1.1 remote-as 100
network 175.10.0.0
RTA#
router bgp 100
network 150.10.0.0
neighbor 3.3.3.4 remote-as 100

11.5. Fitrado mediante listas de acceso


El envo y recepcin de actualizaciones BGP se puede controlar mediante el uso
de diferentes mtodos de filtrado. El filtrado de anuncios se aplica en una sesin BGP
para permitir o denegar los mensajes UPDATE enviados o recibidos, basndose en
informaciones como la direccin de la ruta anunciada, la trayectoria de AS seguida o la
comunidad a la que pertenece el destino anunciado.
11.5.1. Route Filtering
Para restringir la informacin de encaminamiento que un router aprende o
anuncia basndose en la direccin de las rutas intercambiadas se utilizan las listas de
acceso. Una lista de acceso se aplica a la sesin entre un router y uno de sus vecinos,
para lo cual se utiliza el comando neighbor {ip-address|peer-group-name}
distribute-list access-list-number {in | out}.
En el siguiente ejemplo, el router RTB origina la red 160.10.0.0 y la anuncia a
RTC. En este caso, el router RTC no debe propagar dicha ruta hacia el AS100 para no
servir de trnsito para llegar a dicho destino. Por ello, ser necesario aplicar una lista de
acceso a la sesin entre RTC y RTA que filtre la ruta 160.10.0.0 para que RTC no la
anuncie a RTA.

RTC#
router bgp 300
network 170.10.0.0
neighbor 3.3.3.3 remote-as 200
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 distribute-list 1 out
access-list 1 deny 160.10.0.0 0.0.255.255
access-list 1 permit 0.0.0.0 255.255.255.255

11.5.2. Path Filtering


Otro tipo de listas de acceso se basa en el atributo AS_PATH de los mensajes
BGP anunciados o recibidos. La sintaxis para definir una lista de acceso de este tipo y
para aplicarla a una sesin BGP es la siguiente:
ip as-path access-list access-list-number {permit|deny} as-regularexpression
neighbor {ip-address|peer-group-name} filter-list access-list-number
{in|out}

En la figura anterior, para bloquear el anuncio de la ruta 160.10.0.0 desde el


router RTC hacia el AS 100 tambin se puede aplicar una lista de acceso basada en el
AS_PATH. Para ello, se pueden descartar los anuncios de RTC a RTA cuyo origen sea
el AS 200. La configuracin necesaria para aplicar una lista de acceso a los anuncios de
salida de RTC que elimine los anuncios con origen en el AS 200 es la siguiente:
RTC#
router bgp 300
neighbor 3.3.3.3 remote-as 200
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 filter-list 1 out
ip as-path access-list 1 deny ^200$
ip as-path access-list 1 permit .*

En la configuracin anterior, la lista de acceso definida (lista 1) deniega los


anuncios cuyo AS_PATH comienza por 200 (^) y termina por 200 ($). La expresin .*
indica que la lista se aplica a cualquier AS_PATH, lo cual es necesario para permitir el
anuncio del resto de actualizaciones.
En el caso de que se hubiese utilizado la expresin ^200 en vez de ^200$, se
negaran todos los anuncios cuyo AS_PATH comience por 200. As, una ruta originada
en un AS vecino del AS 200 (AS 400, por ejemplo) tendr un AS_PATH de la forma
(200, 400) al llegar al router RTC, por lo que no sera anunciada al AS 100.

11.5.3. Community Filtering


Otro mtodo de filtrado se basa en el atributo COMMUNITY. En el ejemplo
siguiente, el router RTB aade el atributo COMMUNITY con el valor no-export a las
rutas que anuncia a RTC para que estas rutas no sean propagadas por RTC hacia el AS
100.

La configuracin del router RTB debe ser la siguiente:


RTB#
router bgp 200
network 160.10.0.0
neighbor 3.3.3.1 remote-as 300
neighbor 3.3.3.1 send-community
neighbor 3.3.3.1 route-map setcommunity out
route-map setcommunity
match ip address 1
set community no-export
access-list 1 permit 0.0.0.0 255.255.255.255

En esta configuracin se puede ver cmo se utiliza el route map setcommunity


para modificar el atributo COMMUNITY al valor no-export. Para que este atributo sea
enviado al vecino RTC, es necesario el comando neighbor send-community indicando la
direccin IP de RTC. Cuando RTC recibe un anuncio con el atributo COMMUNITY
con el valor no-export, ste no lo propagar a su vecino RTA.
Aparte del filtrado, otro uso de listas de acceso basadas en el atributo
COMMUNITY consiste en modificar otros atributos (como WEIGHT o METRIC) de
las rutas a anunciar. Para definir una lista de acceso basada en comunidades se utiliza el
comando
ip
community-list
community-list-number
{permit|deny}
community-number.
En el siguiente ejemplo, el router RTB aade los valores 100 y 200 a la lista de
comunidades del atributo COMMUNITY que contienen las rutas antes de que stas
sean anunciadas. Adems, se indica que se quiere enviar el atributo COMMUNITY en
los anuncios enviados al vecino RTC mediante la opcin send-community del comando
neighbor.
RTB#
router bgp 200

network 160.10.0.0
neighbor 3.3.3.1 remote-as 300
neighbor 3.3.3.1 send-community
neighbor 3.3.3.1 route-map setcommunity out
route-map setcommunity
match ip address 2
set community 100 200 additive
access-list 2 permit 0.0.0.0 255.255.255.255

Por otra parte, el router RTC recibir las rutas de RTB y aplicar un route map
(check-community) para modificar los atributos de las rutas recibidas (atributo
WEIGHT, por ejemplo) basndose en el atributo COMMUNITY.
RTC#
router bgp 300
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 route-map check-community in
route-map check-community permit 10
match community 1
set weight 20
route-map check-community permit 20
match community 2 exact
set weight 10
route-map check-community permit 30
match community 3
ip community-list 1 permit 100
ip community-list 2 permit 200
ip community-list 3 permit Internet

En el ejemplo de configuracin anterior, el router RTC modifica las rutas


recibidas de la siguiente manera:

Cualquier ruta que tenga el valor 100 en su atributo COMMUNITY coincidir


con la lista 1 y se modificar el valor de su atributo WEIGHT a 20.
Cualquier ruta cuyo atributo COMMUNITY contenga slo el valor 200 ser
modificada con un valor de WEIGHT igual a 10 (la opcin exact indica que el
valor de COMMUNITY slo puede ser de 200 y ningn otro).
La ltima lista sirve para asegurar que el resto de actualizaciones recibidas no se
descartan (por defecto se descartan todas las rutas que no coinciden con ninguna
condicin). La opcin Internet se refiere a todas las rutas, ya que todas las rutas
forman parte de la comunidad Internet.

11.6. Route Maps


En este apartado se va a introducir el uso de los route maps ya que se van a
utilizar en configuraciones posteriores. En el contexto de BGP, un route map consiste
en un mtodo para controlar y modificar la informacin de encaminamiento. Esto se
hace definiendo condiciones que se aplican a las rutas redistribuidas de un protocolo de
encaminamiento a otro, as como a las rutas recibidas y a las anunciadas.
El formato que sigue un route map es el siguiente: route-map map-tag
[[permit|deny] | [sequence-number]]. El valor de map-tag se corresponde con el nombre

del route map, de manera que se pueden definir mltiples instancias del mismo route
map mediante su nombre. Del mismo modo, el valor sequence-number sirve para
indicar la posicin de un nuevo route map en una lista de route maps configurados con
el mismo nombre. Por ejemplo, si se definen dos instancias de un route map llamado
MYMAP, la primera instancia podra tener un nmero de secuencia igual a 10 y la
segunda instancia un valor de 20:
route-map MYMAP permit 10
(primer conjunto de condiciones)
route-map MYMAP permit 20
(segundo conjunto de condiciones)

Cuando se aplica el route map MYMAP a las rutas de entrada o de salida, el


primer conjunto de condiciones que se evalan corresponde a la instancia con nmero
de secuencia 10. As, si no se cumplen dichas condiciones para la ruta de entrada o
salida, se evalan entonces las condiciones de una instancia con nmero de secuencia
mayor, y as sucesivamente.
Cada instancia de un route map consiste en una lista de comandos match y set,
cuyas funciones son, respectivamente, aplicar condiciones a las rutas y modificar sus
atributos. Por ejemplo, los siguientes comandos consisten en modificar la mtrica de las
rutas que anuncien la direccin IP 1.1.1.1:
match ip address 1.1.1.1
set metric 5

Una vez evaluadas las condiciones (comando match) de la primera instancia del
route map, la ruta ser redistribuida o se le aplicar la accin especificada (comando
set) slo en el caso de que se haya indicada la opcin permit en el route map en
cuestin, y se terminar de analizar el route map. En cambio, si la opcin indicada fue
deny, la ruta no ser redistribuida o controlada y se finalizar el anlisis del route map
sin comprobar el resto de instancias. Por otra parte, en el caso de que no se cumpla
ninguna condicin para la ruta, se pasa a la siguiente instancia del route map (el
siguiente nmero de secuencia) as hasta que se cumpla algn match o no queden
instancias en el route map. En este ltimo caso, si no se cumple ningn match la ruta no
ser aceptada ni reenviada.
Las diferentes opciones que permite el comando match son las siguientes: match
as-path, match community, match clns, match interface, match ip address,
match ip next-hop, match ip route-source, match metric, match route-type,
match tag.
Las opciones relacionadas con el comando set son las siguientes: set as-path,
set clns, set automatic-tag, set community, set interface, set default
interface, set ip default next-hop, set level, set local-preference, set
metric, set metric-type, set next-hop, set origin, set tag, set weight.

En el siguiente ejemplo se van a ver dos casos de uso de route maps para el
filtrado y para el control de las rutas anunciadas entre dos sistemas autnomos:

En primer lugar se va a suponer que los routers RTA y RTC intercambian rutas
mediante BGP, mientras que RTA y RTB utilizan RIP para intercambiar las rutas en el
interior del AS 100. De este modo, RTA obtendr rutas externas a travs de una sesin
E-BGP con RTC, las cuales redistribuir a RTB mediante RIP. La siguiente
configuracin aplica un control a las rutas redistribuidas a RTC, cambiando las mtricas
para que valgan 2 en el caso de las rutas pertenecientes al prefijo 170.10.0.0/16, y 5
para el resto de rutas.
RTA#
router rip
network 3.0.0.0
network 2.0.0.0
network 150.10.0.0
passive-interface Serial0
redistribute bgp 100 route-map SETMETRIC
router bgp 100
neighbor 2.2.2.3 remote-as 300
network 150.10.0.0
route-map SETMETRIC permit 10
match ip-address 1
set metric 2
route-map SETMETRIC permit 20
set metric 5
access-list 1 permit 170.10.0.0 0.0.255.255

En la configuracin anterior, si una ruta pertenece al prefijo indicado se


cambiar su mtrica a un valor de 2 y en ese caso se terminar de analizar el route map.
En caso contrario, se aplica la segunda instancia que cambia por defecto el valor de la
mtrica de todas las rutas a 5. En esta configuracin del route map se aplica una accesslist con el nmero 1 para indicar la condicin del prefijo, utilizando para ello una
mscara invertida.

Otro caso de uso de un route map, adems de la modificacin de los atributos de


las rutas, puede ser el filtrado de rutas, de modo que se acepten o reenven slo las rutas
que cumplan unas condiciones. Como ejemplo, en la figura anterior se podra haber
configurado el router RTA para que el AS 100 no acepte anuncios de rutas
pertenecientes al prefijo 170.10.0.0. Sin embargo, un route map no se puede aplicar a
las rutas de entrada cuando se aplican condiciones basadas en la direccin IP. Por esto,
lo que se puede hacer es configurar RTC para que no anuncie dichas rutas a su salida:

RTC#
router bgp 300
network 170.10.0.0
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 route-map STOPUPDATES out
route-map STOPUPDATES permit 10
match ip address 1
access-list 1 deny 170.10.0.0 0.0.255.255
access-list 1 permit 0.0.0.0 255.255.255.255

11.6.1. Filtrado y modificacin de atributos mediante Route maps


El comando neighbor se puede utilizar junto con los route maps para realizar
acciones de filtrado y modificacin de atributos de las actualizaciones tanto de entrada
como de salida intercambiadas con un vecino BGP. Los route maps aplicados a los
anuncios de entrada no tienen efecto cuando las condiciones (match) indicadas se basan
en la direccin IP. El comando utilizado para asociar un route map a una sesin con un
vecino BGP es el siguiente: neighbor ip-address route-map route-map-name.
En el siguiente ejemplo se configura un route map en el router RTC para que
slo acepte los anuncios de redes que son locales al AS200. Adems, se quiere
modificar el atributo WEIGHT de dichos anuncios recibidos a un valor de 20. Para
conseguir dicha configuracin se puede utilizar un route map junto con listas de acceso
basadas en el atributo AS_PATH.

RTC#
router bgp 300
network 170.10.0.0
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 route-map stamp in
route-map stamp
match as-path 1
set weight 20
ip as-path access-list 1 permit ^200$

En la configuracin anterior, todas las actualizaciones recibidas cuyo AS_PATH


comienza por el ASN 200 y termina tambin por el ASN 200 son aceptadas, mientras
que el resto de anuncios son descartados. Otra configuracin posible para el router RTC
en el mismo escenario podra llevar a cabo las siguientes acciones sobre los anuncios
recibidos:

Los anuncios con origen en el AS 200 se aceptan y se modifica su atributo


WEIGHT al valor 20.

Los anuncios originados en el AS 400 son directamente descartados.

El resto de anuncios son modificados con un WEIGHT igual a 10.


RTC#
router bgp 300
network 170.10.0.0
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 route-map stamp in
route-map stamp permit 10
match as-path 1
set weight 20
route-map stamp permit 20
match as-path 2
set weight 10

ip as-path access-list 1 permit ^200$


ip as-path access-list 2 permit ^200 600 .*

En algunas situaciones es necesario modificar el atributo AS_PATH para


controlar el proceso de decisin BGP. Esto se puede hacer mediante el uso del siguiente
comando en un route map: set as-path prepend<AS-PATH#<AS-PATH#... Un ejemplo
de decisin de una ruta en funcin del atributo AS_PATH puede verse en el escenario
anterior. Supngase en este caso que el router RTC anuncia una ruta propia
(170.10.0.0) por dos AS diferentes: el AS 100 y el AS 200. Cuando estos anuncios se
propagan y llegan al AS 600, los routers del AS 600 tendrn informacin sobre la red
170.10.0.0 por dos caminos distintos: uno a travs del AS 100 con AS_PATH (100,
300) y otro a travs del AS 400 con AS_PATH (400, 200, 300).
En el caso anterior, si se asume que todos los atributos son iguales excepto el
AS_PATH, los routers del AS 600 elegirn el camino ms corto a travs del AS 100,
por lo que el AS 300 recibir todo su trfico por el AS 100. Si se quiere cambiar el
proceso de decisin en el AS 600, se podra modificar el AS_PATH de los anuncios que
provienen el AS 100 para que sea ms largo que el de los anuncios que provienen del
AS 400. Esto puede realizarse aadiendo varios nmeros de AS al AS_PATH de los
anuncios que vienen del AS 100. Una prctica sencilla consiste en repetir el ASN propio
en los anuncios para hacer que stos sean peores rutas hacia el AS 300, como puede
verse en la siguiente configuracin:
RTC#
router bgp 300
network 170.10.0.0
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 route-map SETPATH out
route-map SETPATH
set as-path prepend 300 300

El router RTC anuncia a RTA la ruta 170.10.0.0 con un AS_PATH ms largo


(se repite el ASN 300). As, los routers del AS 600 recibirn los anuncios de la ruta
170.10.0.0 a travs del AS 100 con un AS_PATH igual a (100, 300, 300, 300), el cual
es ms largo que el recibido mediante el AS 100 (400, 200, 300).

11.6.2. BGP Peer Groups


Otra forma de aplicar polticas de encaminamiento mediante route maps es
utilizando peer groups, los cuales tambin pueden ser utilizados en las distribute-lists y
las filter-lists. Un peer group es un grupo de vecinos BGP a los que se le aplica la
misma poltica de encaminamiento, de manera que definiendo un peer group no es
necesario definir la misma poltica para cada vecino por separado, sino que se define un
peer group al que se le asignan las polticas comunes.
Los miembros de un peer-group heredan todas las opciones de configuracin de
dicho peer-group. Adems, cada miembro del grupo puede sobrescribir dicha
configuracin, aunque esto slo es posible para las condiciones que se aplican a la
poltica de los anuncios de entrada. Para definir un peer-group se utiliza el comando
siguiente: neighbor peer-group-name peer-group. En el siguiente ejemplo se

utilizan dos peer groups, cada uno de los cuales se utiliza para aplicar la misma poltica
a los vecinos internos (internalmap), por un lado, y a los vecinos externos
(externalmap) por otro.
En la siguiente configuracin se define un peer group en el router RTC llamado
internalmap, el cual se aplica a todos sus vecinos internos (RTE, RTF y RTG). Este
peer group define un route map (SETMETRIC), el cual modifica la mtrica a 5, y dos
filter lists (listas 1 y 2). Adems, se define la filter-list 3 que se aplica al vecino RTE,
sobrescribiendo la filter-list 2 del peer group slo para la sesin con este vecino (slo se
pueden sobrescribir opciones que afecten a los anuncios de entrada).

RTC#
router bgp 300
neighbor internalmap peer-group
neighbor internalmap remote-as 300
neighbor internalmap route-map SETMETRIC out
neighbor internalmap filter-list 1 out
neighbor internalmap filter-list 2 in
neighbor 5.5.5.2 peer-group internalmap
neighbor 6.6.6.2 peer-group internalmap
neighbor 3.3.3.2 peer-group internalmap
neighbor 3.3.3.2 filter-list 3 in

En la configuracin que aparece a continuacin se define para el mismo


escenario un peer group (externalmap) que se aplica a todos los vecinos externos al
router RTC.
RTC#
router bgp 300
neighbor externalmap peer-group
neighbor externalmap route-map SETMETRIC
neighbor externalmap filter-list 1 out
neighbor externalmap filter-list 2 in
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 peer-group externalmap

neighbor
neighbor
neighbor
neighbor
neighbor

4.4.4.2
4.4.4.2
1.1.1.2
1.1.1.2
1.1.1.2

remote-as 600
peer-group externalmap
remote-as 200
peer-group externalmap
filter-list 3 in

En este caso, cada sesin BGP con cada vecino se define con la opcin remoteas fuera del peer-group, ya que se trata de vecinos de otros AS y, por tanto, se utilizan
diferente ASN en cada caso. Adems, se sobrescribe la poltica para los anuncios de
entrada con el vecino 1.1.1.2 asignndole la filter-list 3.

11.7. CIDR y direcciones agregadas


Una de las caractersticas adicionales que soporta BGPv4 respecto a BGPv3 es
CIDR (Classless Interdomain Routing), que consiste en no considerar las direcciones IP
divididas en clases (A, B o C), sino que cada direccin IP se define junto con un nmero
decimal que indica el nmero de bits dedicados a la subred. As, la direccin
192.213.0.0/16 equivale a 192.213.0.0 255.255.0.0.
La agregacin de direcciones se utiliza para minimizar el tamao de las tablas de
encaminamiento, ya que a la hora de anunciar varias redes los routers resumen dicha
informacin agrupando prefijos con partes comunes en superprefijos. En el ejemplo que
aparece a continuacin, el router RTB genera el anuncio de la red 160.10.0.0 y el
router RTC propagar dicha direccin a RTA como una direccin agregada en el prefijo
160.0.0.0.

RTB#
router bgp 200
neighbor 3.3.3.1 remote-as 300
network 160.10.0.0
RTC#
router bgp 300
neighbor 3.3.3.3 remote-as 200

neighbor 2.2.2.2 remote-as 100


network 170.10.0.0
aggregate-address 160.0.0.0 255.0.0.0

Existen varios comandos para la agregacin de rutas. El comando utilizado en el


ejemplo anterior es aggregate-address address mask. Este comando sirve para
anunciar el prefijo de la ruta indicada y tambin el resto de prefijos especficos
comprendidos en el prefijo anterior que el router tenga en su tabla de encaminamiento
BGP. As, en el ejemplo previo se propagar la ruta 160.0.0.0 y no se evitar que se
propague tambin a RTA la ruta 160.10.0.0.
Un aspecto a tener en cuenta es que no router no puede agregar una direccin si
no dispone de un prefijo especfico de esa direccin en su tabla de encaminamiento
BGP. Por ejemplo, el router RTB no podra generar la direccin 160.0.0.0 agregada si
no dispone de una entrada ms especfica en su tabla BGP, la cual debe ser aadida por
anuncios entrantes de otros AS, por redistribucin de un protocolo IGP o de una ruta
esttica, o mediante el uso del comando network (como ocurre en el ejemplo anterior).
En el caso de que se quiera que el router RTC propague slo la ruta 160.0.0.0
y no los prefijos ms especficos, sera necesario utilizar la opcin siguiente:
aggregate-address address mask summary-only

De este modo, el comando aggregate 160.0.0.0 255.0.0.0 summary-only


propagar el prefijo 160.0.0.0 y suprimir el resto de prefijos especficos para ser
anunciados. Sin embargo, en el caso de que se haya aadido un prefijo especfico
mediante el comando network, dicho prefijo ser tambin anunciado a pesar de haber
utilizado la opcin summary-only en la agregacin.
En el caso de que se quieran suprimir ms rutas especficas cuando se realiza
una agregacin, se puede definir un route map para suprimir las rutas especficas a
anunciar de una manera selectiva. El comando que se debe usar para aplicar un route
map a los anuncios de las direcciones agregadas es el siguiente: aggregate-address
address-mask suppress-map map-name.
Como ejemplo se puede suponer en el escenario anterior que se desea agregar la
direccin 160.0.0.0, suprimir la ruta especfica 160.20.0.0 y permitir el anuncio del
resto de rutas especficas (160.10.0.0, por ejemplo). Para este caso se podra la
siguiente configuracin:
RTC#
router bgp 300
neighbor 3.3.3.3 remote-as 200
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 remote-as 100
network 170.10.0.0
route-map CHECK permit 10
match ip address 1
access-list 1 deny 160.20.0.0 0.0.255.255
access-list 1 permit 0.0.0.0 255.255.255.255
aggregate-address 160.0.0.0 255.0.0.0 suppress-map CHECK

Otra forma para aplicar un route map es mediante el comando aggregateaddress address mask attribute-map map-name, el cual permite modificar los
atributos de las rutas agregadas antes de ser enviadas. El route map siguiente se aplica
para modificar el origen de las rutas agregadas al valor IGP antes de ser anunciadas.
route-map SETMETRIC
set origin igp
aggregate-address 160.0.0.0 255.0.0.0 attribute-map SETORIGIN

Anteriormente se ha sealado que no era posible suprimir una ruta especfica si


sta era originada en el mismo router que realiza la agregacin mediante el comando
network, incluso si se utilizaba la opcin aggregate summary-only. De este modo, en
el siguiente ejemplo el router RTB no puede generar, en principio, el prefijo 160.0.0.0
sin generar la ruta 160.10.0.0 porque dicha ruta especfica es local al AS 200 y es el
propio router RTB quien la genera.
Una primera solucin consiste en usar una ruta esttica para la ruta agregada y
redistribuirla en BGP. El inconveniente de esta solucin es que la ruta agregada se
anunciar con un atributo ORIGIN con valor INCOMPLETE (?). La configuracin
correspondiente a esta solucin sera la siguiente:
RTB#
router bgp 200
neighbor 3.3.3.1 remote-as 300
redistribute static
ip route 160.0.0.0 255.0.0.0 null0

Una solucin posible en suma a la adicin de una ruta esttica es indicar la ruta
agregada mediante el comando network, lo cual permitir que el origen de esta ruta sea
un protocolo IGP. La configuracin sera como la siguiente:
RTB#
router bgp 200
network 160.0.0.0 mask 255.0.0.0
neighbor 3.3.3.1 remote-as 300
redistribute static
ip route 160.0.0.0 255.0.0.0 null0

Otra opcin del comando aggregate-address utilizada en la agregacin de


rutas es as-set, la cual permite anunciar el prefijo agregado con informacin sobre los
atributos AS_PATH de las rutas especficas para evitar prdida de informacin. Esta
opcin reduce el tamao del atributo AS_PATH aadiendo slo los ASN una sola vez.
En el siguiente ejemplo, el router RTC obtiene la ruta 160.20.0.0 del router

RTA y la ruta 160.10.0.0 de RTB. Suponiendo que RTC quiere agregar dichas rutas
en la direccin 160.0.0.0/8 y enviarla a RTD, el router RTD no podr saber en
principio cul es el origen de cada dicha ruta. Sin embargo, gracias a la opcin as-set
se fuerza a RTC a originar informacin del AS_PATH en cada anuncio.

RTB#
router bgp 200
network 160.10.0.0
neighbor 3.3.3.1 remote-as 300
RTA#
router bgp 100
network 160.20.0.0
neighbor 2.2.2.1 remote-as 300
RTC#
router bgp 300
neighbor 3.3.3.3 remote-as 200
neighbor 2.2.2.2 remote-as 100
neighbor 4.4.4.4 remote-as 400
aggregate 160.0.0.0 255.0.0.0 summary-only
aggregate 160.0.0.0 255.0.0.0 as-set

En el caso de que en la configuracin del router RTC no se hubiese utilizado la


opcin as-set, el router RTD no sabra cul es el origen real de la ruta 160.0.0.0/8 ya
que sta puede provenir de dos orgenes distintos (AS 100 y AS 200). As, sin esta
opcin el router RTC enviara el anuncio de la ruta agregada a RTD con un atributo
AS_PATH igual a (300), como si la ruta hubiese sido generada por el AS 300. En
cambio, con la opcin as-set el atributo AS_PATH de la ruta agregada ser igual a
(100, 200), de forma que se indica que dicha ruta puede pertenecer a los AS 100 y 200.

11.8. Route Flap Dampening


Una ruta que flapea consiste en una ruta inestable que va apareciendo como up
o como down, o que va modificndose un atributo de sta (como el AS_PATH, por
ejemplo). Esto puede ser debido a diversos factores como la inyeccin de rutas IGP
dinmicamente en BGP, la inestabilidad de algunos enlaces o el cambio de poltica de
encaminamiento.
El flapeo de rutas se traduce en la generacin de gran cantidad de mensajes BGP
de tipo UPDATE, lo que implica un mayor consumo de ancho de banda y de recursos
de CPU de los routers. Si el AS es un cliente, los flapeos dentro del AS afectarn al
propio AS y al proveedor de servicio del AS. Por otra parte, si el AS es un ISP, los
flapeos dentro del AS afectarn al AS y a otros ISP.
Una forma de minimizar el efecto de las rutas inestables es mediante la
sumarizacin o agregacin de rutas, de forma que si se realiza la agregacin de rutas en

el borde del AS se puede evitar que los cambios de una ruta relativa a una subred se
propaguen fuera del AS, ya que se anuncia la supernet. Otra forma de evitar problemas
de inestabilidad consiste en desligar los anuncios de una ruta hacia el exterior de la
propia existencia de la ruta en el AS, para lo cual las rutas se inyectan hacia el exterior
de forma esttica en vez de redistribuyendo IGP en BGP.
Por otro lado, otro mecanismo utilizado en BGP para reducir el alcance y la
propagacin de las inestabilidades de rutas es el dampening, el cual se aplica solamente
a los anuncios de entrada E-BGP y que consiste en categorizar las rutas en dos grupos:
ill-behaved y well-behaved. Cada vez que una ruta flapea se le penaliza, de manera que
tras superar un cierto nmero de penalizaciones en un periodo de tiempo determinado
sta se suprime y no se anuncia a otros vecinos BGP.
Una ruta puede seguir siendo penalizada an cuando ya haya superado el umbral
de supresin y no se est anunciando. Por otra parte, la penalidad de una ruta va
decayendo exponencialmente con el tiempo, de manera que la ruta puede volver a
reutilizarse cuando su penalidad queda por debajo del lmite de reuso. Adems, las
penalidades se reinician a cero cuando stas caen por debajo de la mitad del lmite de
reuso. La siguiente grfica representa la penalidad de una ruta respecto al tiempo,
mostrando los lmites de supresin y de reuso:

La documentacin que especifica el uso de penalizaciones es el RFC-2439. Los


parmetros los elige quien penaliza, siendo los valores por defecto para los routers
Cisco los siguientes:

Incremento en 1000 cada flapeo (en 500 si cambian los atributos del anuncio).

Umbral de supresin: 2000.

Umbral para reusar: 750.

Tiempo medio: 15 min. Durante este tiempo la ruta no est suprimida, aunque
s puede ser penalizada si flapea (lo cual puede ocurrir cada 5 segundos).

Tiempo mximo de supresin: 4 x tiempo medio. Cada 10 segundos se revisan


las rutas para ver si alguna ruta puede pasar de suprimida a anunciarse si su
nmero de penalizaciones correspondiente se ha reducido por debajo del lmite
de reuso. En el caso de que pase el tiempo mximo de supresin y no se haya
reducido suficientemente el nmero de penalizaciones, la ruta deja de estar
suprimida para poder ser anunciada.

Inicialmente, el mecanismo de dampening est desactivado por defecto. Los


siguientes comandos se utilizan para controlar el dampening de rutas en un router Cisco:

bgp dampening: Activa el mecanismo de dampening en el router, el cual se

aplica a las rutas aprendidas por EBGP y no por IBGP.

no bgp dampening: Desactiva el dampening en el router.

bgp half-life-time reuse supress maximum-suppress-time: Establece

el valor de todos los parmetros al mismo tiempo. El rango posible para cada
parmetro es el siguiente:
o Tiempo medio de vida (half-life-time): 1-45 min.
o Umbral de reuso (reuse-value): 1-20000.
o Umbral de supresin (suppress-value): 1-20000.
o Tiempo mximo de supresin (max-suppress-time): 1-255.

A continuacin aparece un ejemplo de configuracin en el que se usa el


mecanismo de dampening:

RTB#
hostname RTB
interface Serial0
ip address 203.250.15.2 255.255.255.252

interface Serial1
ip address 192.208.10.6 255.255.255.252
router bgp 100
bgp dampening
network 203.250.15.0
neighbor 192.208.10.5 remote-as 300
RTD#
hostname RTD
interface Loopback0
ip address 192.208.10.174 255.255.255.192
interface Serial0/0
ip address 192.208.10.5 255.255.255.252
router bgp 300
network 192.208.10.0
neighbor 192.208.10.6 remote-as 100

El mecanismo de route dampening est configurado en el router RTB con los


valores por defecto para los distintos parmetros. Suponindo en primer lugar que el
enlace EBGP con RTD es estable, la tabla BGP de RTB sera como sigue:
RTB#show ip bgp
BGP table version is 24, local router ID is 203.250.15.2 Status codes:
s
suppressed, d damped, h history, * valid, > best, i - internal Origin
codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.208.10.0
*> 203.250.15.0

Next Hop
192.208.10.5
0.0.0.0

Metric LocPrf Weight Path


0
0 300 i
0
32768 i

Para simular un flapeo de una ruta se va a ejecutar el comando clear ip bgp


192.208.10.6 en RTD, de modo que este router no anuncia dicha ruta a RTB. De este
modo, la tabla BGP de RTB quedara de la siguiente forma:
RTB#show ip bgp
BGP table version is 24, local router ID is 203.250.15.2 Status codes:
s
suppressed, d damped, h history, * valid, > best, i - internal Origin
codes: i - IGP, e - EGP, ? - incomplete
Network
h 192.208.10.0
*> 203.250.15.0

Next Hop
192.208.10.5
0.0.0.0

Metric LocPrf Weight Path


0
0 300 i
0
32768 i

En la tabla anterior se puede ver cmo la entrada para la ruta 192.208.10.0


aparece con el estado h (history), que significa que no se dispone de un camino mejor
para dicha ruta, pero que la informacin de flapping (es decir, las penalidades) todava
se conservan. Dicha informacin puede verse mediante el siguiente comando:

RTB#show ip bgp 192.208.10.0


BGP routing table entry for 192.208.10.0 255.255.255.0, version 25
Paths: (1 available, no best path)
300 (history entry)
192.208.10.5 from 192.208.10.5 (192.208.10.174)
Origin IGP, metric 0, external
Dampinfo: penalty 910, flapped 1 times in 0:02:03

En este caso la ruta tiene una penalidad que es inferior al lmite de supresin
(cuyo valor es 2000 por defecto), de manera que esta ruta todava no ha sido suprimida.
Si se producen ms flapeos en dicha ruta se podra ver lo siguiente:
RTB#show ip bgp
BGP table version is 32, local router ID is 203.250.15.2 Status codes:
s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes:
i - IGP, e - EGP, ? - incomplete
Network
*d 192.208.10.0
*> 203.250.15.0

Next Hop
192.208.10.5
0.0.0.0

Metric LocPrf Weight Path


0
0 300 i
0
32768 i

RTB#show ip bgp 192.208.10.0


BGP routing table entry for 192.208.10.0 255.255.255.0, version 32
Paths: (1 available, no best path)
300, (suppressed due to dampening)
192.208.10.5 from 192.208.10.5 (192.208.10.174)
Origin IGP, metric 0, valid, external
Dampinfo: penalty 2615, flapped 3 times in 0:05:18 , reuse in 0:27:00

En este ltimo caso la ruta ha sido suprimida (dampened). Esta rutapodr ser
reutilizada cuando el valor de la penalidad sea inferior al lmite de reuso (750 por
defecto). Si la penalidad sigue disminuyendo y alcanza un valor inferior a la mitad del
lmite de reuso (750/2=350), toda la informacin referente a las penalidades ser
borrada.
Los siguientes comandos se utilizan para mostrar y borrar las informaciones
almacenadas sobre el flapeo de rutas:

show ip bgp flap-statistics: Muestra las estadsticas sobre el flapeo de todas

las rutas.

show ip bgp-flap-statistics regexp <regexp>: Muestra las estadsticas sobre


el flapeo de todos los caminos que cumplen la expresin regexp.
show ip bgp flap-statistics filter-list <list>: Muestra las estadsticas
sobre el flapeo de todos los caminos que pasan el filtro indicado.
show ip bgp flap-statistics A.B.C.D m.m.m.m: Muestra las estadsticas del
fapleo de una entrada determinada.
show ip bgp neighbor [dampened-routes] | [flap-statistics]: Muestra
las estadsticas del flapeo de todas las rutas aprendidas de un vecino.
clear ip bgp flap-statistics: Borra las estadsticas de flapeo de todas las
rutas guardadas en la tabla BGP del router.

clear ip bgp flap-statistics regexp <regexp>: Borra todas las estadsticas

sobre el flapeo de todos los caminos que cumplen la expresin regexp.


clear ip bgp flap-statistics filter-list <list>: Borra todas las
estadsticas sobre el flapeo de todos los caminos que pasan el filtro indicado.
clear ip bgp flap-statistics A.B.C.D m.m.m.m: Borra las estadsticas del
fapleo de una entrada determinada.
clear ip bgp A.B.C.D flap-statistics: Borra las estadsticas de flapeo de
todas las rutas aprendidas de un vecino EBGP.

También podría gustarte