Fundamentos de enrutamiento con BGP4 BSCI Module 6
Fundamentos de enrutamiento con BGP-4 BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 1
Programa de la sesión Características de BGP, diferencias de los otros protocolos de enrutamiento conocidos. Describir los mensajes y tablas usadas por BGP. Ejemplificar la configuración de una sesión BGP para routers vecinos internos y externos. Describir los estados de una sesión BGP. Aprender a configurar grupos de vecinos BGP. Aprender a configurar autentificación BGP. Proceso de selección de rutas en BGP. Uso de atributos para influenciar el proceso de selección de rutas. Ejemplos de configuración usando route-maps para modificar el valor de los atributos. Problemas comunes en enrutamiento con BGP. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 2
Aspectos fundamentales de BGP BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 3
Un AS es un conjunto de redes o equipos de redes bajo una misma administración técnica. Los IGPs operan al interior de un AS. BGP es usado entre ASs. BGP garantiza el intercambio de información de enrutamiento libre de loops. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 4
Aspectos fundamentales de BGP Un AS es un grupo de routers que comparten las mismas políticas de enrutamiento, y están bajo un mismo dominio administrativo. Un AS puede ser una colección de routers corriendo un mismo IGP, o bien, usando variados protocolos de enrutamiento pero dichos routers perteneciendo a una misma organización. En cualquier caso, el mundo exterior verá al AS como una solo entidad. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 5
Aspectos fundamentales de BGP Cada enrutador que utiliza BGP debe usar un número de AS. Éstos pueden ser privados o públicos. La Internet Assigned Numbers Authority (IANA) está llevando a cabo una política en que insta a las organizaciones que se conectan a un solo ISP, y que están bajo sus políticas de enrutamiendo, a usar números de AS privados (64512 al 65535). Estos números de AS privados aparecen sólo dentro de la red del proveedor y son reemplazados por el o los números de AS públicos una vez que estas actualizaciones dejan el AS privado. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 6
BGP le da conectividad a la Internet BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 7
Sesiones BGP Un “BGP peer”, también conocido como “compañero BGP” es un término usado para describir a un router que ha establecido una relación con otro a través de BGP. 2 routers que hayan formado una conexión TCP (puerto 179) para intercambiar información de enrutamiento por medio de BGP, son llamados “BGP Peers”. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 8
Sesiones e. BGP Cuando BGP está corriendo entre vecinos que pertenecen a distintos AS, se dice que entre ellos existe una sesión e. BGP. Compañeros e. BGP, por defecto, necesitan estar directamente conectados. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 9
Sesiones i. BGP Cuando BGP está corriendo entre vecinos dentro de un mismo AS, se dice que han establecido una sesión i. BGP. Los i. BGP peers no necesariamente deben estar directamente conectados. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 10
Tipos de mensajes BGP define los siguientes mensajes: Open Se anuncia Holdtime y BGP router ID entre otros parámetros. Keepalive Update Se publican los atributos de un trayecto en particular, así como las rutas o prefijos que pueden ser alcanzados a través de dicho trayecto. Notification Se envían cuando se ha detectado un error. La sesión BGP es cerrada una vez que se ha enviado o recibido. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 11
Tablas usadas por BGP Tabla de Vecinos o “Neighbor” Lista los vecinos BGP, es decir, aquellos routers con quienes se ha establecido una sesión i. BGP o e. BGP. Tabla BGP (forwarding database) Lista las redes aprendidas de cada vecino o neighbor. Puede contener múltiples trayectorias hacia una red en particular. Contiene los atributos BGP para cada trayectoria. Tabla de entutamiento IP Lista de las mejores trayectorias para cada red. de destino. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 12
Commandos BGP BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 13
Comando neighbor BGP Terms BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 14
BGP usando direcciones Loopback BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 15
Comando ebgp-multihop BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 16
Ejemplo: BGP Peering Router. A# show ip bgp summary BGP router identifier 10. 1. 1. 1, local AS number 65001 BGP table version is 124, main routing table version 124 9 network entries using 1053 bytes of memory 22 path entries using 1144 bytes of memory 12/5 BGP path/bestpath attribute entries using 1488 bytes of memory 6 BGP AS-PATH entries using 144 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 3829 total bytes of memory BGP activity 58/49 prefixes, 72/50 paths, scan interval 60 secs Neighbor V 10. 1. 0. 2 172. 31. 1. 3 172. 31. 11. 4 4 65001 4 64998 4 64999 BSCI Module 6 AS Msg. Rcvd Msg. Sent © 2006 Cisco Systems, Inc. All rights reserved. 11 21 11 Cisco Public 11 18 10 Tbl. Ver 124 124 In. Q Out. Q Up/Down 0 0 00: 02: 28 0 00: 01: 13 0 00: 01: 11 State/Pfx. Rcd 8 6 6 17
Estados de sesión en BGP BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 18
Estados de sesión en BGP Cuando se establece una sesión BGP, ésta pasa por las siguientes fases: • Idle: el router está buscando en su tabla de enrutamiento si cuenta con una ruta para alcanzar a su vecino. • Connect: el router encontró una ruta para alcanzar a su vecino y acaba de completar el handskake de 3 vías de TCP. • Open sent: mensaje Open enviado con los parámetros de la sesión respectiva. • Open confirm: el router ha recibido confirmación acerca de los parámetros de la sesión que se está estableciendo. Si no se recibe este mensaje dentro de 5 segundos, la sesión entra en el estado Active. BSCI Module 6 • Established: la sesión está plenamente operativa y se puede llevar a cabo el intercambio de actualizaciones. ternativamente, el router entra en el estado © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 19
Ejemplo: Comando show ip bgp neighbors Router. A#sh ip bgp neighbors BGP neighbor is 172. 31. 1. 3, remote AS 64998, external link BGP version 4, remote router ID 172. 31. 2. 3 BGP state = Established, up for 00: 19: 10 Last read 00: 10, last write 00: 10, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received(old & new) Address family IPv 4 Unicast: advertised and received Message statistics: In. Q depth is 0 Out. Q depth is 0 Sent Rcvd Opens: 7 7 Notifications: 0 0 13 38 Updates: <output omitted> BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 20
BGP Peer Grupos & Vecinos BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 21
Usando un Group Peer BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 22
Autenticación de compañeros BGP BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 23
Ejemplo: Comando show ip bgp router#show ip bgp BGP table version is 14, local router ID is 172. 31. 1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric Loc. Prf Weight Path *> 10. 1. 0. 0/24 0. 0 0 32768 i * i 10. 1. 0. 2 0 100 0 i *> 10. 1. 1. 0/24 0. 0 0 32768 i *>i 10. 1. 2. 0/24 10. 1. 0. 2 0 100 0 i *> 10. 97. 0/24 172. 31. 1. 3 0 64998 64997 * 172. 31. 11. 4 0 64999 64997 * i 172. 31. 11. 4 0 100 0 64999 64997 *> 10. 254. 0. 0/24 172. 31. 1. 3 0 0 64998 i * 172. 31. 11. 4 0 64999 64998 * i 172. 31. 1. 3 0 100 0 64998 i r> 172. 31. 1. 0/24 172. 31. 1. 3 0 0 64998 i r 172. 31. 11. 4 0 64999 64998 r i 172. 31. 1. 3 0 100 0 64998 i *> 172. 31. 2. 0/24 172. 31. 1. 3 0 0 64998 i <output omitted> i i i Displays networks from lowest to highest. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 24
Reseteado de sesiones BGP BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 25
Resetando una sesión BGP Cuando se alteran listas de filtrado de rutas o atributos BGP, los cambios toman efecto inmediatamente, pero sólo la próxima vez que se publique o reciba una actualización referente a esa ruta, la nueva política será usada. Esto puede tomar un tiempo considerable, por lo cual es necesario forzar a que una actualización se publique o solicite, acelerando el proceso. Es necesario gatillar una actualización para asegurar que la nueva política sea inmediatamente aplicada a todos los prefijos y rutas en cuestión. Formas de realizar esto: Hard reset Soft reset Route refresh BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 26
Hard Reset de sesiones Router# clear ip bgp * Resetea todas las sesiones BGP presentes Tabla de forwaring BGP es descartada. Sesión BGP realiza una transición desde Established a Idle; todo debe ser reaprendido. Router# clear ip bgp [neighbor-address] Resetea una sesión en particular. La sesión BGP realiza una transición desde Established a Idle; todo lo que provino de este vecino debe ser reaprendido. Menos drástico que clear ip bgp *. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 27
Soft Reset de salida Router# clear ip bgp {*|neighbor-address} [soft out] Las rutas aprendidas de ese vecino no se pierden. El router reenvía toda la información BGP al vecino sin necesidad de resetear la conexión. La conexión permanece establecida. Esta opción es altamente recomendada cuando se está cambiando una política de salida. La opción NO ayuda si se está cambiando una política de entrada. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 28
Soft Reset de entrada Router(config-router)# neighbor [ip-address] soft-reconfiguration inbound El router almacena todas las actualizaciones desde un vecino en particular en caso de que la política de entrada cambie. Es un comando “memory-intensive”. Router# clear ip bgp {*|neighbor-address} soft in Cuando una política de entrada sea modificada, se usará la información almacenada en esta tabla no filtrada, para así generar las nuevas actualizaciones de entrada acordes a la nueva política. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 29
Refrescado de Ruta: Soft Reset dinámico de entrada Router# clear ip bgp {*|neighbor-address} [soft in | in] Las rutas publicadas a ese vecino no son eliminadas. No almacena localmente información de actualizaciones. La conexión permanece establecida. Disponible a partir de IOS 12. 0(2)S y 12. 0(6)T. No se requiere el comando previo neighbor [ip-address] soft-reconfiguration inbound BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 30
Análisis del atributo Local Preference BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 31
Atributo Local Preference Trayecto con el más alto valor de Local Preference será elegido: El atributo Local Preference es usado para publicar a los vecinos i. BGP acerca de qué enlace usar para abandonar su AS. El atributo Local Preference es enviado sólo a los vecinos i. BGP, es decir, sólo al interior del AS. Es un atributo Well-known y discretionary. Valor por defecto = 100 BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 32
Análisis del atributo Local Preference ¿Cuál es el mejor trayecto para que router C alcance los AS 65003, 65004, y 65005? BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 33
Tabla BGP para el router C configuración por defecto. Router. C# show ip bgp BGP table version is 7, local router ID is 3. 3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric Loc. Prf Weight Path * i 172. 16. 0. 0 172. 20. 50. 1 100 0 65005 65004 65003 i *>i 192. 168. 28. 1 100 0 65002 65003 i *>i 172. 24. 0. 0 172. 20. 50. 1 100 0 65005 i * i 192. 168. 28. 1 100 0 65002 65003 65004 65005 i *>i 172. 30. 0. 0 172. 20. 50. 1 100 0 65005 65004 i * i 192. 168. 28. 1 100 0 65002 65003 65004 i Por defecto, BGP selecciona el trayecto con AS path más corto como el mejor (>). En AS 65001, el porcentaje de tráfico cuyo destino es 172. 24. 0. 0 está en 30%, para 172. 30. 0. 0 es 20%, y para 172. 16. 0. 0 es 10%. 50% de todo el tráfico irá hacia el Next Hop 172. 20. 50. 1 (AS 65005), y 10% de todo el tráfico irá hacia el Next Hop 192. 168. 28. 1 (AS 65002). Debemos lograr que la red de destino 172. 30. 0. 0 seleccione como Next Hop a 192. 168. 28. 1 y así alcanzar un balanceo de carga óptimo con una carga por enlace externo de aproximadamente 30%. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 34
route-map para el router A Configuración: router bgp 65001 neighbor 2. 2 remote-as 65001 neighbor 3. 3 remote-as 65001 neighbor 2. 2 remote-as 65001 update-source loopback 0 neighbor 3. 3 remote-as 65001 update-source loopback 0 neighbor 192. 168. 28. 1 remote-as 65002 neighbor 192. 168. 28. 1 route-map local_pref in ! access-list 65 permit 172. 30. 0. 0. 255 ! route-map local_pref permit 10 match ip address 65 set local-preference 400 ! route-map local_pref permit 20 BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 35
Tabla BGP para router C con Local Preference modificado Router. C# show ip bgp BGP table version is 7, local router ID is 3. 3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric Loc. Prf Weight Path * i 172. 16. 0. 0 172. 20. 50. 1 100 0 65005 65004 65003 i *>i 192. 168. 28. 1 100 0 65002 65003 i *>i 172. 24. 0. 0 172. 20. 50. 1 100 0 65005 i * i i 192. 168. 28. 1 100 0 65002 65003 65004 65005 * i 172. 30. 0. 0 172. 20. 50. 1 100 0 65005 65004 i *>i 192. 168. 28. 1 400 0 65002 65003 65004 i Mejores (>) trayectos para las redes 172. 16. 0. 0/16 y 172. 24. 0. 0/16 no han cambiado. Mejor (>) trayecto para la red 172. 30. 0. 0 ha cambiado al nuevo Next Hop 192. 168. 28. 1 debido a que ese Next Hop 192. 168. 28. 1 tiene un mayor valor de Local Preference, 400. En AS 65001, el porcentaje de tráfico hacia 172. 24. 0. 0 es 30%, 172. 30. 0. 0 es 20%, y 172. 16. 0. 0 es 10%. 30% de todo el tráfico irá hacia el Next Hop 172. 20. 50. 1 (AS 65005), mientras que el otro 30% de todo el tráfico irá hacia el Next hop 192. 168. 28. 1 (AS 65002). BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 36
Análisis de atributo MED BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 37
Atributo MED (Multiexit-discriminator) El trayecto con el menor MED (también llamado Métrica) será el elegido: El MED es usado para publicar a los vecinos EBGP por donde éstos deben salir de sus AS de origen para alcanzar redes pertenecientes a nuestro AS. MED es un atributo opcional notransitivo. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 38
Uso de route-maps para manipular el MED BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 39
route-map para router A Configuración: router bgp 65001 neighbor 2. 2 remote-as 65001 neighbor 3. 3 remote-as 65001 neighbor 2. 2 update-source loopback 0 neighbor 3. 3 update-source loopback 0 neighbor 192. 168. 28. 1 remote-as 65004 neighbor 192. 168. 28. 1 route-map med_65004 out ! access-list 66 permit 192. 168. 25. 0. 0. 0. 255 access-list 66 permit 192. 168. 26. 0. 0. 0. 255 ! route-map med_65004 permit 10 match ip address 66 set metric 100 ! route-map med_65004 permit 20 set metric 200 BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 40
route-map para router B Configuración: router bgp 65001 neighbor 1. 1 remote-as 65001 neighbor 3. 3 remote-as 65001 neighbor 1. 1 update-source loopback 0 neighbor 3. 3 update-source loopback 0 neighbor 172. 20. 50. 1 remote-as 65004 neighbor 172. 20. 50. 1 route-map med_65004 out ! access-list 66 permit 192. 168. 24. 0. 0. 0. 255 ! route-map med_65004 permit 10 match ip address 66 set metric 100 ! route-map med_65004 permit 100 set metric 200 BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 41
MED aprendido por router Z Router. Z# show ip bgp BGP table version is 7, local router ID is 122. 30. 1. 1 Status codes: s suppressed, d damped, h history, * valid, > best, i internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric Loc. Prf Weight Path *>i 192. 168. 24. 0 172. 20. 50. 2 100 0 65001 i * i 192. 168. 2 200 100 0 65001 i * i 192. 168. 25. 0 172. 20. 50. 2 200 100 0 65001 i *>i 192. 168. 2 100 0 65001 i * i 192. 168. 26. 0 172. 20. 50. 2 200 100 0 65001 i *>i 192. 168. 2 100 0 65001 i Examinemos las redes que han sido aprendidas desde AS 65001 por Router Z en AS 65004. Para todas las redes: Weight es igual a 0; Local Preference is igual a 100; las rutas son no originadas en este AS; AS path is igual para todas (65001); Origin Code es igual para todas (i). 192. 168. 24. 0 tiene un más bajo MED a través del Next Hop 172. 20. 50. 2 (100) que a través de 192. 168. 2 (200). 192. 168. 25. 0 tiene un más bajo MED a través del Next Hop 192. 168. 2 (100) que a través de 172. 20. 50. 2 (200). 192. 168. 26. 0 tiene un más bajo MED a través del Next Hop 192. 168. 2 (100) que a través de BSCI Module 172. 20. 50. 2 6 © 2006 Cisco (200). Systems, Inc. All rights reserved. Cisco Public 42
Proceso de selección de rutas en BGP Considerar sólo rutas sincronizadas sin loops a nivel de AS y con un Next Hop alcanzable. A continuación: Preferir el weight mayor (local al router). Preferir el más alto Local Preference (global dentro del AS). Preferir ruta originada por el router local (next hop = 0. 0). Preferir el trayecto con menor número de saltos de ASs. Preferir el menor Origin code (IGP < EGP < incomplete). Preferir el menor MED (intercambiado entre ASs). Preferir trayecto e. BGP por sobre uno i. BGP. Preferir el trayecto a través del más cercano vecino IGP. Preferir la ruta más antigua para trayectos EBGP. Preferir la ruta cuyo vecino tengo el valor más bajo de router ID. Preferir el trayecto cuyo vecino tenga la dirección IP menor. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 43
Resumen BGP es un protocolo de enrutamiento por vector de trayectoria que permite crear un diseño de enrutamiento basado en políticas al interior de un AS. BGP forma relaciones e. BGP con vecinos externos y relaciones i. BGP con vecinos internos. Al interior de un AS, lor routers deben tener relaciones todos con todos, es decir, fully-meshed i. BGP lleva a cabo un proceso de múltiples pasos cuando selecciona la mejor trayectoria para un destino en particular. Es posible manipular la selección de rutas, creando políticas de entrada o salida que modifican los atributos BGP. Usando routemaps podemos alterar los valores de Local Preference, MED, entre otros, con el fin de lograr la carga óptima para los enlaces. BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 44
Q and A BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 45
BSCI Module 6 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Public 46
- Slides: 46