Atributos BGP y control de polticas
Agenda
Atributos
BGP Seleccin de trayectoria BGP Aplicacin de polticas
Atributos BGP
Las herramientas disponibles para el trabajo
Qu es un atributo?
Describe
las caractersticas del prefijo Transitivos y no transitivos Algunos son madatorios
AS-Path
Secuencia de ASs atravesados Usado para:
AS 200
[Link]/16
AS 100
[Link]/16
Deteccin de bucles Aplicacin de polticas
AS 300
[Link]/16 300 200 100 [Link]/16 300 200
AS 400
[Link]/16
AS 500
[Link]/16 [Link]/16 [Link]/16
300 200 100 300 200 300 400
5
AS-Path (con ASNs de 16 y 32 bits)
Internet con ASNs de 16 y 32 bits
32-bit son 65536 en adelante
AS 80000
[Link]/16
AS 70000
[Link]/16
Longitud del ASPATH se mantiene AS 300 igual
[Link]/16 300 23456 23456 [Link]/16 300 23456
AS 400
[Link]/16
AS 90000
[Link]/16 [Link]/16 [Link]/16
300 80000 70000 300 80000 300 400
6
AS-Path Deteccin de bucles
AS 200
[Link]/16
AS 100
[Link]/16 [Link]/16 [Link]/16 500 300 500 300 200
AS 300
[Link]/16
AS 500
[Link]/16 [Link]/16 [Link]/16 300 200 100 300 200 300
[Link]/16 no es aceptado por AS100 porque el prefijo tiene AS100 en su AS-PATH esto es deteccin de bucles en accin 7
Prximo salto Next Hop
[Link] [Link]
[Link]/16
AS 200
iBGP eBGP
AS 300
[Link]/16 [Link] [Link]/16 [Link]
[Link]/16
AS 100
eBGP direccin de vecino externo iBGP NEXT_HOP desde eBGP Atributo mandatorio notransitivo
Prximo Salto en iBGP
[Link]/23 [Link]/24
iBGP
Loopback [Link]/32
Loopback [Link]/32
AS 300
[Link]/24 [Link] [Link]/23 [Link]
El prximos alto es la direccin loopback del enrutador Se hace una bsqueda recursiva en la tabla
Prximo Salto de Tercero
AS 200
[Link]/24
[Link]
[Link]
[Link]
[Link]
[Link]/24
AS 201
eBGP entre Router A y Router C eBGP entre RouterA y RouterB El prefijo 120.68.1/24 tiene la direccin de prximos alto [Link] esto se pasa a RouterC en vez de [Link] Ms eficiente 10 No hace falta configuracin extra
Prctica Recomendada para Next Hop
El comportamiento por defecto de Cisco IOS es que el next-hop externo se propague sin cambios a travs de los enrutadores iBGP
Esto implica que el IGP debe incluir los next-hops externos Si esto se olvida, las redes externas son invisibles Cuando hay muchos vecinos eBGP, esto pone una carga innecesaria en el IGP
La prctica recomendada en los ISPs es cambiar el next-hop externo por el enrutador local
neighbor x.x.x.x next-hop-self
11
Next Hop (Resumen)
El
IGP debe transportar la ruta a los nexthops Bsqueda recursiva en la tabla de rutas Desliga a BGP de la topologa fsica Use next-hop-self para next hops externos Permite al IGP hacer decisiones inteligentes de reenvo
12
Origen
Transmite
el origen del prefijo Es un atributo histrico
Usado en la transicin de EGP a BGP
Atributo
transitivo y mandatorio Influye en la seleccin de la mejor ruta Tres valores: IGP, EGP, incomplete
IGP generado por el comando network EGP generado por EGP incomplete redistribuido desde otro protocolo de enrutamiento
13
Agregador
Transmite
la direccin IP del enrutador o interlocutor BGP que genera la ruta agregada Atributo opcional y transitivo Util para solucin de problemas No influye la seleccin de la ruta Al usar aggregate-address se genera el atributo:
router bgp 100 aggregate-address [Link] [Link]
14
Preferencia Local
AS 100
[Link]/16
AS 200
500 800
AS 300
[Link]/16 > [Link]/16
500 800
AS 400
15
Preferencia Local
Atributo
opcional y no-transitivo Local al AS solamente
Valor por defecto es 100 (IOS)
Usado
en BGP para influir en la seleccin de la ruta
Determina el mejor camino para el trfico saliente
El
camino con la preferencia local mayor gana
16
Preferencia Local
Configuracin de Router B:
router bgp 400 neighbor [Link] remote-as 300 neighbor [Link] route-map local-pref in ! route-map local-pref permit 10 match ip address prefix-list MATCH set local-preference 800 route-map local-pref permit 20 ! ip prefix-list MATCH permit [Link]/16
17
Multi-Exit Discriminator (MED)
[Link]/24 > [Link]/24 2000 1000
AS 200
[Link]/24
2000
[Link]/24
1000
[Link]/24
AS 400
18
Multi-Exit Discriminator
Inter-AS no-transitivo y opcional Usado para transmitir la preferencia relativa de los puntos de entrada
Determina el mejor camino para el trafico entrante bgp always-compare-med permite comparar los MEDs de diferentes ASes
Comparable si las rutas son del mismo AS
El camino con la MED menor gana La ausencia del atributo MED implica que el valor es cero (RFC4271)
19
MED y Mtrica IGP
La
mtrica del IGP se puede transmitir por medio de la MED
set metric-type internal en route-map
Instruye a BGP que anuncie la MED que corresponda al valor de la mtrica del IGP Se monitorean los cambios (y se re-anuncia si es necesario) cada 600 seg. bgp dynamic-med-interval <secs>
20
Multi-Exit Discriminator
Configuracin del Router B:
router bgp 400 neighbor [Link] remote-as 200 neighbor [Link] route-map set-med out ! route-map set-med permit 10 match ip address prefix-list MATCH set metric 1000 route-map set-med permit 20 ! ip prefix-list MATCH permit [Link]/24
21
Weight - Peso
No es realmente un atributo local al enrutador El mayor peso gana Aplicado a todas las rutas de un vecino
neighbor [Link] weight 100
Asignar a ciertas rutas basado en filtro
neighbor [Link] filter-list 3 weight 50
22
Weight Para implementar RPF
AS4
C B
Enlace de respaldo, pero RPF todava necesita funcionar AS4, LOCAL_PREF 100, weight 100 Enlace para la mayora del trfico desde AS1 AS4, LOCAL_PREF 200
AS1
El mejor camino a AS4 desde AS1 es siempre via B debido al local-pref Pero los paquetes que llegan a A desde AS4 a travs del enlace directo de C a A pasarn el chequeo RPF porque ese camino tiene una prioridad gracias al weight
Si no se asignara el weight, el mejor camino de vuelta a AS4 sera por B, y el chequeo RPF no pasara
23
Comunidad
Decritas en RFC1997
Atributo transitivo y opcional Representado como dos enteros de 16 bits (RFC1998) El formato comn es <local-ASN>:xx 0:0 to 0:65535 and 65535:0 to 65535:65535 estn reservados Cada destino podra ser miembro de diferentes comunidades
Entero de 32 bits
Usado para agrupar destinos
Muy til para aplicar polticas intra e inter-AS
24
Ejemplo de Comunidad (antes)
ISP 2
[Link]/16 permit [Link]/16 in permit [Link]/16 out permit [Link]/16 out
AS 400 ISP 1 AS 300
permit [Link]/16 in
permit [Link]/16 in
AS 100
[Link]/16
AS 200
[Link]/16
25
Ejemplo de Comunidad (despus)
ISP 2
[Link]/16 [Link]/16 300:9 [Link]/16 [Link]/16 300:1 300:1
AS 400 ISP 1 AS 300
300:1
[Link]/16
[Link]/16
300:1
AS 100
[Link]/16
AS 200
[Link]/16
26
Comunidades reconocidas
Varias comunidades han sido definidas para ser reconocidas
[Link]/assignments/bgp-well-known-communities
no-export
65535:65281 65535:65282 65535:65283
No anunciar a ningn vecino eBGP No anunciar a ningn vecino No anunciar fuera del AS local (only used with confederations)
no-advertise
no-export-subconfed
no-peer
65535:65284
No anunciar a vecinos bi-laterales (RFC3765)
27
Comunidad No-Export
[Link]/16 105.7.X.X No-Export 105.7.X.X [Link]/16
AS 100
AS 200
AS100 anuncia agregado y sub-prefijos
La intencin es el balanceo de cargas
Los sub-prefijos se marcan con la comunidad no-export El Router G en AS200 no anuncia los prefijos marcados con la comunidad no-export
28
Comunidad No-Peer
[Link]/16 105.7.X.X
upstream
no-peer
C&D&E are peers e.g. Tier-1s
[Link]/16
upstream
[Link]/16
upstream
Los sub-prefijos marcados con no-peer no se envan a los vecinos bi-laterales Slo se envan a los proveedores de trnsito
29
Y los ASNs de 4 bytes?
Las comunidades son usadas ampliamente para codificar polticas de enrutamiento de los ISPs
Atributo de 32 bits ASN:number
El formato RFC1998 es ahora la prtica comn
Funciona bien con los ASNs de 2 bytes, pero los de 4 bytes no se pueden codificar Soluciones:
Use ASN privado para los primerso 16 bits Espere a que se implemente http:// [Link]/doc/draft-ietf-idr-as4octetextcomm-generic-subtype/
30
Resumen Atributos en Accin
Router6>sh ip bgp! BGP table version is 30, local router ID is [Link]! Status codes: s suppressed, d damped, h history, * valid, > best,! i - internal, r RIB-failure, S Stale! Origin codes: i - IGP, e - EGP, ? - incomplete! Network Path! *>i10.0.0.0/26 *>i10.0.0.64/26 *>i10.0.0.128/26 *>i10.0.0.192/26 *>i10.0.1.0/26 *> [Link]/26 Next Hop [Link] [Link] [Link] [Link] [Link] [Link] Metric LocPrf Weight 0 0 0 0 0 0 100 100 100 100 100 0 0 0 0 0 32768
31
i! i! i! i! i! i!
...
Algoritmo de Seleccin de Ruta
Por qu es sta la mejor ruta?
32
El algoritmo de seleccin de rutas de BGP en IOS: Primera Parte
No
considere la ruta si no hay una ruta al prximo salto No considere la ruta iBGP si no hay sincronizacin (Cisco IOS) El peso (weight) mayor (local al router) La preferencia local mayor (globalmente dentro del AS) Preferir ruta originada localmente El AS-Path ms corto
33
El algoritmo de seleccin de rutas de BGP en IOS: Segunda Parte
Cdico
de origen menor Discriminator (MED) menor
IGP < EGP < incomplete
Multi-Exit
Si se usa bgp deterministic-med, ordenar las rutas antes de compararlas Si se usa bgp always-compare-med, comparar todas las rutas De lo contrario, las MEDs slo se comparan si provienen del mismo AS (por defecto)
34
El algoritmo de seleccin de rutas de BGP en IOS: Tercera Parte
Preferir
ruta eBGP sobre ruta iBGP La ruta con la menor mtrica IGP al prximo salto Para las rutas eBGP:
Si se habilita multipath, instalar N rutas paralelas en la tabla Si el router-id es el mismo, ir al prximo paso Si el router-id no es el mismo, seleccionar la ruta ms vieja
35
El algoritmo de seleccin de rutas de BGP en IOS: Cuarta Parte
El
menor router-id (originator-id en el caso de las rutas reflejadas) Cluster-list ms corto
El cliente debe tomar en cuenta los atributos del Route Reflector!
La
direccin del vecino menor
36
Aplicando Polticas con BGP
Cmo usar las herramientas
37
Aplicando Polticas con BGP
Poltica
Puede ser basada en el AS-Path, comunidad o prefijo Rechazar/aceptar rutas determinadas Asignar atributos para influenciar la seleccin de la trayectoria Herramientas:
Prefix-list (Filtra los prefijos) Filter-list (Filtra los ASs) Route-maps y comunidades
38
Control de Polticas Prefix-list
Filtro
de prefijos por vecino
Configuracin incremental
Aplicado
a la entrada o la salida Basado en nmeros de red (utilizando el formato familiar de direccin IP/Mscara) Utilizar access-lists para filtrar prefijos se hizo obsoleto hace tiempo
No recomendado!
39
Prefix-list - Sintaxis del Comando
Sintaxis:
[no] ip prefix-list list-name [seq seq-value] permit|deny network/len [ge ge-value] [le levalue] network/len: El prefijo y su longitud ge ge-value: mayor o igual que le le-value: menor o igual que Para especificar el rango de la longitud de prefijo a coincidir para los prefijos ms especficos que red/ longitud no ip prefix-list sequence-number muestra de nmeros de secuencia desactiva la
40
Ambos ge y le son opcionales
El nmero de secuencia tambin es opcional
Listas de Prefijos Ejemplos
Denegar ruta por defecto
ip prefix-list EG deny [Link]/0
Permitir el prefijo [Link]/8
ip prefix-list EG permit [Link]/8
Denegar el prefijo [Link]/12
ip prefix-list EG deny [Link]/12
En 192/8 permitir hasta /24
ip prefix-list EG permit [Link]/8 le 24 Esto permite todos las longitudes de prefijo en el bloque [Link]/8, excepto /25, /26, /27, /28, /29, /30, /31 and /32.
41
Listas de Prefijos Ejemplos
En 192/8 denegar /25 y superiores
ip prefix-list EG deny [Link]/8 ge 25 Esto niega todas las longitudes de prefijo /25, /26, / 27, /28, /29, /30, /31 y /32 en el bloque [Link]/8. Efecto idntico al ejemplo anterior
En 193/8 permitir prefijos entre /12 y /20
ip prefix-list EG permit [Link]/8 ge 12 le 20 Esto niega todas las longitudes de prefijo /8, /9, /10, / 11, /21, /22, y superiores en el bloque [Link]/8.
Permitir todos los prefijos
ip prefix-list EG permit [Link]/0 le 32 [Link] coincide con todas las posibles direcciones, 0 le 32 coincide con todas las longitudes de prefijo 42
Policy Control Prefix List
Example Configuration
router bgp 100 network [Link] mask [Link] neighbor [Link] remote-as 110 neighbor [Link] prefix-list AS110-IN in neighbor [Link] prefix-list AS110-OUT out ! ip prefix-list AS110-IN deny [Link]/16 ip prefix-list AS110-IN permit [Link]/0 le 32 ip prefix-list AS110-OUT permit [Link]/16 ip prefix-list AS110-OUT deny [Link]/0 le 32
43
Control de Polticas Lista de Prefijos
Filtrar rutas basado en AS-Path
Entrada o salida
Ejemplo de Configuracin:
router bgp 100 network [Link] mask [Link] neighbor [Link] filter-list 5 out neighbor [Link] filter-list 6 in ! ip as-path access-list 5 permit ^200$ ip as-path access-list 6 permit ^150$
44
Control de Polticas Expresiones Regulares
Como las expresiones regulares de Unix
. * + ^ $ \ _ | () [] Coincidir con un carcter
Cualquier nmero de ocurrencias de la expresin anterior
Una ocurrencia de la expresin anterior Principio de lnea Fin de lnea Escapar un carcter de expresin regular Inicio, fin, espacio, braqueta O parntesis para contener expresin braquetas para rangos numricos
45
Control de Polticas Expresiones Regulares
Ejemplos simples
.* .+ ^$ _1800$ ^1800_ _1800_ _790_1800_ _(1800_)+ _\(65530\)_ Coincidir con cualquier cosa Coincidir al menos con un carcter Rutas locales a este AS Originadas por AS1800 Recibidas desde AS1800 via AS1800 via AS1800 y AS790 multiple AS1800 en secuencia (para AS-PATH prepends) via AS65530 (confederaciones)
46
Control de Polticas Expresiones Regulares
Ejemplos no tan simples
^[0-9]+$ ^[0-9]+_[0-9]+$ ^[0-9]*_[0-9]+$ ^[0-9]*_[0-9]*$ ^[0-9]+_[0-9]+_[0-9]+$ _(701|1800)_ _1849(_.+_)12163$ Coincidir con AS_PATH de longitud 1 AS_PATH de longitud 2 AS_PATH longitud 1 2 AS_PATH longitud 0, 1 2 AS_PATH de longitud 3 Cualquier prefijo que haya pasado por AS701 o AS1800 Origen en AS12163 y pasando por AS1849
47
Control de Polticas Mapas de Rutas
Un route-map es como un programa en IOS Tiene nmeros de lnea, como los programas Cada lnea es una condicin/accin distinta El concepto es, bsicamente:
Si Si Si Si
hay coincidencia, ejecutar expresin y terminar no hay coincidencia, ejecutar expresin y terminar no, etc
El comando continue permite aplicar mltiples condiciones y acciones en un mismo route-map
48
Route Maps Advertencias
Una lnea puede tener mltiples comandos set Una lnea puede tener mltiples match Lnea con solamente match
Slo pasan los prefijos que coinciden, y los dems son descartados Todos los prefijos coinciden y se les asigna algo Las lneas siguientes se ignoran Slo se asigna algo a los prefijos que coinciden, y el resto se descarta
49
Lnea con solamente set
Lnea con match/set y sin ms lneas
Route Maps Advertencias
Ejemplo
Omitir la tercera lnea abajo significa que los prefijos que no coincidan list-one o list-two se descartan
route-map sample permit 10 match ip address prefix-list list-one set local-preference 120 ! route-map sample permit 20 match ip address prefix-list list-two set local-preference 80 ! route-map sample permit 30 ! Dont forget this
50
Route Maps Coincidir prefijos
Configuracin de Ejemplo
router bgp 100 neighbor [Link] 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 ! ip prefix-list HIGH-PREF permit [Link]/8 ip prefix-list LOW-PREF permit [Link]/8
51
Route Maps Filtrado de AS-PATH
Configuracin de Ejemplo
router bgp 100 neighbor [Link] remote-as 200 neighbor [Link] route-map filter-on-as-path in ! route-map filter-on-as-path permit 10 match as-path 1 set local-preference 80 ! route-map filter-on-as-path permit 20 match as-path 2 set local-preference 200 ! ip as-path access-list 1 permit _150$ 52 ip as-path access-list 2 permit _210_
Route Maps AS-PATH prepends
Configuracin para AS-PATH prepend
router bgp 300 network [Link] mask [Link] neighbor [Link] remote-as 100 neighbor [Link] route-map SETPATH out ! route-map SETPATH permit 10 set as-path prepend 300 300
Utilice su propio nmero de AS cuando haga prepending
De lo contrario, la deteccin de bucles de BGP puede causar desconexiones
53
Route Maps Coincidir Comunidades
Configuracin de Ejemplo
router bgp 100 neighbor [Link] remote-as 200 neighbor [Link] route-map filter-on-community in ! route-map filter-on-community permit 10 match community 1 set local-preference 50 ! route-map filter-on-community permit 20 match community 2 exact-match set local-preference 200 ! ip community-list 1 permit 150:3 200:5 54 ip community-list 2 permit 88:6
Route Maps Asignar Comunidades
Configuracin de Ejemplo
router bgp 100 network [Link] mask [Link] neighbor [Link] remote-as 200 neighbor [Link] send-community neighbor [Link] route-map set-community out ! route-map set-community permit 10 match ip address prefix-list NO-ANNOUNCE set community no-export ! route-map set-community permit 20 match ip address prefix-list AGGREGATE ! ip prefix-list NO-ANNOUNCE permit [Link]/16 ge 55 17 ip prefix-list AGGREGATE permit [Link]/16
Route Map Comando Continue
Mltiples condiciones y acciones en un mismo route-map (para relaciones de vecinos BGP solamente)
route-map peer-filter permit 10 match ip address prefix-list group-one continue 30 set metric 2000 ! route-map peer-filter permit 20 match ip address prefix-list group-two set community no-export ! route-map peer-filter permit 30 match ip address prefix-list group-three set as-path prepend 100 100 !
56
Cambios de Polticas
Slo se aplican nuevas polticas a las actualizaciones que pasan por el enrutador DESPUES de que la poltica haya sido introducida o cambiada Para facilitar los cambios de polticas en la tabla BGP completa, las sesiones de BGP tienen que ser refrescadas
Esto se logra limpiando (clear) la sesin BGP en sentido de entrada o salida, por ejemplo: clear ip bgp <neighbour-addr> in|out
NO SE OLVIDE de in o out de lo contrario la sesin BGP se reiniciar por completo (hard reset)
57
Cambios de Polticas
Se pueden limpiar las sesiones BGP para grupos de vecinos configurados con ciertos parmetros comunes clear ip bgp <addr> [in|out]
<addr> puede ser uno de los siguientes x.x.x.x IP del vecino * Todos los vecinos ASN Todos los vecinos en un AS external Todos los vecinos externos peer-group <name> Vecinos en un peer-group
58
Atributos de BGP y Control de Polticas
59