Temario 02-1
Algoritmo para selección de ruta 02-2
No se considera la ruta si no se puede
llegar al next hop
Weight más alto (Local al router)
Local Preference mayor (Dentro del AS)
Prefiere ruta originada localmente (next-
hop 0.0.0.0)
AS-Path más corta
Algoritmo para selección de ruta 02-3
Código de origen menor
⚫ IGP < EGP < incomplete
Multi-Exit Discriminator (MED) menor
⚫ Si se habilita bgp deterministic-med, ordena las
rutas antes de comparar
⚫ Si se habilita bgp always-compare-med, se
compara para todas las rutas
⚫ De otra forma MED sólo se considera si las
rutas son del mismo AS (Default)
Algoritmo para selección de ruta 02-4
Prefiere la ruta eBGP sobre la iBGP
Ruta con la menor métrica IGP hacia el next
hop
Para eBGP, prefiere le ruta más antigua (más
estable)
Menor router-id (originator-id para rutas
reflejadas)
Cluster-list más corto
• Presente solo cuando se usa Route Reflector
Menor dirección IP del vecino
Algoritmo para selección de ruta
Ejemplo 1 02-5
Router_test#sh ip bgp 192.168.224.0
BGP routing table entry for 192.168.224.0/24, version 319109959
Paths: (2 available, best #2)
Advertised to update-groups:
2 3 4 6 10
Local
201.154.119.6 (metric 201) from 201.154.119.16 (201.154.119.16)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 201.154.119.6, Cluster list: 201.154.119.16, 201.154.119.3
Local
201.154.119.6 (metric 201) from 201.154.119.3 (201.154.119.3)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 201.154.119.6, Cluster list: 201.154.119.3
Algoritmo para selección de ruta
Ejemplo 1 02-6
Router_test#sh ip bgp
BGP table version is 323674683, local router ID is 201.154.0.247
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i192.168.224.0 201.154.119.6 0 100 0 i
*>i 201.154.119.6 0 100 0 i
Algoritmo para selección de ruta
Ejemplo 2 02-7
¿Cuál es la mejor ruta?
Algoritmo para selección de ruta
Ejemplo 2 02-8
Community 02-9
Son descritas en RFC1997
Número de 32 bits
⚫ Representado como dos números de 16 bits (RFC1998)
⚫ El formato común es <ASN-local>:XX
Usado para agrupar destinos
⚫ Cada destino puede ser miembro de múltiples comunidades
Es transportado a través de los AS’s
Muy útil para aplicar políticas
Slide Title 02-10
BGP Selección de ruta
BGP Communities
BGP Communities 02-11
Comunidades BGP son usadas para etiquetar
rutas para asegurar un filtrado consistente o
una política de selección de ruta
Cualquier router puede etiquetar rutas en los
updates de entrada o salida o cuando hace
redistribución
Cualquier router puede filtrar rutas en los
updates de entrada o salida, o seleccionar sus
rutas preferidas basandose en comunidades
Por default, las comunidades no son enviadas
en los updates de salida
BGP Communities 02-12
Es un atributo transitivo opcional. Su valor es un numero de 32-
bits (Rango de 0 a 4,294,967,200)
Cada red en la tabla BGP puede ser etiquetada con varias
comunidades
Los estándares definen varias comunidades orientadas al
filtrado
⚫ No-advertise: No propaga las rutas a ningún vecino
⚫ No-export: No propaga las rutas a router real EBGP
⚫ Local-as: No propaga las rutas a ningún router EBGP (usado
únicamente con Confederations)
⚫ Internet: Propaga las rutas a la comunidad de Internet
Los routers que no lo soportan envían las comunidades sin
ningún cambio
BGP Communities 02-13
El valor de 32 bits es dividido en dos
partes
⚫ Los primeros 16 bits contienen el número de AS
del AS que define la comunidad
⚫ Los últimos 16 bits tienen significado local
El valor con sólo 0’s y sólo 1’s esta
reservado
Cisco IOS permite definir el valor como:
⚫ [AS-number]:[low-order-16-bits]
Community 02-14
No-Export Community 02-15
• AS100 anuncia las subredes y rutas agregadas
• Su objetivo es mejorar el balanceo de carga filtrando las subredes
• Subredes marcadas con no-export community
• Router G en el AS200 no anuncia las subredes con no-export
community configurado
BGP Communities Configuración 02-16
Para configurar comunidades BGP:
⚫ Configurar el etiquetado de rutas con comunidades
BGP
⚫ Configurar la propagación de las comunidades
⚫ Definir las listas de acceso de las comunidades BGP
(community-list) para hacer match con las
comunidades
⚫ Configurar route-maps para hacer match con los
community-lists y filtar rutas o activar algún atributo
⚫ Aplicar los route-maps a los updates de entrada o
salida
BGP Communities Etiquetado de rutas 02-17
route-map name
match condition
set community value [value ...][additive]
El etiquetado de rutas con communities siempre es
hecho con un route-map
Se puede especificar cualquier numero de
comunidades
Las comunidades especificadas con set sobrescriben
a las existentes, a menos que se agregue la opción
additive
BGP Communities Etiquetado de rutas
02-18
Router(config-router)#neighbor ip-address
route-map map in|out
⚫ Aplica el route-map a los updates de entrada
o salida
⚫ Puede aplicar las comunidades BGP u otro
atributo
Router(config-router)#redistribute protocol
route-map map
⚫ Aplica el rotue-map a las rutas redistribuidas
BGP Communities Etiquetado de rutas 02-19
Flujo de tráfico deseado
AS 213 AS 462
10.0.0.0/8 2 Mbps
64 kbps
AS 387
Flujo de tráfico por default
router bgp 213
neighbor 1.2.3.4 remote-as 387
neighbor 1.2.3.4 route-map setcomm out
neighbor 1.2.3.4 send-community
!
route-map setcomm permit 10
set community 387:17
BGP Communities Propagación 02-20
Router(config-router)#neighbor ip-address send-
community
⚫ Por default, las comunidades no son enviadas en los updated
BGP de salida
⚫ Se debe de configurar manualmente la propagación de las
comunidades a los vecinos
⚫ BGP peer groups son ideales para configurar la propagación
de las comunidades BGP cuando hay un gran número de
vecinos
BGP Communities Propagación 02-21
Flujo de tráfico deseado
AS 213 AS 462
10.0.0.0/8 2 Mbps
64 kbps
AS 387
Flujo de tráfico por default
router bgp 213
neighbor 1.2.3.4 remote-as 387
neighbor 1.2.3.4 route-map setcomm out
neighbor 1.2.3.4 send-community
!
route-map setcomm permit 10
set community 387:17
BGP Communities Community-list 02-22
Router(config)#
ip community-list 1-99 permit|deny value [value …]
⚫ Este comando define una communitu-list simple
⚫ Community-list son similares a las listas de acceso, son
evaluadas secuencialmente, línea por línea
⚫ Todos los valores enlistados en una línea tienen que hacer
match para permitir o negar la ruta
⚫ Se puede usar la opción Internet para hacer match
cualquier comunidad
BGP Communities Community-list 02-23
Router(config)#
ip community-list 100-199 permit|deny regexp
⚫ Este comando define una communitu-list extendida
⚫ Community-list extendidas son como las community-lists
simples, solo que hacen match basándose en expresiones
regulares
⚫ Las comunidades adjuntas a una ruta son ordenadas,
convertidas en cadenas de caracteres y comparadas con
regexp
⚫ Usar “.*” para hacer match con cualquier comunidad
BGP Communities Community-list 02-24
Flujo de tráfico deseado
AS 213 AS 462
10.0.0.0/8 2 Mbps
64 kbps
AS 387
Flujo de tráfico por default
!Hace match con la comunidad que señala
! el local preference reducido
Ip community-list 7 permit 387:17
BGP Communities
Named Community-list 02-25
Permite al administrador asignar nombres a las
community-lists e incrementar el número de community-
list que pueden ser configuradas
Pueden ser configuradas con expresiones regulares o con
community-lists numeradas
No hay limitación en el número de atributos que pueden
ser configurados
No hay limitación en el número de community-list
nombradas que pueden ser configuradas
BGP Cost Community 02-26
Permite personalizar el proceso de selección de
la mejor ruta para un AS local o confederación
Aplicado en rutas internas configurando el
comando set extcommunity cost en un route-
map
Influye en el proceso de selección de la mejor
ruta en el POI (point of insertion)
Puede ser usado como “desempate” durante el
proceso de selección de la mejor ruta
BGP Link Bandwidth
02-27
Usado para balanceo de carga en enlaces
externos con ancho de banda diferente
Habilitado bajo sesiones IPv4 o VPNv4
usando el comando bgp dmzlink-bw
Rutas aprendidas de vecinos externos
directamente conectados se propagan a
través de la red IBGP con el ancho de
banda del enlace externo
BGP Link Bandwidth 02-28
BGP Communities con Route-Maps 02-29
route-map name permit | deny
match community clist-number [exact]
set attributes
Community-lists son usadas en las condiciones match en los
route-maps para hacer match con comunidades adjuntas en las
rutas
Un route-map con un community-list hace match con la ruta si al
menos algunas comunidades adjuntas en la ruta hacen match con
el community-list
Con la opción exact, todas las comunidades de la ruta tienen que
hacer match con el community-list
Se pueden usar route-maps para filtrar rutas o aplicar otros
atributos basándose en las comunidades adjuntas a las rutas
BGP Communities con Route-Maps 02-30
Selección de ruta
⚫ Se pueden usar route-maps para configurar weights, local
preference, o MED basándose en las comunidades BGP de las rutas
⚫ Las reglas de selección de ruta normales aplican después de eso
⚫ Rutas no aceptadas en el route-map son tiradas
Filtros por default
⚫ Rutas etiquetadas con no-export son enviadas a los peers IBGP y
peers intra-confederation EBGP
⚫ Rutas etiquetadas con local-as son enviadas a los peers IBGP
⚫ Rutas etiquetadas con no-advertise no son enviadas en ningún
BGP update
BGP Communities con Route-Maps 02-31
Flujo de tráfico deseado
AS 213 AS 462
10.0.0.0/8 2 Mbps
64 kbps
AS 387
Flujo de tráfico por default
router bgp 387
neighbor Customars peer-group
neighbor Customers route-map setlocpref in
!
route-map setlocpref permit 10
match community 7
set local-preference 50
!
route-map setlocpref permit 9999
!
ip community-list 7 permit 387:17
BGP Communities Monitoreo 02-32
Las comunidades se despliegan únicamente con el comando
show ip bgp prefix
BGP Communities Monitoreo 02-33
Show ip bgp community
⚫ Muestra todas las rutas en la tabla BGP que tienen al menos una
comunidad adjunta
Show ip bgp community as:nn [as:nn …]
⚫ Muestra todas las rutas en la tabla BGP que tienen la comunidad
adjunta especificada
Show ip bgp community as:nn [as:nn …] exact
⚫ Muestra todas las rutas en la tabla BGP que tienen exactamente las
comunidades adjuntas especificadas
Show ip bgp community-list clist
⚫ Muestra todas las rutas en la tabla BGP que hacen match con la
community-list
Slide Title 02-34
BGP Técnicas en redes
escalables
Técnicas en redes escalables 02-35
Un proveedor de servicio cómo..
⚫ Escala la red iBGP más allá de unos vecinos
BGP??
⚫ Implementa nuevas políticas sin causar
intermitencias??
⚫ Reduce el procesamiento en los routers??
⚫ Mantiene la red estable, escalable y simple??
Técnicas en redes escalables 02-36
Route Reflectors & Confederations
Peer groups
Route flap damping
Slide Title 02-37
BGP Técnicas en redes
escalables
Route Reflectors
Escalar red mesh iBGP
02-38
Evitar una red mesh
iBGP ½n(n-1)
N=1000 → Cerca de medio
millón se sesiones IBGP
Dos soluciones
⚫ Route Reflectors – Simple de desarrollar y ejecutar
⚫ Confederation – Más complejo, más beneficios
Route Reflector: Principio
02-39
Route
Reflector
Ruta EBGP
Ruta EBGP
• IBGP Clásico:Rutas IBGP no • Route Reflector puede
son propagadas a otros propagar las rutas IBGP a
peers IBGP otros peers IBGP
• Por lo tanto es necesario • Full-mesh ya no es necesario
full-mesh en los peers IBGP
Route Reflector 02-40
Recibe rutas de
clientes y no clientes
Selecciona la mejor
ruta
Si la mejor ruta viene
de un cliente, refleja a
otros clientes y no
clientes
Si la mejor ruta es de
un no cliente, refleja
únicamente a los
clientes
Route Reflector 02-41
Route Reflector 02-42
El concepto de “cluster” se introdujo para prevenir loops de
ruteo IBGP entre Route Reflectors
Route Reflector Cluster 02-43
Divide el backbone en múltiples clusters
Al menos un route reflector y varios
clientes por cluster
Cada cluster debe tener un cluster-id único
Cada vez que una ruta es reflejada, el
cluster-id es añadido al atributo BGP
cluster-list
La ruta que ya contiene el cluster-id local
en el cluster-list no es reflejada
Route Reflector Cluster 02-44
Route Reflector Prevención de loop 02-45
Cada vez que la ruta es reflejada, el
router-id del router origen es almacenado
en el atributo originator-ID
Cuando un router recibe una ruta en
donde el originator-ID contenga su propia
router-id ignora la ruta
El procedimiento de selección de ruta es
modificado para tomar en cuenta el
cluster-list y el originator-ID
Route Reflector Redundancia 02-46
Múltiples RRs pueden ser configurados en
el mismo cluster – No recomendado
⚫ Todos los RRs deben tener el mismo cluster-id
Un router puede ser cliente de RRs en
cluster diferentes
⚫ Común en redes ISP para cubrir dos clusters –
Redundancia lograda de esa forma
⚫ Cada cliente tiene dos RRs = redundancia
Route Reflector Redundancia 02-47
Route Reflector Diseño
02-48
Reglas para Route Reflectors
⚫ Divide un AS de tránsito en áreas pequeñas (cluster)
⚫ Cada cluster contiene Route Reflectors y clientes
⚫ Routers que no soportan la funcionalidad de Route Reflector pueden
actuar como un cluster de solo un router o como clientes
Reglas IBGP
⚫ Todos los clientes en el cluster deben establecer una sesión IBGP con
y sólo con todos los RRs del cluster
⚫ Full-mesh IBGP es requerida entre los RRs en el AS
⚫ Routers que no son RRs pueden participar en la red full-mesh o ser
clientes
Route Reflector Diseño
02-49
Route Reflector Configuración 02-50
Router(config-router)#bgp cluster-id cluster-id
⚫ Comando opcional que asigna el cluster-id al Route Reflector (El
valor por default es el router-id)
⚫ Requerido únicamente en clusters con RRs redundantes
⚫ Cluster-id no puede ser cambiado después de que el primer cliente
es configurado
Router(config-router)#neighbor ip-address route-reflector-
client
⚫ Configura a un vecino IBGP para ser cliente del Route Reflector
Route Reflector Configuración
02-51
Route Reflector Monitoreo
02-52
Show ip bgp neighbors
⚫ Muestra cuando un vecino es un cliente del Route Reflector
Show ip bgp network [mask]
⚫ Muestra atributos adicionales (originator-ID y cluster-ID)
Route Reflector Monitoreo
02-53
Rutas recibidas del cliente vistas desde el RR
Rutas reflejadas vistas desde el cliente
Slide Title 02-54
BGP Técnicas en redes
escalables
Confederations
Confederations 02-55
Divide el AS en sub-ASs
⚫ eBGP entre los sub-AS, pero mantiene información
iBGP
Mantiene el NEXT_HOP a través del sub-AS (IGP transporta la información)
Mantiene LOCAL_PREF y MED
Usualmente un solo IGP
Descrito en RFC3065
Confederations 02-56
Visible al mundo exterior como un solo AS
– “Confederation Identifier”
⚫ Cada sub-AS usa un número de AS del rango
privado (64512-65534)
Routers iBGP en cada sub-AS están en
full-mesh
⚫ El número total de vecinos es reducido
limitando la necesidad de estar en full-mesh
únicamente a los vecinos en el sub-AS
⚫ También puede usar Route Reflector en el sub-
AS
Confederations 02-57
Divide el AS en sistemas autónomos más pequeños, reduce el número
de sesiones BGP, pero no están disponibles números de AS extras
Permiten que los ASN internos se oculten y se anuncien únicamente
sólo un ASN(externo) a los vecinos EBGP
Confederations Configuración 02-58
Inicia el proceso BGP con el ASN miembro
Especifica un ASN externo
⚫ Debe de estar definido en todos los routers en
la confederación
Enlistar todos los ASN miembros en la
confederación
⚫ Debe ser definido en todos los routers en la
sesión EBGP
Confederations Configuración 02-59
Router(config)#no router bgp as-number
Router(config)#router bgp member-as-number
⚫ Remueve el proceso anterior y configura el proceso con
el ASN miembro
Router(config-router)#bgp confederation
identifier external-as-number
⚫ Configura el ASN externo de la confederación
Router(config-router)#bgp confederation peers
list-of-intra-confederation-as
⚫ Define todos los demás AS en la confederación
Confederations Configuración 02-60
Configuration (rtr B):
router bgp 65532
bgp confederation identifier 200
bgp confederation peers 65530 65531
neighbor 141.153.12.1 remote-as 65530
neighbor 141.153.17.2 remote-as 65531
Confederations: AS-Sequence 02-61
Decisiones de propagación de rutas 02-62
Igual que con BGP “normal”
⚫ Desde el vecino en el mismo sub-AS → sólo a vecinos
externos
⚫ Desde vecinos externos → a todos los vecinos
“Vecinos externos” se refiere a:
⚫ Vecinos fuera de la confederacion
⚫ Vecinos en diferentes sub-AS
Mantiene LOCAL_PREF, MED y NEXT_HOP
Confederations Monitoreo 02-63
Confederations Monitoreo 02-64
Route Reflectors o Confederations? 02-65
Conectividad Niveles de Políticas Escalabilidad Complejidad
a Internet jerarquía de de la
control migración
Confederations Cualquier sí Sí Media Medía a alta
punto en la
red
Route Cualquier Sí Sí Alta Muy baja
Reflectors punto en la
red
Más puntos acerca de
Confederations 02-66
Puede fácilmente “absorber” otros ISPs dentro
de un ISP – por ejemplo, cuando un ISP
compra a otro
⚫ O se puede usar la funcionalidad local-as para hacer
algo similar
Puede usar Route Reflectors con sub-AS
Confederations para reducir el sub-AS de la red
mesh iBGP
Slide Title 02-67
BGP Técnicas en redes
escalables
Peer Groups
Peer Groups
02-68
Sin peer groups configurados
⚫ Los vecinos iBGP reciben el mismo
update
⚫ Redes mesh largas iBGP se construyen
lentamente
⚫ El CPU del router es gastado en
cálculos repetitivos
Peer Groups
Ventajas
02-69
Hace la configuración más sencilla
Configuración menos susceptible a
error
Hace la configuración más
entendible
Menor carga para el CPU
Las redes mesh iBGP se construyen
más rápido
Peer Groups
Limitaciones
02-70
Tienen limitaciones por la forma en
la que son usados para construir los
updates BGP
⚫ Los parámetros que afectan los
updates de salida no pueden ser
cambiados por los miembros del peer
group
⚫ Vecinos IBGP y EBGP no pueden
mezclarse en un peer group
Peer Groups
02-71
Siempre configurar peer-groups
para iBGP
⚫ Incluso si son pocos los vecinos iBGP
⚫ Más fácil crecer la red en un futuro
⚫ Hace el template de configuración más
sencillo
Considerar usar peer-groups para
eBGP
⚫ Especialmente útil para multiples
clientes BGP usando el mismo AS
Peer Group Cisco IOS
02-72
Peer Group crea un template de parámetros para los
vecinos
Los parámetros configurables son:
⚫ Community propagation
⚫ Interfaz fuente de la sesión TCP
⚫ Sesiones EBGP multihop
⚫ Password MD5
⚫ Weight
⚫ Filter-lists y distribute-list
⚫ Route-maps
Parámetros individuales especificados en el peer group
pueden ser sobrescritos por la configuración especifica del
vecino
Peer Group Configuración 02-73
Router(config-router)#neighbor group-name peer-group
⚫ Crea un peer group
⚫ Los nombre son case-sentitive
Router(config-router)#neighbor group-name any-BGP-parameter
⚫ Especifica cualquier parametro para el peer group
Router(config-router)#neighbor ip-address peer-group peer-
group-name
⚫ Asigna al vecino a un peer-group
⚫ El vecino recibe todos los parámetros del peer group
Router(config-router)#neighbor ip-address any-BGP-parameter
⚫ Sobrescribe el parámetro especificado en el peer group con el
parámetro especifico para el vecino
Peer Groups Ejemplo 02-74
Peer Groups Ejemplo 02-75
Peer Group Monitoreo 02-76
Peer Group Monitoreo 02-77
Peer Group Monitoreo 02-78
Slide Title 02-79
BGP Técnicas en redes
escalables
Route Flap Damping
Route Flap Damping 02-80
Flapeo de ruta
• Cuando una se cae y se levanta o cambia un
atributo
• BGP WITHDRAW seguido de un UPDATE = 1 flap
• Reseteo de la vecindad con un router eBGP no es un flapeo
• Se propaga a través de Internet
• Consume CPU
Route Flap Damping tiene por objetivo la
disminución del alcance de la propagación del
flapeo
Route Flap Damping 02-81
Requisitos
⚫ Rápida convergencia para cambios de ruta
normales
⚫ Historia predice el comportamiento futuro
⚫ Suprime rutas oscilantes
⚫ Advierte rutas estables
Documentado en RFC2439
Operación
02-82
Agrega una penalidad (1000) por cada flapeo
⚫ Cambio de un atributo tiene una penalidad de 500
Las penalidades aumentan exponencialmente
⚫ El Half life determina la tasa de decadencia
Si las penalidades superan el supress-limit
⚫ No se advierte la ruta a los vecinos BGP
Si las penalidades caen debajo del reuse-limit
⚫ Se vuelve a advertir la ruta
⚫ La penalidad se reinicia a cero cuando llega a la mitad
del reuse-limit
Operación 02-83
Operación 02-84
Se aplica únicamente a anuncios de
entrada de vecinos eBGP
Rutas alternas utiles
Controlado por:
⚫ Half-life (default 15 minutos)
⚫ Reuse-limit (default 750)
⚫ Suppress-limit (default 2000)
⚫ Suppress-time máximo (default 60 minutos)
Configuración 02-85
Damping fijo
router bgp 100
bgp dampening [<half-life> <reuse-value> <suppresspenalty>
<maximum suppress time>]
Damping variable y selectivo
bgp dampening [route-map <name>]
Damping variables
⚫ Recomendaciones para ISPs
http://www.ripe.net/docs/ripe-229.html
Operación 02-86
Los parámetros se tienen que ajustar
cuidadosamente
La penalidad debe ser menor que el reuse-
limit en el suppress-time máximo
Suppress-time máximo y el half time
deben permitir que la penalidad sea más
larga que el suppress-limit
Configuración 02-87
Ejemplos – X
⚫ bgp dampening 30 750 3000 60
Reuse-limit de 750 hace que la penalidad máxima sea de
3000 – ocasionando de ninguna subred sea suprimida ya
que la penalidad no puede exceder el suppress-limit
Ejemplos –
⚫ bgp dampening 30 2000 3000 60
Reuse-limit de 2000 hace que la penalidad máxima sea de
8000 – el suppress-limit es facilmente alcanzado
Matemática 02-88
Valor máximo de penalidad
Asegurarse siempre que el suppress-limit es
menor que max-penalty, de otra forma no se
usará flap damping