Вы находитесь на странице: 1из 27

BGP - Border Gateway Protocol

Introduccin al protocolo y caractersticas


Versin 1.0

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

BGP UPDATE BGP UPDATE

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

TCP KEEPALIVE OPEN SYN/ACK


ESTABLISHED ACTIVE IDLE

AS 6140

200.41.96.252 200.41.96.252 NEXT HOP


ESTABLISHED OPEN SENT OPEN CONFIRM ACTIVE IDLE

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.

*Network Layer Reachability Information

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

NEXTHOP? AS 20363 NEXT-HOP IBGP


IBGP

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

A 19583 13835 EBGP

RED A
EBGP

AS 20363 20363 6140 13835


IBGP

IBGP

RED A

13835
IBGP

IBGP

RED A 20363 19583 13835

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

LP 200 > LP 100

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

BGP: Arquitectura y funcionamiento


Descripcin de atributos
Atomic-aggregate: cuando un router hace una sumarizacin de prefijos aprendidos por BGP, probablemente se pierda informacin del AS-Path. Cada vez que esto ocurre, este atributo debe ser adjuntado a los updates de dicha ruta sumarizada. Aggregator: opcionalmente tambin se puede adjuntar la direccin IP y el nmero de AS del router que realiz la sumarizacin.
AS 19583 AS 20363

64.76.96.0/24

64.76.108.0/24

19583 AS 13835
64.76.120.0/24 EBGP

20363
EBGP

13835 EBGP 64.76.0.0/16 6140


Atomic_aggr IP + AS 6140

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

MATCH 20363:100? SET LP 200 UPDATE 20363:100 LP 200

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 100 UPDATE 64.76.0.0/16 MED 10


EBGP

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.

7. EBGP sobre IBGP.

8.
9.

Rutas anunciadas por el vecino ms cercano (slo en IBGP).


Ruta de mayor antigedad (slo en EBGP).

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

AS 6140 UPDATE 64.76.0.0/16 AS 6140 6140 6140 6140


(prepend) EBGP

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

SET 27791 W=50

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

UPDATE 66.77.0.0/16 AS 209

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

RED 10.10.0.0/16 AS-PATH 27791$ COMM 20363:100 N.HOP 10.1.1.1


UPDATE UPDATE 10.10.2.0/24 10.10.2.0/24 ASP 27791 6140 ASP 27791 CM 20363:100 CM 20363:100 NH 10.1.1.1 NH 10.1.1.1

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

\#

llama a la expresin ubicada en la posicin # del regexp

Arquitectura y funcionamiento
Expresiones regulares
Ejemplos:

_100_
^100$ _100$ ^100_ ^[0-9]+$ ^([0-9]+) (_\1)*$ ^$ .*

Expresiones que contienen 100 Rutas que pasan por el AS 100.


Comienza y termina con 100 Redes que nacen en el AS vecino 100. Termina con 100 Redes que nacen en el AS 100. Comienza con 100 Redes detrs del AS vecino 100. Una sola cifra cualquiera Redes originadas en cualquier AS vecino (sin prepend) Una solo cifra cualquiera Redes originadas en cualquier AS vecino (con prepend) Expresin vaca Redes locales Cualquier expresin Cualquier AS-Path

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

c) Route Refresh: el router solicita a su vecino un reenvo de su tabla BGP.


ADMIN 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

TABLA BGP 64.76.74.0/24 HISTORIA FLAP 64.76.74.0/24

TIEMPO

La sumarizacin de rutas inestables puede evitar el uso de Route Flap Damping.

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

10.1.1.2/30 serial0 10.1.1.1/30

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

show ip bgp summary


show ip bgp neighbor neighbor-address show ip route debug ip bgp events

Bibliografa y recursos
Libros y otros recursos
rfc4271 - A Border Gateway Protocol (BGP-4) rfc1997 - BGP Communities Attribute rfc2439 - BGP Route Flap Damping

rfc2796 - BGP Route Reflection - An Alternative to Full Mesh IBGP


rfc3065 - Autonomous System Confederations for BGP rfc3392 - Capabilities Advertisement with BGP-4 rfc2858 - Multiprotocol Extensions for BGP-4 rfc2918 - Route Refresh Capability for BGP-4 CCNP 1 : Advanced Routing v3.1 - Cisco Configuring BGP on Cisco Routers - Cisco CBCR Student Guide CCIE Professional Development - Routing TCP-IP, Volume II Jeff Doyle

Gracias.

Contacto acerca de esta presentacin:


Gianpietro Lavado Chiarella Network Consulting Engineer Cisco Systems glch@cisco.com / glavado@cisco.com

Вам также может понравиться