03 Intro BGP
03 Intro BGP
03 Intro BGP
Implementando IBGP
Implementando EBGP
Enfasis en Estabilidad, Escalabilidad y
Ejemplos de Configuraciones
Por qué utilizarlo?
3
Implementaciónde políticas de
enrutamiento que sean:
Escalable
Estable
Simple (o eso esperamos!)
Necesitas escalar su IGP
Eres un cliente con dos conexiones a ISPs
Necesitas transitar todas las rutas en Internet
Necesitas implementar una politica de enrutamiento,
o expandir las políticas de QoS
Retiros
Atributos
Prefijos
(NLRI - Network-Layer
Reachability Information)
1: ORIGIN 7: AGGREGATOR
2: AS-PATH 8: COMMUNITY
3: NEXT-HOP 9: ORIGINATOR_ID
4: MED 10: CLUSTER_LIST
5: LOCAL_PREF 14: MP_REACH_NLRI
6: 15: MP_UNREACH_NLRI
ATOMIC_AGGREGATE
•Entre router en AS diferentes AS 109
•Usualmente con conexióm directa 131.108.0.0
•Con next-hop apuntando a si mismo
.1 A
Router B
router bgp 110
neighbor 131.108.10.1 remote-as 109 131.108.10.0
Router A
router bgp 109
neighbor 131.108.10.2 remote-as 110 .2 B
150.10.0.0
AS 110
• Vecinos en el mismo AS
• No se modifica el Next-hop
A B
• No necesariamente con
conexión directa
• No anuncia otras rutas
aprendidas por iBGP Router B:
router bgp 109
neighbor 131.108.30.2 remote-as 109
Router A:
router bgp 109
neighbor 131.108.20.1 remote-as 109
EBGP—next-hop set to self
150.10.1.1 150.10.1.2
AS 300 F
AS 200
150.10.0.0/16 E
D
C 192.0.0.0/24 150.1.1.3
150.1.1.1 150.10.0.0/16 150.10.1.1
192.0.0.0/24 150.10.1.1
3rd Party EBGP
IBGP next-hop unmodified
150.1.1.2 150.1.1.3
AS 301 AS 201
192.0.0.0/24 Solo para EBGP NLRI:
neighbor x.x.x.x next-hop-self
1755 1880
200 209
680
660
666
660
Set Community
1:100
Cliente A Cliente B
Todas las rutas Rutas de Clientes
Agrupa los destinos para ayudar a escalar
la aplicación de políticas
Comunidades Típicas:
Destinos aprendidos de los clientes
Destinos aprendidos de los peers
Destinos en la VPN
Destinos que reciben tratamiento preferencial en
la cola
Activación por neighbor/peer-group:
neighbor {peer-address | peer-group-name} send-
community
Transferidos a través de ASs
Formato común es una cadena de 4 bytes:
<AS>:[0-65536]
Cada destino puede ser miembro de varias
comunidades
Route-map: set community
<1-4294967295> número de comunidad
aa:nn número de comunidad en formato aa:nn
additive Añade a una comunidad existente
local-AS No enviar a los peers EBGP (well-known community)
no-advertise No enviar a ningún peer (well-known community)
no-export No exportar fuera del AS/Conf. (well-known community)
none No atributo de comunidad
IGP—creado con comando network en la
configuración de BGP
EGP—Redistribuido de EGP
Incomplete—Redistribute IGP en la configuración
de BGP
NOTA: siempre usar route-map para modificar:
set origin igp
as-path Añade una cadena de AS para el atributo
AS-PATH
comm-list set BGP community list (for deletion)
community Atributo de Comunidad
dampening Configura parámetros para dampening
local-preference Atributo de preferencia local de BGP
metric Valor Metric para el protocolo de enrutamiento
origin Codigo de origen BGP
weight Peso BGP para la tabla de enrutamiento
ip next-hop { A.B.C.D | peer-address }
75k1#sh ip bgp 10.0.0.0
BGP routing table entry for 10.0.0.0/24, version 139267814
Paths: (1 available, best #1)
Not advertised to any peer
Mayor WEIGHT
Mayor LOCAL PREFERENCE
ORIGINADA LOCALMENTE (eg network/aggregate)
Más Corto AS-PATH
Menor ORIGIN (IGP < EGP < incomplete)
Menor MED
EBGP
IBGP
Menor IGP METRIC al next-hop
690
A 1880
B 209
26
Establecer la conexión usando direcciones de
loopback
neighbor { ip address | peer-group}
update-source loopback0
Independiente de fallos de la interfase física
Balanceamiento de la carga es realizado por el
IGP
Usar peer-group y route-reflector
Solo llevar next-hop en el IGP
Solo llevar todas las rutas en BGP si es necesario
No redistribuir BGP en el IGP
iBGP Peer Group
eBGP
13 Routers =>
78 Sesiones
n=1000 => casi iBGP!
medio millón de
sesiones iBGP!
Backbone
Regla para evtar un RR RR
circulo de RR:
RRC RRC
Topología de RR
debe reflejar la RR
topología física RR
Grupo A
Grupo B
RRC
RR
RRC
Grupo C
RR
Grupo D
El Reflector recibe información de clientes y no
clientes
Si el mejor camino es de un cliente, reflejarlo a
clientes y no clientes
Si el mejor camino es de no-cliente, reflejarlo a
los clientes
Divida el backbone en varios grupos
Cada grupo contiene al menos 1 RR (multiples para
redundancia), y multiples clientes
Los RRs crean una maya completa de iBGP
Utilizar solo un IGP—next-hop que no es
modificado por el RR
Router id
RR
140.10.1.1
141.153.30.1 RRC Router id
A 141.153.17.1
RR
C
RRC
Ejemplo: B Router id D
RouterB>sh ip bgp 198.10.0.0 141.153.17.2
BGP routing table entry for 198.10.10.0/24
3
141.153.14.2 from 141.153.30.1 (140.10.1.1)
Origin IGP, metric 0, localpref 100, valid, internal, best 141.153.14.2
Originator: 141.153.17.2
AS3
Cluster list: 144.10.1.1, 141.153.17.1 198.10.0.0
ORIGINATOR_ID
Router ID del vecino iBGP qye refleja rutas del cliente
RR a no clientes
Sobrepasado por: bgp cluster-id x.x.x.x
De uso para resolver problemas y chequear por
relaciones circulares
CLUSTER_LIST
Cadena de ORIGINATOR_IDs a través de los cuales la
ruta ha pasado
De uso para resolver problemas y chequear
relaciones circulares
Es la conexión iBGP Estable?
Use loopbacks para la conexión
Escalará?
Use peer-groups
Use route-reflectors
Simple, configuración jerárquica?
Consideraciones de Clientes
Consideraciones de ISPs
39
Procedimiento
Configure BGP (use passwords para la sesión!)
Genere una ruta agregada estable
Configure la política de entrada
Configure la política de salida
Configure loadsharing/multihoming
• AS 100 es un cliente de AS 200
AS 200
• Usualmente con conexión
10.0.0.0
directa
.1 A
Router B:
10.200.0.0
router bgp 109
aggregate-address 10.60.0.0 255.255.0.0 summary-only
neighbor 10.200.0.1 remote-as 200
neighbor 10.200.0.1 route-map ispout out
neighbor 10.200.0.1 route-map ispin in .2 B
10.60.0.0
AS100
Sumarización basada en rutas específicas la tabla
de enrutamiento BGP
10.1.1.0 255.255.255.0
10.2.0.0 255.255.0.0
=> 10.0.0.0 255.0.0.0
aggregate-address 10.0.0.0 255.0.0.0 {as-set}
{summary-only} {route-map}
Use as-set para incluir la información de camino
y comunidad basado en las rutas específicas
summary-only suprime las rutas específicas
route-map para configurar otros atributos
Reducir el número de prefijos a anunciar
Incrementar estabilidad — rutas agregadas se
mantienen aún si las específicas son inestables
Generación de rutas agragadas estables:
router bgp 100
aggregate-address 10.0.0.0 255.0.0.0 as-set summary-only
network 10.1.0.0 255.255.0.0
:
ip route 10.1.0.0 255.255.0.0 null0
Indica perdida de información de AS-PATH
No debe ser removido una vez configurado
Configuración: aggregate-address x.x.x.x
No configurado si la clave as-set es utilizada, AS-
SET y COMMUNITY contienen la información sobre
las rutas específicas
Número de AS e IP del enrutador generando
el agregado
De uso para resolver problemas
NEXT_HOP = local (0.0.0.0)
WEIGHT = 32768
LOCAL_PREF = ninguna (asume 100)
AS_PATH = AS_SET o nada
ORIGIN = IGP
MED = ninguna
Aplicar una comunidad reconocible para usar en
los filtros de salida u otras políticas
Configurar local-preference para modificar el
default de 100
Balanceo de las cargas en ambientes de conexión
dual—ver mas adelante
route-map ISPin permit 10
set local-preference 200
set community 100:2
El filtrado de prefijos de salida ayuda a
protegernos contra errores (también podemos
aplicar filtros de comunidades y as-path)
Enviar comunidades basado en acuerdos con el
ISP
route-map ISPout permit 10
match ip address prefix-list outgoing
set community 100:1 additive
Router A:
interface loopback 0
ip address 10.60.0.1 255.255.255.255
!
router bgp 100
neighbor 10.200.0.2 remote-as 200
neighbor 10.200.0.2 update-source loopback0
neighbor 10.200.0.2 ebgp-multi-hop 2
Loopback 0
A 10.200.0.2
200
100
Router A:
router bgp 100
neighbor 10.200.0.1 remote-as 200
neighbor 10.300.0.1 remote-as 200
maximum-paths 6
A 200
100
Conectarse a dos o más ISPs para
incrementar:
Confiabilidad—si un ISP falla, todavía funciona
Desempeño—mejores caminos a destinos
comunes en Internet
Tres casos comunes:
Ruta Default de todos los proveedores
Rutas de Clientes+default de todos
Rutas completas de todos
Solución bajos requerimientos de memoria/CPU
AS 200 AS 300
D E
0.0.0.0 0.0.0.0
A B
AS 400 C Selecciona el IGP
con la métrica más
C baja para Default
Uso mediano de memoria y CPU
“Mejor” camino—usualmente el camino AS (AS
PATH) más corto
Uso de local-preference para modificar basado en
prefijo, as-path, o comunidad
Métrica de IGP al default usado para todos los
destinos
Cliente
AS 100
160.10.0.0/16
Proveedor Proveedor
AS 200 AS 300
D E
A B
C Selecciona
AS 400
el camino AS más
corto
C
Cliente
AS 100
160.10.0.0/16
Proveedor Proveedor
AS 200 AS 300
D 800 E
AS 200 AS 300
D E
A B
AS 400
C Selecciona el
camino más corto C
La entrada es muy dificil de controlar debido a la
falta de una métrica transitiva
Puedes dividir los anuncios de prefijos entre los
proveedores, pero entonces, que pasa con la
redundancia?
• Mal Ciudadano Internet:
•Divide el espacio de direcciones
•Usa “as-path prepend”
Buen Ciudadano :
Divide el espacio de direcciones
Usa “advertise maps”
10.1.0.0/16 300 400 400
Cliente 10.1.0.0/16 200 400 (Mejor)
AS 100
Proveedor Proveedor
AS 200 AS 300
D E
R2 R4
10.15.7/24
1.10.6/24
1.10.6.1
10.15.7.4
Estabilidad por Medio de:
Agregación
Multihoming
Filtrado de Entreda/Salida
Escalabilidad de memoria/CPU:
Default, rutas de clientes, todas las rutas
Simplicidada usando soluciones “estandares”
Escalar la agragación de clientes en BGP
Ofrecer una selección del número de rutas a
anunciar
Intercambio con otros proveedores
Minimizar la actividad de BGP y protegerse
contra los problemas de configuración de los
clientes
Proveer un servicio alternativo
Propagar una política de Calidad de Servicio
Definir por los menos tres “peer-groups”:
cliente-default — envía solo default
cliente-cliente — envía solo las rutas de clientes
Cliente-completo — envía todas las rutas
Identificar las rutas a traves de comunidades
2:100=clientes; 2:80=peers
Aplicar claves y un “prefix-list” para cada vecino
BGP
CORE
Route Reflector
Router de Agregación
(Cliente RR)
Cliente Peer Group