You are on page 1of 14

BGP-4 está definido en la RFC 1771. BGP es un protocolo de routing de pasarela externa (interdomain routing protocol).

BGP utiliza el puerto 179/tcp para transportar el protocolo entre vecinos BGP. BGP fue creado para proporcionar CIDR (Classless Interdomain Routing), esta característica no estaba disponible en las versiones anteriores

Vecinos de BGP
Antes de poderse intercambiar rutas BGP entre dos routers, estos deben de establecer la vecindad, se tienen que hacer vecinos. El intercambio de información antes de establecerse como vecinos incluye lo siguiente:
• • •

Número de Versión de BGP Número de AS Router ID (RID) de BGP

Para verificar los vecinos BGP utilizaremos el comando show ip bgp neighbors: Router# show ip bgp neighbors 172.16.232.178 BGP neighbor is 172.16.232.178, remote AS 10, external link Index 1, Offset 0, Mask 0×2 Inbound soft reconfiguration allowed BGP version 4, remote router ID 172.16.232.178 BGP state = Established, table version = 27, up for 00:06:12 Last read 00:00:12, hold time is 180, keepalive interval is 60 seconds Minimum time between advertisement runs is 30 seconds Received 19 messages, 0 notifications, 0 in queue Sent 17 messages, 0 notifications, 0 in queue Inbound path policy configured Route map for incoming advertisements is testing Connections established 2; dropped 1 Connection state is ESTAB, I/O status: 1, unread input bytes: 0 Local host: 172.16.232.181, Local port: 11002 Foreign host: 172.16.232.178, Foreign port: 179 …[salida omitida]… En esta salida se puede ver que el keepalive es de 60 segundos y el holdtime de 180 segundos, así como que el puerto externo es el 179/tcp

Formas de BGP y Relaciones de Peering
BGP puede establecer dos tipos de peering
• •

iBGP eBGP

1 remote-as 300 neighbor 180.2 remote-as 100 Anunciar Rutas Para anunciar rutas en BGP tenemos tres formas de hacerlo. eBGP Multihop Los peers eBGP pueden ser configurados sin estar directamente conectados.11. Con iBGP la información de las rutas externas (atributos) son reenviados. Los AS de tránsito reenvían el tráfico desde un AS hacia otro.1 ebgp-multihop RTB# router bgp 300 neighbor 129.225.1. Ejemplo de configuración de eBGP Multihop: RTA# router bgp 100 neighbor 180. Es importante configurar una red totalmente mallada de vecinos iBGP dentro del AS para evitar bulces de routing. Se puede utilizar iBGP en los AS de tránsito.iBGP iBGP define el peering entre dos vecinos BGP dentro del mismo AS. .11. eBGP eBGP describe el peering BGP entre vecinos de diferentes AS. Si no se utilizara iBGP. los vecinos eBGP deben de tener una subred en común. eBGP Multihop también se utiliza para establecer el peering con las direcciones de loopback. saltando varias redes.225. iBGP proporciona la mejor forma de controlar las rutas para el AS de transito. Multihop no es posible configurarlo en iBGP.213. las rutas aprendidas por eBGP serían redistribuidas dentro del IGP y redistribuidas de nuevo en el proceso de BGP de otro router eBGP. El router iBGP no redistribuye la información en otros peers iBGP. iBGP es preferido sobre otras redistribuciones ya que los IGPs no entienden de AS paths y otros atributos de BGP. mediante eBGP Multihop. El routing interno del AS (IGP) deberá de estar perfectamente configurado para que el eBGP Multihop pueda funcionar. Esta es una característica propietaria de Cisco IOS.

Si además utilizamos la palabra clave summary-only suprimiremos el anuncio de prefijos más específicos.0. Por defecto en los routers Cisco la auto sumarización está habilitada. En el siguiente ejemplo se puede ver una redistribución de varias redes de EIGRP en BGP modificando para unas cuantas la local preference y el weight: router eigrp 111 network 15.0.• • • Comando network Comando aggregate-address Redistribución de IGPs El Comando network El comando network especifica qué rutas de la tabla de routing IP local son añadidas a la table de BGP. Redistribución de BGP Otra forma de anunciar redes en BGP es importando las rutas de los protocolos IGP en BGP mediante una redistribución.0 mask 255.100.0.255.255.0 El Comando aggregate-address El comando aggregate-address anuncia una ruta sumarizada si hay rutas más específicas en la tabla de BGP.0.0/24 por ejemplo. Si la auto sumarización está desactivada.0 ! router bgp 65511 no synonization redistribute eigrp 111 route-map eigrp-to-bgp ! route-map eigrp-to-bgp 5 (el 5 es el número de secuencia) match ip address 40 (el 40 indica el access list con el que vamos a comparar) set local-preference 200 set weight 10 set origin igp .4. router bgp 100 aggregate-address 100. Este método se utilizará normalmente en grandes empresas con core iBGP.0 summary-only Con este ejemplo de arriba anunciomos la red sumarizada y no anunciaremos las más específicas como 100.0 network 5.0.0.0.252.4. no se creará una ruta no classful sumarizada.0 255.100. router bgp 100 network 4.

0. todos los routers pertenecen a esta community no-export: No anuncia esta ruta a otros peers eBGP no-advertise: No anuncia esta ruta a ningún peer local-as: Envía esta ruta a otros peers en otros subsistemas autónomos dentro de la misma confederación local Ejemplo: router bgp 100 neighbor 10.0.294.200.0 access-list 40 permit access-list 40 permit access-list 40 permit ! access-list 50 permit access-list 50 permit 15.168.0 15.0 15.5 route-map commnolocal out ! route-map commnolocal permit 10 match ip address 10 set community no-export ! .238.7.1.2.0.0 Distancia Administrativa de BGP BGP tiene dos distancias administrativas dependiendo si es IGP o EGP • • iBGP: Distancia administrativa de 200 eBGP: Distancia administrativa de 20 Filtros de BGP Communities de BGP El atributo communities es un atributo global opcional y transitivo y es un número en el rango 1-4.967. Las communities más comunes son: • • • • internet: Anuncia esta ruta a Internet.24.2.0.186.202.0 0.0 15.5 send-community neighbor 10.124.0 15.2.1.! route-map eigrp-to-bgp 10 match ip address 50 ! ! access-list 40 permit 15.5 remote-as 300 neighbor 10.0.1.200.208.

1.0.0/8 ip access-list 99 permit 3.0.1.0.0/8 En este ejemplo se envían al vecino 1.0.1. Cualquier caracter único ^ Compara el inicio de cualquier cadena $ Compara el final de cualquier cadena .0.0.0.0/8 BGP Distribute Lists Los distribute lists filtran las rutas que se envían o reciben.0/8 y 3.1.0 4. Ejemplo: router bgp 100 neighbor 1.1.0.0.0.5 las rutas de la 2.0 marcadas con la community no-export. también podemos filtrar los ASs mediante expresiones regulares: Expresión Significado .0.0/8 Filtros de BGP AS Path Al igual que podemos filtrar por redes.0 3.route-map commnolocal match ip address 11 ! access-list 10 permit access-list 11 permit access-list 11 permit permit 20 2.0.0.0.2.0.0/8 ip prefix-list ccie seq 2 permit 3. no anunciar a peers eBGP BGP Prefix Lists Los prefix lists filtran los envíos y recepción de las rutas que se envían o reciben desde peers Ejemplo: router bgp 100 neighbor 1.0.0.1 distribute-list 99 in ! ip access-list 99 permit 2.1.1 únicamente las rutas de las redes 2.1.0 En el ejemplo de arriba le pasa al peer 10.1 prefix-list ccie out ! ip prefix-list ccie seq 1 permit 2. es decir.0.0.0.

htm Atributos de BGP Path Los atributos de BGP se dividen siguiendo el siguiente esquema: • Atributos • o Well-Known: Se reconocen en todas las implementaciones de BGP o  Mandatory: Tienen que ser incluidos en todas la actualizaciones   Next-Hop: Dirección IP que alcanza el destino Origin: i(IGP). Es posible desactivar la sincronización de BGP para acelerar el proceso de convergencia (BGP no tiene que esperar al IGP). Esto sólo se puede hacer si el AS no es de transito o si todos los routers corren BGP. (.$ El AS local (sin AS) Sincronización de BGP Por defecto la sincronización de BGP está habilitada en los routers Cisco. Weight y el proceso de decisión de BGP La decisión de mejor ruta BGP la realiza teniendo en cuenta los atributos y el weight. el final. Los atributos de BGP vienen muy bien definidos en http://www.cisco. La sincronización podemos deshabilitarla con el comando no bgp synchronization. ) o un espacio * Compara con ninguna o cualquier secuencia en el patrón Ejemplo de Expresiones: ^222_ Cualquier AS Path que comience por 222 ._ Compara el inicio.* Cualquier AS Path . El proposito de la sincronización es que el AS proporcione transito a otro AS: BGP no debe de anunciar una ruta hasta que todas las rutas del AS no se hayan aprendido por IGP. coma.com/univercd/cc/td/doc/cisintwk/ito_doc/bgp. }. ?(incompleto) AS-Path: Número de ASs para alcanzar el destino y lista de los mismos Discretionary: No tienen que ser incluidos en todas las actualizaciones      Local-Preference: Indica el path para salir del AS . Atributos de BGP. {. e(EGP).

Para definir el siguiente salto como el vecio en si utilizaremos el comando next-hop-self.1. aprendido de una redistribución de la ruta Atributo AS Path Length .1 remote-as 100 bgp default local-preference 300 (este router tiene una LP de 300) Atributo Origin El atributo Origin define el origen de la información del path: • • • IGP: Indicado con una i.1 remote-as 100 neighbor 1. aunque ellos no los soporten   MED: Le dice al peer eBGP el path preferido para entrar en el AS  Community: Agrupa redes para asignación de políticas  Agregator: Incluye la IP y el AS del router que origina la ruta agregada Non Transitive: Los routers no los anunciarán  Atributo Next-Hop Este atributo nos indica la dirección IP del siguiente salto eBGP que vamos a utilizar para alcanzar el destino.1. Por defecto en routers Cisco es 100 y se prefiere la local preference más grande router bgp 100 neighbor 1. presente si la ruta ha sido aprendida desde otro AS Incomplete: Indicado con un ?.1.1.1. este atributo no se pasará a vecinos eBGP. presente si la ruta se ha aprendido con el comando network EGP: Indicado con una e.1 next-hop-self Atributo Local Preference El atributo local preference indica cual es el caminio para salir del AS local. router bgp 100 neighbor 1.1.o Atomic Aggregator: Informa a los peers BGP que existe una ruta menos específica a un destino Optional: No necesitan ser soportados por el proceso BGP  o  Transitive: Los routers los anunciarán.

1 0 100 0 1800 690 568 ? En el ejemplo podemos ver en rojo el AS-Path.1. * valid.168. i – internal Origin codes: i – IGP. ? – incomplete Network Next Hop Metric LocPrf Weight Path * i10.6.16. Por defecto el valor del MED es 0 y cuanto más bajo sea el valor es más preferible.0.1 0 100 0 1800 1239 ? * i10.22.2.1 update-source loopback 0 neighbor 1.1 route-map setmed out ! route-map setmed permit 10 set metric 200 Cisco además ha añadido dos funcionalidades nuevas al MED que permiten realizar comparaciones: • • bgp deterministic-med compara valores de MED en las rutas anunciadas por diferentes peers del mismo AS bgp always-compare-med compara el atributo MED de diferentes ASs para seleccionar el path más adecuado Atributo Community Este atributo no participa en el proceso de selección de path. e – EGP.1 0 100 0 1800 690 568 ? *>i 10.0.1. router bgp 100 neighbor 1. indica a los peers de eBGP el path preferido para entrar en el AS desde fuera.16.2.0 10. pero sirve para agrupar políticas o decisiones que aplican a estas rutas Atributos Atomic Aggregate y Aggregator .1.3.1.0 10.0. también conocido como métrica. > best.1 0 100 0 1800 1239 ? *>i 10.22.0.2.1 remote-as 200 neighbor 1.32. en verde el Origin y en azul la Local Preference Atributo MED El atributo MED.0.1 ebgp-multihop neighbor 1.0. local router ID is 192.2.El AS Path Length lista los ASs que se atraviesan para llegar los destinos Router# show ip bgp community-list 20 BGP table version is 716977.1 Status codes: s suppressed.

Si la local preference es igual se selecciona el path que haya sido originado en el router local 6.1. Si todos tienen el AS-Path de la misma longitud se selecciona en primer lugar los paths originados en el AS local 8.1 neighbor 5.1. y el path no está en IGP se descarta el path 3.1.1. la sincronización está habilitada.1 neighbor 4.1. Si el path no ha sido originado por el router local se selecciona la que tenga el ASPath más corto 7.1.El atributo Atomic Aggregate informa a los peers BGP que existe una ruta menos específica a un destino y atributo Aggregator incluye la IP y el AS del router que ha generado la ruta agregada Weight Weight es específico de Cisco y no se propaga a otros routers. y el proceso es el siguiente: 1. Si los MED son iguales se prefiere el que tenga el vecino IGP más cercano 11. La diferencia principal es que el weight no se envía entre peers y la local preference se envía entre peers iBGP router bgp 500 neighbor 4. Si los Origin Code son iguales se selecciona la que tenga el MED más pequeño 9. Para desempatar se elegirá el path con el vecino BGP con el RID menor BGP Route Dampening. El weight puede ser utilizado en vez de la local preference para influenciar en la selección del path a los peers externos de BGP. Si el path es interno.1 remote-as 100 weight 400 remote-as 200 weight 600 Proceso de Decisión de BGP Por defecto BGP selecciona un único path a un destino. a no ser que se configure maximum paths.1. Si el weight es igual se selecciona la menor local preference 5. Se selecciona el path con mayor weight 4.1. Route Reflectors y Confederaciones . y las rutas a un destino con un weight mayor son preferidas sobre las otras. Peer Groups.1 neighbor 5. Si el MED es igual se prefiere el path eBGP antes que el iBGP 10. Si el next hop al path está caído se descarta el path 2. Los valores del weight están en el rango 0 – 65535.

cuando la ruta lleva caída el tiempo descrito en half-life-time el valor de penalización (por defecto 1000) baja a la mitad.55 filter-list 3 in Ejemplo de Peer Group en eBGP.69.53 peer-group internal neighbor 171.55 peer-group internal neighbor 171.69.69. típicamente 60 minutos.232. En el momento que el valor de la penalización llega al máximo el path es descartado.232. El valor de supress-limit indica el valor al que tiene que llegar para ser eliminada del todo y el maximum-supress-time indica la máxima duración para suprimir la ruta estable. Al principio se le asigna un valor de penalización.232. El comando que realiza esta función es router bgp as-number bgp dampening half-life-time reuse-value supress-limit maximum-supress-time El fucionamiento es el siguiente.BGP Route Dampening El Route Dampening es un método que permite detener la propagación de rutas inestables a través de la red. El reuse-value indica el valor al cual la ruta tiene que llegar para poder volver a ser anunciada. Ejemplo de Peer Group en iBGP router bgp 100 neighbor internal peer-group neighbor internal remote-as 100 neighbor internal update-source loopback 0 neighbor internal route-map set-med out neighbor internal filter-list 1 out neighbor internal filter-list 2 in neighbor 171.54 peer-group internal neighbor 171. la diferencia está en el lugar donde ponemos el remote-as router bgp 100 neighbor external-peers peer-group neighbor external-peers route-map set-metric out neighbor external-peers filter-list 99 out . por defecto es 750.232. En BGP para conseguir eso se le asigna a cada path un valor de penalización que va aumentando cada vez que se produce una caída rápida (flappping). por defecto 4 veces el half-life-time. BGP Peer Groups Los Peer Groups son una agrupación de vecinos BGP a los cuales se les aplica las mismas políticas. de esta forma podemos configurar un montón de vecinos BGP de forma más rápida.69. por defecto este tiempo es de 15 minutos.

neighbor external-peers filter-list 101 in neighbor 171.232.232.4 route-reflector-client .110 filter-list 400 in Route Reflectors Muchas veces no es posible disponer de una red totalmente mallada y hay que utilizar Route Reflectors. Un Route Reflector proporciona la capacidad de hacer funcionar en cluster a el mismo y a sus clientes.69.100 remote-as 300 neighbor 171.232.4 remote-as 3549 neighbor 1.69.110 remote-as 400 neighbor 171.2.2.232.3.90 peer-group external-peers neighbor 171.69.69. Otro comando intersante sería bgp cluster-id.110 peer-group external-peers neighbor 171.69.232.90 remote-as 200 neighbor 171.3. La configuración de un route relflector incluye el comando neighbor ip-address routereflector-client que indica que este router es un route reflector y que los vecinos especificados son clientes.100 peer-group external-peers neighbor 171. este comando sirve para especificar un cluster de route reflectors Un ejemplo de configuración sería el siguiente: router bgp 3549 neighbor 1.232.69.232. Utilizando route reflector con que el route reflector esté conectado mediante una red totalmente mallada con sus peers (no con sus clientes) es suficiente.69.

2.2.11. La configuración se realiza únicamente en los routers frontera.5.5 route-reflector-client bgp cluster-id 10 Confederaciones Con confederaciones. el AS se divide en sistemas autónomos privados.5 remote-as 100 (conexión eBGP con el AS100 externo) RTD# router bgp 60 bgp confederation identifier 500 bgp confederation peers 50 70 .213.1 remote-as 50 (conexión iBGP en el AS50) neighbor 128.neighbor 1.1 remote-as 50 (conexión iBGP en el AS50) neighbor 129.5 remote-as 3549 neighbor 1.10.210.213.3.1 remote-as 60 (conexión BGP con peer de confederación 60) neighbor 135.212.14.3. La configuración para este ejemplo sería la siguiente: RTC# router bgp 50 bgp confederation identifier 500 bgp confederation peers 60 70 neighbor 128.1 remote-as 70 (conexión BGP con peer de confederación 70) neighbor 5.20. y el grupo entero es asignado a un confederation ID.5.

6 remote-as 600 (conexión eBGP con el AS600 externo) RTA# router bgp 100 neighbor 5.—Prefixes Current: 0 0 .212.50.50.6.5.1 remote-as 70 (conexión BGP con peer de confederación 70) neighbor 6.5.30.neighbor 129.2.213.168.108. internal link BGP version 4. hold time is 180.14.6.30.2 remote-as 60 (conexión iBGP en el AS60) neighbor 128. keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received(old & new) Graceful Restart Capabilty:advertised and received Address family IPv4 Unicast: advertised and received Message statistics: InQ depth is 0 OutQ depth is 0 Sent Rcvd Opens: 3 3 Notifications: 0 0 Updates: 0 0 Keepalives: 113 112 Route Refresh: 0 0 Total: 116 115 Default minimum time between advertisement runs is 5 seconds For address family: IPv4 Unicast BGP table version 1.108. remote router ID 192. neighbor version 1/0 Output queue size : 0 Index 1.4 remote-as 500 (conexión eBGP con la confederación 500) Comandos show bgp show ip bgp neighbors Este comando comprueba si se ha establecido la conexión TCP con el vecino Router# show ip bgp neighbors 10. remote AS 1. Mask 0×2 1 update-group member Sent Rcvd Prefix activity: —.252 BGP state = Established. last write 00:00:24. up for 00:24:25 Last read 00:00:24.252.1 remote-as 50 (conexión BGP con peer de confederación 50) neighbor 135.2 BGP neighbor is 10.210. Offset 0.

1.35 10 0 35 ? *> 0.0.34 Status codes: s suppressed.33.0.35 10 0 35 ? *> 0.0.0.0 0 32768 ? * 10.0 0.1.Prefixes Total: 0 0 Implicit Withdraw: 0 0 Explicit Withdraw: 0 0 Used as bestpath: n/a 0 Used as multipath: n/a 0 Outbound Inbound Local Policy Denied Prefixes: ——– ——Total: 0 0 Number of NLRIs in the update sent: max 0. min 0 Connections established 3. dropped 2 Last reset 00:24:26.0.0. h history.0 0 32768 ? *> 192.0/16 10.33.0 10.168. i – internal Origin codes: i – IGP.0. d damped.0. I/O status: 1.0.0 0 32768 ? * 10.0.33.50.0. lo más importante es comprobar los Status codes Router# show ip bgp BGP table version is 5. e – EGP. Foreign port: 42698 show ip bgp El comando show ip bgp nos indica las redes en la tabla BGP. * valid.0.0. > best. due to Peer closed the session Connection state is ESTAB.0 10. unread input bytes: 0 Connection is ECN Disabled Local host: 10.50.2. Local port: 179 Foreign host: 10. local router ID is 10.33.2.0.108.0. ? – incomplete Network Next Hop Metric LocPrf Weight Path *> 10.35 10 0 35 ? clear ip bgp El comando clear ip bgp elimina las rutas de la tabla de BGP para forzar el volver a calcularlas .108.