Teoría y Configuración de
BGP
LACNIC XII
Programa
 Introducción y Repaso
 Uso de atributos de BGP
 Implementando iBGP
 Implementando eBGP
 Enfasis en Estabilidad, Escalabilidad y
Ejemplos de Configuraciones
3
Repaso de BGP
Por qué utilizarlo?
Introducción
 BGP es un protocolo de Vector de Caminos
 De-facto EGP
 Utiliza números de sistemas autónomos (ASN)
para identificación
 Lleva información de los AS por los que un prefijo
a pasado
 Utiliza TCP en el puerto 179
 Requiere conexiones explicitas entre dos
enrutadores
Máquina de Estado Finíto de BGP
Que es un Sistema Autónomo?
 Necesarios para controlar la expansión de las
tablas de enrutamiento
 Proveen vista mas estructurada del Internet
 Segregan dominios de enrutamiento en grupos
administrativos bien definidos con su propias
políticas de enrutamiento e IGPs
 Representado por números de Sistema
Autónomo
 16-bits (actualmente, utilización de 73%)
 Expandido a 32-bits (RFC4893)
Sistemas Autónomos
Distancia Administrativa de Protocolos
Protocolo Distancia
Directamente Conectada 0
Estática 1
eBGP 20
EIGRP (Interno) 90
IGRP 100
OSPF 110
ISIS 115
RIP 120
EGP 140
EIGRP (Externo) 170
iBGP 200
BGP Local 200
Desconocido 255
Resultado Deseado?
 Implementación de políticas de
enrutamiento que sean:
 Escalable
 Estable
 Simple (o eso esperamos!)
Más Detalles...
 Necesitas escalar tu IGP
 Eres un cliente con dos conexiones a ISPs
 Necesitas transitar todas las rutas en
Internet
 Necesitas implementar una política de
enrutamiento, o expandir las políticas de QoS
RetirosRetiros
AtributosAtributos
(NLRI - Network-Layer
Reachability Information)
(NLRI - Network-Layer
Reachability Information)
PrefijosPrefijos
Actualizaciones de BGP
Atributos de BGP Utilizados para Definir la
Política de Enrutamiento
1: ORIGIN
2: AS-PATH
3: NEXT-HOP
4: MED
5: LOCAL_PREF
6: ATOMIC_AGGREGATE
1: ORIGIN
2: AS-PATH
3: NEXT-HOP
4: MED
5: LOCAL_PREF
6: ATOMIC_AGGREGATE
 7: AGGREGATOR
 8: COMMUNITY
 9: ORIGINATOR_ID
 10: CLUSTER_LIST
 14: MP_REACH_NLRI
 15: MP_UNREACH_NLRI
 7: AGGREGATOR
 8: COMMUNITY
 9: ORIGINATOR_ID
 10: CLUSTER_LIST
 14: MP_REACH_NLRI
 15: MP_UNREACH_NLRI
BGP Externo (eBGP)
AS 109
AS 110
131.108.0.0
A
B
150.10.0.0
131.108.10.0131.108.10.0
.1
.2
 Router B
router bgp 110
neighbor 131.108.10.1 remote-as 109
 Router A
router bgp 109
neighbor 131.108.10.2 remote-as 110
•Entre router en AS diferentes
•Usualmente con conexión directa
•Con next-hop apuntando a si mismo
A B
BGP Interno
 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
 Vecinos en el mismo AS
 No se modifica el Next-hop
 No necesariamente con
conexión directa
 No anuncia otras rutas
aprendidas por iBGP
Modificando los defaults:
Solo para EBGP NLRI:
neighbor x.x.x.x next-hop-self
Modificando con route-map:
set ip next-hop { A.B.C.D | peeraddress}
AS 300
AS 200
150.10.0.0/16 EE
FF
192.0.0.0/24
AS 201AS 301
AA
CC
DDD
BB
150.1.1.1
150.10.1.1 150.10.1.2
EBGP—next-hop set to self
3rd Party EBGP
Atributos de BGP: NEXT_HOP
150.1.1.2 150.1.1.3
IBGP next-hop unmodified
150.10.0.0/16 150.10.1.1
192.0.0.0/24 150.10.1.1
192.0.0.0/24 150.1.1.3
1880
193.0.34/24
1882
193.0.35/24
1881
193.0.33/24
A: 193.0.33/24 1880 1881
B: 193.0.34/24 1880
C: 193.0.32/24 1880 1883
E: 193.0.32/22 1880 {1881, 1882,1883}
A: 193.0.33/24 1880 1881
B: 193.0.34/24 1880
C: 193.0.32/24 1880 1883
E: 193.0.32/22 1880 {1881, 1882,1883}
1883
193.0.32/24
AA
BB
D
EEE
Problema: Detección de Loop, Políticas
Solución: AS-PATH
 Secuencia de ASs
Lista de AS por los que la ruta
ha pasado
 Conjunto de AS (AS Set)
Sumariza la secuencia de ASs
El order de la secuencia se
pierde
 Prefijo con route-map:
set as-path CC
1755
690
200
1880
1883
209
Problema: Indicar mejor camino a AS
Solución: MED
 Informa sobre la preferencia de punto de entrada
 Se compara si los caminos son del mismo AS
 A no ser que se use “bgp always-compare-med”
 Es un atributo no-transitivo
 route-map: set metric
set metric-type internal
1755 1880
690
660
Problema: Sobrepasando As-path/MED?
Solución: LOCAL PREFERENCE
 Atributo es local al AS — mandatorio para las
actualizaciones de iBGP
 route-map: set local-preference
680
Problema: Sobrepasando Local Preference
Solución: WEIGHT (Cisco)
 Local al router en que es configurado
 route-map: set weight
 El mayor peso (weight) gana sobre todos los caminos válidos
1755 1880
666
690
660
CORE
Cliente A
Todas las rutas
Cliente B
Rutas de Clientes
Peer A
Communities:
1:100—customer routes
1:80—peer routes
Communities:
1:100—customer routes
1:80—peer routes
Match Community
1:100
Set Community
1:80
Match Community
1:100 1:80
Match Community
1:100
Set Community
1:100
Problema: Escalando Políticas de
Enrutamiento
Solución: COMMUNITY
Atributo de BGP: COMMUNITY
 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
Atributos de BGP: COMMUNITY
 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]
Atributos de BGP: COMMUNITY
 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
Atributo de menor uso: ORIGIN
 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
Comando set en un route-map
 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 }
Atributos de BGP
router1#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
65000 64000 {100 200}, (aggregated by 64000 16.0.0.2)
10.0.10.4 (metric 10) from 10.0.0.1 (10.0.0.2)
Origin IGP, metric 100, localpref 230, valid, aggregated
internal (or external or local),
atomic-aggregate, best
Community: 64000:3 100:0 200:10
Originator: 10.0.0.1, Cluster list: 16.0.0.4, 16.0.0.14
! AS-PATH AS ID
! NEXT-HOP
IGP METRIC PEER-IP PEER-ID
Proceso de Enrutamiento
Algoritmo Básico Para Decidir
Highest WEIGHT
Highest LOCAL PREFERENCE
LOCALLY ORIGINATED (eg network/aggregate)
Shortest AS-PATH
Lowest ORIGIN (IGP < EGP < incomplete)
Lowest MED
EBGP
IBGP
Lowest IGP METRIC to next-hop
Oldest external path
Router with lowest Router ID
Shortest CLUSTER_LIST length
Lowest Neighbor IP address
Only consider synchronized routes without AS loops and a valid
next-hop, and then prefer:
Sincronización
1880
209
690
B
A
• Asegurarse de que los next-hops del iBGP pueden
ser vistos via IGP, entonces:
router bgp 1880
no synchronization
• Router A no anunciará los prefijos de AS209 hasta
que haya convergencia en el IGP.
router bgp 100
no synchronization
no auto-summary
distance 200 200 200
Consideraciones Generales
 Sincronización: no requerida si se tiene una
maya iBGP completa
 => No dejar que BGP tenga prioridad sobre IGP
 auto-summary: no. En su lugar usar comandos
de agregación:
Hasta Ahora …
 Aplicar las políticas en base al AS
 Agrupar las rutas usando comunidades
 Seleccionar los puntos de entrada y salida para
grandes grúpos de políticas usando MEDs y
preferencia local
Pueden tús políticas escalar?
32
Implementando iBGP
Route Reflectors, Peer Groups
Guías para un iBGP Estable
 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
Guías Para Escalar iBGP
 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
Usando Peer-Groups
iBGP Peer Group
Peer Group
con todas
las rutas
Peer Group
“Default”
Peer Group
Rutas de
Clientes
eBGP
Qué es un peer-group?
 Todos los miembros del peer-group
tienen una política de salida común
 Actualizaciones generadas solo una vez
para el peer-group
 Simplifica la configuración
 Miembros pueden tener diferentes
políticas de entrada
n=1000 => casi
medio millón de
sesiones iBGP!
Por qué usar Route-Reflectors?
Para evitar una maya con
N(n-1)/2 sesiones
13 Routers =>
78 Sesiones
iBGP!
Usando Route-Reflectors
Regla para evitar un
circulo de RR:
Topología de RR
debe reflejar la
topología física
BackboneBackbone
RRRRRRRR
RRCRRC
Grupo AGrupo A
RRRR
RR
RRC
Grupo B
RRC
Grupo DGrupo D
RRRR
RRC
Grupo CGrupo C
RRRR
Qué es un Route-Reflector?
 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
Desplegando Route-Reflectors
 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
Route-Reflector Jerárquico
 Ejemplo:
RouterB>sh ip bgp 198.10.0.0
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
Originator: 141.153.17.2
Cluster list: 144.10.1.1, 141.153.17.1
C
RR
D
A
RRC Router id
141.153.17.1
Router id
140.10.1.1
141.153.30.1
141.153.14.2
Router id
141.153.17.2
198.10.0.0
AS3
B
RRC
RR
Atributos de BGP: ORIGINATOR_ID
 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
Atributos de BGP: CLUSTER_LIST
 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
Hasta Ahora…
 Es la conexión iBGP Estable?
 Use loopbacks para la conexión
 Escalará?
 Use peer-groups
 Use route-reflectors
 Simple, configuración jerárquica?
45
Desplegando eBGP
Consideraciones de Clientes
Consideraciones de ISPs
Consideraciones de Clientes
 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 200
AS100
10.0.0.0
A
B
10.60.0.0
10.200.0.0
.1
.2
Conectandose a un ISP
Router B:
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
• AS 100 es un cliente de AS 200
• Usualmente con conexión
directa
Que es agregación?
 Sumarización basada en rutas específicas de
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
Cómo Agregar?
 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
Por qué Agregar?
 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 agregadas 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
 Tener en cuenta que las communidades tambien son
agregadas
 Por ejemplo, que pasa si uno de los prefijos tiene no-export?
Atributos de BGP: Atomic Aggregate
 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
Atributos de BGP: Aggregator
 Número de AS e IP del enrutador
generando el agregado
 De uso para resolver problemas
Atributos de Agregación
 NEXT_HOP = local (0.0.0.0)
 WEIGHT = 32768
 LOCAL_PREF = ninguna (asume 100)
 AS_PATH = AS_SET o nada
 ORIGIN = IGP
 MED = ninguna
Por qué una Política de Entrada?
 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
Por qué una política de Salida?
 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 salida
set community 100:1 additive
100
200
A Loopback 0
10.200.0.2
Balanceo de Cargas —Un ISP
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
100
200A
Balanceo de Cargas—Multiples Caminos
desde el mismo AS
Router A:
router bgp 100
neighbor 10.200.0.1 remote-as 200
neighbor 10.300.0.1 remote-as 200
maximum-paths 6
Qué es Multihoming?
 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
Tipos de Multihoming
 Tres casos comunes:
 Ruta Default de todos los proveedores
 Rutas de Clientes+default de todos
 Rutas completas de todos
Default de Todos los Proveedores
 Solución bajos requerimientos de memoria/CPU
 Proveedor default de BGP => proveedor decide basado
en la métrica de IGP cual es el default
 Tu envias todas tus rutas al proveedor => camino de
entrada decidido por el Internet
 Tu puedes influenciar agregando tu AS varias
 veces (AS-path prepend)
Default de Todos los Proveedores
C Selecciona el IGP
con la métrica más
baja para Default
AS 400
AS 200
AS 100
160.10.0.0/16
AS 300
EE
BB
CC
AA
DD
0.0.0.0 0.0.0.0
Clientes+Default de Todos los
Proveedores
 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
Rutas de Clientes de Todos los
Proveedores
AS 400
Proveedor
AS 200
Cliente
AS 100
160.10.0.0/16
Proveedor
AS 300
EE
BBAA
DD
C Selecciona
el camino AS más
corto
CC
Proveedor
AS 300
AS 400
Proveedor
AS 200
DD
ip prefix-list AS100 permit
16.10.0.0/16
route-map AS300in permit 10
match ip address prefix-list AS100
set local-preference 800
Rutas de Clientes de Todos los
Proveedores
800
Cliente
AS 100
160.10.0.0/16
BBAA
AS 400
EE
C Selecciona la
mayor
Local-Preference
CC
Rutas Completas de Ambos
Proveedores
 Solución de mayores requerimientos de memoria/CPU
 Alcanza todos destinos basado en el “mejor”
camino—usualmente el que tiene el camino mas corto
 Todavía puede ajustar manualmente usando local-
preference y comparación de as-path/comunidad/prefijo
AS 400
AS 200
AS 100
AS 300
BB
CC
AA
EEDD
AS 500
C Selecciona el
camino más corto
Rutas Completas de Ambos
Proveedores
Controlando la Entrada de Tráfico?
 La entrada es muy difícil 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?
Controlando la Entrada de Tráfico?
 Buen Ciudadano :
 Divide el espacio de direcciones
 Usa “advertise maps”
 Mal Ciudadano Internet:
 Divide el espacio de direcciones
 Usa “as-path prepend”
Usando “AS-PATH prepend”
AS 400
10.1.0.0
Proveedor
AS 200
Cliente
AS 100
Proveedor
AS 300
EE
BB
CC
AA
DD
ip prefix-list AS100 permit 10.1.0.0/16
route-map AS300out permit 10
match ip address prefix-list AS100
set as-path prepend 400
10.1.0.0/16 300 400 400
10.1.0.0/16 200 400 (Mejor)
Usando un “Advertise-Map”
ISP1
ISP2
R1R1
R2R2
R3R3
1.10.6/24
10.15.7/24
1.10.6.1
10.15.7.4
1.10.6/24 10.15.7/24
10.15.7/24 auto-inject
10.15/16
access-list 1 permit 10.15.7.0 !Announces when ...
access-list 2 permit 10.15.0.0 !… this one disappears
neighbor <R1> advertise-map am non-exist-map bb
route-map am permit 10
match ip address 1
route-map bb permit
match ip address 2
R4R4
1.10/16
Hasta Ahora…
 Estabilidad por Medio de:
 Agregación
 Multihoming
 Filtrado de Entreda/Salida
 Escalabilidad de memoria/CPU:
 Default, rutas de clientes, todas las rutas
 Simplicidad usando soluciones “estandares”
Consideraciones de ISPs
 Escalar la agregació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
Guías para el Agregado de Clientes
 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
Agregado de Clientes
CORECORE
Route Reflector
Cliente Peer Group
Router de Agregación
(Cliente RR)
NOTA: Aplicar claves y “prefix-list” de
entrada para cada Cliente
Rutas de Clientes
Peer Group
“Default”
Peer Group
Rutas Completas
Peer Group
Cliente-completo peer-group
neighbor cliente-completo peer-group
neighbor cliente-completo description Envía todas las rutas
neighbor cliente-completo remove-private-AS
neighbor cliente-completo version 4
neighbor cliente-completo route-map cliente-entrada in
neighbor cliente-completo prefix-list cidr-block out
neighbor cliente-completo route-map rutas-completas out
.
ip prefix-list cidr-block seq 5 deny 10.0.0.0/8 ge 9
ip prefix-list cidr-block seq 10 permit 0.0.0.0/0 le 32
route-map de salida para
cliente-completo
ip community-list 1 permit 2:100
ip community-list 80 permit 2:80
.
route-map rutas-completas permit 10
match community 1 80 ; clientes & peers
set metric-type internal ; MED = métrica IGP
set ip next-hop peer-address ; la nuestra
route-map cliente-entrada
route-map cliente-entrada permit 10
set metric 4294967294 ; ignora MED
set ip next-hop peer-address
set community 2:100 additive
cliente-cliente peer-group
neighbor cliente-cliente peer-group
neighbor cliente-cliente description Rutas de Clientes
neighbor cliente-cliente remove-private-AS
neighbor cliente-cliente version 4
neighbor cliente-cliente route-map cliente-entrada in
neighbor cliente-cliente prefix-list cidr-block out
neighbor cliente-cliente route-map rutas-clientes out
route-map rutas-clientes
route-map rutas-clientes permit 10
match community 1 ; solo clientes
set metric-type internal ; MED = métrica igp
set ip next-hop peer-address ; la nuestra
route-map ruta-default
neighbor cliente-default peer-group
neighbor cliente-default description Envía Default
neighbor cliente-default default-originate
route-map ruta-default
neighbor cliente-default remove-private-AS
neighbor cliente-default version 4
neighbor cliente-default route-map cliente-entrada in
neighbor cliente-default prefix-list niega-todo out
ip prefix-list niega-todo seq 5 deny 0.0.0.0/0 le 32
route-map ruta-default
route-map ruta-default permit 10
set metric-type internal ; MED = métrica igp
set ip next-hop peer-address ; la nuestra
Peer Groups para Puntos de
Intercambio
 Similar al EBGP para agregado de clientes
excepto que no se usa el filtrado de prefijos
(porque no hay un registro)
 En su lugar se usa maximum-prefix y
chequeos de sanidad de prefijos
 Continua usando claves para cada vecino!
Peer Groups para Puntos de
Intercambio
neighbor nap peer-group
neighbor nap descripción de ISP
neighbor nap remove-private-AS
neighbor nap version 4
neighbor nap prefix-list chequeo sanidad in
neighbor nap prefix-list cidr-block out
neighbor nap route-map nap-salidas out
neighbor nap maximum prefix 30000
Peer Groups para Puntos de
Intercambio
route-map nap-salida permit 10
match community 1 ; solo clientes
set metric-type internal ; MED = métrica IGP
set ip next-hop peer-address ; la nuestra
Peer Groups para Puntos de Intercambio:
Prefix-List chequeo-sanidad
# Primero filtramos nuestro espacio de direcciones!!
# no aceptamos default
ip prefix-list chequeo-sanidad seq 5 deny 0.0.0.0/32
# no aceptamos nada que comience con 0
ip prefix-list chequeo-sanidad seq 10 deny 0.0.0.0/8 le 32
# no aceptamos mascaras > 20 para todas las redes clase A (1-127)
ip prefix-list chequeo-sanidad seq 15 deny 0.0.0.0/1 ge 20
# no aceptamos 10/8 per RFC1918
ip prefix-list chequeo-sanidad seq 20 deny 10.0.0.0/8 le 32
# reservado por IANA – dirección de loopback
ip prefix-list chequeo-sanidad seq 25 deny 127.0.0.0/8 le 32
# no acepta mascaras >= 17 para todas las redes clase B (129-191)
ip prefix-list chequeo-sanidad seq 30 deny 128.0.0.0/2 ge 17
# no acepta la red 128.0 – reservado por IANA
ip prefix-list chequeo-sanidad seq 35 deny 128.0.0.0/16 le 32
Peer Groups para Puntos de Intercambio:
Prefix-List chequeo-sanidad
# no acepta 172.16 por RFC1918
ip prefix-list chequeo-sanidad seq 40 deny 172.16.0.0/12 le 32
# no acepta clase C 192.0.20.0 reservado por IANA
ip prefix-list chequeo-sanidad seq 45 deny 192.0.2.0/24 le 32
# no acepta clase C 192.0.0.0 reservado por IANA
ip prefix-list chequeo-sanidad seq 50 deny 192.0.0.0/24 le 32
# no acepta 192.168/16 por RFC1918
ip prefix-list chequeo-sanidad seq 55 deny 192.168.0.0/16 le 32
# no acepta 191.255.0.0 – reservado por IANA (Creo ??)
ip prefix-list chequeo-sanidad seq 60 deny 191.255.0.0/16 le 32
# no acepta mascaras > 25 para clase C (192-222)
ip prefix-list chequeo-sanidad seq 65 deny 192.0.0.0/3 ge 25
# no acepta nada en red 223 – reservado por IANA
ip prefix-list chequeo-sanidad seq 70 deny 223.255.255.0/24 le 32
# no acepta clase D/Experimental
ip prefix-list chequeo-sanidad seq 75 deny 224.0.0.0/3 le 32
Resumen
 Escalabilidad:
 Uso de atributos, especialmente comunidad (community)
 Uso de peer-groups y route-reflectors
 Estabilidad:
 Uso de dirección de loopback para el iBGP
 Generación de agregados
 Aplicación de claves
 Siempre filtrar anuncios de entrada y salida
Resumen
 Simplicidad—soluciones estandares:
 Tres opciones de multihoming
 Agrupar clientes en comunidades
 Aplicación de políticas estandares en el borde
 Evitar “configuraciones especiales”
 Automatice la generación de la configuracion (RR &
RtConfig)
AS23456
• AS 23456 (IANA-ASTRANS) es utilizado como el número de AS cada vez que
un AS de 32-bits tiene que ser representado en un enrutador que no entiende
ASN de 32-bits
• El AS vecino en mensajes de OPEN
• En el AS-PATH en mensajes de actualización
• Como el AGGREGATOR en mensajes de actualización
• Es un número de AS valido (no un bogon)
• Capacidad de soporte de ASN de 32-bits definido durante el proceso de
negociación
• Nuevos attributos
• AS4_PATH
• AS4_AGGREGATOR
• Comunidades extendidas para VPN
Route_Target (RT)
Site_of_Origin (SOO)
• Cuatro (4) trucos para la transición
• Si 0 < ASN < 65536 usa ASN, sino usa 23456 como el ASN
• Durante anuncios hacer la misma conversion mas arriba
• Si el ASN > 65536 usar, ademas, nuevos atributos AS4_PATH y
AS4_AGGREGATOR
• Si se recibe una actualización de un viejo BGP, utiliza ambos AS_PATH y
AS4_PATH para reconstruir el camino
AS23456
• Como luce:
uonet9-gw#sh ip bgp 91.201.176.0/22
BGP routing table entry for 91.201.176.0/22, version 82287
Paths: (2 available, best #1, table default)
Advertised to update-groups:
4 7
3701 3356 35320 3261 23456, (aggregated by 23456 92.242.127.170)
207.98.64.65 from 207.98.64.65 (207.98.64.251)
Origin IGP, localpref 1100, valid, external, atomic-aggregate, best
Community: 3582:467 3701:380
3701 3356 35320 3261 23456, (aggregated by 23456 92.242.127.170), (received-only)
207.98.64.65 from 207.98.64.65 (207.98.64.251)
Origin IGP, localpref 1000, valid, external, atomic-aggregate
Community: 3701:380
AS23456
 Como transito solo la he visto para el prefijo experimental de RIPE NCC
uonet9-gw# sh ip bgp 84.205.80.0/24
BGP routing table entry for 84.205.80.0/24, version 5787485
Paths: (6 available, best #1, table default)
Advertised to update-groups:
4 7
4600 11537 20965 1103 1125 23456 12654, (aggregated by 64512 10.255.255.255)
198.32.165.89 from 198.32.165.89 (198.32.165.126)
Origin IGP, metric 0, localpref 1500, valid, external, best
Community: 3582:567 4600:99
3701 4600 11537 20965 1103 1125 23456 12654, (aggregated by 64512 10.255.255.255)
207.98.64.65 from 207.98.64.65 (207.98.64.251)
Origin IGP, localpref 1300, valid, external
Community: 3582:469 3701:391
4600 11537 6939 16150 1103 1125 23456 12654, (aggregated by 64512 10.255.255.255)
198.32.165.217 from 198.32.165.217 (198.32.165.254)
Origin IGP, metric 0, localpref 1500, valid, external
Community: 3582:567 4600:199
Referencias/Fuentes:
 Cisco (www.cisco.com)
 Dave Meyer (dmm@cisco.com)
 John Stewart, BGP4, Addison Wesley
 Sam Halabi, “Internet Routing Architectures”, Cisco Press
 Randy Zhang, “BGP Design and Implementation”, Cisco
Press
 RFCs
ip prefix-list anuncia-mi-prefijo seq 10 permit <numero_red>/<mascara> ge 23
ip prefix-list anuncia-mi-prefijo seq 100 deny 0.0.0.0/32 le 32
ip prefix-list acepta-default seq 10 permit 0.0.0.0/0 ge 32
ip prefix-list acepta-default seq 100 deny 0.0.0.0/0 le 31
access-list 10 permit <numreo_red> <mascara_wildcard>
access-list 10 deny any
access-list 20 permit 0.0.0.0 0.0.0.0
access-list 20 deny any
Ejemplos de filtros para clientes

08 bgp

  • 1.
    Teoría y Configuraciónde BGP LACNIC XII
  • 2.
    Programa  Introducción yRepaso  Uso de atributos de BGP  Implementando iBGP  Implementando eBGP  Enfasis en Estabilidad, Escalabilidad y Ejemplos de Configuraciones
  • 3.
    3 Repaso de BGP Porqué utilizarlo?
  • 4.
    Introducción  BGP esun protocolo de Vector de Caminos  De-facto EGP  Utiliza números de sistemas autónomos (ASN) para identificación  Lleva información de los AS por los que un prefijo a pasado  Utiliza TCP en el puerto 179  Requiere conexiones explicitas entre dos enrutadores
  • 5.
    Máquina de EstadoFiníto de BGP
  • 6.
    Que es unSistema Autónomo?  Necesarios para controlar la expansión de las tablas de enrutamiento  Proveen vista mas estructurada del Internet  Segregan dominios de enrutamiento en grupos administrativos bien definidos con su propias políticas de enrutamiento e IGPs  Representado por números de Sistema Autónomo  16-bits (actualmente, utilización de 73%)  Expandido a 32-bits (RFC4893)
  • 7.
  • 8.
    Distancia Administrativa deProtocolos Protocolo Distancia Directamente Conectada 0 Estática 1 eBGP 20 EIGRP (Interno) 90 IGRP 100 OSPF 110 ISIS 115 RIP 120 EGP 140 EIGRP (Externo) 170 iBGP 200 BGP Local 200 Desconocido 255
  • 9.
    Resultado Deseado?  Implementaciónde políticas de enrutamiento que sean:  Escalable  Estable  Simple (o eso esperamos!)
  • 10.
    Más Detalles...  Necesitasescalar tu IGP  Eres un cliente con dos conexiones a ISPs  Necesitas transitar todas las rutas en Internet  Necesitas implementar una política de enrutamiento, o expandir las políticas de QoS
  • 11.
    RetirosRetiros AtributosAtributos (NLRI - Network-Layer ReachabilityInformation) (NLRI - Network-Layer Reachability Information) PrefijosPrefijos Actualizaciones de BGP
  • 12.
    Atributos de BGPUtilizados para Definir la Política de Enrutamiento 1: ORIGIN 2: AS-PATH 3: NEXT-HOP 4: MED 5: LOCAL_PREF 6: ATOMIC_AGGREGATE 1: ORIGIN 2: AS-PATH 3: NEXT-HOP 4: MED 5: LOCAL_PREF 6: ATOMIC_AGGREGATE  7: AGGREGATOR  8: COMMUNITY  9: ORIGINATOR_ID  10: CLUSTER_LIST  14: MP_REACH_NLRI  15: MP_UNREACH_NLRI  7: AGGREGATOR  8: COMMUNITY  9: ORIGINATOR_ID  10: CLUSTER_LIST  14: MP_REACH_NLRI  15: MP_UNREACH_NLRI
  • 13.
    BGP Externo (eBGP) AS109 AS 110 131.108.0.0 A B 150.10.0.0 131.108.10.0131.108.10.0 .1 .2  Router B router bgp 110 neighbor 131.108.10.1 remote-as 109  Router A router bgp 109 neighbor 131.108.10.2 remote-as 110 •Entre router en AS diferentes •Usualmente con conexión directa •Con next-hop apuntando a si mismo
  • 14.
    A B BGP Interno 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  Vecinos en el mismo AS  No se modifica el Next-hop  No necesariamente con conexión directa  No anuncia otras rutas aprendidas por iBGP
  • 15.
    Modificando los defaults: Solopara EBGP NLRI: neighbor x.x.x.x next-hop-self Modificando con route-map: set ip next-hop { A.B.C.D | peeraddress} AS 300 AS 200 150.10.0.0/16 EE FF 192.0.0.0/24 AS 201AS 301 AA CC DDD BB 150.1.1.1 150.10.1.1 150.10.1.2 EBGP—next-hop set to self 3rd Party EBGP Atributos de BGP: NEXT_HOP 150.1.1.2 150.1.1.3 IBGP next-hop unmodified 150.10.0.0/16 150.10.1.1 192.0.0.0/24 150.10.1.1 192.0.0.0/24 150.1.1.3
  • 16.
    1880 193.0.34/24 1882 193.0.35/24 1881 193.0.33/24 A: 193.0.33/24 18801881 B: 193.0.34/24 1880 C: 193.0.32/24 1880 1883 E: 193.0.32/22 1880 {1881, 1882,1883} A: 193.0.33/24 1880 1881 B: 193.0.34/24 1880 C: 193.0.32/24 1880 1883 E: 193.0.32/22 1880 {1881, 1882,1883} 1883 193.0.32/24 AA BB D EEE Problema: Detección de Loop, Políticas Solución: AS-PATH  Secuencia de ASs Lista de AS por los que la ruta ha pasado  Conjunto de AS (AS Set) Sumariza la secuencia de ASs El order de la secuencia se pierde  Prefijo con route-map: set as-path CC
  • 17.
    1755 690 200 1880 1883 209 Problema: Indicar mejorcamino a AS Solución: MED  Informa sobre la preferencia de punto de entrada  Se compara si los caminos son del mismo AS  A no ser que se use “bgp always-compare-med”  Es un atributo no-transitivo  route-map: set metric set metric-type internal
  • 18.
    1755 1880 690 660 Problema: SobrepasandoAs-path/MED? Solución: LOCAL PREFERENCE  Atributo es local al AS — mandatorio para las actualizaciones de iBGP  route-map: set local-preference 680
  • 19.
    Problema: Sobrepasando LocalPreference Solución: WEIGHT (Cisco)  Local al router en que es configurado  route-map: set weight  El mayor peso (weight) gana sobre todos los caminos válidos 1755 1880 666 690 660
  • 20.
    CORE Cliente A Todas lasrutas Cliente B Rutas de Clientes Peer A Communities: 1:100—customer routes 1:80—peer routes Communities: 1:100—customer routes 1:80—peer routes Match Community 1:100 Set Community 1:80 Match Community 1:100 1:80 Match Community 1:100 Set Community 1:100 Problema: Escalando Políticas de Enrutamiento Solución: COMMUNITY
  • 21.
    Atributo de BGP:COMMUNITY  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
  • 22.
    Atributos de BGP:COMMUNITY  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]
  • 23.
    Atributos de BGP:COMMUNITY  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
  • 24.
    Atributo de menoruso: ORIGIN  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
  • 25.
    Comando set enun route-map  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 }
  • 26.
    Atributos de BGP router1#ship 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 65000 64000 {100 200}, (aggregated by 64000 16.0.0.2) 10.0.10.4 (metric 10) from 10.0.0.1 (10.0.0.2) Origin IGP, metric 100, localpref 230, valid, aggregated internal (or external or local), atomic-aggregate, best Community: 64000:3 100:0 200:10 Originator: 10.0.0.1, Cluster list: 16.0.0.4, 16.0.0.14 ! AS-PATH AS ID ! NEXT-HOP IGP METRIC PEER-IP PEER-ID
  • 27.
  • 28.
    Algoritmo Básico ParaDecidir Highest WEIGHT Highest LOCAL PREFERENCE LOCALLY ORIGINATED (eg network/aggregate) Shortest AS-PATH Lowest ORIGIN (IGP < EGP < incomplete) Lowest MED EBGP IBGP Lowest IGP METRIC to next-hop Oldest external path Router with lowest Router ID Shortest CLUSTER_LIST length Lowest Neighbor IP address Only consider synchronized routes without AS loops and a valid next-hop, and then prefer:
  • 29.
    Sincronización 1880 209 690 B A • Asegurarse deque los next-hops del iBGP pueden ser vistos via IGP, entonces: router bgp 1880 no synchronization • Router A no anunciará los prefijos de AS209 hasta que haya convergencia en el IGP.
  • 30.
    router bgp 100 nosynchronization no auto-summary distance 200 200 200 Consideraciones Generales  Sincronización: no requerida si se tiene una maya iBGP completa  => No dejar que BGP tenga prioridad sobre IGP  auto-summary: no. En su lugar usar comandos de agregación:
  • 31.
    Hasta Ahora … Aplicar las políticas en base al AS  Agrupar las rutas usando comunidades  Seleccionar los puntos de entrada y salida para grandes grúpos de políticas usando MEDs y preferencia local Pueden tús políticas escalar?
  • 32.
  • 33.
    Guías para uniBGP Estable  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
  • 34.
    Guías Para EscalariBGP  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
  • 35.
    Usando Peer-Groups iBGP PeerGroup Peer Group con todas las rutas Peer Group “Default” Peer Group Rutas de Clientes eBGP
  • 36.
    Qué es unpeer-group?  Todos los miembros del peer-group tienen una política de salida común  Actualizaciones generadas solo una vez para el peer-group  Simplifica la configuración  Miembros pueden tener diferentes políticas de entrada
  • 37.
    n=1000 => casi mediomillón de sesiones iBGP! Por qué usar Route-Reflectors? Para evitar una maya con N(n-1)/2 sesiones 13 Routers => 78 Sesiones iBGP!
  • 38.
    Usando Route-Reflectors Regla paraevitar un circulo de RR: Topología de RR debe reflejar la topología física BackboneBackbone RRRRRRRR RRCRRC Grupo AGrupo A RRRR RR RRC Grupo B RRC Grupo DGrupo D RRRR RRC Grupo CGrupo C RRRR
  • 39.
    Qué es unRoute-Reflector?  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
  • 40.
    Desplegando Route-Reflectors  Dividael 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
  • 41.
    Route-Reflector Jerárquico  Ejemplo: RouterB>ship bgp 198.10.0.0 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 Originator: 141.153.17.2 Cluster list: 144.10.1.1, 141.153.17.1 C RR D A RRC Router id 141.153.17.1 Router id 140.10.1.1 141.153.30.1 141.153.14.2 Router id 141.153.17.2 198.10.0.0 AS3 B RRC RR
  • 42.
    Atributos de BGP:ORIGINATOR_ID  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
  • 43.
    Atributos de BGP:CLUSTER_LIST  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
  • 44.
    Hasta Ahora…  Esla conexión iBGP Estable?  Use loopbacks para la conexión  Escalará?  Use peer-groups  Use route-reflectors  Simple, configuración jerárquica?
  • 45.
    45 Desplegando eBGP Consideraciones deClientes Consideraciones de ISPs
  • 46.
    Consideraciones de Clientes 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
  • 47.
    AS 200 AS100 10.0.0.0 A B 10.60.0.0 10.200.0.0 .1 .2 Conectandose aun ISP Router B: 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 • AS 100 es un cliente de AS 200 • Usualmente con conexión directa
  • 48.
    Que es agregación? Sumarización basada en rutas específicas de 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
  • 49.
    Cómo Agregar?  aggregate-address10.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
  • 50.
    Por qué Agregar? 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 agregadas 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  Tener en cuenta que las communidades tambien son agregadas  Por ejemplo, que pasa si uno de los prefijos tiene no-export?
  • 51.
    Atributos de BGP:Atomic Aggregate  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
  • 52.
    Atributos de BGP:Aggregator  Número de AS e IP del enrutador generando el agregado  De uso para resolver problemas
  • 53.
    Atributos de Agregación NEXT_HOP = local (0.0.0.0)  WEIGHT = 32768  LOCAL_PREF = ninguna (asume 100)  AS_PATH = AS_SET o nada  ORIGIN = IGP  MED = ninguna
  • 54.
    Por qué unaPolítica de Entrada?  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
  • 55.
    Por qué unapolítica de Salida?  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 salida set community 100:1 additive
  • 56.
    100 200 A Loopback 0 10.200.0.2 Balanceode Cargas —Un ISP 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
  • 57.
    100 200A Balanceo de Cargas—MultiplesCaminos desde el mismo AS Router A: router bgp 100 neighbor 10.200.0.1 remote-as 200 neighbor 10.300.0.1 remote-as 200 maximum-paths 6
  • 58.
    Qué es Multihoming? 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
  • 59.
    Tipos de Multihoming Tres casos comunes:  Ruta Default de todos los proveedores  Rutas de Clientes+default de todos  Rutas completas de todos
  • 60.
    Default de Todoslos Proveedores  Solución bajos requerimientos de memoria/CPU  Proveedor default de BGP => proveedor decide basado en la métrica de IGP cual es el default  Tu envias todas tus rutas al proveedor => camino de entrada decidido por el Internet  Tu puedes influenciar agregando tu AS varias  veces (AS-path prepend)
  • 61.
    Default de Todoslos Proveedores C Selecciona el IGP con la métrica más baja para Default AS 400 AS 200 AS 100 160.10.0.0/16 AS 300 EE BB CC AA DD 0.0.0.0 0.0.0.0
  • 62.
    Clientes+Default de Todoslos Proveedores  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
  • 63.
    Rutas de Clientesde Todos los Proveedores AS 400 Proveedor AS 200 Cliente AS 100 160.10.0.0/16 Proveedor AS 300 EE BBAA DD C Selecciona el camino AS más corto CC
  • 64.
    Proveedor AS 300 AS 400 Proveedor AS200 DD ip prefix-list AS100 permit 16.10.0.0/16 route-map AS300in permit 10 match ip address prefix-list AS100 set local-preference 800 Rutas de Clientes de Todos los Proveedores 800 Cliente AS 100 160.10.0.0/16 BBAA AS 400 EE C Selecciona la mayor Local-Preference CC
  • 65.
    Rutas Completas deAmbos Proveedores  Solución de mayores requerimientos de memoria/CPU  Alcanza todos destinos basado en el “mejor” camino—usualmente el que tiene el camino mas corto  Todavía puede ajustar manualmente usando local- preference y comparación de as-path/comunidad/prefijo
  • 66.
    AS 400 AS 200 AS100 AS 300 BB CC AA EEDD AS 500 C Selecciona el camino más corto Rutas Completas de Ambos Proveedores
  • 67.
    Controlando la Entradade Tráfico?  La entrada es muy difícil 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?
  • 68.
    Controlando la Entradade Tráfico?  Buen Ciudadano :  Divide el espacio de direcciones  Usa “advertise maps”  Mal Ciudadano Internet:  Divide el espacio de direcciones  Usa “as-path prepend”
  • 69.
    Usando “AS-PATH prepend” AS400 10.1.0.0 Proveedor AS 200 Cliente AS 100 Proveedor AS 300 EE BB CC AA DD ip prefix-list AS100 permit 10.1.0.0/16 route-map AS300out permit 10 match ip address prefix-list AS100 set as-path prepend 400 10.1.0.0/16 300 400 400 10.1.0.0/16 200 400 (Mejor)
  • 70.
    Usando un “Advertise-Map” ISP1 ISP2 R1R1 R2R2 R3R3 1.10.6/24 10.15.7/24 1.10.6.1 10.15.7.4 1.10.6/2410.15.7/24 10.15.7/24 auto-inject 10.15/16 access-list 1 permit 10.15.7.0 !Announces when ... access-list 2 permit 10.15.0.0 !… this one disappears neighbor <R1> advertise-map am non-exist-map bb route-map am permit 10 match ip address 1 route-map bb permit match ip address 2 R4R4 1.10/16
  • 71.
    Hasta Ahora…  Estabilidadpor Medio de:  Agregación  Multihoming  Filtrado de Entreda/Salida  Escalabilidad de memoria/CPU:  Default, rutas de clientes, todas las rutas  Simplicidad usando soluciones “estandares”
  • 72.
    Consideraciones de ISPs Escalar la agregació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
  • 73.
    Guías para elAgregado de Clientes  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
  • 74.
    Agregado de Clientes CORECORE RouteReflector Cliente Peer Group Router de Agregación (Cliente RR) NOTA: Aplicar claves y “prefix-list” de entrada para cada Cliente Rutas de Clientes Peer Group “Default” Peer Group Rutas Completas Peer Group
  • 75.
    Cliente-completo peer-group neighbor cliente-completopeer-group neighbor cliente-completo description Envía todas las rutas neighbor cliente-completo remove-private-AS neighbor cliente-completo version 4 neighbor cliente-completo route-map cliente-entrada in neighbor cliente-completo prefix-list cidr-block out neighbor cliente-completo route-map rutas-completas out . ip prefix-list cidr-block seq 5 deny 10.0.0.0/8 ge 9 ip prefix-list cidr-block seq 10 permit 0.0.0.0/0 le 32
  • 76.
    route-map de salidapara cliente-completo ip community-list 1 permit 2:100 ip community-list 80 permit 2:80 . route-map rutas-completas permit 10 match community 1 80 ; clientes & peers set metric-type internal ; MED = métrica IGP set ip next-hop peer-address ; la nuestra
  • 77.
    route-map cliente-entrada route-map cliente-entradapermit 10 set metric 4294967294 ; ignora MED set ip next-hop peer-address set community 2:100 additive
  • 78.
    cliente-cliente peer-group neighbor cliente-clientepeer-group neighbor cliente-cliente description Rutas de Clientes neighbor cliente-cliente remove-private-AS neighbor cliente-cliente version 4 neighbor cliente-cliente route-map cliente-entrada in neighbor cliente-cliente prefix-list cidr-block out neighbor cliente-cliente route-map rutas-clientes out
  • 79.
    route-map rutas-clientes route-map rutas-clientespermit 10 match community 1 ; solo clientes set metric-type internal ; MED = métrica igp set ip next-hop peer-address ; la nuestra
  • 80.
    route-map ruta-default neighbor cliente-defaultpeer-group neighbor cliente-default description Envía Default neighbor cliente-default default-originate route-map ruta-default neighbor cliente-default remove-private-AS neighbor cliente-default version 4 neighbor cliente-default route-map cliente-entrada in neighbor cliente-default prefix-list niega-todo out ip prefix-list niega-todo seq 5 deny 0.0.0.0/0 le 32
  • 81.
    route-map ruta-default route-map ruta-defaultpermit 10 set metric-type internal ; MED = métrica igp set ip next-hop peer-address ; la nuestra
  • 82.
    Peer Groups paraPuntos de Intercambio  Similar al EBGP para agregado de clientes excepto que no se usa el filtrado de prefijos (porque no hay un registro)  En su lugar se usa maximum-prefix y chequeos de sanidad de prefijos  Continua usando claves para cada vecino!
  • 83.
    Peer Groups paraPuntos de Intercambio neighbor nap peer-group neighbor nap descripción de ISP neighbor nap remove-private-AS neighbor nap version 4 neighbor nap prefix-list chequeo sanidad in neighbor nap prefix-list cidr-block out neighbor nap route-map nap-salidas out neighbor nap maximum prefix 30000
  • 84.
    Peer Groups paraPuntos de Intercambio route-map nap-salida permit 10 match community 1 ; solo clientes set metric-type internal ; MED = métrica IGP set ip next-hop peer-address ; la nuestra
  • 85.
    Peer Groups paraPuntos de Intercambio: Prefix-List chequeo-sanidad # Primero filtramos nuestro espacio de direcciones!! # no aceptamos default ip prefix-list chequeo-sanidad seq 5 deny 0.0.0.0/32 # no aceptamos nada que comience con 0 ip prefix-list chequeo-sanidad seq 10 deny 0.0.0.0/8 le 32 # no aceptamos mascaras > 20 para todas las redes clase A (1-127) ip prefix-list chequeo-sanidad seq 15 deny 0.0.0.0/1 ge 20 # no aceptamos 10/8 per RFC1918 ip prefix-list chequeo-sanidad seq 20 deny 10.0.0.0/8 le 32 # reservado por IANA – dirección de loopback ip prefix-list chequeo-sanidad seq 25 deny 127.0.0.0/8 le 32 # no acepta mascaras >= 17 para todas las redes clase B (129-191) ip prefix-list chequeo-sanidad seq 30 deny 128.0.0.0/2 ge 17 # no acepta la red 128.0 – reservado por IANA ip prefix-list chequeo-sanidad seq 35 deny 128.0.0.0/16 le 32
  • 86.
    Peer Groups paraPuntos de Intercambio: Prefix-List chequeo-sanidad # no acepta 172.16 por RFC1918 ip prefix-list chequeo-sanidad seq 40 deny 172.16.0.0/12 le 32 # no acepta clase C 192.0.20.0 reservado por IANA ip prefix-list chequeo-sanidad seq 45 deny 192.0.2.0/24 le 32 # no acepta clase C 192.0.0.0 reservado por IANA ip prefix-list chequeo-sanidad seq 50 deny 192.0.0.0/24 le 32 # no acepta 192.168/16 por RFC1918 ip prefix-list chequeo-sanidad seq 55 deny 192.168.0.0/16 le 32 # no acepta 191.255.0.0 – reservado por IANA (Creo ??) ip prefix-list chequeo-sanidad seq 60 deny 191.255.0.0/16 le 32 # no acepta mascaras > 25 para clase C (192-222) ip prefix-list chequeo-sanidad seq 65 deny 192.0.0.0/3 ge 25 # no acepta nada en red 223 – reservado por IANA ip prefix-list chequeo-sanidad seq 70 deny 223.255.255.0/24 le 32 # no acepta clase D/Experimental ip prefix-list chequeo-sanidad seq 75 deny 224.0.0.0/3 le 32
  • 87.
    Resumen  Escalabilidad:  Usode atributos, especialmente comunidad (community)  Uso de peer-groups y route-reflectors  Estabilidad:  Uso de dirección de loopback para el iBGP  Generación de agregados  Aplicación de claves  Siempre filtrar anuncios de entrada y salida
  • 88.
    Resumen  Simplicidad—soluciones estandares: Tres opciones de multihoming  Agrupar clientes en comunidades  Aplicación de políticas estandares en el borde  Evitar “configuraciones especiales”  Automatice la generación de la configuracion (RR & RtConfig)
  • 89.
    AS23456 • AS 23456(IANA-ASTRANS) es utilizado como el número de AS cada vez que un AS de 32-bits tiene que ser representado en un enrutador que no entiende ASN de 32-bits • El AS vecino en mensajes de OPEN • En el AS-PATH en mensajes de actualización • Como el AGGREGATOR en mensajes de actualización • Es un número de AS valido (no un bogon) • Capacidad de soporte de ASN de 32-bits definido durante el proceso de negociación • Nuevos attributos • AS4_PATH • AS4_AGGREGATOR • Comunidades extendidas para VPN Route_Target (RT) Site_of_Origin (SOO) • Cuatro (4) trucos para la transición • Si 0 < ASN < 65536 usa ASN, sino usa 23456 como el ASN • Durante anuncios hacer la misma conversion mas arriba • Si el ASN > 65536 usar, ademas, nuevos atributos AS4_PATH y AS4_AGGREGATOR • Si se recibe una actualización de un viejo BGP, utiliza ambos AS_PATH y AS4_PATH para reconstruir el camino
  • 90.
    AS23456 • Como luce: uonet9-gw#ship bgp 91.201.176.0/22 BGP routing table entry for 91.201.176.0/22, version 82287 Paths: (2 available, best #1, table default) Advertised to update-groups: 4 7 3701 3356 35320 3261 23456, (aggregated by 23456 92.242.127.170) 207.98.64.65 from 207.98.64.65 (207.98.64.251) Origin IGP, localpref 1100, valid, external, atomic-aggregate, best Community: 3582:467 3701:380 3701 3356 35320 3261 23456, (aggregated by 23456 92.242.127.170), (received-only) 207.98.64.65 from 207.98.64.65 (207.98.64.251) Origin IGP, localpref 1000, valid, external, atomic-aggregate Community: 3701:380
  • 91.
    AS23456  Como transitosolo la he visto para el prefijo experimental de RIPE NCC uonet9-gw# sh ip bgp 84.205.80.0/24 BGP routing table entry for 84.205.80.0/24, version 5787485 Paths: (6 available, best #1, table default) Advertised to update-groups: 4 7 4600 11537 20965 1103 1125 23456 12654, (aggregated by 64512 10.255.255.255) 198.32.165.89 from 198.32.165.89 (198.32.165.126) Origin IGP, metric 0, localpref 1500, valid, external, best Community: 3582:567 4600:99 3701 4600 11537 20965 1103 1125 23456 12654, (aggregated by 64512 10.255.255.255) 207.98.64.65 from 207.98.64.65 (207.98.64.251) Origin IGP, localpref 1300, valid, external Community: 3582:469 3701:391 4600 11537 6939 16150 1103 1125 23456 12654, (aggregated by 64512 10.255.255.255) 198.32.165.217 from 198.32.165.217 (198.32.165.254) Origin IGP, metric 0, localpref 1500, valid, external Community: 3582:567 4600:199
  • 92.
    Referencias/Fuentes:  Cisco (www.cisco.com) Dave Meyer (dmm@cisco.com)  John Stewart, BGP4, Addison Wesley  Sam Halabi, “Internet Routing Architectures”, Cisco Press  Randy Zhang, “BGP Design and Implementation”, Cisco Press  RFCs
  • 93.
    ip prefix-list anuncia-mi-prefijoseq 10 permit <numero_red>/<mascara> ge 23 ip prefix-list anuncia-mi-prefijo seq 100 deny 0.0.0.0/32 le 32 ip prefix-list acepta-default seq 10 permit 0.0.0.0/0 ge 32 ip prefix-list acepta-default seq 100 deny 0.0.0.0/0 le 31 access-list 10 permit <numreo_red> <mascara_wildcard> access-list 10 deny any access-list 20 permit 0.0.0.0 0.0.0.0 access-list 20 deny any Ejemplos de filtros para clientes