Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Configuración en BGP
Configuración en BGP
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.
Ejemplo 1:
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
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.
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
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.
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
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
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
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)
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
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
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$
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
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.
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
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
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
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
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:
Incremento en 1000 cada flapeo (en 500 si cambian los atributos del anuncio).
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).
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.
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
Next Hop
192.208.10.5
0.0.0.0
Next Hop
192.208.10.5
0.0.0.0
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
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:
las rutas.