Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
Qu es BGP?
Es un protocolo de enrutamiento externo (EGP) que sirve principalmente para el intercambio de rutas entre sistemas autnomos (como ISPs). BGP tambin es fundamental para el funcionamiento de otras aplicaciones como MPLS VPN.
Caractersticas principales de BGP - Protocolo considerado como de tipo vector distancia con mejoras: los updates son fiables (reliable), slo enviados ante cambios en la topologa (triggered) y tienen atributos especiales (AS number, etc).
- Los vecinos BGP utilizan TCP (179) para establecer una sesin y enviarse actualizaciones.
- Su distancia administrativa es de 20 (EBGP - External BGP) o 200 (IBGP - Internal BGP). - Es classless: La mscara de subred viaja en los updates (soporta VLSM). - Es capaz de filtrar y escoger rutas como ningn IGP, en base a sus atributos especiales: AS Number, local-preference, origin, community, etc.
- Los vecinos deben ser configurados manualmente en ambos extremos, pudiendo estos autenticarse.
- Por defecto sus tiempos de convergencia son lentos, pero lo que se pierde en convergencia se gana en estabilidad y escalabilidad, que es la prioridad ante la gran cantidad de rutas y posibles cambios de topologa en los dominios de red tan amplios donde BGP generalmente es utilizado.
Arquitectura y funcionamiento
Establecimiento de sesin e intercambio de rutas.
AS 27791
200.3.114.0/24 NRLI PREFIX NEXT HOP AS PATH 200.3.114.0/24 200.41.96.252 20363 27791 i
AS 20363
WITHDRAWN ROUTE 200.3.114.0/24 200.3.114.0/24 NRLI TCP KEEPALIVE OPEN SYN PATH ACK 20363 27791 20363 27791 AS
AS 6140
1. IDLE: El router an no evala la conectividad con el vecino. 2. ACTIVE: La IP configurada es alcanzable en la tabla de rutas, el primero que haya establecido esto inicia el 3-way handshake de TCP usando la direccin IP del vecino en el puerto 179. 3. OPEN SENT: uno de los router enva un mensaje OPEN (el primero que lo haga), el cual incluye la versin de BGP, el nmero de AS, el hold-time , el BGP router ID y parmetros opcionales (p.e. autenticacin). 4. OPEN CONFIRM: Si el vecino acepta los parmetros del mensaje OPEN, responde con su propio mensaje OPEN, poniendo al router que lo recibe en este estado. 5. ESTABLISHED: Si el router local acepta los parmetros del mensaje OPEN del vecino, entonces la sesin BGP se establece con un mensaje keepalive, en adelante estos mensajes se intercambiarn cada 60 segundos (por defecto).
UPDATES: Una vez iniciada la sesin, los routers se intercambian toda su tabla BGP mediante mensajes UPDATE, hasta que toda la tabla haya sido enviada. Los mensajes UPDATE estn formados por prefijos alcanzables (NRLI*) y atributos (al menos Next hop, AS-Path y Origin). Tambin pueden incluir prefijos que ya no son alcanzables (withdrawn routes).
NOTIFICATIONS: son mensajes enviados a un vecino para informar de un error en la sesin.
Arquitectura y funcionamiento
Tipos de atributos en rutas BGP
Well-known mandatory: Son atributos que son reconocidos en todas las implementaciones de BGP, adems deben estar incluidos en todos los updates, de otra forma se generar un mensaje de error (notification). Estos son: Origin, Next-hop y AS-Path. Well-known discretionary: Son atributos que son reconocidos por todas las implementaciones pero no necesariamente tienen que ser enviados en los updates. Estos son: Local preference, Atomic-aggregate y Aggregator. Optional transitive: Son atributos que no necesariamente deben ser reconocidos por todas las implementaciones, pero son propagados entre vecinos as estos no los reconozcan. Ejemplo: Community. Optional non-transitive: Son atributos que no necesariamente deben ser reconocidos por todas las implementaciones y tampoco se deben enviar a otros vecinos as estos sean reconocidos. Ejemplos: Multi-exit Discriminator (MED), Cluster-list, Originator ID.
Arquitectura y funcionamiento
Descripcin de atributos
Origin: Especifica cul es el origen del NRLI.
VALOR IGP EGP Incomplete DESCRIPCIN Ruta originada dentro del AS Ruta originada por Exterior Gateway Protocol (Descontinuado) Otro medio, por ejemplo redistribucin
Next-hop: generalmente es la direccin IP del vecino EBGP que envi el update (EBGP) o la del que lo origin (IBGP).
AS 19583
IBGP EBGP
NEXT-HOP
EBGP
NEXT-HOP
IBGP
AS 13835
Arquitectura y funcionamiento
Descripcin de atributos
AS-Path: Es una secuencia de nmeros de AS que se forma conforme una ruta se va propagando. Mientras ms corto sea el AS-Path, la ruta se considerar ms cercana. Tambin sirve para evitar loops, si un router ve su propio AS en un update, inmediatamente lo desecha.
AS 19583
IBGP RED
RED A
EBGP
IBGP
RED A
13835
IBGP
IBGP
AS 13835
RED A
RED A
13835 RED A
EBGP
13835
IBGP
RED A
6140 13835
AS 6140
Los ASN (AS Number) son asignados por ARIN, van desde el 1 hasta el 65535. A partir del 64512 los ASN son de uso privado.
Arquitectura y funcionamiento
Descripcin de atributos
Local-Preference: Es utilizado y propagado entre vecinos del mismo AS (IBGP). Sirve para influenciar el trfico que sale del AS, distinguiendo entre rutas iguales: La ruta con mayor valor tendr preferencia.
AS 19583
IBGP
RED A
EBGP
EBGP
RED A LP 100
IBGP
AS 20363
IBGP IBGP
IBGP
RED A LP 200
AS 13835
RED A EBGP IBGP
RED A
AS 6140
64.76.96.0/24
64.76.108.0/24
19583 AS 13835
64.76.120.0/24 EBGP
20363
EBGP
IBGP
AS 6140
AS 209
Arquitectura y funcionamiento
Descripcin de atributos
Community: Sirve para agrupar prefijos que comparten alguna caracterstica en comn, para luego clasificarlos segn la comunidad a la que pertenecen y cambiar sus atributos segn sea necesario. El atributo es original de Cisco pero luego fue estandarizado en la RFC 1997, con el formato de 4 octetos AA:NN, donde AA en el nmero de AS y NN es un identificador definido administrativamente.
Existen 4 comunidades predefinidas:
VALOR DESCRIPCIN Comunidad por defecto, las rutas recibidas en esta comunidad son publicadas con normalidad Las rutas recibidas en esta comunidad no se propagarn a vecinos EBGP que no pertenezcan a la confederacin. Las rutas recibidas en esta comunidad no se propagarn a ningn tipo de vecino. Las rutas recibidas en esta comunidad no se propagarn a vecinos EBGP as estos pertenezcan a una confederacin.
INTERNET
NO_EXPORT NO_ADVERTISE LOCAL_AS
AS 20363
UPDATE NO_EXPORT 20363:100 INTERNET
AS 27791
Arquitectura y funcionamiento
Descripcin de atributos
MED: Sirve para influenciar el trfico que ingresa al AS, siendo el menor valor el preferido. Este valor pasa de un AS a otro directamente conectado, pero no es propagado a un tercer AS.
UPDATE 64.76.0.0/16
EBGP
MED 100
AS 6140
64.76.0.0/16
MED 10
IBGP
AS 209
La influencia de MED no siempre funcionar, ya que el AS vecino puede tener otros atributos de salida preferidos sobre el MED, como por ejemplo, Local Preference.
El MED slo es comparado en rutas que vienen del mismo AS, no de ASs distintos.
Arquitectura y funcionamiento
Descripcin de atributos
Los siguientes atributos son utilizados en Route-Reflectors, tema que se ver ms adelante. Cluster-list: Es una lista de Cluster IDs por los cuales la ruta ha pasado. Si un Route-Reflector ve su cluster-ID en un update, lo descarta, al tratarse de un loop. Originator ID: Es un valor de 32-bits creado por un Route-Reflector, igual al Router ID del originador de la ruta. Si el originador ve su propio ID como Originator ID en un update, lo descarta, al tratarse de un loop.
CLUSTER
RR
RR
IBGP
Arquitectura y funcionamiento
Criterio de seleccin de rutas
Cuando se reciba ms de una ruta al mismo destino, se escoger una segn el siguiente criterio: 1. 2. 3. 4. 5. 6. Se preferirn las rutas con mayor Weight, este parmetro es slo usado por Cisco y es de significado local al router, no es propagado a ningn vecino. Rutas con mayor valor de Local Preference. Rutas que el propio router origin, es decir, de origen local. Rutas con AS-Path ms corto. Rutas cuyo atributo Origin sea del menor tipo (IGP < EGP <Incomplete). Rutas con menor valor de MED.
8.
9.
10. Rutas anunciadas por el vecino con el menor Router ID. Para que una ruta sea vlida y tomada en cuenta en la seleccin, su atributo NEXT-HOP debe ser alcanzable por algn IGP o ruta esttica.
Arquitectura y funcionamiento
Influencia de trfico entrante
Existen dos formas de influenciar el camino que el trfico toma para ingresar al AS: 1. Utilizando MED: se publican valores de MED distintos por cada camino, de acuerdo a lo explicado anteriormente. 2. Utilizando AS-Path Prepend: se aade el ltimo nmero de AS varias veces en las rutas propagadas por el enlace menos preferido.
UPDATE 64.76.0.0/16
EBGP
ASs= 1
AS 6140
64.76.0.0/16
ASs = 4
IBGP
AS 209
Arquitectura y funcionamiento
Influencia de trfico saliente
Existen dos formas de influenciar el camino que el trfico toma para salir del AS: 1. Utilizando Weight (slo Cisco): se marca la ruta preferida con un mayor valor de Weight, slo se influenciar la decisin del router donde se aplica.
SET W=100
EBGP WGT 100
AS
UPDATE
AS 20363
WGT 50
EBGP
UPDATE
2. Utilizando Local Preference: se marca la ruta preferida con un mayor valor de LP, se influenciarn las decisiones de todos los routers en el AS.
SET LP = 200 LP 200 UPDATE
EBGP
66.77.0.0/16 AS 209
IBGP
66.77.0.0/16
AS 6140 SET
LP = 100
LP 100
EBGP
AS 209
Arquitectura y funcionamiento
Filtros BGP
Normalmente en cualquier implementacin de BGP se puede permitir o denegar rutas recibidas o enviadas en base a diversos parmetros. Los filtros ms comunes son: Filtros por red IP: se filtran las rutas por la red o subred a la cual pertenecen. Filtros por prefijo IP y mscara: se filtran las rutas por la red a la que pertenecen y adems por la mscara de red. Filtros por AS-Path: se filtran las rutas segn su atributo AS-Path utilizando expresiones regulares. Filtros por comunidad: se filtran las rutas por la comunidad a la que pertenecen.
Filtros por Next-hop: se filtran las rutas segn qu router las public.
PERMITIR
Arquitectura y funcionamiento
Expresiones regulares
Son tiles para clasificar rutas segn su AS-Path, utilizan los siguientes smbolos:
Caracter ^ $ . _ [0-9] [123] () | * ? + empieza con termina con cualquier caracter cualquier delimitador (espacio, comienzo, fin, coma) rango del 0 al 9 1, 2 3 asocia cero o ms veces cero o una vez una o ms veces Funcin
\#
Arquitectura y funcionamiento
Expresiones regulares
Ejemplos:
_100_
^100$ _100$ ^100_ ^[0-9]+$ ^([0-9]+) (_\1)*$ ^$ .*
Arquitectura y funcionamiento
Reinicio de sesiones
Despus de aplicar filtros o aplicar alguna configuracin que remarca atributos, es necesario volver a recibir o enviar la tabla BGP segn sea el caso, debido a que esta no se reenva sola, slo se actualiza ante cambios de topologa. Una alternativa es reiniciar la sesin BGP, pero normalmente esto no es posible en redes en produccin, por lo que existen las siguientes alternativas:
a) Reenvo de la tabla (outbound soft-reconfiguration): el router vuelve a enviar la tabla a su vecino sin bajar la sesin.
ADMIN TABLA A TABLA B
b) Reingreso local de la tabla vecina (inbound soft reconfiguration): el router mantiene una copia de la tabla de su vecino, para volverla a pasar por los filtros cuando sea necesario (consume ms memoria)
ADMIN MEM: TABLA B TABLA A TABLA B
Arquitectura y funcionamiento
Internal BGP - IBGP
IBGP es principalmente utilizado para propagar rutas en un sistema autnomo de trnsito. Se requiere BGP porque ningn IGP puede manejar la cantidad de rutas que puede llegar a tener BGP, adems, si se redistribuye BGP en un IGP se pueden perder atributos indispensables.
IBGP EBGP UPDATE NHOP UPDATE IBGP UPDATE LP = 100 IBGP EBGP
AS DE TRNSITO IBGP
UPDATE IBGP
UPDATE NHOP
Notas sobre IBGP Utiliza split-horizon para evitar loops, por lo cual ningn update recibido en IBGP es propagado a otros vecinos IBGP. Para mantener la misma informacin de rutas en todo el AS de manera que el trnsito funcione correctamente, se deben levantar sesiones IBGP entre todos los routers del domino Full Mesh IBGP. Los atributos de las rutas no cambian conforme se propagan en updates IBGP, es decir, el valor de next-hop se mantiene. El atributo Local Preference es removido en los updates que egresan el AS (sesiones EBGP), pues slo es utilizado dentro del AS.
Arquitectura y funcionamiento
Alternativas al Full-Mesh IBGP: Route Reflectors
IBGP
IBGP UPDATE UPDATE IBGP IBGP IBGP CON RR UPDATE IBGP
IBGP
RR
UPDATE
UPDATE
IBGP
Los Route-Reflectors cambian las reglas de split-horizon propias de IBGP, para evitar el full-mesh. La implementacin est formada por routers que actan como Route-Reflectors y sus clientes, formando un cluster. Un AS puede estar formado por uno o varios clusters , y cada uno de ellos por uno o varios RR redundantes. Los clientes slo necesitan tener sesiones con sus RRs. Si existen routers que no son ni clientes ni RRs en el AS, estos deben formar un full-mesh con todos los RRs.
ROUTER BGP CLSICO O CLIENTE UPDATE DE SE ENVA A Vecino EBGP TODOS los vecinos Vecino IBGP Vecinos EBGP ROUTER BGP ROUTE-REFLECTOR UPDATE DE SE ENVA A Vecino EBGP TODOS los vecinos NO-Cliente IBGP Vecinos EBGP y Clientes Cliente IBGP TODOS menos el cliente
Arquitectura y funcionamiento
Alternativas al Full-Mesh IBGP: Confederaciones
AS 20363
EBGP
AS 64512
AS 64513
EBGP
Las confederaciones evitan la configuracin de full-mesh IBGP, subdividiendo un AS en dos o ms AS que pueden ser privados o pblicos. Entre los AS internos a la confederacin se matienen sesiones similares a EBGP (Intraconfederation EBGP), la diferencia es que en stas s se mantiene el valor de LP, MED y NEXT-HOP en los updates. El AS de cada miembro es incluido en el AS-Path de sus updates, sin embargo, es excluido en el momento en que este update egresa la confederacin. De esta forma desde afuera de la confederacin slo se conoce el AS global.
Arquitectura y funcionamiento
BGP Route Flap Damping
La prdida repetitiva de una red inestable (flap), puede aumentar innecesariamente el procesamiento de los routers que tienen que procesar los updates en BGP. Una tcnica para contrarrestar este comportamiento es Route Damping o Dampening, que consiste en poner una penalidad a las rutas inestables, cuando esta penalidad llega a cierto valor, la ruta es borrada. Luego de cierto tiempo la ruta puede ser reinstalada.
PENALIDAD
64.76.74.0/24
SUPRIMIR
BGP
REUTILIZAR OLVIDAR
TIEMPO
Arquitectura y funcionamiento
Notas adicionales sobre BGP
Las sesiones EBGP generalmente se forman entre routers directamente conectados, si estos no lo estn, hay que especificarlo en la configuracin (EBGP Multihop). Las sesiones IBGP pueden formarse entre router que no estn directamente conectados, pero que se conocen por un IGP o ruta esttica, sin necesidad de configuracin adicional. Un router BGP no puede originar la publicacin de una ruta si sta no existe previamente en su tabla de rutas, aprendida por algn IGP o ruta esttica.
En implementaciones anteriores una ruta BGP no poda ser propagada a travs de un AS de trnsito sin que todos los routers dentro del AS conocieran previamente la ruta mediante algn IGP. En eso consista la regla de sincronizacin, que dependa de la redistribucin de BGP en el IGP utilizado. Esta regla ya no aplica pues ahora se utiliza IBGP en un AS de trnsito.
Si bien en IBGP el atributo next-hop de una ruta se mantiene con el mismo valor conforme sta se propaga por el AS, en cualquier implementacin se puede hacer que un router en el AS se declare a s mismo como next-hop para todas las rutas anunciadas a algn vecino en particular. Normalmente en una configuracin BGP existen varios vecinos que comparten los mismos parmetros y filtros. En la mayora de implementaciones se pueden colocar estos vecinos en un grupo y aplicar los filtros y parmetros al grupo en lugar de a cada vecino individualmente, disminuyendo as los envos y filtrados redundantes (Peer-Groups).
Ejemplos de configuracin
Ejemplo de configuracin en routers Cisco
LB 1.1.1.2 .2
AS 64800
.1
LB 1.1.1.1
LB 2.1.1.1
R1A
10.10.2.0/24
10.10.1.0/24
R1
serial0
AS 64900
.1 .2
LB 2.1.1.2
R2
20.20.1.0/24
R2A
20.20.2.0/24
R1 router bgp 64800 no auto-summary no synchronization neighbor 10.1.1.2 remote-as 64900 neighbor 10.1.1.2 route-map R2-IN in neighbor 1.1.1.2 remote-as 64800 neighbor 1.1.1.2 update-source loopback0 network 10.10.1.0 mask 255.255.255.0 route-map R2-IN permit 10 set community 64600:64900 R1A router bgp 64800 no auto-summary no synchronization neighbor 1.1.1.1 remote-as 64800 neighbor 1.1.1.1 update-source loopback0 neighbor 1.1.1.1 route-map R1-IN in network 10.10.2.0 mask 255.255.255.0 ip community-list standard 1 permit 64900:64800 route-map R1-IN permit 10 match community 1 set local-preference 100
R2 router bgp 64900 no auto-summary no synchronization neighbor 10.1.1.1 remote-as 64800 neighbor 10.1.1.1 route-map R1-IN in neighbor 10.1.1.1 route-map R1-OUT out neighbor 2.1.1.2 remote-as 64900 neighbor 2.1.1.2 update-source loopback0 network 20.20.1.0 mask 255.255.255.0 aggregate-address 20.0.0.0 255.0.0.0 summary-only
ip prefix-list PREFIJOS seq 5 permit 10.10.1.0/24 ip prefix-list PREFIJOS seq 5 permit 10.10.2.0/24 ip as-path access-list 10 permit ^$ route-map R1-IN permit 10 match ip address prefix-list PREFIJOS route-map R1-OUT permit 10 match as-path 10 set as-path prepend 64900 64900 R2A router bgp 64900 no auto-summary no synchronization neighbor 2.1.1.1 remote-as 64900 neighbor 2.1.1.1 update-source loopback0 network 20.20.2.0 mask 255.255.255.0
Ejemplos de configuracin
Troubleshooting show ip bgp
Bibliografa y recursos
Libros y otros recursos
rfc4271 - A Border Gateway Protocol (BGP-4) rfc1997 - BGP Communities Attribute rfc2439 - BGP Route Flap Damping
Gracias.