BGP Border Gateway Protocol Mg. Fernando Caba Director General de Telecomunicaciones UNS • La siguiente documentación se realizó según el estandar especificado en las RFC 5737 y 5398 • Algunos ejemplos se obtuvieron de un router de acceso público obtenido del sitio http://routeserver.org • En particular se eligió route-server.gblx.net el cual a la fecha no posee ni usuario ni password Abc@fcaba~$ telnet route-server.gblx.net Trying 67.17.81.28... Connected to loop0.route-server.phx1.gblx.net. Escape character is '^]'. C ******************************* WARNING ******************************* This equipment is the property of Level 3 Communications. Unauthorized access is strictly prohibited. Any unauthorized access or tampering with this equipment will result in civil and/or criminal prosecution. ******************************* WARNING ******************************* route-server.phx1> BGP - RIU - 2 Ruteo y rutas • Ruteo: proceso que se ejecuta en un equipo de cómputo el cual analiza los posibles destinos a los cuales puede dirigirse un paquete de datos. • Estos destinos están configurados en entidades denominadas Rutas. • Una ruta posee información la cual permite que un paquete de datos moviéndose desde un origen a un destino, tome un determinado camino para dirigirse al destino final, seguramente pasando por uno o más puntos intermedios. BGP - RIU - 3 Protocolos de ruteo • IGP (Interior Gateway Protocol) - RIP, IGRP, EIGRP, OSPF, etc • Protocolo de ruteo usado para intercambiar información de ruteo dentro de un sistema autónomo. • EGP (Exterior Gateway Protocol) – BGP • Protocolo de ruteo usado para intercambiar información de ruteo entre sistemas autónomos. • BGPv1 es del año 1989 (RFC 1105) y BGPv4 es del año 1994 (RFC 1654). La RFC actual es la 4271. • BGP es un protocolo de ruteo externo del tipo path vector. • la tabla de ruteo mantiene una lista de AS´s que son atravezados para alcanzar el AS de destino. BGP - RIU - 4 Protocolos de ruteo • IGP: protocolo de ruteo interno • BGP: protocolo de ruteo externo, 2 casos: • iBGP: dentro del sistema autónomo • eBGP: entre sistemas autónomos • NO CONFUNDIR: IGP con iBGP!!! BGP - RIU - 5 Protocolos de ruteo • Ruteo Inter-AS e Intra-AS ruteo Inter-AS entre C.b A.a a Host h1 b A, B y C A.c C c b A ruteo Intra-AS dentro de AS A Host h2 c a B a d B.a b ruteo Intra-AS dentro de AS B BGP - RIU - 6 Sistema Autónomo • Sistema Autónomo (RFC 1771): conjunto de routers bajo una misma administración técnica, que usan un protocolo de ruteo interno (IGP) y métricas para rutear paquetes dentro de él, y que usan un protocolo de ruteo externo (EGP) para rutear paquetes fuera de él. • Desde afuera el AS es visto como una entidad única. • Cada AS tiene un identificador: ASN (Autonomous System Number). • Tiene su propia política de ruteo. ASN 64496 BGP - RIU - 7 Sistema Autónomo • Cada AS tiene un número que lo identifica, los cuales son delegados por IANA (Internet Assigned Numbers Authority) a cada RIR (Regional Internet Registry) (ARIN, LACNIC, etc.) • Hasta 2007, estos números se asignaban entre 1 y 65.535 (16 bits) (aún quedan) • A partir de 2007, se definieron los AS de 32 bits (RFC 4893, 6793) (0.y) • BGP está preparado para propagar AS de 32 bits. BGP - RIU - 8 Sistema Autónomo • Uso de la numeración: • 0 y 65535 • Entre 1 y 64495 • Entre 64496 y 64511 • Entre 64512 y 65534 • Entre 65536 y 65551 • Entre 65552 y 4294967295 Reservados Internet Pública Documentación para ASN 16 bits – RFC 5737 Uso sólo privado Documentación para ASN 32 bits – RFC 5398 Internet Pública • RIU utiliza AS privados (64512 a 65534) para conectar universidades que aún no tienen AS propio. BGP - RIU - 9 Topología de TIER´s BGP - RIU - 10 Tipos de puntos de tráfico • Tier 1 • Redes que pueden alcanzar otras redes sin comprar tráfico IP. • Tienen tránsito libre para peering con otras redes Tier1. • ~ 14 en el mundo (Teliz Sonera, Verizon, etc). • Tier 2 • Redes de peering con otras redes, necesitan comprar tráfico para alcanzar otras redes en Internet. • Tier 3 • Únicamente compran tránsito a otras redes. • Entre ellos existen grandes volúmenes de intercambios de tablas de BGP (más de 500000 rutas). BGP - RIU - 11 Ruteo en Internet • Exchange Points (IXP) • Punto en común donde varios AS intercambian información de ruteo y tráfico BGP - RIU - 12 Terminología de Sistemas Autónomos • Tráfico Local: tráfico con fuente o destino en el AS. • Tráfico de tránsito: tráfico que pasa a través del AS (sólo lo transporta). • Stub AS: tiene conexión con un solo AS, sólo transporta tráfico local. • Multihomed AS: tiene conexión con más de 1 AS, pero no transporta tráfico de tránsito. • Transit AS: tiene conexión con más de 1 AS y transporta tráfico de tránsito. BGP - RIU - 13 Cómo trabaja BGP? Conceptos • Usa TCP como protocolo de transporte (port 179) • Routers Neighbors (o peers) – se establece entre 1 par de routers una sesión TCP abierta, mediante la cual intercambian información de ruteo BGP. • Dentro de un AS, los peers BGP no necesitan estar directamente conectados. Sesión BGP Enlace Enlace AS 64496 • Cantidad de organizaciones (redes). • BGP no pasa la complejidad interna a INTERNET. BGP - RIU - 14 Cómo trabaja BGP? Conceptos • Aprende y enseña rutas • para que un router sepa hacia donde encaminar un paquete, alguien tiene que decirle por donde hacerlo (aprende). • De la misma manera, si queremos que alguien llegue a nuestras redes tenemos que “comunicar” que las tenemos (anuncia). • Para BGP, el ruteo interno es una caja negra • No pasa la complejidad interna a INTERNET. BGP - RIU - 15 Cómo trabaja BGP? Conceptos eBGP eBGP eBGP iBGP iBGP iBGP iBGP IGP IGP IGP IGP AS 64496 AS64497 AS64498 AS64499 BGP - RIU - 16 Cómo trabaja BGP? Conceptos • Máquina de estados finitos • Para decidir que operaciones hacer con los vecinos, cada uno de ellos utiliza una máquina de estados finitos (FSM) con 6 estados (gráfico). Para cada sesión entre vecinos, BGP mantiene una variable de estado que registra en que estado está la sesión. BGP define qué mensajes debe intercambiar cada vecino para cambiar de un estado a otro. BGP - RIU - 17 Tipos de mensajes • Open: establece una sesión de peering con un vecino. • Keep Alive: handshake a intervalos regulares para mantener la sesión de peering. • Notification: cierra una sesión de peering. • Update: anuncia nuevas rutas o el retiro de rutas anunciadas previamente. Cada ruta anunciada es especificada como un prefijo de red y con valores denominados atributos. BGP - RIU - 18 Tabla de ruteo y Tabla de BGP • Existe una tabla con rutas por cada protocolo que el router maneja: tabla de isis, tabla de rip, tabla de BGP. • Los protocolos “compiten” para que sus rutas sean las que finalmente se utilicen (en función de una propiedad denominada Distancia Administrativa). • Determina cuan confiable es un protocolo. Si hay dos rutas similares, se elige la de menor distancia administrativa. Cuanto menor es la distancia administrativa, más confiable es el protocolo. • La ruta “elegida” es la que pasa a formar parte de la tabla de ruteo. • Importante: existen varias tablas de protocolos (una por cada uno de ellos) pero sólo una Tabla de Ruteo. BGP - RIU - 19 Aprender y anunciar rutas • Aprender una ruta: significa que voy a incorporar en mi tabla de BGP alguna ruta que me están enseñando. • Anunciar una ruta: significa que le voy a decir a alguien que tengo una ruta para llegar a determinado destino. No basta con tener la ruta en mi tabla de BGP, la debo tener también en mi tabla de ruteo. • BGP está preparado para manejar políticas de ruteo. BGP - RIU - 20 Aprender y anunciar rutas • Neighbor: punto remoto a quien voy a querer enseñar y/o de quien aprender rutas. • Para hacer este pasaje de rutas debe establecerse una “sesión BGP”. • Para que la sesión BGP se establezca, el potencial neighbor debe ser perfectamente alcanzable por IP (cuidado con filtros!). • La sesión establecida puede ser eBGP o iBGP. BGP - RIU - 21 Aprender y anunciar rutas • Una vez establecida la sesión BGP: • El router podrá anunciar las rutas que: • • • • aprenda de otras sesiones BGP, se inserten en la tabla de BGP (network), pertenezcan a otros protocolos (redistribute) CUIDADO!!, los filtros permitan que se anuncien. • El router podrá aprender las rutas que: • el neighbor quiera anunciarnos, • los filtros permitan que aprendamos. BGP - RIU - 22 Aprender y anunciar rutas • Qué tráfico afecta las rutas que aprendo? saliente • Qué tráfico afecta las rutas que enseño? entrante • Qué pasa si no aprendo nada? Depende de lo que tenga configurado localmente en mi tabla de ruteo. BGP - RIU - 23 Configuración Básica • router bgp <ASN> • crea el proceso BGP dentro del router • neighbor <ip> remote-as <AS-remoto> • vecinos internos (mismo AS) • vecinos externos (distinto AS) • generalmente los externos comparten una subred, son adyacentes. Los internos (iBGP) pueden estar en cualquier parte del Sistema Autónomo. • Nota: Cisco IOS permite ejecutar sólo un proceso BGP a la vez, por lo tanto, un router no puede pertenecer a más de un Sistema Autónomo. • Aparte pueden tener la configuración del IGP (los vecinos son descubiertos automáticamente). router eigrp 64496 BGP - RIU - 24 Configuración Básica • network <red> [mask <máscara>] • Se da de alta una red en la tabla de BGP y la marca como local al AS • Sintaxis similar pero diferente significado con el comando network de un IGP (en RIP, quedan determinadas las interfaces que están sobre esa red para envíar y recibir actualizaciones, así como que redes conectadas directamente a esas interfaces se anunciarán) • La máscara permite especificar supernetting o subnetting BGP - RIU - 25 Configuración Básica • Ejemplo: router bgp 64496 network 203.0.113.0 mask 255.255.255.0 neighbor 192.0.2.2 remote-as 64500 neighbor 192.0.2.22 remote-as 64505 BGP - RIU - 26 Configuración Básica AS 64496 192.0.2.0 198.51.100.1 198.51.100.0/30 A • • • B AS 64505 203.0.113.0 198.51.100.2 Configuración Router A Configuración Router B router bgp 64496 network 192.0.2.0 neighbor 198.51.100.2 remote-as 64505 router bgp 64505 network 203.0.113.0 neighbor 198.51.100.1 remote-as 64496 Esas rutas deben existir en la tablas de ruteo del router local o no serán enviadas en las actualizaciones. También podría usarse cada comando network con el parámetro mask 255.255.255.0 Las rutas aprendidas son propagadas por defecto (pueden ser filtradas por BGP - RIU - 27 una política de ruteo). Configuración Básica AS 64496 192.0.2.0 198.51.100.1 198.51.100.0/30 A • • • B AS 64505 203.0.113.0 198.51.100.2 Configuración Router A Configuración Router B router bgp 64496 network 192.0.2.0 neighbor 198.51.100.2 remote-as 64505 router bgp 64505 network 203.0.113.0 neighbor 198.51.100.1 remote-as 64496 Para establecer las relaciones con otros router BGP están los comandos neighbor. Ese comando sirve para identificar un vecino con el cual el router local establece la sesión. El argumento ASN determina si el router vecino es EBGP o IBGP. BGP - RIU - 28 Configuración Básica • Comandos “show” básicos • show ip bgp • show ip bgp summary • show ip bgp <prefix> • show ip bgp neighbors [ <ip> ] • show ip bgp neighbors <ip> advertised-routes • show ip bgp neighbors <ip> routes • show ip bgp regexp <regexp> BGP - RIU - 29 show ip bgp • Redes listadas en orden numérico (ejemplo obtenido de route-server.gblx.net) *>i1.0.0.0/24 67.16.148.37 *>i1.0.4.0/24 67.16.148.37 *>i1.0.7.0/24 67.16.148.37 *>i1.0.204.0/22 67.16.148.37 *>i1.1.1.0/24 67.16.148.37 *>i1.1.8.0/24 67.16.148.37 *>i1.1.64.0/19 67.16.148.37 *>i1.11.0.0/21 67.16.148.37 38091 38091 38091 38091 38091 18313 i *>i2.0.0.0/16 67.16.148.37 *>i2.18.250.0/23 67.16.148.37 *>i5.63.160.0/24 67.16.148.37 *>i5.102.160.0/21 67.16.148.37 199284 i *>i5.202.254.0/23 67.16.148.37 *>i5.206.192.0/21 67.16.148.37 *>i5.206.200.0/21 67.16.148.37 *>i5.206.232.0/24 67.16.148.37 *>i5.230.252.0/24 67.16.148.37 *>i6.64.164.0/23 67.16.148.37 * i6.64.166.0/24 67.16.148.37 *>i6.64.166.0/24 67.16.148.37 *>i6.64.181.0/24 67.16.148.37 *>i17.253.52.0/23 67.16.148.37 * i17.253.66.0/24 67.16.148.37 * i17.253.66.0/24 67.16.148.37 *>i17.253.66.0/24 67.16.148.37 *>i17.253.72.0/23 67.16.148.37 *>i17.253.80.0/24 67.16.148.37 *>i20.143.208.0/20 67.16.148.37 *>i23.2.36.0/22 67.16.148.37 50 50 50 100 50 100 0 100 200 200 200 201 200 200 300 201 0 0 0 0 0 0 0 0 15169 i 3257 4826 56203 i 3257 4826 56203 56203 56203 i 3356 4651 9737 23969 i 15169 i 4134 i 10026 2519 i 3356 15412 15412 15412 15412 9848 38091 50 50 50 0 199 199 200 202 0 0 0 0 5511 3215 i 5511 34164 34164 i 1299 44395 44395 201921 e 286 8881 8881 8881 8881 8881 8881 8881 50 100 100 100 50 50 50 100 50 100 50 150 150 50 50 100 50 200 201 201 201 200 200 200 200 200 201 200 200 200 200 200 300 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1299 20771 48159 48159 48159 198357 ? 3356 31027 39642 i 3356 1764 60587 50719 i 3356 5603 21246 199195 i 3257 12586 i 209 721 27064 523 i 209 721 27064 1503 i 209 721 27064 1468 i 209 721 i 3356 714 6185 i 4637 714 6185 e 2516 714 6185 e 2516 714 6185 e 1299 4766 714 i 4637 714 6185 e 7473 7474 17647 i BGP - RIU - 30 2914 20940 20940 16625 i show ip bgp • • Las primeras tres columnas listan el status de cada ruta. Un * en la primer columna, indica que la ruta tiene un next-hop válido. Otras opciones: • • • • • "s" suppressed: BGP conoce la ruta, pero no está siendo anunciada, usualmente porque es parte de una ruta sumarizada. "d" dampened: BGP detiene el anuncio de una ruta que produce un efecto denominado flapping (se levanta y se baja) demasiado rápido hasta que se estabilice por un periodo de tiempo. "h" history: BGP conoce la red, pero no hay una ruta válida hacia ella. "r" RIB* failure: la ruta es anunciada a BGP pero no es instalada en la tabla de ruteo. Esto puede suceder porque hay otro protocolo que tiene la ruta con una mejor distancia * RIB: Routing Information Base administrativa. "S" stale: indica que la ruta está “detenida” y requiere ser refrescada cuando se reestablezca la conexión con su vecino. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 0 64496 65511 i 0 64496 64506 i 0 0 64506 e 0 64496 64501 i 0 0 64501 i 0 64496 ? BGP - RIU - 31 show ip bgp • La segunda columna tiene un signo mayor al lado de la ruta que fue seleccionada como el mejor camino hacia una red determinada. • La tercera columna está en blanco, indicando que el router aprendió todas las rutas de un vecino externo. Una ruta aprendida de un vecino iBGP debería tener una i. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 0 64496 65511 i 0 64496 64506 i 0 0 64506 e 0 64496 64501 i 0 0 64501 i 0 64496 ? BGP - RIU - 32 show ip bgp • La cuarta columna lista las redes. La que no tiene una máscara de subred, usa la máscara classfull (A /8, B /16, C /24). Cuando el router aprende la misma red desde múltiples fuentes, sólo lista la red una vez. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 0 64496 65511 i 0 64496 64506 i 0 0 64506 e 0 64496 64501 i 0 0 64501 i 0 64496 ? BGP - RIU - 33 show ip bgp summary BGP router identifier 192.0.2.51, local AS number 65537 BGP table version is 48347, main routing table version 48347 2558 network entries and 3869 paths using 389968 bytes of memory 527 BGP path attribute entries using 28600 bytes of memory 250 BGP AS-PATH entries using 6304 bytes of memory 1 BGP community entries using 24 bytes of memory 191 BGP route-map cache entries using 3056 bytes of memory 1028 BGP filter-list cache entries using 12336 bytes of memory BGP activity 14929/71963 prefixes, 42175/38306 paths Neighbor 192.0.2.114 192.0.2.122 192.0.2.182 192.0.2.190 192.0.2.238 203.0.113.1 203.0.113.11 203.0.113.23 203.0.113.114 198.51.100.2 198.51.100.117 V 4 4 4 4 4 4 4 4 4 4 4 AS MsgRcvd MsgSent 64496 38357 31873 64498 31728 34362 65551 32203 34388 65537 31146 62851 65537 0 0 65537 38217 52708 65537 31057 57875 65537 31066 57722 65537 244830 57881 65537 33504 31208 65537 31048 31242 TblVer InQ OutQ Up/Down State/PfxRcd 48347 0 0 6d08h 1342 48347 0 0 6d09h 97 48347 0 0 2w1d 70 48347 0 0 2w1d 4 0 0 0 never Active 48347 0 0 6d08h 2329 48347 0 0 6d08h 3 48347 0 0 2w1d 1 48347 0 0 6d07h 0 48347 0 0 6d07h 18 48347 0 0 2d14h 2 BGP - RIU - 34 show ip bgp <prefix> route-server.phx1>sh ip bgp 170.210.0.0 BGP routing table entry for 170.210.0.0/16, version 6559918 Paths: (7 available, best #6, table default) Not advertised to any peer 6762 7303 4270 67.16.148.37 from 4.69.244.197 (4.69.244.197) Origin IGP, metric 100, localpref 200, valid, internal Community: 3549:2406 3549:30840 Originator: 67.17.82.183, Cluster list: 0.0.6.8 6762 7303 4270 67.16.148.37 from 4.69.243.137 (4.69.243.137) Origin IGP, metric 100, localpref 200, valid, internal Community: 3549:2352 3549:30840 Originator: 67.17.81.117, Cluster list: 0.0.6.7 6762 7303 4270 67.16.148.37 from 4.69.244.133 (4.69.244.133) Origin IGP, metric 100, localpref 200, valid, internal Community: 3549:2101 3549:30840 Originator: 67.17.82.114, Cluster list: 0.0.6.17 6762 7303 4270 67.16.148.37 from 4.69.244.196 (4.69.244.196) Origin IGP, metric 100, localpref 200, valid, internal Community: 3549:2406 3549:30840 Originator: 67.17.82.183, Cluster list: 0.0.6.8 6762 7303 4270 67.16.148.37 from 4.69.244.132 (4.69.244.132) Origin IGP, metric 100, localpref 200, valid, internal Community: 3549:2101 3549:30840 Originator: 67.17.82.114, Cluster list: 0.0.6.17 6762 7303 4270 67.16.148.37 from 4.69.243.136 (4.69.243.136) Origin IGP, metric 100, localpref 200, valid, internal, best Community: 3549:2352 3549:30840 Originator: 67.17.81.117, Cluster list: 0.0.6.7 6762 7303 4270 67.16.148.37 from 4.69.243.72 (4.69.243.72) Origin IGP, metric 100, localpref 200, valid, internal Community: 3549:2471 3549:30840 Originator: 67.17.82.90, Cluster list: 0.0.6.11 route-server.phx1> BGP - RIU - 35 show ip bgp neighbor [<ip>] show ip bgp neighbor 192.0.2.238 BGP neighbor is 192.0.2.238, remote AS 65537, internal link BGP version 4, remote router ID 0.0.0.0 BGP state = Active Last read 2w1d, hold time is 180, keepalive interval is 60 seconds Received 0 messages, 0 notifications, 0 in queue Sent 0 messages, 0 notifications, 0 in queue Route refresh request: received 0, sent 0 Minimum time between advertisement runs is 5 seconds For address family: IPv4 Unicast BGP table version 48398, neighbor version 0 Index 5, Offset 0, Mask 0x20 Route-Reflector Client 0 accepted prefixes consume 0 bytes Prefix advertised 0, suppressed 0, withdrawn 0 Connections established 0; dropped 0 Last reset 2w1d, due to User reset No active TCP connection Neighbor 192.0.2.190 192.0.2.238 203.0.113.1 V 4 4 4 AS MsgRcvd MsgSent 65537 31146 62851 65537 0 0 65537 38217 52708 TblVer InQ OutQ Up/Down State/PfxRcd 48347 0 0 2w1d 4 0 0 0 never Active - 36 48347 0 0 6d08h BGP - RIU 2329 show ip bgp neighbors <ip> advertised-routes show ip bgp neighbors 192.0.2.51 advertised-routes BGP table version is 48402, local router ID is 192.0.2.65 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete *> *> *> *> *> Network 192.0.2.64/26 192.0.2.128/27 192.0.2.160/27 192.0.2.192/27 192.0.2.224/27 Next Hop 0.0.0.0 198.51.100.3 198.51.100.22 198.51.100.35 198.51.100.2 Metric LocPrf Weight Path 0 32768 i 0 64496 0 0 64506 100 65550 0 65549 64506 i e i i BGP - RIU - 37 show ip bgp neighbors <ip> routes show ip bgp neighbors 192.0.2.51 routes BGP table version is 48402, local router ID is 192.0.2.51 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network *>i203.0.113.0/26 *>i203.0.113.64/26 *>i203.0.113.128/27 *>i203.0.113.160/27 *>i203.0.113.192/27 *>i203.0.113.224/27 Next Hop 198.51.100.1 198.51.100.65 198.51.100.129 198.51.100.161 198.51.100.193 198.51.100.225 Metric LocPrf Weight Path 0 600 0 65549 i 0 600 0 65547 65548 i 0 600 0 65547 i 0 600 0 65548 i 0 600 0 65496 e 0 600 0 65500 ? BGP - RIU - 38 show ip bgp - bgp regexp • Redes listadas en orden numérico *>i1.0.0.0/24 67.16.148.37 *>i1.0.4.0/24 67.16.148.37 *>i1.0.7.0/24 67.16.148.37 *>i1.0.204.0/22 67.16.148.37 *>i1.1.1.0/24 67.16.148.37 *>i1.1.8.0/24 67.16.148.37 *>i1.1.64.0/19 67.16.148.37 *>i1.11.0.0/21 67.16.148.37 38091 38091 38091 38091 38091 18313 i *>i2.0.0.0/16 67.16.148.37 *>i2.18.250.0/23 67.16.148.37 *>i5.63.160.0/24 67.16.148.37 *>i5.102.160.0/21 67.16.148.37 199284 i *>i5.202.254.0/23 67.16.148.37 *>i5.206.192.0/21 67.16.148.37 *>i5.206.200.0/21 67.16.148.37 *>i5.206.232.0/24 67.16.148.37 *>i5.230.252.0/24 67.16.148.37 *>i6.64.164.0/23 67.16.148.37 * i6.64.166.0/24 67.16.148.37 *>i6.64.166.0/24 67.16.148.37 *>i6.64.181.0/24 67.16.148.37 *>i17.253.52.0/23 67.16.148.37 * i17.253.66.0/24 67.16.148.37 * i17.253.66.0/24 67.16.148.37 *>i17.253.66.0/24 67.16.148.37 *>i17.253.72.0/23 67.16.148.37 *>i17.253.80.0/24 67.16.148.37 *>i20.143.208.0/20 67.16.148.37 *>i23.2.36.0/22 67.16.148.37 50 50 50 100 50 100 0 100 200 200 200 201 200 200 300 201 0 0 0 0 0 0 0 0 15169 i 3257 4826 56203 i 3257 4826 56203 56203 56203 i 3356 4651 9737 23969 i 15169 i 4134 i 10026 2519 i 3356 15412 15412 15412 15412 9848 38091 50 50 50 0 199 199 200 202 0 0 0 0 5511 3215 i 5511 34164 34164 i 1299 44395 44395 201921 e 286 8881 8881 8881 8881 8881 8881 8881 50 100 100 100 50 50 50 100 50 100 50 150 150 50 50 100 50 200 201 201 201 200 200 200 200 200 201 200 200 200 200 200 300 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1299 20771 48159 48159 48159 198357 ? 3356 31027 39642 i 3356 1764 60587 50719 i 3356 5603 21246 199195 i 3257 12586 i 209 721 27064 523 i 209 721 27064 1503 i 209 721 27064 1468 i 209 721 i 3356 714 6185 i 4637 714 6185 e 2516 714 6185 e 2516 714 6185 e 1299 4766 714 i 4637 714 6185 e 7473 7474 17647 i BGP - RIU - 39 2914 20940 20940 16625 i bgp regexp • Una expresión regular se utiliza para encontrar patrones de coincidencia en un grupo de caracteres de entrada. Caracter Descripción ^ comienzo de string $ final de string [ ] rango de caracteres - usado para especificar un rango ( ej. [0-9] ) () grupo lógico . cualquier caracter individual * cero o muchas instancias + una o más instancias ? cero o una instancia coma, apertura o cierre de llave, apertura o cierre de paréntesis, comienzo o final de string o espacio _ http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/26634-bgp-toc.html#asregexp BGP - RIU - 40 show ip bgp - bgp regexp • Todas las subredes originadas desde el AS 64496 (AS path termina en 64496) Router# show ip bgp ... Network * 192.0.2.0/29 *> * 198.51.100.0/30 * ... • regexp _64496$ Next Hop 203.0.113.6 203.0.113.1 203.0.113.6 203.0.113.1 Metric LocPrf Weight 0 0 0 0 0 0 Path 64500 64496 64500 64496 64496 ? ? 64496 ? ? Todas las redes que se pueden alcanzar via AS 64496 (AS path comienza con 64496): Router# show ip bgp ... Network *> 192.0.2.8/29 * 192.0.2.16/30 * 192.0.2.128/25 *> 198.51.100.8/29 ... regexp ^64496_ Next Hop 203.0.113.1 203.0.113.1 203.0.113.1 203.0.113.1 Metric LocPrf Weight Path 0 0 64496 0 64496 0 0 64496 0 0 64496 ? 64500 ? ? ? BGP - RIU - 41 show ip bgp quote-regexp • Si es necesario filtrar la salida, se usa quote-regexp • Por ejemplo, para encontrar todas las redes 192.x.x.x originadas desde el AS 64496: Router# show ip bgp quote-regexp "_64496$" | include ^. 192\. * 192.0.2.0/30 203.0.113.1 0 64500 64496 ? * 192.0.2.9/32 203.0.113.1 0 64500 64496 ? • O, para encontrar todas las subredes actualmente alcanzables via AS 64496: Router# show ip bgp quote-regexp "^64496_" | include ^.> *> 192.0.2.8/29 203.0.113.1 0 *> 192.0.2.16/29 203.0.113.1 0 *> 192.0.2.32/28 203.0.113.1 0 0 64496 ? 0 64496 ? 0 64496 ? BGP - RIU - 42 Configuración Básica • Comandos “clear” • clear ip bgp <neighbor-address> • clear ip bgp peer-group <tag> • Peer-group: neighbors con la misma política de actualización (rutas, route-maps, filter-list, next-hop, etc). Simplifican la configuración y mejora la eficiencia. • Las nuevas versiones soportan “soft in” y “soft out” (lo que aprende y lo que enseña). • Implica menos carga para el router. • Los clear indiscriminados pueden colgar un router (CPU, inestabilidades). ( clear ip bgp * ) BGP - RIU - 43 Atributos de rutas Optional transitive • • Un atributo que puede o no ser reconocido por todas las implementaciones de BGP (de ahi que es opcional) . Debido a que el atributo es transitivo, BGP lo acepta y lo anuncia junto con la ruta (aun si no fuera reconocido). Ejemplo: COMMUNITY BGP - RIU - 44 Atributos de rutas Optional non-transitive • Un atributo que puede o no ser reconocido por todas las implementaciones de BGP. • Si un router receptor reconociera o no el atributo, al ser no transitivo no debe ser anunciado a otros peers . Ejemplo: ORIGINATOR_ID BGP - RIU - 45 Atributos de rutas • Well-known mandatory (mandatorios muy difundidos) – AS-Path – Next-hop – Origin • Well-known discretionary (discrecionales muy difundidos) − Local preference − Atomic aggregate • Optional transitive - Community - Aggregator • Optional non-transitive - Multi-exit-discriminator (MED) BGP - RIU - 46 Atributos de rutas • • • • • • • Origin Next-hop AS_PATH Multi_EXIT_DISC (Multi-Exit Discriminator) (MED) LOCAL_PREF (Local Preference) COMMUNITY WEIGHT BGP - RIU - 47 Atributos de rutas: origin • • Informa a todos los sistemas autónomos como fue introducido el prefijo de red 3 valores: IGP, EGP, incomplete i originada en un IGP, anunciada con “network” e originada en un EGP (BGP a BGP) ? origen desconocido, normalmente producto de una redistribución incompleta desde otro protocolo de ruteo BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 0 64496 65511 i 0 64496 64506 i 0 0 64506 e 0 64496 64501 i 0 0 64501 i 0 64496 ? BGP - RIU - 48 Atributos de rutas: next-hop • • • • No necesariamente es la IP del router directamente conectado. En un IGP, el next-hop (NH) es la IP del router que anunció la ruta. En BGP no: – En las sesiones eBGP, el NH es la IP del neighbor que anunció la ruta. – En las sesiones iBGP: • Rutas originadas dentro del AS: NH es la IP del router que la origina. • Rutas incorporadas por eBGP: se transporta inalterado el NH aprendido por eBGP. Un next-hop 0.0.0.0 indica que el router local originó la ruta. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 0 64496 65511 i 0 64496 64506 i 0 0 64506 e 0 64496 64501 i 0 0 64501 i 0 64496 ? BGP - RIU - 49 Atributos de rutas: next-hop • En medios multiacceso (Ethernet, FR, ATM), el NH es la IP de la interfaz del router que originó la ruta • Ejemplo: CABASE IP 192.0.2.1 Tráfico Switch IP 198.51.100.2 NH 198.51.100.2 BGP - RIU - 50 Atributos de rutas: next-hop • Error común, NH cambiado BGP - RIU - 51 Atributos de rutas: AS-Path • Secuencia de ASN que se deben atravezar para llegar al AS destino. • Puede ser utilizado en el algoritmo de selección de rutas. • Un AS Path en blanco, significa que la ruta fue originada en el AS local. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 0 64496 65511 i 0 64496 64506 i 0 0 64506 e 0 64496 64501 i 0 0 64501 i 0 64496 ? BGP - RIU - 52 Atributos de rutas: AS-Path • Puede ser utilizado para detectar loops. BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 95 0 64496 *> 192.0.2.128/26 198.51.100.1 95 0 64496 *>i 198.51.100.22 95 0 64506 * 203.0.113.128/25 198.51.100.1 95 0 64496 *> 198.51.100.114 100 0 64501 *> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i • 65511 64506 e 64501 i 64497 i i i 64498 64499 El primer AS (de izquierda a derecha) muestra el AS adyacente desde donde se aprendió la ruta (el AS local no se muestra). El resto, representa la secuencia de ASN que se debe atravezar para llegar a destino. El último ASN es el AS origen de la ruta. • utilizado para realizar “prepend” en route maps BGP - RIU - 53 Atributos de rutas: MED • • • • • • • • MED es utilizado para anunciar a los vecinos eBGP sobre como deben salir de sus AS remotos para alcanzar las redes que pertenecen a este AS (tráfico entrante). Se le indica a otro AS cuál debería ser la puerta de entrada a nuestro AS. MED solo es enviado a vecinos eBGP. Los path con el valor MED más bajo son los más preferidos. Se utiliza en conexiones multihomed. Baja precedencia en el algoritmo de selección de rutas. Es preferible usar COMMUNITY. Med es un valor calculado por un protocolo. Se puede influir en él ajustando cosas (ancho de banda, route-maps, etc). BGP table version is 134358, local router ID is 198.51.100.1 Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 95 0 64496 65511 i 95 0 64496 64506 i 95 0 64506 e 95 0 64496 64501 i 100 0 64501 i BGP64498 - RIU - 54i 0 100 0 64496 64497 Atributos de rutas: MED • • Los routers A y B anuncian el prefijo 192.0.2.0/24 con MED 50 y 80 a un eBGP vecino (AS 64500). El tráfico entrante al AS 64500 desde el AS 64496 elegirá el camino por el router A, pues tiene BGP - RIU - 55 menor MED. Atributos de rutas: LOCAL_PREF • Indica un grado de preferencia respecto a otras rutas al mismo destino. • Es un atributo local al sistema autónomo (se propaga por iBGP pero no por eBGP). • Mayor local preference indica mejor preferencia: • local pref 600 es mejor que 100 (este es el valor por defecto) • Da una visión uniforme a todo el AS. • Se setea mediante route-maps. Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 95 0 64496 65511 i 95 0 64496 64506 i 95 0 64506 e 95 0 64496 64501 i 100 0 64501 i 0 100 0 64496 64497 64498 i BGP - RIU - 56 Atributos de rutas: LOCAL_PREF BGP - RIU - 57 Atributos de rutas: COMMUNITY • Community representa una técnica para marcar un conjunto de rutas. • Es factible usar estos flags para aplicar políticas de ruteo específicas (ej. local preference, etc.) dentro de la red. • Está representado por 2 enteros de 16 bits (RFC1998). • El formato común es <local-ASN>:xx . • 0:0 a 0:65535 y 65535:0 a 65535:65535 están reservados. • Muy útiles para aplicar políticas entre sistemas autónomos. • Estandar acordado entre proveedores – marcan sus rutas. BGP - RIU - 58 Atributos de rutas: COMMUNITY access-list 101 permit ip 192.0.2.0 0.0.0.255 any access-list 102 permit ip 198.51.100.0 0.0.0.255 any ! route-map Peer-R1 permit 10 match ip address 101 set community 64496:650 route-map Peer-R2 permit 10 match ip address 102 set community 64500:750 ip community-list 1 permit 64496:650 ip community-list 2 permit 64500:750 ! route-map Peer-R3 permit 10 match community 1 set local-preference 130 route-map Peer-R4 permit 10 match community 2 set local-preference 140 BGP - RIU - 59 Atributos de rutas: Weight • Es similar a local_pref, sólo que tiene efecto local en el router que se define. • No se pasa esta info a otros routers. • Tiene precedencia más alta que cualquier otro atributo (algoritmo de selección de camino). • Sirve para discriminar rutas entre proveedores conectados al mismo router. • Se setea mediante route-maps. • Propietario de CISCO. Network *> 192.0.2.0/26 *> 192.0.2.128/26 *>i * 203.0.113.128/25 *> *> 203.0.113.0/25 Next Hop 198.51.100.1 198.51.100.1 198.51.100.22 198.51.100.1 198.51.100.114 198.51.100.1 Metric LocPrf Weight Path 95 300 64496 65511 i 95 0 64496 64506 i 95 100 64506 e 95 0 64496 64501 i 100 0 64501 i 0 100 0 64496 64497 64498 i BGP - RIU - 60 Atributos de rutas: Weight BGP - RIU - 61 Atributos de rutas: Weight BGP - RIU - 62 Local-pref, MED y Weight 192.0.2.0/24 192.0.2.0/24 eBGP AS 64496 192.0.2.0/24 C A iBGP BGP – default behavior Router B Network ∗>i 192.0.2.0/24 Next Hop Metric LocPrf Weight C 0 100 0 B AS 64500 BGP - RIU - 63 Local-pref, MED y Weight 192.0.2.0/24 192.0.2.0/24 set local-pref 200 eBGP AS 64496 192.0.2.0/24 A C iBGP Router B aprende local-pref 200 LOCAL_PREF Router B Network ∗>i 192.0.2.0/24 Next Hop Metric LocPrf Weight C 0 200 0 B AS 64500 BGP - RIU - 64 Local-pref, MED y Weight 192.0.2.0/24 192.0.2.0/24 set weight 50 eBGP AS 64496 192.0.2.0/24 A C iBGP Router B no aprende weight WEIGHT Router B Network ∗>i 192.0.2.0/24 Next Hop Metric LocPrf Weight C 0 100 0 B AS 64500 BGP - RIU - 65 Local-pref, MED y Weight 192.0.2.0/24 set metric 80 192.0.2.0/24 metric = 80 eBGP AS 64496 192.0.2.0/24 A C iBGP Router B aprende métrica 80 MULTI_EXIT_DISC Router B Network ∗>i 192.0.2.0/24 Next Hop Metric LocPrf Weight C 80 100 0 B AS 64500 BGP - RIU - 66 Redistribución del default • network 0.0.0.0 – Debe existir la ruta en la tabla de ruteo – Se enseña a todos los neighbors – Importante: poner filtros!! • default-information originate – Anunciada a todos los neighbor – No importa si el router tiene una ruta por default • Redistribution – Debe existir la ruta en la tabla de ruteo • neighbor x.x.x.x default-originate – Aplicado a un neighbor – No importa si el router tiene una ruta por default BGP - RIU - 67 Insertando prefijos en BGP • Hay 2 maneras: – redistribute static – Network – CUIDADO….. BGP - RIU - 68 Insertando prefijos en BGP • …mucho cuidado con redistribute! • redistribute <routing-protocol> significa que todas las rutas del protocolo <routing-protocol> serán transferidas dentro del protolo de ruteo vigente. • Es áltamente recomendable evitarlo. • Redistribute normalmente usado con “route-maps” y bajo exigentes controles administrativos. • Se pierde el control de lo anunciado. BGP - RIU - 69 Insertando prefijos en BGP Network • Ejemplo: router bgp 64496 network 203.0.113.128 mask 255.255.255.128 ip route 203.0.113.128 255.255.255.128 serial0 • Una ruta coincidente debe existir en la tabla de ruteo antes de que la red sea anunciada. • Fuerza el atributo origin a ser “IGP”. BGP - RIU - 70 Configurando Aggregation • Route aggregation es un método alternativo para sumarizar rutas, el cual es usado para minimizar el número de rutas de una tabla de ruteo en una red IP. • Aggregation implica anunciar solo el bloque de direcciones, no las subredes. • Se genera internamente. • Hay 3 formas de configurarlo: – redistribute static NO!!! – aggregate-address – network command BGP - RIU - 71 Configurando Aggregation aggregate-address • Ejemplo: router bgp 64496 network 203.0.113.128 mask 255.255.255.128 aggregate-address 203.0.113.128 255.255.255.128 [summary-only] • Requiere prefijos mucho más específicos en la tabla de BGP antes de ser anunciada. • summary-only – Parámetro opcional que asegura que la ruta sumarizada es anunciada si una ruta más específica existe en la tabla de ruteo. BGP - RIU - 72 Configurando Aggregation network • Ejemplo ip route 203.0.113.128 255.255.255.128 null0 250 router bgp 64496 network 203.0.113.128 mask 255.255.255.128 • Una ruta coincidente debe existir en la tabla de ruteo antes de que la red sea anunciada. • La ruta estática a “null0” es llamada ruta “pull up”. • Los paquetes son enviados si no hay una ruta más específica en la tabla de ruteo. • La distancia administrativa 250 asegura que será la ruta estática de último recurso. • Es la forma más fácil y mejor de generar una ruta agregada. BGP - RIU - 73 Filtrado de rutas • Proceso muy importante a fin de garantizar la estabilidad de nuestro AS y los AS vecinos. • Filtrado de entrada: es aplicado a rutas aprendidas • no se incluyen en nuestra tabla de ruteo. • Filtrado de salida: se aplica a rutas previamente a ser anunciadas a un vecino. • no se incluirán en las tablas de ruteo remotas. • Razones? • económicas – transit ISP • seguridad – sólo rutas asignadas a nuestros clientes • técnicas – problemas de memoria BGP - RIU - 74 Filtrado de rutas • Filtros basados en direcciones IP – distribute-list (access-lists) – prefix-list (mas nuevos) • Filtros basados en el path – filter-list (as-path) BGP - RIU - 75 Filtrado de rutas Filtros basados en direcciones IP • Se define una lista de acceso con las IP´s que se permiten y deniegan. • Se aplica esa lista de acceso a la información que recibimos (in) o enviamos (out) a un neighbor. • Sintaxis: – neighbor X.X.X.X distribute-list NNN (in | out) BGP - RIU - 76 ACL´s: standard vs. extendidas • Listas de acceso standard: solo miran la porción de red de una ruta – access-list 1 permit 203.0.113.0 – access-list 2 permit 203.0.113.0 0.0.0.255 • Listas de acceso extendidas: permiten tener en cuentas las máscaras. – access-list ... <src> <src-wild> <mask> <mask-wild> – access-list 110 permit ip 203.0.113.0 0.0.0.255 255.255.255.0 0.0.0.0 – access-list 112 deny ip 198.51.100.0 0.0.0.0 255.255.255.128 0.0.0.127 BGP - RIU - 77 Filtrado de rutas • Ejemplo: neighbor 203.0.113.22 distribute-list 10 in neighbor 203.0.113.22 distribute-list 11 out ... access-list 10 permit ip 192.0.2.0 access-list 11 deny ip 10.0.0.0 access-list 11 deny ip 192.168.0.0 access-list 11 permit ip any BGP - RIU - 78 Filtrado de rutas • Basados en direcciones IP: distribute-list (standard access-list) hostname R6 ! router bgp 64496 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 distribute-list 1 in ! access-list 1 deny 10.10.10.0 0.0.0.255 access-list 1 permit any hostname R5 ! router bgp 64505 no synchronization network 203.0.113.0 mask 255.255.255.0 network 10.10.10.0 mask 255.255.255.0 network 10.10.0.0 mask 255.255.224.0 no auto-summary neighbor 192.0.2.1 remote-as 64496 BGP - RIU - 79 Filtrado de rutas • Basados en direcciones IP: distribute-list (standard access-list) Router R6# show ip bgp BGP table version is 3, local router ID is 192.0.2.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 10.10.0.0/19 192.0.2.2 0 0 64505 i *> 203.0.113.0/24 192.0.2.2 0 0 64505 i BGP - RIU - 80 Filtrado de rutas • Basados en direcciones IP: distribute-list (extended access-list) hostname R6 Anuncia: 10.10.1.0/24 a 10.10.31.0/24 y 10.10.0.0/19 ! hostname R5 router bgp 64496 ! router bgp 64505 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 distribute-list 1 in no synchronization network 10.10.1.0 mask 255.255.255.0 ! network 10.10.2.0 mask 255.255.255.0 access-list 1 permit 10.10.0.0 0.0.31.255 … … network 10.10.31.0 mask 255.255.255.0 Con esa lista de acceso, sh ip bgp en el router 100 muestra más redes de las deseadas network 10.10.0.0 mask 255.255.224.0 no auto-summary neighbor 192.0.2.1 remote-as 64496 BGP - RIU - 81 Filtrado de rutas • Basados en direcciones IP: distribute-list (extended access-list) Router R6# sh run hostname R6 ! router bgp 64496 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 distribute-list 101 in ! access-list 101 permit ip 10.10.0.0 0.0.0.0 255.255.224.0 0.0.0.0 R6# show ip bgp BGP table version is 2, local router ID is 192.0.2.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 10.10.0.0/19 Next Hop 192.0.2.2 Metric LocPrf Weight Path 0 0 64505 i BGP - RIU - 82 Filtrado de rutas Prefix-list • Para realizar filtrado más simple y más fácil de leer, es posible aplicar listas de prefijos (prefix-list ) directamente a un vecino BGP utilizando: neighbor {ip-address | peer-group} prefix-list prefix-list-name {in | out} command. • Es una alternativa más simple e intuitiva que las listas de acceso tradicionales. Permiten utilizar un nombre o un número que especifica la secuencia de instancias permit o deny. Especificando el número es factible editar cada instancia individual, sin necesidad de remover la lista entera (como ocurre con las access list). • Las prefix-list eliminan la carga de cálculo para las wildcard en una máscara. Si se desea especificar un host en particular (198.51.100.45/32) el ejemplo queda: ip prefix-list bad-host seq 100 deny 198.51.100.45/32 BGP - RIU - 83 Filtrado de rutas Prefix-list router bgp 64496 neighbor 203.0.113.100 remote-as 65551 neighbor 203.0.113.100 prefix-list PEER-IN in neighbor 203.0.113.100 prefix-list PEER-OUT out ! ip prefix-list PEER-IN deny 198.51.100.0/24 ip prefix-list PEER-IN permit 0.0.0.0/0 le 32 ip prefix-list PEER-OUT permit 192.0.2.0/24 BGP - RIU - 84 Filtrado de rutas • Basados en direcciones IP: prefix-list hostname R6 hostname R5 ! ! router bgp 64496 router bgp 64505 neighbor 192.0.2.2 remote-as 64505 no synchronization neighbor 192.0.2.2 distribute-list 1 in network 203.0.113.0 mask 255.255.255.0 ! network 10.10.10.0 mask 255.255.255.0 ip prefix-list n seq 10 permit 0.0.0.0/0 le 19 network 10.10.0.0 mask 255.255.224.0 no auto-summary neighbor 192.0.2.1 remote-as 64496 BGP - RIU - 85 Filtrado de rutas • Basados en direcciones IP: prefix-list R6# show ip bgp BGP table version is 2, local router ID is 192.0.2.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network *> 10.10.0.0/19 Next Hop 192.0.2.2 Metric LocPrf Weight Path 0 0 64505 i BGP - RIU - 86 Filtrado de rutas Por ejemplo si tenemos un router con esta configuración en su bgp: Willis# show run | begin bgp router bgp 64496 no synchronization bgp log-neighbor-changes network 198.51.100.0 mask 255.255.255.192 network 198.51.100.64 mask 255.255.255.192 network 198.51.100.128 mask 255.255.255.192 network 198.51.100.192 mask 255.255.255.192 neighbor 203.0.113.100 remote-as 65551 neighbor 203.0.113.100 prefix-list route-filter out neighbor 203.0.113.210 remote-as 64505 neighbor 203.0.113.210 remote-as 64505 no auto-summary ! ip prefix-list route-filter seq 5 permit 198.51.0.0/16 le 26 Ejecutando: Willis# show ip bgp neighbors 203.0.113.100 advertised-routes Network Next Hop Metric LocPrf Weight *> 198.51.100.0/26 0.0.0.0 0 32768 *> 198.51.100.64/26 0.0.0.0 0 32768 *> 198.51.100.128/26 0.0.0.0 0 32768 *> 198.51.100.192/26 0.0.0.0 0 32768 | begin Network Path i i i i Esta lista provee la misma funcionalidad que una lista de acceso extendida con el uso de un wildcard 0.0.0.63. La prefix-list 198.51.0.0/16 le 26 permite cualquier red que comience con 198.51.x.x con 26 bits de máscara de subred. El uso de los comandos ge y le pueden resultar un poco confusos al principio, matchean un rango de máscaras de subred, como la máscara inversa (wildcard) BGP - RIU - 87 Filtrado de rutas Filtros por AS-Path • Se define una expresión regular que denota un as-path: – ip as-path access-list <n> (permit|deny) <regexp> • Se aplica esa expresión regular a la información que recibimos (in) o enviamos (out) a un neighbor. • Sintaxis: – neighbor x.x.x.x filter-list nnn (in | out) BGP - RIU - 88 Filtros por AS-PATH • Ejemplo: ... neighbor 198.51.100.22 filter-list 10 in neighbor 198.51.100.22 filter-list 11 out ... ip as-path access-list 10 permit ^$ ip as-path access-list 11 deny 64496$ ip as-path access-list 11 deny ^645 ip as-path access-list 11 permit _64497_64498_ ... BGP - RIU - 89 Filtros por AS-PATH Ejemplo: Permitir redes originadas por el AS 64505 entrando al R1 (ninguna otra ruta) R1 # sh run ... router bgp 65550 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 filter-list 1 in ... ip as-path access-list 1 permit ^64505$ ... BGP - RIU - 90 Filtros por AS-PATH Ejemplo: Denegar redes originadas en AS64505 y permitir el ingreso a AS64500 a todas las demás redes, a través de R3 R3 # sh run ... ip as-path access-list 1 deny _64505$ ip as-path access-list 1 permit .* ... router bgp 64500 neighbor 203.0.113.2 remote-as 65550 neighbor 203.0.113.2 filter-list 1 in ... BGP - RIU - 91 Filtros por AS-PATH Ejemplo: Solo permitir redes originadas en el AS64505, y AS´s directamente conectados a AS64505, que entran al AS65550 por el R1 R1 # sh run ... ip as-path access-list 1 permit ^64505_[0-9]*$ ... router bgp 1 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 filter-list 1 in ... BGP - RIU - 92 Filtrado de rutas Route-maps • Los route-map son similares a las sentencias de un lenguaje de programación, • “if ……. then ……” • Cada instancia del route-map tiene un número de secuencia. • Son ejecutados en orden desde la sentencia con menor número de secuencia hasta el más alto. Es posible editarlos o modificarlos utilizando este número de secuencia. • Si en un route-map, una sentencia con un determinado criterio de coincidencia resulta verdadera, la ejecución del route-map se detiene. • Se puede utilizar route-map para permitir o denegar según el criterio encontrado por la sentencia match. BGP - RIU - 93 Filtrado de rutas Route-maps • Si no existiera una sentencia match dentro de una instancia de un route-map, todas las rutas resultan con criterio verdadero. Las sentencias set son aplicadas a todas las rutas *. • Si no existiera una lista de acceso para la sentencia match dentro de la instancia del route-map, todas las rutas resultan con criterio verdadero. Las sentencias set se aplican a todas las rutas. • Tal como con las listas de acceso, una denegación implícita es incluida al final del route-map. • Si múltiples sentencias match son utilizadas dentro de una instancia de un mapa de ruteo, todas las sentencias match deben resultar verdaderas para que de la instancia surja un resultado verdadero * o paquetes BGP - RIU - 94 Filtrado de rutas Route-maps • • • • • • • • • • • • • • • • • • match as-path match community-list match ip address match ip next-hop match ip route-source match metric (IP) match route-type (IP) match tag set as-path set automatic-tag set community set level (IP) set local-preference set metric (BGP, OSPF, RIP) set metric-type set next-hop set tag (IP) set weight BGP - RIU - 95 Route-maps router bgp 64496 neighbor 203.0.113.10 route-map infilter in ! route-map infilter permit 10 match ip address prefix-list HIGH-PREF set local-preference 120 ! route-map infilter permit 20 match ip address prefix-list LOW-PREF set local-preference 80 ! route-map infilter permit 30 ! ip prefix-list HIGH-PREF permit 192.0.2.0/25 ip prefix-list LOW-PREF permit 192.0.2.128/25 BGP - RIU - 96 Route-maps router bgp 64496 neighbor 203.0.113.10 route-map filter-on-as-path in ! route-map filter-on-as-path permit 10 match as-path 1 set local-preference 80 set weight 200 set metric 127 set next-hop 192.0.2.10 ! route-map filter-on-as-path permit 20 match as-path 2 set local-preference 200 set weight 500 set metric 327 set next-hop 192.0.2.100 ! route-map filter-on-as-path permit 30 ! ip as-path access-list 1 permit _64505$ ip as-path access-list 2 permit _64510_ BGP - RIU - 97 Route-maps • Uso de prepend en un route-map router bgp 64510 network 192.0.2.0 neighbor 203.0.113.10 remote-as 64496 neighbor 203.0.113.10 route-map set-path out ! route-map set-path permit 10 set as-path prepend 64510 64510 • • Debe ser usado dentro de nuestro AS De no ser así BGP puede detectar un loop y retirará la ruta BGP - RIU - 98 Atributos de rutas: AS-Path • utilizado para realizar “prepend” en route maps Network Next Hop Metric LocPrf Weight Path *> 192.0.2.0/26 198.51.100.1 95 0 64496 *> 192.0.2.128/26 198.51.100.1 95 0 64496 *>i 198.51.100.22 95 0 64506 * 203.0.113.128/25 198.51.100.1 95 0 64496 *> 198.51.100.114 100 0 64501 *> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i 65511 64506 e 64501 i 64497 i i i 64498 64499 BGP - RIU - 99 Comandos “show” • show ip bgp paths • show ip bgp filter-list <access-list-number> • show ip bgp inconsistent-as BGP - RIU - 100 sh ip bgp paths Address Hash Refcount Metric Path 0x374AC9B4 1 2 50 6453 4755 45820 133552 i 0x2D1842C4 1 2 50 1299 18351 24213 i 0x365DA708 1 2 50 3257 10913 10913 ? 0x3B591278 1 2 100 3356 46485 i 0xFF1D278 1 2 100 3356 21277 39216 198589 i 0x3CEA066C 1 4 100 3356 3491 58552 58551 i 0x33B5FCF4 1 2 100 3356 3356 3356 8220 6519 i 0xBB7F2E8 1 2 100 6762 3216 49897 201839 i 0x331DA74C 1 2 100 3356 48237 8697 8376 8376 59451 i 0x10BADF34 1 5 10 18881 28135 28135 264456 i 0x37BF56DC 1 2 100 3356 31133 198718 i 0x394705DC 1 2 50 3257 8452 8452 ? 0x2C2AAFA0 1 2 50 3257 14744 14744 14744 14744 62660 i 0x2A9E95C8 1 4 50 3257 14742 14742 14742 14742 21547 i 0xF3CF400 1 2 100 3356 37271 327737 i 0x35CA3DF0 1 32 100 3356 9318 23563 23563 23563 23563 17864 i 0x130DCDEC 1 2 50 1299 1299 1299 2603 2832 i 0x341B9B10 1 6 100 3356 3327 48412 i 0x32FF96F0 1 196 100 3356 38193 17563 i 0x36137118 1 2 100 3356 6461 22489 263150 i 0x395DEEA4 1 8 100 3356 12578 21211 61053 i 0x297B646C 1 14 50 1299 12389 43468 i 0x364B4F90 1 16 100 3356 13618 i 0x13595E98 1 2 100 174 24785 36040 i 0xB6CFD38 1 5 0 21219 199263 i 0x34CE84C4 1 2 50 209 3908 721 27066 3544 309 i 0x37871328 1 4 100 174 59607 i 0x11342B7C 1 2 100 3356 12874 41849 i 0x38DCA824 1 24 100 3356 12713 42313 57388 56671 i 0x3C3F40F4 1 14 50 2914 6327 32738 i 0xB3F968C 1 14 50 2914 6327 32738 i 0xDACBE1C 1 2 100 3356 5603 21246 39611 i 0x336F5A48 1 2 100 3356 15399 37084 37364 i 0x304DCB50 1 2 0 286 8881 8881 8881 8881 8881 8881 8881 42777 i 0x36BCC120 1 3 16594 ? BGP - RIU - 101 sh ip as-path-access-list 6 AS path access list 6 permit 64496$ permit 64511$ permit 65536$ permit 65551$ permit ^$ sh ip bgp filter-list Router# sh ip bgp filter-list 6 BGP table version is 15631, local router ID is 192.0.2.65 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete *> *> *> *> *> *> *> Network 192.0.2.64/26 192.0.2.128/27 192.0.2.160/27 192.0.2.192/27 192.0.2.224/27 203.0.113.192/27 203.0.113.224/27 Next Hop 0.0.0.0 198.51.100.3 198.51.100.22 198.51.100.35 198.51.100.2 198.51.100.193 198.51.100.225 Metric LocPrf Weight Path 0 32768 i 0 64506 0 0 64511 100 65536 0 65551 0 600 0 64497 0 600 0 65536 64496 i e i e 64498 65511 e i BGP - RIU - 102 sh ip bgp inconsistent-as Router# show ip bgp inconsistent-as BGP table version is 87, local router ID is 203.0.113.53 Status codes: s suppressed, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network 192.0.2.0/25 Next Hop * 192.0.2.243 *> 192.0.2.243 * 198.51.100.0/25 192.0.2.243 *> 192.0.2.243 * 198.51.100.128/25 192.0.2.243 *> 192.0.2.243 Metric LocPrf Weight Path 0 0 64496 65551 ? 2222 0 64501 ? 0 0 64496 65551 64500 ? 2222 0 64501 ? 0 0 64496 65551 64500 ? 2222 0 64501 ? BGP - RIU - 103 Más comandos “show” show show show show show show show show show show show show show show show show show show ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp bgp all dampening cidr-only community community-list dampened-paths dampening dampened-paths dampening flap-statistics dampening parameters extcommunity-list filter-list flap-statistics inconsistent-as injected-paths ipv4 ipv4 multicast ipv4 multicast summary l2vpn neighbors show show show show show show show show show show show show show show show show show show show ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip ip bgp peer-group bgp quote-regexp bgp regexp bgp replication bgp rib-failure bgp rtfilter bgp summary bgp template peer-policy bgp template peer-session bgp unicast route-server bgp update-group bgp vpnv4 all sso summary bgp vpnv4 bgp vpnv4 all dampening bgp vpnv6 unicast all dampening community-list extcommunity-list policy-list route vrf BGP - RIU - 104 Selección del mejor camino 1. Si el next-hop es inaccesible, descartar la ruta. 2. Si el camino es interno (iBGP), synchronization está habilitado y la ruta no está en el IGP, descartarla. 3. Se prefiere el camino con mayor peso “weight” (propietario Cisco). 4. Luego, se prefiere la ruta de mayor “local preference”. BGP - RIU - 105 Selección del mejor camino 5. En caso del mismo local-pref, se prefiere una ruta que es originada por el router (comando network o redistribución). 6. Si la ruta no fue originada por el router y local-pref es igual, se prefiere la ruta con el path de sistemas autónomos más corto (shortest as-path). 7. Si todo es igual, se prefiere el menor código de “origen” (IGP<EGP<Incomplete). BGP - RIU - 106 Selección del mejor camino 8. A igualdad de “origen”, se prefiere el menor valor de MED. Esta comparación se realiza sólo si los neighbors de los que se aprendieron la ruta pertenecen todos a un mismo AS (a menos que se especifique “bgp alwayscompare-med”). 9. Se prefieren rutas aprendidas por eBGP que por iBGP. 10.Se prefiere la ruta cuyo next-hop tiene menor métrica en el IGP. 11.Si hasta aquí no hay decisión, se prefiere la ruta correspondiente al neighbor de menor router-id. BGP - RIU - 107 Puesta a punto de BGP • Configuración individual de neighbors • • Los vecinos de iBGP reciben las mismas actualizaciones El router desperdicia tiempo en cálculos repetidos • Peer Groups • Grupo de neighbors con las mismas políticas de salida • Las actualizaciones se generan sólo una vez por grupo • Hace la configuración más facil • Hace la configuración menos suceptible a errores • Es más rápido construir un full mesh iBGP • Los miembros pueden tener diferentes políticas de entrada • También puede ser usada en eBGPs iBGP Peer Group AS64510 BGP - RIU - 108 Puesta a punto de BGP Router bgp 64496 neighbor ibgp-peer peer-group neighbor ibgp-peer remote-as 64510 neighbor ibgp-peer update-source loopback 0 neighbor ibgp-peer send-community neighbor ibgp-peer route-map outfilter out neighbor 203.0.113.10 peer-group igbp-peer neighbor 203.0.113.20 peer-group igbp-peer neighbor 203.0.113.30 peer-group igbp-peer neighbor 203.0.113.40 route-map infilter in BGP - RIU - 109 Puesta a punto de BGP Route-reflectors • Este concepto permite compartir información de ruteo entre un grupo de routers sin necesidad de enviar la misma información a cada uno de ellos individualmente. • Los peers no deben re-anunciar las rutas aprendidas via IBGP a otros peers IBGP – se pueden generar loops. BGP - RIU - 110 Puesta a punto de BGP Red IBGP sin route-reflector BGP - RIU - 111 Puesta a punto de BGP Red IBGP con un route-reflector BGP - RIU - 112 Puesta a punto de BGP Red IBGP más compleja BGP - RIU - 113 Puesta a punto de BGP Red IBGP más compleja neighbor ip-address | peer-group-name route-reflector-client Router A# router bgp 64501 no synchronization network 192.0.2.0 mask 255.255.255.192 network 203.0.113.0 mask 255.255.255.252 network 203.0.113.4 mask 255.255.255.252 neighbor 192.0.2.200 remote-as 64501 neighbor 192.0.2.200 route-reflector-client neighbor 192.0.2.201 remote-as 64501 neighbor 192.0.2.201 route-reflector-client neighbor 192.0.2.202 remote-as 64501 neighbor 192.0.2.202 route-reflector-client Router B# router bgp 64501 no synchronization network 192.0.2.64 mask 255.255.255.192 network 203.0.113.4 mask 255.255.255.252 neighbor 192.0.2.199 remote-as 64501 BGP - RIU - 114 Puesta a punto de BGP BGP vs IGP´s Protocolos de ruteo interno • Ejemplos OSPF, RIP, etc.. • Usados para transportar las direcciones de la infraestructura. • No usados para transportar los prefijos de Internet o clientes. • Diseñados de tal forma que se minimice el número de prefijos. BGP - RIU - 115 Puesta a punto de BGP BGP vs IGP´s • BGP: usar internamente (iBGP) y externamente (eBGP) • iBGP: usado para transportar: – Los prefijos de Internet a través del Backbone – Los prefijos de los clientes – Utilizar /32 para las interfaces loopbacks de enrutamiento y levantar las sesiones de iBGP con ellas – Usar Peer Groups – Usar Passwords en la sesiones de iBGP (robos de prefijos) BGP - RIU - 116 Puesta a punto de BGP BGP vs IGP´s • IGP – El IGP debe contener a las redes de la DMZ o usar neighbor x.x.x.x next-hop-self • eBGP usados para – Intercambiar prefijos con otros AS – Implementar políticas de ruteo BGP - RIU - 117 Puesta a punto de BGP BGP • Nunca hacer – Redistribuir prefijos BGP en un IGP – Redistribuir rutas IGP dentro de BGP – Usar IGP para transportar los prefijos de los clientes u otras redes externas BGP - RIU - 118 Puesta a punto de BGP BGP • Sincronización (herencias de prácticas comunes) Si un AS A (tránsito) pasa tráfico desde otro AS B a un tercer AS C, BGP no anunciará la ruta antes de que todos los routers del AS A aprendan la ruta via IGP. BGP esperará hasta que el IGP propague la ruta dentro del AS A y luego la anuncia a todos los vecinos externos. Un router BGP con sincronización habilitada no instalará rutas aprendidas por IBGP en su tabla de ruteo si no es posible validar esas rutas dentro de su IGP. Por lo tanto, es recomendable deshabilitar esta opción. Esto previene a BGP de validar rutas de IBGP dentro de un IGP. En redes grandes es mejor apagarla. – router bgp 64496 no synchronization en versiones nuevas está deshabilitado por default BGP - RIU - 119 Puesta a punto de BGP BGP • Auto-Sumarización (herencias de prácticas comunes) – Si este comando se activa en BGP, cambia el comportamiento del comando network. El cambio de comportamiento se manifiesta en que el comando network omite la máscara. Cuando el comando network se refiere a una Clase A, B o C sin máscara y con auto-summary configurado, el router agrega la ruta en su tabla de BGP si: – – La ruta classfull está en la tabla de ruteo O Si una ruta que apunta a una subred de la red classfull está en la tabla de ruteo. – Por ejemplo, con network 9.0.0.0 e independiéntemente de autosummary, se agrega la ruta 9.0.0.0/8 en la tabla de ruteo – Si el comando network 9.0.0.0 (sin la máscara) y auto-summary está configurado, y si sólo una ruta a una subred (9.1.1.0/24) existe, pero no la ruta exacta 9.0.0.0/8, entonces el router agrega una ruta para la red classfull 9.0.0.0/8 • router bgp 64496 no auto-summary BGP - RIU - 120 Puesta a punto de BGP BGP • Distancia administrativa – Hacer la distancia administrativa mas grande que cualquier IGP • Distance bgp 200 200 200 R1#show ip route ..... 192.0.2.0/30 is subnetted, 4 subnets C 192.0.2.0 is directly connected, FastEthernet0/1 O 192.0.2.4 [110/2] via 192.0.2.2, 00:10:04, FastEthernet0/1 O 192.0.2.8 [110/2] via 192.0.2.13, 00:10:04, FastEthernet0/0 C 192.0.2.12 is directly connected, FastEthernet0/0 203.0.113.0 is subnetted, 4 subnets C 203.0.113.128/26 is directly connected, Ethernet0/0/0 O 203.0.113.0/26 [110/11] via 192.0.2.2, 00:10:04, FastEthernet0/1 O 203.0.113.64 [110/12] via 192.0.2.13, 00:09:24, FastEthernet0/0 [110/12] via 192.0.2.2, 00:09:24, FastEthernet0/1 O 203.0.113.192 [110/11] via 192.0.2.13, 00:10:04, FastEthernet0/0 R1# • La distancia administrativa, determina cuan confiable es un protocolo. Si hay dos rutas similares, se elige la de menor distancia administrativa. Cuanto menor es la distancia administrativa, más confiable es el protocolo. En el ejemplo, no está visible para las rutas conectadas directamente. Este valor es 0, representa la ruta más confiable de todas. BGP - RIU - 121 Puesta a punto de BGP BGP • Distancia administrativa Route Source Default Distance Values Connected interface 0 Static route 1 Enhanced Interior Gateway Routing Protocol (EIGRP) summary route 5 External Border Gateway Protocol (BGP) 20 Internal EIGRP 90 IGRP 100 OSPF 110 Intermediate System-to-Intermediate System (IS-IS) 115 Routing Information Protocol (RIP) 120 Exterior Gateway Protocol (EGP) 140 On Demand Routing (ODR) 160 External EIGRP 170 Internal BGP 200 Unknown* 255 BGP - RIU - 122 Puesta a punto de BGP BGP • Que anuncios no debería recibir – No recibir los prefijos definidos en el RFC1918 – No aceptar mis propios prefijos – No aceptar el default (a menos que se requiera) – No aceptar prefijos mayores de /24 BGP - RIU - 123 Puesta a punto de BGP • Que prefijos no debería recibir: router bgp 64496 network 192.0.2.0 mask 255.255.255.0 neighbor 203.0.113.100 remote-as 64505 neighbor 203.0.113.100 prefix-list in-filter in ! ip prefix-list in-filter deny 0.0.0.0/0 ! Block default ip prefix-list in-filter deny 0.0.0.0/8 le 32 ip prefix-list in-filter deny 10.0.0.0/8 le 32 ip prefix-list in-filter deny 101.10.0.0/19 le 32 ! Block local prefix ip prefix-list in-filter deny 127.0.0.0/8 le 32 ip prefix-list in-filter deny 169.254.0.0/16 le 32 ip prefix-list in-filter deny 172.16.0.0/12 le 32 ip prefix-list in-filter deny 192.0.2.0/24 le 32 ip prefix-list in-filter deny 192.168.0.0/16 le 32 ip prefix-list in-filter deny 224.0.0.0/3 le 32 ! Block multicast ip prefix-list in-filter deny 0.0.0.0/0 ge 25 ! Block prefixes >/24 ip prefix-list in-filter permit 0.0.0.0/0 le 32 BGP - RIU - 124 Puesta a punto de BGP BGP - Sesiones estandar sin loopback0 • Consideremos un router que tiene 2 caminos para hablar con un vecino BGP. Sus interfaces con numeración IP son: Router1: Serial0, 192.0.2.1 /24, Serial2, 198.51.100.1/24, loopback0, 203.0.113.1 /32 Router2: Serial0, 192.0.2.2/24, Serial2 198.51.100.2/24, loopback0, 203.0113.2/32 • El router 1 puede configurarse así: router bgp 64496 neighbor 192.0.2.2 remote-as 64505 • En este caso, BGP usará automáticamente 192.0.2.1 como la IP fuente para realizar la conexión TCP. Sin embargo, si la interfaz serial0 se baja administrativamente o se cae, la conexión BGP se caerá, aunque el Router 2 esté funcionando. BGP - RIU - 125 Puesta a punto de BGP BGP - Sesiones con loopback0 • Los neighbor no necesariamente deben estar directamente conectados y pueden utilizar para interconectarse las interfaces loopback • En lugar de usar una interfaz física, es conveniente usar una dirección loopback en cada router para levantar la sesión BGP entre ambos routers. Router1: router bgp 64496 neighbor 192.0.2.2 remote-as 64505 neighbor 192.0.2.2 update-source loopback0 Router2: router bgp 64505 neighbor 192.0.2.1 remote-as 64496 neighbor 192.0.2.1 update-source loopback0 • En este caso, perdiendo una de las conexiones físicas no implica que el BGP se caerá. Mientras cada router tenga un ruta válida para alcanzar la otra interfaz loopback, la conexión BGP estará funcionando. Y aun mejor, no tendremos un solo punto de falla. BGP - RIU - 126 Esquema genérico UUNN - RIU BGP - RIU - 127 Esquema genérico UUNN - ISP - RIU BGP - RIU - 128 Multihoming • Más de un enlace externo a la red local • 2 o más enlaces al mismo proveedor • 2 o más enlaces a diferentes proveedores • Usualmente se utilizan 2 diferentes routers externos • Un sólo router no da redundancia en el enlace BGP - RIU - 129 Sistema Autónomo Single-homed • Si un AS tiene sólo un punto de salida a redes externas. • Sistemas Autónomos Single-homed son usualmente denominados redes stubs (una red que solo transporta paquetes desde y hacia sus host locales). Aún si tuviera más de un camino a otras redes, no transporta tráfico de otras redes). • Solo tiene una ruta por default para manejar su tráfico a redes no locales. • BGP no necesariamente debe usarse en esta situación. BGP - RIU - 130 Multi-homed Stub Network AS 64505 C A AS 64512 B • Utiliza BGP (no un IGP o estáticas) para balancear el tráfico • Utiliza un AS privado (ASN >64511) • Upstream ISP debe anunciar la red stub • Las políticas dependen de las políticas del Upstream ISP BGP - RIU - 131 Multi-homed Network • Muchas situaciones posibles: AS 64505 D A C AS 64512 B – Múltiples sesiones a un mismo ISP – Un secundario como backup solamente – Balanceo entre el primario y el secunario – Selectivamente usa diferentes ISP BGP - RIU - 132 Múltiples sesiones a un ISP • Se usa eBGP multihop – eBGP a direcciones loopback – Redes eBGP anunciadas con la dirección loopback como next-hop AS 64505 AS 64496 router bgp 64505 neighbor 192.0.2.1 remote-as 64496 neighbor 192.0.2.1 egbp-multihop ! ip route 203.0.113.1 255.255.255.255 serial 1/0 ip route 203.0.113.1 255.255.255.255 serial 1/1 ip route 203.0.113.1 255.255.255.255 serial 1/2 BGP - RIU - 133 Internet BGP - RIU - 134 Demostración práctica 1 ASN 100 ASN 300 ASN 200 eBGP .2 .1 .1 192.168.11.0/24 192.168.21.0/24 .1 iBGP .2 192.168.1.0/24 eBGP .1 .2 192.168.12.0/24 .1 192.168.22.0/24 BGP - RIU - 135 Demostración práctica 2 BGP - RIU - 136