Border Gateway Protocol

Anuncio
BGP
Border Gateway Protocol
Mg. Fernando Caba
Director General de Telecomunicaciones
UNS
• La siguiente documentación se realizó según el estandar
especificado en las RFC 5737 y 5398
• Algunos ejemplos se obtuvieron de un router de acceso
público obtenido del sitio http://routeserver.org
• En particular se eligió route-server.gblx.net el cual a la fecha
no posee ni usuario ni password
Abc@fcaba~$ telnet route-server.gblx.net
Trying 67.17.81.28...
Connected to loop0.route-server.phx1.gblx.net.
Escape character is '^]'.
C
******************************* WARNING *******************************
This equipment is the property of Level 3 Communications.
Unauthorized access is strictly prohibited. Any unauthorized access
or tampering with this equipment will result in civil and/or criminal
prosecution.
******************************* WARNING *******************************
route-server.phx1>
BGP - RIU -
2
Ruteo y rutas
• Ruteo: proceso que se ejecuta en un equipo de
cómputo el cual analiza los posibles destinos a los
cuales puede dirigirse un paquete de datos.
• Estos destinos están configurados en entidades
denominadas Rutas.
• Una ruta posee información la cual permite que un
paquete de datos moviéndose desde un origen a un
destino, tome un determinado camino para dirigirse
al destino final, seguramente pasando por uno o más
puntos intermedios.
BGP - RIU -
3
Protocolos de ruteo
• IGP (Interior Gateway Protocol) - RIP, IGRP, EIGRP, OSPF,
etc
• Protocolo de ruteo usado para intercambiar información
de ruteo dentro de un sistema autónomo.
• EGP (Exterior Gateway Protocol) – BGP
• Protocolo de ruteo usado para intercambiar información
de ruteo entre sistemas autónomos.
• BGPv1 es del año 1989 (RFC 1105) y BGPv4 es del año
1994 (RFC 1654). La RFC actual es la 4271.
• BGP es un protocolo de ruteo externo del tipo path
vector.
• la tabla de ruteo mantiene una lista de AS´s que son
atravezados para alcanzar el AS de destino.
BGP - RIU -
4
Protocolos de ruteo
• IGP: protocolo de ruteo interno
• BGP: protocolo de ruteo externo, 2 casos:
• iBGP: dentro del sistema autónomo
• eBGP: entre sistemas autónomos
• NO CONFUNDIR: IGP con iBGP!!!
BGP - RIU -
5
Protocolos de ruteo
• Ruteo Inter-AS e Intra-AS
ruteo Inter-AS
entre
C.b
A.a
a
Host
h1
b
A, B y C
A.c
C
c
b
A
ruteo Intra-AS
dentro de AS A
Host
h2
c
a
B
a
d
B.a
b
ruteo Intra-AS
dentro de AS B
BGP - RIU -
6
Sistema Autónomo
• Sistema Autónomo (RFC 1771): conjunto de routers
bajo una misma administración técnica, que usan un
protocolo de ruteo interno (IGP) y métricas para
rutear paquetes dentro de él, y que usan un
protocolo de ruteo externo (EGP) para rutear
paquetes fuera de él.
• Desde afuera el AS es visto como una entidad única.
• Cada AS tiene un identificador: ASN (Autonomous
System Number).
• Tiene su propia política de ruteo.
ASN 64496
BGP - RIU -
7
Sistema Autónomo
• Cada AS tiene un número que lo identifica, los cuales
son delegados por IANA (Internet Assigned
Numbers Authority) a cada RIR (Regional Internet
Registry) (ARIN, LACNIC, etc.)
• Hasta 2007, estos números se asignaban entre 1 y
65.535 (16 bits) (aún quedan)
• A partir de 2007, se definieron los AS de 32 bits (RFC
4893, 6793) (0.y)
• BGP está preparado para propagar AS de 32 bits.
BGP - RIU -
8
Sistema Autónomo
• Uso de la numeración:
• 0 y 65535
• Entre 1 y 64495
• Entre 64496 y 64511
• Entre 64512 y 65534
• Entre 65536 y 65551
• Entre 65552 y 4294967295
Reservados
Internet Pública
Documentación para
ASN 16 bits – RFC 5737
Uso sólo privado
Documentación para
ASN 32 bits – RFC 5398
Internet Pública
• RIU utiliza AS privados (64512 a 65534) para
conectar universidades que aún no tienen AS propio.
BGP - RIU -
9
Topología de TIER´s
BGP - RIU - 10
Tipos de puntos de tráfico
• Tier 1
• Redes que pueden alcanzar otras redes sin comprar tráfico
IP.
• Tienen tránsito libre para peering con otras redes Tier1.
• ~ 14 en el mundo (Teliz Sonera, Verizon, etc).
• Tier 2
• Redes de peering con otras redes, necesitan comprar
tráfico para alcanzar otras redes en Internet.
• Tier 3
• Únicamente compran tránsito a otras redes.
• Entre ellos existen grandes volúmenes de intercambios
de tablas de BGP (más de 500000 rutas).
BGP - RIU - 11
Ruteo en Internet
•
Exchange Points (IXP)
• Punto en común donde varios AS intercambian información de ruteo y tráfico
BGP - RIU - 12
Terminología de Sistemas Autónomos
• Tráfico Local: tráfico con fuente o destino en el AS.
• Tráfico de tránsito: tráfico que pasa a través del AS
(sólo lo transporta).
• Stub AS: tiene conexión con un solo AS, sólo
transporta tráfico local.
• Multihomed AS: tiene conexión con más de 1 AS,
pero no transporta tráfico de tránsito.
• Transit AS: tiene conexión con más de 1 AS y
transporta tráfico de tránsito.
BGP - RIU - 13
Cómo trabaja BGP? Conceptos
• Usa TCP como protocolo de transporte (port 179)
• Routers Neighbors (o peers) – se establece entre 1 par de
routers una sesión TCP abierta, mediante la cual
intercambian información de ruteo BGP.
• Dentro de un AS, los peers BGP no necesitan estar
directamente conectados.
Sesión BGP
Enlace
Enlace
AS 64496
• Cantidad de organizaciones (redes).
• BGP no pasa la complejidad interna a INTERNET.
BGP - RIU - 14
Cómo trabaja BGP? Conceptos
• Aprende y enseña rutas
• para que un router sepa hacia donde encaminar un
paquete, alguien tiene que decirle por donde hacerlo
(aprende).
• De la misma manera, si queremos que alguien llegue a
nuestras redes tenemos que “comunicar” que las
tenemos (anuncia).
• Para BGP, el ruteo interno es una caja negra
• No pasa la complejidad interna a INTERNET.
BGP - RIU - 15
Cómo trabaja BGP? Conceptos
eBGP
eBGP
eBGP
iBGP
iBGP
iBGP
iBGP
IGP
IGP
IGP
IGP
AS 64496
AS64497
AS64498
AS64499
BGP - RIU - 16
Cómo trabaja BGP? Conceptos
• Máquina de estados finitos
•
Para decidir que operaciones hacer con los vecinos, cada uno de ellos utiliza una máquina de
estados finitos (FSM) con 6 estados (gráfico). Para cada sesión entre vecinos, BGP mantiene
una variable de estado que registra en que estado está la sesión. BGP define qué mensajes
debe intercambiar cada vecino para cambiar de un estado a otro.
BGP - RIU - 17
Tipos de mensajes
• Open: establece una sesión de peering con un
vecino.
• Keep Alive: handshake a intervalos regulares para
mantener la sesión de peering.
• Notification: cierra una sesión de peering.
• Update: anuncia nuevas rutas o el retiro de rutas
anunciadas previamente. Cada ruta anunciada es
especificada como un prefijo de red y con valores
denominados atributos.
BGP - RIU - 18
Tabla de ruteo y Tabla de BGP
• Existe una tabla con rutas por cada protocolo que el
router maneja: tabla de isis, tabla de rip, tabla de
BGP.
• Los protocolos “compiten” para que sus rutas sean
las que finalmente se utilicen (en función de una
propiedad denominada Distancia Administrativa).
•
Determina cuan confiable es un protocolo. Si hay dos rutas similares, se elige la de menor
distancia administrativa. Cuanto menor es la distancia administrativa, más confiable es el
protocolo.
• La ruta “elegida” es la que pasa a formar parte de la
tabla de ruteo.
• Importante: existen varias tablas de protocolos (una
por cada uno de ellos) pero sólo una Tabla de Ruteo.
BGP - RIU - 19
Aprender y anunciar rutas
• Aprender una ruta: significa que voy a incorporar en
mi tabla de BGP alguna ruta que me están
enseñando.
• Anunciar una ruta: significa que le voy a decir a
alguien que tengo una ruta para llegar a
determinado destino. No basta con tener la ruta en
mi tabla de BGP, la debo tener también en mi tabla
de ruteo.
• BGP está preparado para manejar políticas de ruteo.
BGP - RIU - 20
Aprender y anunciar rutas
• Neighbor: punto remoto a quien voy a querer
enseñar y/o de quien aprender rutas.
• Para hacer este pasaje de rutas debe establecerse
una “sesión BGP”.
• Para que la sesión BGP se establezca, el potencial
neighbor debe ser perfectamente alcanzable por IP
(cuidado con filtros!).
• La sesión establecida puede ser eBGP o iBGP.
BGP - RIU - 21
Aprender y anunciar rutas
• Una vez establecida la sesión BGP:
• El router podrá anunciar las rutas que:
•
•
•
•
aprenda de otras sesiones BGP,
se inserten en la tabla de BGP (network),
pertenezcan a otros protocolos (redistribute) CUIDADO!!,
los filtros permitan que se anuncien.
• El router podrá aprender las rutas que:
• el neighbor quiera anunciarnos,
• los filtros permitan que aprendamos.
BGP - RIU - 22
Aprender y anunciar rutas
• Qué tráfico afecta las rutas que aprendo?
saliente
• Qué tráfico afecta las rutas que enseño?
entrante
• Qué pasa si no aprendo nada?
Depende de lo que tenga configurado
localmente en mi tabla de ruteo.
BGP - RIU - 23
Configuración Básica
• router bgp <ASN>
• crea el proceso BGP dentro del router
• neighbor <ip> remote-as <AS-remoto>
• vecinos internos (mismo AS)
• vecinos externos (distinto AS)
• generalmente los externos comparten una subred, son
adyacentes. Los internos (iBGP) pueden estar en cualquier
parte del Sistema Autónomo.
• Nota: Cisco IOS permite ejecutar sólo un proceso BGP a
la vez, por lo tanto, un router no puede pertenecer a
más de un Sistema Autónomo.
• Aparte pueden tener la configuración del IGP (los vecinos
son descubiertos automáticamente).
router eigrp 64496
BGP - RIU - 24
Configuración Básica
• network <red> [mask <máscara>]
• Se da de alta una red en la tabla de BGP y la marca
como local al AS
• Sintaxis similar pero diferente significado con el
comando network de un IGP (en RIP, quedan
determinadas las interfaces que están sobre esa red
para envíar y recibir actualizaciones, así como que
redes conectadas directamente a esas interfaces se
anunciarán)
• La máscara permite especificar supernetting o
subnetting
BGP - RIU - 25
Configuración Básica
• Ejemplo:
router bgp 64496
network 203.0.113.0 mask 255.255.255.0
neighbor 192.0.2.2 remote-as 64500
neighbor 192.0.2.22 remote-as 64505
BGP - RIU - 26
Configuración Básica
AS 64496
192.0.2.0
198.51.100.1
198.51.100.0/30
A
•
•
•
B
AS 64505
203.0.113.0
198.51.100.2
Configuración Router A
Configuración Router B
router bgp 64496
network 192.0.2.0
neighbor 198.51.100.2 remote-as 64505
router bgp 64505
network 203.0.113.0
neighbor 198.51.100.1 remote-as 64496
Esas rutas deben existir en la tablas de ruteo del router local o no serán
enviadas en las actualizaciones.
También podría usarse cada comando network con el parámetro mask
255.255.255.0
Las rutas aprendidas son propagadas por defecto (pueden ser filtradas por
BGP - RIU - 27
una política de ruteo).
Configuración Básica
AS 64496
192.0.2.0
198.51.100.1
198.51.100.0/30
A
•
•
•
B
AS 64505
203.0.113.0
198.51.100.2
Configuración Router A
Configuración Router B
router bgp 64496
network 192.0.2.0
neighbor 198.51.100.2 remote-as 64505
router bgp 64505
network 203.0.113.0
neighbor 198.51.100.1 remote-as 64496
Para establecer las relaciones con otros router BGP están los comandos
neighbor.
Ese comando sirve para identificar un vecino con el cual el router local
establece la sesión.
El argumento ASN determina si el router vecino es EBGP o IBGP.
BGP - RIU - 28
Configuración Básica
• Comandos “show” básicos
•
show ip bgp
•
show ip bgp summary
•
show ip bgp <prefix>
•
show ip bgp neighbors [ <ip> ]
•
show ip bgp neighbors <ip> advertised-routes
•
show ip bgp neighbors <ip> routes
•
show ip bgp regexp <regexp>
BGP - RIU - 29
show ip bgp
•
Redes listadas en orden numérico (ejemplo obtenido de route-server.gblx.net)
*>i1.0.0.0/24
67.16.148.37
*>i1.0.4.0/24
67.16.148.37
*>i1.0.7.0/24
67.16.148.37
*>i1.0.204.0/22
67.16.148.37
*>i1.1.1.0/24
67.16.148.37
*>i1.1.8.0/24
67.16.148.37
*>i1.1.64.0/19
67.16.148.37
*>i1.11.0.0/21
67.16.148.37
38091 38091 38091 38091 38091 18313 i
*>i2.0.0.0/16
67.16.148.37
*>i2.18.250.0/23
67.16.148.37
*>i5.63.160.0/24
67.16.148.37
*>i5.102.160.0/21
67.16.148.37
199284 i
*>i5.202.254.0/23
67.16.148.37
*>i5.206.192.0/21
67.16.148.37
*>i5.206.200.0/21
67.16.148.37
*>i5.206.232.0/24
67.16.148.37
*>i5.230.252.0/24
67.16.148.37
*>i6.64.164.0/23
67.16.148.37
* i6.64.166.0/24
67.16.148.37
*>i6.64.166.0/24
67.16.148.37
*>i6.64.181.0/24
67.16.148.37
*>i17.253.52.0/23
67.16.148.37
* i17.253.66.0/24
67.16.148.37
* i17.253.66.0/24
67.16.148.37
*>i17.253.66.0/24
67.16.148.37
*>i17.253.72.0/23
67.16.148.37
*>i17.253.80.0/24
67.16.148.37
*>i20.143.208.0/20 67.16.148.37
*>i23.2.36.0/22
67.16.148.37
50
50
50
100
50
100
0
100
200
200
200
201
200
200
300
201
0
0
0
0
0
0
0
0
15169 i
3257 4826 56203 i
3257 4826 56203 56203 56203 i
3356 4651 9737 23969 i
15169 i
4134 i
10026 2519 i
3356 15412 15412 15412 15412 9848 38091
50
50
50
0
199
199
200
202
0
0
0
0
5511 3215 i
5511 34164 34164 i
1299 44395 44395 201921 e
286 8881 8881 8881 8881 8881 8881 8881
50
100
100
100
50
50
50
100
50
100
50
150
150
50
50
100
50
200
201
201
201
200
200
200
200
200
201
200
200
200
200
200
300
200
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1299 20771 48159 48159 48159 198357 ?
3356 31027 39642 i
3356 1764 60587 50719 i
3356 5603 21246 199195 i
3257 12586 i
209 721 27064 523 i
209 721 27064 1503 i
209 721 27064 1468 i
209 721 i
3356 714 6185 i
4637 714 6185 e
2516 714 6185 e
2516 714 6185 e
1299 4766 714 i
4637 714 6185 e
7473 7474 17647 i
BGP - RIU - 30
2914 20940 20940 16625 i
show ip bgp
•
•
Las primeras tres columnas listan el status de cada ruta.
Un * en la primer columna, indica que la ruta tiene un next-hop válido. Otras opciones:
•
•
•
•
•
"s" suppressed: BGP conoce la ruta, pero no está siendo anunciada, usualmente porque
es parte de una ruta sumarizada.
"d" dampened: BGP detiene el anuncio de una ruta que produce un efecto denominado
flapping (se levanta y se baja) demasiado rápido hasta que se estabilice por un periodo
de tiempo.
"h" history: BGP conoce la red, pero no hay una ruta válida hacia ella.
"r" RIB* failure: la ruta es anunciada a BGP pero no es instalada en la tabla de ruteo. Esto
puede suceder porque hay otro protocolo que tiene la ruta con una mejor distancia
* RIB: Routing Information Base
administrativa.
"S" stale: indica que la ruta está “detenida” y requiere ser refrescada cuando se
reestablezca la conexión con su vecino.
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
0
64496 65511 i
0
64496 64506 i
0
0
64506 e
0
64496 64501 i
0
0
64501 i
0
64496 ?
BGP - RIU - 31
show ip bgp
•
La segunda columna tiene un signo mayor al lado de la ruta que fue seleccionada como
el mejor camino hacia una red determinada.
•
La tercera columna está en blanco, indicando que el router aprendió todas las rutas de
un vecino externo. Una ruta aprendida de un vecino iBGP debería tener una i.
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
0
64496 65511 i
0
64496 64506 i
0
0
64506 e
0
64496 64501 i
0
0
64501 i
0
64496 ?
BGP - RIU - 32
show ip bgp
•
La cuarta columna lista las redes. La que no tiene una máscara de subred, usa la
máscara classfull (A /8, B /16, C /24). Cuando el router aprende la misma red desde
múltiples fuentes, sólo lista la red una vez.
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
0
64496 65511 i
0
64496 64506 i
0
0
64506 e
0
64496 64501 i
0
0
64501 i
0
64496 ?
BGP - RIU - 33
show ip bgp summary
BGP router identifier 192.0.2.51, local AS number 65537
BGP table version is 48347, main routing table version 48347
2558 network entries and 3869 paths using 389968 bytes of memory
527 BGP path attribute entries using 28600 bytes of memory
250 BGP AS-PATH entries using 6304 bytes of memory
1 BGP community entries using 24 bytes of memory
191 BGP route-map cache entries using 3056 bytes of memory
1028 BGP filter-list cache entries using 12336 bytes of memory
BGP activity 14929/71963 prefixes, 42175/38306 paths
Neighbor
192.0.2.114
192.0.2.122
192.0.2.182
192.0.2.190
192.0.2.238
203.0.113.1
203.0.113.11
203.0.113.23
203.0.113.114
198.51.100.2
198.51.100.117
V
4
4
4
4
4
4
4
4
4
4
4
AS MsgRcvd MsgSent
64496
38357
31873
64498
31728
34362
65551
32203
34388
65537
31146
62851
65537
0
0
65537
38217
52708
65537
31057
57875
65537
31066
57722
65537 244830
57881
65537
33504
31208
65537
31048
31242
TblVer InQ OutQ Up/Down State/PfxRcd
48347
0
0 6d08h
1342
48347
0
0 6d09h
97
48347
0
0 2w1d
70
48347
0
0 2w1d
4
0
0
0 never
Active
48347
0
0 6d08h
2329
48347
0
0 6d08h
3
48347
0
0 2w1d
1
48347
0
0 6d07h
0
48347
0
0 6d07h
18
48347
0
0 2d14h
2
BGP - RIU - 34
show ip bgp <prefix>
route-server.phx1>sh ip bgp 170.210.0.0
BGP routing table entry for 170.210.0.0/16, version 6559918
Paths: (7 available, best #6, table default)
Not advertised to any peer
6762 7303 4270
67.16.148.37 from 4.69.244.197 (4.69.244.197)
Origin IGP, metric 100, localpref 200, valid, internal
Community: 3549:2406 3549:30840
Originator: 67.17.82.183, Cluster list: 0.0.6.8
6762 7303 4270
67.16.148.37 from 4.69.243.137 (4.69.243.137)
Origin IGP, metric 100, localpref 200, valid, internal
Community: 3549:2352 3549:30840
Originator: 67.17.81.117, Cluster list: 0.0.6.7
6762 7303 4270
67.16.148.37 from 4.69.244.133 (4.69.244.133)
Origin IGP, metric 100, localpref 200, valid, internal
Community: 3549:2101 3549:30840
Originator: 67.17.82.114, Cluster list: 0.0.6.17
6762 7303 4270
67.16.148.37 from 4.69.244.196 (4.69.244.196)
Origin IGP, metric 100, localpref 200, valid, internal
Community: 3549:2406 3549:30840
Originator: 67.17.82.183, Cluster list: 0.0.6.8
6762 7303 4270
67.16.148.37 from 4.69.244.132 (4.69.244.132)
Origin IGP, metric 100, localpref 200, valid, internal
Community: 3549:2101 3549:30840
Originator: 67.17.82.114, Cluster list: 0.0.6.17
6762 7303 4270
67.16.148.37 from 4.69.243.136 (4.69.243.136)
Origin IGP, metric 100, localpref 200, valid, internal, best
Community: 3549:2352 3549:30840
Originator: 67.17.81.117, Cluster list: 0.0.6.7
6762 7303 4270
67.16.148.37 from 4.69.243.72 (4.69.243.72)
Origin IGP, metric 100, localpref 200, valid, internal
Community: 3549:2471 3549:30840
Originator: 67.17.82.90, Cluster list: 0.0.6.11
route-server.phx1>
BGP - RIU - 35
show ip bgp neighbor [<ip>]
show ip bgp neighbor 192.0.2.238
BGP neighbor is 192.0.2.238, remote AS 65537, internal link
BGP version 4, remote router ID 0.0.0.0
BGP state = Active
Last read 2w1d, hold time is 180, keepalive interval is 60 seconds
Received 0 messages, 0 notifications, 0 in queue
Sent 0 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 5 seconds
For address family: IPv4 Unicast
BGP table version 48398, neighbor version 0
Index 5, Offset 0, Mask 0x20
Route-Reflector Client
0 accepted prefixes consume 0 bytes
Prefix advertised 0, suppressed 0, withdrawn 0
Connections established 0; dropped 0
Last reset 2w1d, due to User reset
No active TCP connection
Neighbor
192.0.2.190
192.0.2.238
203.0.113.1
V
4
4
4
AS MsgRcvd MsgSent
65537
31146
62851
65537
0
0
65537
38217
52708
TblVer InQ OutQ Up/Down State/PfxRcd
48347
0
0 2w1d
4
0
0
0 never
Active
- 36
48347
0
0 6d08h BGP - RIU 2329
show ip bgp neighbors <ip> advertised-routes
show ip bgp neighbors 192.0.2.51 advertised-routes
BGP table version is 48402, local router ID is 192.0.2.65
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
*>
*>
*>
*>
*>
Network
192.0.2.64/26
192.0.2.128/27
192.0.2.160/27
192.0.2.192/27
192.0.2.224/27
Next Hop
0.0.0.0
198.51.100.3
198.51.100.22
198.51.100.35
198.51.100.2
Metric LocPrf Weight Path
0 32768 i
0
64496
0
0
64506
100
65550
0
65549
64506 i
e
i
i
BGP - RIU - 37
show ip bgp neighbors <ip> routes
show ip bgp neighbors 192.0.2.51 routes
BGP table version is 48402, local router ID is 192.0.2.51
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*>i203.0.113.0/26
*>i203.0.113.64/26
*>i203.0.113.128/27
*>i203.0.113.160/27
*>i203.0.113.192/27
*>i203.0.113.224/27
Next Hop
198.51.100.1
198.51.100.65
198.51.100.129
198.51.100.161
198.51.100.193
198.51.100.225
Metric LocPrf Weight Path
0
600
0 65549 i
0
600
0 65547 65548 i
0
600
0 65547 i
0
600
0 65548 i
0
600
0 65496 e
0
600
0 65500 ?
BGP - RIU - 38
show ip bgp - bgp regexp
•
Redes listadas en orden numérico
*>i1.0.0.0/24
67.16.148.37
*>i1.0.4.0/24
67.16.148.37
*>i1.0.7.0/24
67.16.148.37
*>i1.0.204.0/22
67.16.148.37
*>i1.1.1.0/24
67.16.148.37
*>i1.1.8.0/24
67.16.148.37
*>i1.1.64.0/19
67.16.148.37
*>i1.11.0.0/21
67.16.148.37
38091 38091 38091 38091 38091 18313 i
*>i2.0.0.0/16
67.16.148.37
*>i2.18.250.0/23
67.16.148.37
*>i5.63.160.0/24
67.16.148.37
*>i5.102.160.0/21
67.16.148.37
199284 i
*>i5.202.254.0/23
67.16.148.37
*>i5.206.192.0/21
67.16.148.37
*>i5.206.200.0/21
67.16.148.37
*>i5.206.232.0/24
67.16.148.37
*>i5.230.252.0/24
67.16.148.37
*>i6.64.164.0/23
67.16.148.37
* i6.64.166.0/24
67.16.148.37
*>i6.64.166.0/24
67.16.148.37
*>i6.64.181.0/24
67.16.148.37
*>i17.253.52.0/23
67.16.148.37
* i17.253.66.0/24
67.16.148.37
* i17.253.66.0/24
67.16.148.37
*>i17.253.66.0/24
67.16.148.37
*>i17.253.72.0/23
67.16.148.37
*>i17.253.80.0/24
67.16.148.37
*>i20.143.208.0/20 67.16.148.37
*>i23.2.36.0/22
67.16.148.37
50
50
50
100
50
100
0
100
200
200
200
201
200
200
300
201
0
0
0
0
0
0
0
0
15169 i
3257 4826 56203 i
3257 4826 56203 56203 56203 i
3356 4651 9737 23969 i
15169 i
4134 i
10026 2519 i
3356 15412 15412 15412 15412 9848 38091
50
50
50
0
199
199
200
202
0
0
0
0
5511 3215 i
5511 34164 34164 i
1299 44395 44395 201921 e
286 8881 8881 8881 8881 8881 8881 8881
50
100
100
100
50
50
50
100
50
100
50
150
150
50
50
100
50
200
201
201
201
200
200
200
200
200
201
200
200
200
200
200
300
200
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1299 20771 48159 48159 48159 198357 ?
3356 31027 39642 i
3356 1764 60587 50719 i
3356 5603 21246 199195 i
3257 12586 i
209 721 27064 523 i
209 721 27064 1503 i
209 721 27064 1468 i
209 721 i
3356 714 6185 i
4637 714 6185 e
2516 714 6185 e
2516 714 6185 e
1299 4766 714 i
4637 714 6185 e
7473 7474 17647 i
BGP - RIU - 39
2914 20940 20940 16625 i
bgp regexp
• Una expresión regular se utiliza para encontrar patrones
de coincidencia en un grupo de caracteres de entrada.
Caracter
Descripción
^
comienzo de string
$
final de string
[ ]
rango de caracteres
-
usado para especificar un rango ( ej. [0-9] )
()
grupo lógico
.
cualquier caracter individual
*
cero o muchas instancias
+
una o más instancias
?
cero o una instancia
coma, apertura o cierre de llave, apertura o
cierre de paréntesis, comienzo o final de string
o espacio
_
http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/26634-bgp-toc.html#asregexp
BGP - RIU - 40
show ip bgp - bgp regexp
•
Todas las subredes originadas desde el AS 64496 (AS path termina en 64496)
Router# show ip bgp
...
Network
* 192.0.2.0/29
*>
* 198.51.100.0/30
*
...
•
regexp _64496$
Next Hop
203.0.113.6
203.0.113.1
203.0.113.6
203.0.113.1
Metric LocPrf Weight
0
0
0
0
0
0
Path
64500
64496
64500
64496
64496 ?
?
64496 ?
?
Todas las redes que se pueden alcanzar via AS 64496 (AS path comienza con
64496):
Router# show ip bgp
...
Network
*> 192.0.2.8/29
* 192.0.2.16/30
* 192.0.2.128/25
*> 198.51.100.8/29
...
regexp ^64496_
Next Hop
203.0.113.1
203.0.113.1
203.0.113.1
203.0.113.1
Metric LocPrf Weight Path
0
0 64496
0 64496
0
0 64496
0
0 64496
?
64500 ?
?
?
BGP - RIU - 41
show ip bgp quote-regexp
•
Si es necesario filtrar la salida, se usa quote-regexp
•
Por ejemplo, para encontrar todas las redes 192.x.x.x originadas desde el AS
64496:
Router# show ip bgp quote-regexp "_64496$" | include ^. 192\.
* 192.0.2.0/30 203.0.113.1
0 64500 64496 ?
* 192.0.2.9/32 203.0.113.1
0 64500 64496 ?
•
O, para encontrar todas las subredes actualmente alcanzables via AS 64496:
Router# show ip bgp quote-regexp "^64496_" | include ^.>
*> 192.0.2.8/29
203.0.113.1
0
*> 192.0.2.16/29 203.0.113.1
0
*> 192.0.2.32/28 203.0.113.1
0
0 64496 ?
0 64496 ?
0 64496 ?
BGP - RIU - 42
Configuración Básica
• Comandos “clear”
• clear ip bgp <neighbor-address>
• clear ip bgp peer-group <tag>
• Peer-group: neighbors con la misma política de
actualización (rutas, route-maps, filter-list, next-hop,
etc). Simplifican la configuración y mejora la
eficiencia.
• Las nuevas versiones soportan “soft in” y “soft out”
(lo que aprende y lo que enseña).
• Implica menos carga para el router.
• Los clear indiscriminados pueden colgar un router
(CPU, inestabilidades). ( clear ip bgp * )
BGP - RIU - 43
Atributos de rutas
Optional transitive
•
•
Un atributo que puede o no ser reconocido por todas las implementaciones de BGP
(de ahi que es opcional) .
Debido a que el atributo es transitivo, BGP lo acepta y lo anuncia junto con la ruta
(aun si no fuera reconocido).
Ejemplo: COMMUNITY
BGP - RIU - 44
Atributos de rutas
Optional non-transitive
•
Un atributo que puede o no ser reconocido por todas las implementaciones de BGP.
•
Si un router receptor reconociera o no el atributo, al ser no transitivo no debe ser
anunciado a otros peers .
Ejemplo: ORIGINATOR_ID
BGP - RIU - 45
Atributos de rutas
• Well-known mandatory
(mandatorios muy difundidos)
– AS-Path
– Next-hop
– Origin
• Well-known discretionary
(discrecionales muy difundidos)
− Local preference
− Atomic aggregate
• Optional transitive
- Community
- Aggregator
• Optional non-transitive
- Multi-exit-discriminator
(MED)
BGP - RIU - 46
Atributos de rutas
•
•
•
•
•
•
•
Origin
Next-hop
AS_PATH
Multi_EXIT_DISC (Multi-Exit Discriminator) (MED)
LOCAL_PREF (Local Preference)
COMMUNITY
WEIGHT
BGP - RIU - 47
Atributos de rutas: origin
•
•
Informa a todos los sistemas autónomos como fue introducido el prefijo de red
3 valores: IGP, EGP, incomplete
i
originada en un IGP, anunciada con “network”
e
originada en un EGP (BGP a BGP)
?
origen desconocido, normalmente producto de una redistribución
incompleta desde otro protocolo de ruteo
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
0
64496 65511 i
0
64496 64506 i
0
0
64506 e
0
64496 64501 i
0
0
64501 i
0
64496 ?
BGP - RIU - 48
Atributos de rutas: next-hop
•
•
•
•
No necesariamente es la IP del router directamente conectado.
En un IGP, el next-hop (NH) es la IP del router que anunció la ruta.
En BGP no:
– En las sesiones eBGP, el NH es la IP del neighbor que anunció la ruta.
– En las sesiones iBGP:
• Rutas originadas dentro del AS: NH es la IP del router que la origina.
• Rutas incorporadas por eBGP: se transporta inalterado el NH aprendido
por eBGP.
Un next-hop 0.0.0.0 indica que el router local originó la ruta.
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
0
64496 65511 i
0
64496 64506 i
0
0
64506 e
0
64496 64501 i
0
0
64501 i
0
64496 ?
BGP - RIU - 49
Atributos de rutas: next-hop
• En medios multiacceso (Ethernet, FR, ATM), el NH es la IP de la
interfaz del router que originó la ruta
•
Ejemplo: CABASE
IP 192.0.2.1
Tráfico
Switch
IP 198.51.100.2
NH 198.51.100.2
BGP - RIU - 50
Atributos de rutas: next-hop
• Error común, NH cambiado
BGP - RIU - 51
Atributos de rutas: AS-Path
• Secuencia de ASN que se deben atravezar para llegar al AS
destino.
• Puede ser utilizado en el algoritmo de selección de rutas.
• Un AS Path en blanco, significa que la ruta fue originada en el AS
local.
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
0
64496 65511 i
0
64496 64506 i
0
0
64506 e
0
64496 64501 i
0
0
64501 i
0
64496 ?
BGP - RIU - 52
Atributos de rutas: AS-Path
• Puede ser utilizado para detectar loops.
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
Next Hop
Metric LocPrf Weight Path
*> 192.0.2.0/26
198.51.100.1
95
0 64496
*> 192.0.2.128/26
198.51.100.1
95
0 64496
*>i
198.51.100.22
95
0 64506
* 203.0.113.128/25 198.51.100.1
95
0 64496
*>
198.51.100.114
100
0 64501
*> 203.0.113.0/25
198.51.100.1
0
100
0 64496
64500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i
•
65511
64506
e
64501
i
64497
i
i
i
64498 64499
El primer AS (de izquierda a derecha) muestra el AS adyacente desde donde se
aprendió la ruta (el AS local no se muestra). El resto, representa la secuencia de ASN
que se debe atravezar para llegar a destino. El último ASN es el AS origen de la ruta.
• utilizado para realizar “prepend” en route maps
BGP - RIU - 53
Atributos de rutas: MED
•
•
•
•
•
•
•
•
MED es utilizado para anunciar a los vecinos eBGP sobre como deben salir de sus AS
remotos para alcanzar las redes que pertenecen a este AS (tráfico entrante).
Se le indica a otro AS cuál debería ser la puerta de entrada a nuestro AS.
MED solo es enviado a vecinos eBGP.
Los path con el valor MED más bajo son los más preferidos.
Se utiliza en conexiones multihomed.
Baja precedencia en el algoritmo de selección de rutas.
Es preferible usar COMMUNITY.
Med es un valor calculado por un protocolo. Se puede influir en él ajustando cosas
(ancho de banda, route-maps, etc).
BGP table version is 134358, local router ID is 198.51.100.1
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
95
0 64496 65511 i
95
0 64496 64506 i
95
0 64506 e
95
0 64496 64501 i
100
0 64501 i
BGP64498
- RIU - 54i
0
100
0 64496 64497
Atributos de rutas: MED
•
•
Los routers A y B anuncian el prefijo 192.0.2.0/24 con MED 50 y 80 a un eBGP vecino (AS 64500).
El tráfico entrante al AS 64500 desde el AS 64496 elegirá el camino por el router A, pues tiene
BGP - RIU - 55
menor MED.
Atributos de rutas: LOCAL_PREF
• Indica un grado de preferencia respecto a otras rutas al mismo
destino.
• Es un atributo local al sistema autónomo (se propaga por iBGP
pero no por eBGP).
• Mayor local preference indica mejor preferencia:
• local pref 600 es mejor que 100 (este es el valor por defecto)
• Da una visión uniforme a todo el AS.
• Se setea mediante route-maps.
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
95
0 64496 65511 i
95
0 64496 64506 i
95
0 64506 e
95
0 64496 64501 i
100
0 64501 i
0
100
0 64496 64497 64498 i
BGP - RIU - 56
Atributos de rutas: LOCAL_PREF
BGP - RIU - 57
Atributos de rutas: COMMUNITY
• Community representa una técnica para marcar un
conjunto de rutas.
• Es factible usar estos flags para aplicar políticas de
ruteo específicas (ej. local preference, etc.) dentro de
la red.
• Está representado por 2 enteros de 16 bits (RFC1998).
• El formato común es <local-ASN>:xx .
• 0:0 a 0:65535 y 65535:0 a 65535:65535 están
reservados.
• Muy útiles para aplicar políticas entre sistemas
autónomos.
• Estandar acordado entre proveedores – marcan sus
rutas.
BGP - RIU - 58
Atributos de rutas: COMMUNITY
access-list 101 permit ip 192.0.2.0 0.0.0.255 any
access-list 102 permit ip 198.51.100.0 0.0.0.255 any
!
route-map Peer-R1 permit 10
match ip address 101
set community 64496:650
route-map Peer-R2 permit 10
match ip address 102
set community 64500:750
ip community-list 1 permit 64496:650
ip community-list 2 permit 64500:750
!
route-map Peer-R3 permit 10
match community 1
set local-preference 130
route-map Peer-R4 permit 10
match community 2
set local-preference 140
BGP - RIU - 59
Atributos de rutas: Weight
• Es similar a local_pref, sólo que tiene efecto local en el
router que se define.
• No se pasa esta info a otros routers.
• Tiene precedencia más alta que cualquier otro atributo
(algoritmo de selección de camino).
• Sirve para discriminar rutas entre proveedores conectados
al mismo router.
• Se setea mediante route-maps.
• Propietario de CISCO.
Network
*> 192.0.2.0/26
*> 192.0.2.128/26
*>i
* 203.0.113.128/25
*>
*> 203.0.113.0/25
Next Hop
198.51.100.1
198.51.100.1
198.51.100.22
198.51.100.1
198.51.100.114
198.51.100.1
Metric LocPrf Weight Path
95
300 64496 65511 i
95
0 64496 64506 i
95
100 64506 e
95
0 64496 64501 i
100
0 64501 i
0
100
0 64496 64497 64498 i
BGP - RIU - 60
Atributos de rutas: Weight
BGP - RIU - 61
Atributos de rutas: Weight
BGP - RIU - 62
Local-pref, MED y Weight
192.0.2.0/24
192.0.2.0/24
eBGP
AS 64496
192.0.2.0/24
C
A
iBGP
BGP – default behavior
Router B
Network
∗>i 192.0.2.0/24
Next Hop Metric LocPrf Weight
C
0
100
0
B
AS
64500
BGP - RIU - 63
Local-pref, MED y Weight
192.0.2.0/24
192.0.2.0/24
set local-pref 200
eBGP
AS 64496
192.0.2.0/24
A
C
iBGP
Router B aprende
local-pref 200
LOCAL_PREF
Router B
Network
∗>i 192.0.2.0/24
Next Hop Metric LocPrf Weight
C
0
200
0
B
AS
64500
BGP - RIU - 64
Local-pref, MED y Weight
192.0.2.0/24
192.0.2.0/24
set weight 50
eBGP
AS 64496
192.0.2.0/24
A
C
iBGP
Router B no
aprende weight
WEIGHT
Router B
Network
∗>i 192.0.2.0/24
Next Hop Metric LocPrf Weight
C
0
100
0
B
AS
64500
BGP - RIU - 65
Local-pref, MED y Weight
192.0.2.0/24
set metric 80
192.0.2.0/24
metric = 80
eBGP
AS 64496
192.0.2.0/24
A
C
iBGP
Router B aprende
métrica 80
MULTI_EXIT_DISC
Router B
Network
∗>i 192.0.2.0/24
Next Hop Metric LocPrf Weight
C
80
100
0
B
AS
64500
BGP - RIU - 66
Redistribución del default
• network 0.0.0.0
– Debe existir la ruta en la tabla de ruteo
– Se enseña a todos los neighbors
– Importante: poner filtros!!
• default-information originate
– Anunciada a todos los neighbor
– No importa si el router tiene una ruta por default
• Redistribution
– Debe existir la ruta en la tabla de ruteo
• neighbor x.x.x.x default-originate
– Aplicado a un neighbor
– No importa si el router tiene una ruta por default
BGP - RIU - 67
Insertando prefijos en BGP
• Hay 2 maneras:
– redistribute static
– Network
– CUIDADO…..
BGP - RIU - 68
Insertando prefijos en BGP
• …mucho cuidado con redistribute!
• redistribute <routing-protocol> significa
que todas las rutas del protocolo <routing-protocol>
serán transferidas dentro del protolo de ruteo vigente.
• Es áltamente recomendable evitarlo.
• Redistribute normalmente usado con
“route-maps” y bajo exigentes controles
administrativos.
• Se pierde el control de lo anunciado.
BGP - RIU - 69
Insertando prefijos en BGP
Network
• Ejemplo:
router bgp 64496
network 203.0.113.128 mask 255.255.255.128
ip route 203.0.113.128 255.255.255.128 serial0
• Una ruta coincidente debe existir en la tabla de ruteo
antes de que la red sea anunciada.
• Fuerza el atributo origin a ser “IGP”.
BGP - RIU - 70
Configurando Aggregation
• Route aggregation es un método alternativo para
sumarizar rutas, el cual es usado para minimizar el
número de rutas de una tabla de ruteo en una red IP.
• Aggregation implica anunciar solo el bloque de
direcciones, no las subredes.
• Se genera internamente.
• Hay 3 formas de configurarlo:
– redistribute static NO!!!
– aggregate-address
– network command
BGP - RIU - 71
Configurando Aggregation
aggregate-address
• Ejemplo:
router bgp 64496
network 203.0.113.128 mask 255.255.255.128
aggregate-address 203.0.113.128 255.255.255.128 [summary-only]
• Requiere prefijos mucho más específicos en la tabla de
BGP antes de ser anunciada.
• summary-only
– Parámetro opcional que asegura que la ruta sumarizada es
anunciada si una ruta más específica existe en la tabla de
ruteo.
BGP - RIU - 72
Configurando Aggregation
network
• Ejemplo
ip route 203.0.113.128 255.255.255.128 null0 250
router bgp 64496
network 203.0.113.128 mask 255.255.255.128
• Una ruta coincidente debe existir en la tabla de ruteo
antes de que la red sea anunciada.
• La ruta estática a “null0” es llamada ruta “pull up”.
• Los paquetes son enviados si no hay una ruta más
específica en la tabla de ruteo.
• La distancia administrativa 250 asegura que será la ruta
estática de último recurso.
• Es la forma más fácil y mejor de generar una ruta
agregada.
BGP - RIU -
73
Filtrado de rutas
• Proceso muy importante a fin de garantizar la
estabilidad de nuestro AS y los AS vecinos.
• Filtrado de entrada: es aplicado a rutas aprendidas
• no se incluyen en nuestra tabla de ruteo.
• Filtrado de salida: se aplica a rutas previamente a ser
anunciadas a un vecino.
• no se incluirán en las tablas de ruteo remotas.
• Razones?
• económicas – transit ISP
• seguridad – sólo rutas asignadas a nuestros clientes
• técnicas – problemas de memoria
BGP - RIU - 74
Filtrado de rutas
• Filtros basados en direcciones IP
– distribute-list (access-lists)
– prefix-list (mas nuevos)
• Filtros basados en el path
– filter-list (as-path)
BGP - RIU - 75
Filtrado de rutas
Filtros basados en direcciones IP
• Se define una lista de acceso con las IP´s que se
permiten y deniegan.
• Se aplica esa lista de acceso a la información que
recibimos (in) o enviamos (out) a un neighbor.
• Sintaxis:
–
neighbor X.X.X.X distribute-list NNN (in | out)
BGP - RIU - 76
ACL´s: standard vs. extendidas
• Listas de acceso standard: solo miran la porción de red de
una ruta
–
access-list 1 permit 203.0.113.0
–
access-list 2 permit 203.0.113.0 0.0.0.255
• Listas de acceso extendidas: permiten tener en cuentas
las máscaras.
–
access-list ... <src> <src-wild> <mask> <mask-wild>
–
access-list 110 permit ip 203.0.113.0 0.0.0.255 255.255.255.0 0.0.0.0
–
access-list 112 deny ip 198.51.100.0 0.0.0.0 255.255.255.128 0.0.0.127
BGP - RIU - 77
Filtrado de rutas
• Ejemplo:
neighbor 203.0.113.22 distribute-list 10 in
neighbor 203.0.113.22 distribute-list 11 out
...
access-list 10 permit ip 192.0.2.0
access-list 11 deny ip 10.0.0.0
access-list 11 deny ip 192.168.0.0
access-list 11 permit ip any
BGP - RIU - 78
Filtrado de rutas
•
Basados en direcciones IP: distribute-list (standard access-list)
hostname R6
!
router bgp 64496
neighbor 192.0.2.2 remote-as 64505
neighbor 192.0.2.2 distribute-list 1 in
!
access-list 1 deny 10.10.10.0 0.0.0.255
access-list 1 permit any
hostname R5
!
router bgp 64505
no synchronization
network 203.0.113.0 mask 255.255.255.0
network 10.10.10.0 mask 255.255.255.0
network 10.10.0.0 mask 255.255.224.0
no auto-summary
neighbor 192.0.2.1 remote-as 64496
BGP - RIU - 79
Filtrado de rutas
•
Basados en direcciones IP: distribute-list (standard access-list)
Router R6# show ip bgp
BGP table version is 3, local router ID is 192.0.2.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
Next Hop
Metric LocPrf Weight Path
*> 10.10.0.0/19
192.0.2.2
0
0 64505 i
*> 203.0.113.0/24
192.0.2.2
0
0 64505 i
BGP - RIU - 80
Filtrado de rutas
•
Basados en direcciones IP: distribute-list (extended access-list)
hostname R6
Anuncia: 10.10.1.0/24 a 10.10.31.0/24 y 10.10.0.0/19
!
hostname R5
router bgp 64496
!
router bgp 64505
neighbor 192.0.2.2 remote-as 64505
neighbor 192.0.2.2 distribute-list 1 in
no synchronization
network 10.10.1.0 mask 255.255.255.0
!
network 10.10.2.0 mask 255.255.255.0
access-list 1 permit 10.10.0.0 0.0.31.255
…
…
network 10.10.31.0 mask 255.255.255.0
Con esa lista de acceso, sh ip bgp en el router 100 muestra
más redes de las deseadas
network 10.10.0.0 mask 255.255.224.0
no auto-summary
neighbor 192.0.2.1 remote-as 64496
BGP - RIU - 81
Filtrado de rutas
•
Basados en direcciones IP: distribute-list (extended access-list)
Router R6# sh run
hostname R6
!
router bgp 64496
neighbor 192.0.2.2 remote-as 64505
neighbor 192.0.2.2 distribute-list 101 in
!
access-list 101 permit ip 10.10.0.0 0.0.0.0 255.255.224.0 0.0.0.0
R6# show ip bgp
BGP table version is 2, local router ID is 192.0.2.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 10.10.0.0/19
Next Hop
192.0.2.2
Metric LocPrf Weight Path
0
0 64505 i
BGP - RIU - 82
Filtrado de rutas
Prefix-list
• Para realizar filtrado más simple y más fácil de leer, es posible aplicar listas
de prefijos (prefix-list ) directamente a un vecino BGP utilizando:
neighbor {ip-address | peer-group} prefix-list prefix-list-name {in | out} command.
• Es una alternativa más simple e intuitiva que las listas de acceso
tradicionales. Permiten utilizar un nombre o un número que especifica la
secuencia de instancias permit o deny. Especificando el número es factible
editar cada instancia individual, sin necesidad de remover la lista entera
(como ocurre con las access list).
• Las prefix-list eliminan la carga de cálculo para las wildcard en una máscara.
Si se desea especificar un host en particular (198.51.100.45/32) el ejemplo
queda:
ip prefix-list bad-host seq 100 deny 198.51.100.45/32
BGP - RIU - 83
Filtrado de rutas
Prefix-list
router bgp 64496
neighbor 203.0.113.100 remote-as 65551
neighbor 203.0.113.100 prefix-list PEER-IN in
neighbor 203.0.113.100 prefix-list PEER-OUT out
!
ip prefix-list PEER-IN deny 198.51.100.0/24
ip prefix-list PEER-IN permit 0.0.0.0/0 le 32
ip prefix-list PEER-OUT permit 192.0.2.0/24
BGP - RIU - 84
Filtrado de rutas
•
Basados en direcciones IP: prefix-list
hostname R6
hostname R5
!
!
router bgp 64496
router bgp 64505
neighbor 192.0.2.2 remote-as 64505
no synchronization
neighbor 192.0.2.2 distribute-list 1 in
network 203.0.113.0 mask 255.255.255.0
!
network 10.10.10.0 mask 255.255.255.0
ip prefix-list n seq 10 permit 0.0.0.0/0 le 19 network 10.10.0.0 mask 255.255.224.0
no auto-summary
neighbor 192.0.2.1 remote-as 64496
BGP - RIU - 85
Filtrado de rutas
•
Basados en direcciones IP: prefix-list
R6# show ip bgp
BGP table version is 2, local router ID is 192.0.2.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*> 10.10.0.0/19
Next Hop
192.0.2.2
Metric LocPrf Weight Path
0
0 64505 i
BGP - RIU - 86
Filtrado de rutas
Por ejemplo si tenemos un router con esta configuración en su bgp:
Willis# show run | begin bgp
router bgp 64496
no synchronization
bgp log-neighbor-changes
network 198.51.100.0 mask 255.255.255.192
network 198.51.100.64 mask 255.255.255.192
network 198.51.100.128 mask 255.255.255.192
network 198.51.100.192 mask 255.255.255.192
neighbor 203.0.113.100 remote-as 65551
neighbor 203.0.113.100 prefix-list route-filter out
neighbor 203.0.113.210 remote-as 64505
neighbor 203.0.113.210 remote-as 64505
no auto-summary
!
ip prefix-list route-filter seq 5 permit 198.51.0.0/16 le 26
Ejecutando:
Willis# show ip bgp neighbors 203.0.113.100 advertised-routes
Network
Next Hop
Metric LocPrf Weight
*> 198.51.100.0/26
0.0.0.0
0
32768
*> 198.51.100.64/26
0.0.0.0
0
32768
*> 198.51.100.128/26 0.0.0.0
0
32768
*> 198.51.100.192/26 0.0.0.0
0
32768
| begin Network
Path
i
i
i
i
Esta lista provee la misma funcionalidad que una lista de acceso extendida con el uso de un wildcard 0.0.0.63.
La prefix-list 198.51.0.0/16 le 26 permite cualquier red que comience con 198.51.x.x con 26 bits de máscara de
subred. El uso de los comandos ge y le pueden resultar un poco confusos al principio, matchean un rango de
máscaras de subred, como la máscara inversa (wildcard)
BGP - RIU - 87
Filtrado de rutas
Filtros por AS-Path
• Se define una expresión regular que denota un
as-path:
–
ip as-path access-list <n> (permit|deny) <regexp>
• Se aplica esa expresión regular a la información
que recibimos (in) o enviamos (out) a un
neighbor.
• Sintaxis:
–
neighbor x.x.x.x filter-list nnn (in | out)
BGP - RIU - 88
Filtros por AS-PATH
• Ejemplo:
...
neighbor 198.51.100.22 filter-list 10 in
neighbor 198.51.100.22 filter-list 11 out
...
ip as-path access-list 10 permit ^$
ip as-path access-list 11 deny 64496$
ip as-path access-list 11 deny ^645
ip as-path access-list 11 permit _64497_64498_
...
BGP - RIU - 89
Filtros por AS-PATH
Ejemplo:
Permitir redes originadas por el AS 64505 entrando al
R1 (ninguna otra ruta)
R1 # sh run
...
router bgp 65550
neighbor 192.0.2.2 remote-as 64505
neighbor 192.0.2.2 filter-list 1 in
...
ip as-path access-list 1 permit ^64505$
...
BGP - RIU - 90
Filtros por AS-PATH
Ejemplo:
Denegar redes originadas en AS64505 y permitir el
ingreso a AS64500 a todas las demás redes, a través de R3
R3 # sh run
...
ip as-path access-list 1 deny _64505$
ip as-path access-list 1 permit .*
...
router bgp 64500
neighbor 203.0.113.2 remote-as 65550
neighbor 203.0.113.2 filter-list 1 in
...
BGP - RIU - 91
Filtros por AS-PATH
Ejemplo:
Solo permitir redes originadas en el AS64505, y AS´s
directamente conectados a AS64505,
que entran al AS65550 por el R1
R1 # sh run
...
ip as-path access-list 1 permit ^64505_[0-9]*$
...
router bgp 1
neighbor 192.0.2.2 remote-as 64505
neighbor 192.0.2.2 filter-list 1 in
...
BGP - RIU - 92
Filtrado de rutas
Route-maps
•
Los route-map son similares a las sentencias de un lenguaje de
programación,
•
“if ……. then ……”
•
Cada instancia del route-map tiene un número de secuencia.
•
Son ejecutados en orden desde la sentencia con menor número de
secuencia hasta el más alto. Es posible editarlos o modificarlos
utilizando este número de secuencia.
•
Si en un route-map, una sentencia con un determinado criterio de
coincidencia resulta verdadera, la ejecución del route-map se detiene.
•
Se puede utilizar route-map para permitir o denegar según el criterio
encontrado por la sentencia match.
BGP - RIU - 93
Filtrado de rutas
Route-maps
•
Si no existiera una sentencia match dentro de una instancia de un
route-map, todas las rutas resultan con criterio verdadero. Las
sentencias set son aplicadas a todas las rutas *.
•
Si no existiera una lista de acceso para la sentencia match dentro de
la instancia del route-map, todas las rutas resultan con criterio
verdadero. Las sentencias set se aplican a todas las rutas.
•
Tal como con las listas de acceso, una denegación implícita es incluida
al final del route-map.
•
Si múltiples sentencias match son utilizadas dentro de una instancia
de un mapa de ruteo, todas las sentencias match deben resultar
verdaderas para que de la instancia surja un resultado verdadero
* o paquetes
BGP - RIU - 94
Filtrado de rutas
Route-maps
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
match as-path
match community-list
match ip address
match ip next-hop
match ip route-source
match metric (IP)
match route-type (IP)
match tag
set as-path
set automatic-tag
set community
set level (IP)
set local-preference
set metric (BGP, OSPF, RIP)
set metric-type
set next-hop
set tag (IP)
set weight
BGP - RIU - 95
Route-maps
router bgp 64496
neighbor 203.0.113.10 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
!
route-map infilter permit 30
!
ip prefix-list HIGH-PREF permit 192.0.2.0/25
ip prefix-list LOW-PREF permit 192.0.2.128/25
BGP - RIU - 96
Route-maps
router bgp 64496
neighbor 203.0.113.10 route-map filter-on-as-path in
!
route-map filter-on-as-path permit 10
match as-path 1
set local-preference 80
set weight 200
set metric 127
set next-hop 192.0.2.10
!
route-map filter-on-as-path permit 20
match as-path 2
set local-preference 200
set weight 500
set metric 327
set next-hop 192.0.2.100
!
route-map filter-on-as-path permit 30
!
ip as-path access-list 1 permit _64505$
ip as-path access-list 2 permit _64510_
BGP - RIU - 97
Route-maps
• Uso de prepend en un route-map
router bgp 64510
network 192.0.2.0
neighbor 203.0.113.10 remote-as 64496
neighbor 203.0.113.10 route-map set-path out
!
route-map set-path permit 10
set as-path prepend 64510 64510
•
•
Debe ser usado dentro de nuestro AS
De no ser así BGP puede detectar un loop y
retirará la ruta
BGP - RIU - 98
Atributos de rutas: AS-Path
• utilizado para realizar “prepend” en route maps
Network
Next Hop
Metric LocPrf Weight Path
*> 192.0.2.0/26
198.51.100.1
95
0 64496
*> 192.0.2.128/26
198.51.100.1
95
0 64496
*>i
198.51.100.22
95
0 64506
* 203.0.113.128/25 198.51.100.1
95
0 64496
*>
198.51.100.114
100
0 64501
*> 203.0.113.0/25
198.51.100.1
0
100
0 64496
64500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i
65511
64506
e
64501
i
64497
i
i
i
64498 64499
BGP - RIU - 99
Comandos “show”
• show ip bgp paths
• show ip bgp filter-list <access-list-number>
• show ip bgp inconsistent-as
BGP - RIU - 100
sh ip bgp paths
Address
Hash Refcount Metric Path
0x374AC9B4
1
2
50 6453 4755 45820 133552 i
0x2D1842C4
1
2
50 1299 18351 24213 i
0x365DA708
1
2
50 3257 10913 10913 ?
0x3B591278
1
2
100 3356 46485 i
0xFF1D278
1
2
100 3356 21277 39216 198589 i
0x3CEA066C
1
4
100 3356 3491 58552 58551 i
0x33B5FCF4
1
2
100 3356 3356 3356 8220 6519 i
0xBB7F2E8
1
2
100 6762 3216 49897 201839 i
0x331DA74C
1
2
100 3356 48237 8697 8376 8376 59451 i
0x10BADF34
1
5
10 18881 28135 28135 264456 i
0x37BF56DC
1
2
100 3356 31133 198718 i
0x394705DC
1
2
50 3257 8452 8452 ?
0x2C2AAFA0
1
2
50 3257 14744 14744 14744 14744 62660 i
0x2A9E95C8
1
4
50 3257 14742 14742 14742 14742 21547 i
0xF3CF400
1
2
100 3356 37271 327737 i
0x35CA3DF0
1
32
100 3356 9318 23563 23563 23563 23563 17864 i
0x130DCDEC
1
2
50 1299 1299 1299 2603 2832 i
0x341B9B10
1
6
100 3356 3327 48412 i
0x32FF96F0
1
196
100 3356 38193 17563 i
0x36137118
1
2
100 3356 6461 22489 263150 i
0x395DEEA4
1
8
100 3356 12578 21211 61053 i
0x297B646C
1
14
50 1299 12389 43468 i
0x364B4F90
1
16
100 3356 13618 i
0x13595E98
1
2
100 174 24785 36040 i
0xB6CFD38
1
5
0 21219 199263 i
0x34CE84C4
1
2
50 209 3908 721 27066 3544 309 i
0x37871328
1
4
100 174 59607 i
0x11342B7C
1
2
100 3356 12874 41849 i
0x38DCA824
1
24
100 3356 12713 42313 57388 56671 i
0x3C3F40F4
1
14
50 2914 6327 32738 i
0xB3F968C
1
14
50 2914 6327 32738 i
0xDACBE1C
1
2
100 3356 5603 21246 39611 i
0x336F5A48
1
2
100 3356 15399 37084 37364 i
0x304DCB50
1
2
0 286 8881 8881 8881 8881 8881 8881 8881 42777 i
0x36BCC120
1
3 16594 ?
BGP - RIU - 101
sh ip as-path-access-list 6
AS path access list 6
permit 64496$
permit 64511$
permit 65536$
permit 65551$
permit ^$
sh ip bgp filter-list
Router# sh ip bgp filter-list 6
BGP table version is 15631, local router ID is 192.0.2.65
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
*>
*>
*>
*>
*>
*>
*>
Network
192.0.2.64/26
192.0.2.128/27
192.0.2.160/27
192.0.2.192/27
192.0.2.224/27
203.0.113.192/27
203.0.113.224/27
Next Hop
0.0.0.0
198.51.100.3
198.51.100.22
198.51.100.35
198.51.100.2
198.51.100.193
198.51.100.225
Metric LocPrf Weight Path
0 32768 i
0
64506
0
0
64511
100
65536
0
65551
0
600
0 64497
0
600
0 65536
64496 i
e
i
e
64498 65511 e
i
BGP - RIU - 102
sh ip bgp inconsistent-as
Router# show ip bgp inconsistent-as
BGP table version is 87, local router ID is 203.0.113.53
Status codes: s suppressed, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
192.0.2.0/25
Next Hop
*
192.0.2.243
*>
192.0.2.243
* 198.51.100.0/25
192.0.2.243
*>
192.0.2.243
* 198.51.100.128/25 192.0.2.243
*>
192.0.2.243
Metric LocPrf Weight Path
0
0 64496 65551 ?
2222
0 64501 ?
0
0 64496 65551 64500 ?
2222
0 64501 ?
0
0 64496 65551 64500 ?
2222
0 64501 ?
BGP - RIU - 103
Más comandos “show”
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
bgp
all dampening
cidr-only
community
community-list
dampened-paths
dampening dampened-paths
dampening flap-statistics
dampening parameters
extcommunity-list
filter-list
flap-statistics
inconsistent-as
injected-paths
ipv4
ipv4 multicast
ipv4 multicast summary
l2vpn
neighbors
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
ip
bgp peer-group
bgp quote-regexp
bgp regexp
bgp replication
bgp rib-failure
bgp rtfilter
bgp summary
bgp template peer-policy
bgp template peer-session
bgp unicast route-server
bgp update-group
bgp vpnv4 all sso summary
bgp vpnv4
bgp vpnv4 all dampening
bgp vpnv6 unicast all dampening
community-list
extcommunity-list
policy-list
route vrf
BGP - RIU - 104
Selección del mejor camino
1. Si el next-hop es inaccesible, descartar la ruta.
2. Si el camino es interno (iBGP), synchronization está
habilitado y la ruta no está en el IGP, descartarla.
3. Se prefiere el camino con mayor peso “weight”
(propietario Cisco).
4. Luego, se prefiere la ruta de mayor “local preference”.
BGP - RIU - 105
Selección del mejor camino
5. En caso del mismo local-pref, se prefiere una ruta que
es originada por el router (comando network o
redistribución).
6. Si la ruta no fue originada por el router y local-pref es
igual, se prefiere la ruta con el path de sistemas
autónomos más corto (shortest as-path).
7. Si todo es igual, se prefiere el menor código de
“origen” (IGP<EGP<Incomplete).
BGP - RIU - 106
Selección del mejor camino
8. A igualdad de “origen”, se prefiere el menor valor de
MED. Esta comparación se realiza sólo si los neighbors
de los que se aprendieron la ruta pertenecen todos a un
mismo AS (a menos que se especifique “bgp alwayscompare-med”).
9. Se prefieren rutas aprendidas por eBGP que por iBGP.
10.Se prefiere la ruta cuyo next-hop tiene menor métrica
en el IGP.
11.Si hasta aquí no hay decisión, se prefiere la ruta
correspondiente al neighbor de menor router-id.
BGP - RIU - 107
Puesta a punto de BGP
• Configuración individual de neighbors
•
•
Los vecinos de iBGP reciben las mismas actualizaciones
El router desperdicia tiempo en cálculos repetidos
• Peer Groups
•
Grupo de neighbors con las mismas políticas de salida
•
Las actualizaciones se generan sólo una vez por grupo
• Hace la configuración más facil
• Hace la configuración menos suceptible a errores
• Es más rápido construir un full mesh iBGP
• Los miembros pueden tener diferentes políticas de entrada
• También puede ser usada en eBGPs
iBGP Peer
Group
AS64510
BGP - RIU - 108
Puesta a punto de BGP
Router bgp 64496
neighbor ibgp-peer peer-group
neighbor ibgp-peer remote-as 64510
neighbor ibgp-peer update-source loopback 0
neighbor ibgp-peer send-community
neighbor ibgp-peer route-map outfilter out
neighbor 203.0.113.10 peer-group igbp-peer
neighbor 203.0.113.20 peer-group igbp-peer
neighbor 203.0.113.30 peer-group igbp-peer
neighbor 203.0.113.40 route-map infilter in
BGP - RIU - 109
Puesta a punto de BGP
Route-reflectors
• Este concepto permite compartir información de
ruteo entre un grupo de routers sin necesidad de
enviar la misma información a cada uno de ellos
individualmente.
• Los peers no deben re-anunciar las rutas aprendidas
via IBGP a otros peers IBGP – se pueden generar
loops.
BGP - RIU - 110
Puesta a punto de BGP
Red IBGP sin route-reflector
BGP - RIU - 111
Puesta a punto de BGP
Red IBGP con un route-reflector
BGP - RIU - 112
Puesta a punto de BGP
Red IBGP más compleja
BGP - RIU - 113
Puesta a punto de BGP
Red IBGP más compleja
neighbor ip-address | peer-group-name route-reflector-client
Router A#
router bgp 64501
no synchronization
network 192.0.2.0 mask 255.255.255.192
network 203.0.113.0 mask 255.255.255.252
network 203.0.113.4 mask 255.255.255.252
neighbor 192.0.2.200 remote-as 64501
neighbor 192.0.2.200 route-reflector-client
neighbor 192.0.2.201 remote-as 64501
neighbor 192.0.2.201 route-reflector-client
neighbor 192.0.2.202 remote-as 64501
neighbor 192.0.2.202 route-reflector-client
Router B#
router bgp 64501
no synchronization
network 192.0.2.64 mask 255.255.255.192
network 203.0.113.4 mask 255.255.255.252
neighbor 192.0.2.199 remote-as 64501
BGP - RIU - 114
Puesta a punto de BGP
BGP vs IGP´s
Protocolos de ruteo interno
• Ejemplos OSPF, RIP, etc..
• Usados para transportar las direcciones de la infraestructura.
• No usados para transportar los prefijos de Internet o
clientes.
• Diseñados de tal forma que se minimice el número de
prefijos.
BGP - RIU - 115
Puesta a punto de BGP
BGP vs IGP´s
• BGP: usar internamente (iBGP) y externamente
(eBGP)
• iBGP: usado para transportar:
– Los prefijos de Internet a través del Backbone
– Los prefijos de los clientes
– Utilizar /32 para las interfaces loopbacks de
enrutamiento y levantar las sesiones de iBGP con ellas
– Usar Peer Groups
– Usar Passwords en la sesiones de iBGP (robos de
prefijos)
BGP - RIU - 116
Puesta a punto de BGP
BGP vs IGP´s
• IGP
– El IGP debe contener a las redes de la DMZ o usar
neighbor x.x.x.x next-hop-self
• eBGP usados para
– Intercambiar prefijos con otros AS
– Implementar políticas de ruteo
BGP - RIU - 117
Puesta a punto de BGP
BGP
• Nunca hacer
– Redistribuir prefijos BGP en un IGP
– Redistribuir rutas IGP dentro de BGP
– Usar IGP para transportar los prefijos de los clientes u
otras redes externas
BGP - RIU - 118
Puesta a punto de BGP
BGP
• Sincronización (herencias de prácticas comunes)
Si un AS A (tránsito) pasa tráfico desde otro AS B a un
tercer AS C, BGP no anunciará la ruta antes de que todos
los routers del AS A aprendan la ruta via IGP. BGP esperará
hasta que el IGP propague la ruta dentro del AS A y luego
la anuncia a todos los vecinos externos. Un router BGP con
sincronización habilitada no instalará rutas aprendidas por
IBGP en su tabla de ruteo si no es posible validar esas rutas
dentro de su IGP. Por lo tanto, es recomendable
deshabilitar esta opción. Esto previene a BGP de validar
rutas de IBGP dentro de un IGP. En redes grandes es mejor
apagarla.
–
router bgp 64496
no synchronization
en versiones nuevas está deshabilitado por default
BGP - RIU - 119
Puesta a punto de BGP
BGP
• Auto-Sumarización (herencias de prácticas comunes)
– Si este comando se activa en BGP, cambia el comportamiento del
comando network. El cambio de comportamiento se manifiesta en que
el comando network omite la máscara. Cuando el comando network se
refiere a una Clase A, B o C sin máscara y con auto-summary
configurado, el router agrega la ruta en su tabla de BGP si:
–
–
La ruta classfull está en la tabla de ruteo
O
Si una ruta que apunta a una subred de la red classfull está en la tabla de ruteo.
– Por ejemplo, con network 9.0.0.0 e independiéntemente de autosummary, se agrega la ruta 9.0.0.0/8 en la tabla de ruteo
– Si el comando network 9.0.0.0 (sin la máscara) y auto-summary está
configurado, y si sólo una ruta a una subred (9.1.1.0/24) existe, pero
no la ruta exacta 9.0.0.0/8, entonces el router agrega una ruta para la
red classfull 9.0.0.0/8
•
router bgp 64496
no auto-summary
BGP - RIU - 120
Puesta a punto de BGP
BGP
• Distancia administrativa
–
Hacer la distancia administrativa mas grande que cualquier IGP
• Distance bgp 200 200 200
R1#show ip route
.....
192.0.2.0/30 is subnetted, 4 subnets
C 192.0.2.0 is directly connected, FastEthernet0/1
O 192.0.2.4 [110/2] via 192.0.2.2, 00:10:04, FastEthernet0/1
O 192.0.2.8 [110/2] via 192.0.2.13, 00:10:04, FastEthernet0/0
C 192.0.2.12 is directly connected, FastEthernet0/0
203.0.113.0 is subnetted, 4 subnets
C 203.0.113.128/26 is directly connected, Ethernet0/0/0
O 203.0.113.0/26 [110/11] via 192.0.2.2, 00:10:04, FastEthernet0/1
O 203.0.113.64 [110/12] via 192.0.2.13, 00:09:24, FastEthernet0/0
[110/12] via 192.0.2.2, 00:09:24, FastEthernet0/1
O 203.0.113.192 [110/11] via 192.0.2.13, 00:10:04, FastEthernet0/0
R1#
•
La distancia administrativa, determina cuan confiable es un protocolo. Si hay dos rutas
similares, se elige la de menor distancia administrativa. Cuanto menor es la distancia
administrativa, más confiable es el protocolo. En el ejemplo, no está visible para las rutas
conectadas directamente. Este valor es 0, representa la ruta más confiable de todas.
BGP - RIU - 121
Puesta a punto de BGP
BGP
• Distancia administrativa
Route Source
Default Distance Values
Connected interface
0
Static route
1
Enhanced Interior Gateway Routing Protocol (EIGRP) summary route
5
External Border Gateway Protocol (BGP)
20
Internal EIGRP
90
IGRP
100
OSPF
110
Intermediate System-to-Intermediate System (IS-IS)
115
Routing Information Protocol (RIP)
120
Exterior Gateway Protocol (EGP)
140
On Demand Routing (ODR)
160
External EIGRP
170
Internal BGP
200
Unknown*
255
BGP - RIU - 122
Puesta a punto de BGP
BGP
• Que anuncios no debería recibir
– No recibir los prefijos definidos en el RFC1918
– No aceptar mis propios prefijos
– No aceptar el default (a menos que se requiera)
– No aceptar prefijos mayores de /24
BGP - RIU - 123
Puesta a punto de BGP
• Que prefijos no debería recibir:
router bgp 64496
network 192.0.2.0 mask 255.255.255.0
neighbor 203.0.113.100 remote-as 64505
neighbor 203.0.113.100 prefix-list in-filter in
!
ip prefix-list in-filter deny 0.0.0.0/0
! Block default
ip prefix-list in-filter deny 0.0.0.0/8 le 32
ip prefix-list in-filter deny 10.0.0.0/8 le 32
ip prefix-list in-filter deny 101.10.0.0/19 le 32 ! Block local prefix
ip prefix-list in-filter deny 127.0.0.0/8 le 32
ip prefix-list in-filter deny 169.254.0.0/16 le 32
ip prefix-list in-filter deny 172.16.0.0/12 le 32
ip prefix-list in-filter deny 192.0.2.0/24 le 32
ip prefix-list in-filter deny 192.168.0.0/16 le 32
ip prefix-list in-filter deny 224.0.0.0/3 le 32
! Block multicast
ip prefix-list in-filter deny 0.0.0.0/0 ge 25
! Block prefixes >/24
ip prefix-list in-filter permit 0.0.0.0/0 le 32
BGP - RIU - 124
Puesta a punto de BGP
BGP - Sesiones estandar sin loopback0
•
Consideremos un router que tiene 2 caminos para hablar con un vecino BGP. Sus
interfaces con numeración IP son:
Router1: Serial0, 192.0.2.1 /24, Serial2, 198.51.100.1/24, loopback0, 203.0.113.1 /32
Router2: Serial0, 192.0.2.2/24, Serial2 198.51.100.2/24, loopback0, 203.0113.2/32
•
El router 1 puede configurarse así:
router bgp 64496
neighbor 192.0.2.2 remote-as 64505
•
En este caso, BGP usará automáticamente 192.0.2.1 como la IP fuente para realizar
la conexión TCP. Sin embargo, si la interfaz serial0 se baja administrativamente o se
cae, la conexión BGP se caerá, aunque el Router 2 esté funcionando.
BGP - RIU - 125
Puesta a punto de BGP
BGP - Sesiones con loopback0
•
Los neighbor no necesariamente deben estar directamente conectados y pueden
utilizar para interconectarse las interfaces loopback
•
En lugar de usar una interfaz física, es conveniente usar una dirección loopback en cada
router para levantar la sesión BGP entre ambos routers.
Router1:
router bgp 64496
neighbor 192.0.2.2 remote-as 64505
neighbor 192.0.2.2 update-source loopback0
Router2:
router bgp 64505
neighbor 192.0.2.1 remote-as 64496
neighbor 192.0.2.1 update-source loopback0
•
En este caso, perdiendo una de las conexiones físicas no implica que el BGP se caerá.
Mientras cada router tenga un ruta válida para alcanzar la otra interfaz loopback, la
conexión BGP estará funcionando. Y aun mejor, no tendremos un solo punto de falla.
BGP - RIU - 126
Esquema genérico UUNN - RIU
BGP - RIU - 127
Esquema genérico UUNN - ISP - RIU
BGP - RIU - 128
Multihoming
• Más de un enlace externo a la red local
• 2 o más enlaces al mismo proveedor
• 2 o más enlaces a diferentes proveedores
• Usualmente se utilizan 2 diferentes routers externos
• Un sólo router no da redundancia en el enlace
BGP - RIU - 129
Sistema Autónomo Single-homed
• Si un AS tiene sólo un punto de salida a redes externas.
• Sistemas Autónomos Single-homed son usualmente
denominados redes stubs (una red que solo transporta
paquetes desde y hacia sus host locales). Aún si tuviera
más de un camino a otras redes, no transporta tráfico de
otras redes).
• Solo tiene una ruta por default para manejar su tráfico a
redes no locales.
• BGP no necesariamente debe usarse en esta situación.
BGP - RIU - 130
Multi-homed Stub Network
AS 64505
C
A
AS 64512
B
• Utiliza BGP (no un IGP o
estáticas) para balancear el
tráfico
• Utiliza un AS privado (ASN
>64511)
• Upstream ISP debe anunciar
la red stub
• Las políticas dependen de
las políticas del Upstream
ISP
BGP - RIU - 131
Multi-homed Network
• Muchas situaciones
posibles:
AS 64505
D
A
C
AS 64512
B
– Múltiples sesiones a
un mismo ISP
– Un secundario como
backup solamente
– Balanceo entre el
primario y el secunario
– Selectivamente usa
diferentes ISP
BGP - RIU - 132
Múltiples sesiones a un ISP
• Se usa eBGP multihop
– eBGP a direcciones
loopback
– Redes eBGP anunciadas
con la dirección loopback
como next-hop
AS 64505
AS 64496
router bgp 64505
neighbor 192.0.2.1 remote-as 64496
neighbor 192.0.2.1 egbp-multihop
!
ip route 203.0.113.1 255.255.255.255 serial 1/0
ip route 203.0.113.1 255.255.255.255 serial 1/1
ip route 203.0.113.1 255.255.255.255 serial 1/2
BGP - RIU - 133
Internet
BGP - RIU - 134
Demostración práctica 1
ASN 100
ASN 300
ASN 200
eBGP
.2
.1
.1
192.168.11.0/24
192.168.21.0/24
.1
iBGP
.2
192.168.1.0/24
eBGP
.1
.2
192.168.12.0/24
.1
192.168.22.0/24
BGP - RIU - 135
Demostración práctica 2
BGP - RIU - 136
Descargar