Post on 02-Oct-2018
transcript
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.
3
Protocolos de ruteo
• IGP: protocolo de ruteo interno– RIP – Routing Information Protocol– OSPF – Open Shortest Path First– EIGRP – Enhanced IGRP (Cisco)– IS-IS – Intermediate System to Intermediate System
• BGP: protocolo de ruteo externo, 2 casos:• iBGP: dentro del sistema autónomo• eBGP: entre sistemas autónomos
• NO CONFUNDIR: IGP con iBGP!!!
4
Ruteo en Internet
• Ruteo Inter-AS e Intra-AS
Hosth2
a
b
b
aaC
A
Bd c
A.aA.c
C.bB.a
cb
Hosth1
ruteo Intra-ASdentro de AS A
ruteo Inter-ASentre
A, B y C
ruteo Intra-AS dentro de AS B
6
Sistema Autónomo
7
• 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
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 cualintercambian información de ruteo BGP.
• Dentro de un AS, los peers BGP no necesitan estardirectamente conectados.
• Cantidad de organizaciones (redes).• BGP no pasa la complejidad interna a INTERNET.
8
AS 64496
Sesión BGP
Enlace
AS 64496
Sesión BGP
Enlace Enlace
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 lastenemos (anuncia).
• Para BGP, el ruteo interno es una caja negra• No pasa la complejidad interna a INTERNET.
9
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 lasque finalmente se utilicen (en función de unapropiedad 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 (unapor cada uno de ellos) pero sólo una Tabla de Ruteo.
10
Aprender y anunciar rutas
• Aprender una ruta: significa que voy a incorporaren mi tabla de BGP alguna ruta que me estánenseñando.
• Anunciar una ruta: significa que le voy a decir a alguien que tengo una ruta para llegar a determinadodestino. 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.
11
Aprender y anunciar rutas
• Neighbor: punto remoto a quien voy a quererenseñ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 potencialneighbor debe ser perfectamente alcanzable por IP (cuidado con filtros!).
• La sesión establecida puede ser eBGP o iBGP.
12
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.
13
Aprender y anunciar rutas
• Qué tráfico afecta las rutas que aprendo?
14
saliente
entrante
• Qué tráfico afecta las rutas que enseño?
• Qué pasa si no aprendo nada?
Depende de lo que tenga configurado localmente en mi tabla de ruteo.
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 encualquier parte del Sistema Autónomo.
• Nota: Cisco IOS permite ejecutar sólo un procesoBGP a la vez, por lo tanto, un router no puedepertenecer a más de un Sistema Autónomo.
• En un IGP los vecinos son descubiertosautomáticamente; en BGP se configuran en forma explícita
16
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, quedandeterminadas las interfaces que están sobre esa red para envíar y recibir actualizaciones, así como queredes conectadas directamente a esas interfaces se anunciarán)
• La máscara permite especificar supernetting o subnetting
17
Configuración Básica
• Ejemplo:
router bgp 64496network 203.0.113.0 mask 255.255.255.0neighbor 192.0.2.2 remote-as 64500neighbor 192.0.2.22 remote-as 64505
18
Configuración Básica
• Esas rutas deben existir en la tablas de ruteo del router local o no seránenviadas 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 poruna política de ruteo). 19
AS 64496192.0.2.0
198.51.100.0/30
A
198.51.100.1
198.51.100.2
AS 64505203.0.113.0
B
Configuración Router A
router bgp 64496 network 192.0.2.0 neighbor 198.51.100.2 remote-as 64505
Configuración Router B
router bgp 64505 network 203.0.113.0 neighbor 198.51.100.1 remote-as 64496
Configuración Básica
• Para establecer las relaciones con otros router BGP están los comandosneighbor.
• 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.20
AS 64496192.0.2.0
198.51.100.0/30
A
198.51.100.1
198.51.100.2
AS 64505203.0.113.0
B
Configuración Router A
router bgp 64496 network 192.0.2.0 neighbor 198.51.100.2 remote-as 64505
Configuración Router B
router bgp 64505 network 203.0.113.0 neighbor 198.51.100.1 remote-as 64496
• 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>
21
Configuración Básica
BGP table version is 134358, local router ID is 198.51.100.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 0 64496 65511 i*> 192.0.2.128/26 198.51.100.1 0 64496 64506 i*>i 198.51.100.22 0 0 64506 e* 203.0.113.128/25 198.51.100.1 0 64496 64501 i*> 198.51.100.114 0 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 64496 ?
show ip bgp
22
• 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 administrativa. * RIB: Routing Information Base
• "S" stale: indica que la ruta está “detenida” y requiere ser refrescada cuando se reestablezca la conexión con su vecino.
show ip bgp
23
• 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.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 0 64496 65511 i*> 192.0.2.128/26 198.51.100.1 0 64496 64506 i*>i 198.51.100.22 0 0 64506 e* 203.0.113.128/25 198.51.100.1 0 64496 64501 i*> 198.51.100.114 0 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 64496 ?
show ip bgp
24
• 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.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 0 64496 65511 i*> 192.0.2.128/26 198.51.100.1 0 64496 64506 i*>i 198.51.100.22 0 0 64506 e* 203.0.113.128/25 198.51.100.1 0 64496 64501 i*> 198.51.100.114 0 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 64496 ?
Atributos de rutas
26
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
Atributos de rutas
27
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 seranunciado a otros peers .
Ejemplo: ORIGINATOR_ID
Atributos de rutas
• Well-known mandatory(mandatorios muy difundidos)
– AS-Path– Next-hop – Origin
28
• Optional transitive-‐ Community -‐ Aggregator
• Optional non-‐transitive-‐ Multi-‐exit-‐discriminator(MED)
• Well-‐known discretionary(discrecionales muy difundidos)
− Local preference− Atomic aggregate
Atributos de rutas
29
• Origin• Next-‐hop• AS_PATH• Multi_EXIT_DISC (Multi-‐Exit Discriminator) (MED)• LOCAL_PREF (Local Preference)• COMMUNITY• WEIGHT
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
30
BGP table version is 134358, local router ID is 198.51.100.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 0 64496 65511 i*> 192.0.2.128/26 198.51.100.1 0 64496 64506 i*>i 198.51.100.22 0 0 64506 e* 203.0.113.128/25 198.51.100.1 0 64496 64501 i*> 198.51.100.114 0 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 64496 ?
Atributos de rutas: next-hop
31
• 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.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 0 64496 65511 i*> 192.0.2.128/26 198.51.100.1 0 64496 64506 i*>i 198.51.100.22 0 0 64506 e* 203.0.113.128/25 198.51.100.1 0 64496 64501 i*> 198.51.100.114 0 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 64496 ?
Atributos de rutas: next-hop
32
• En medios multiacceso (Ethernet, FR, ATM), el NH es la IP de la interfaz del router que originó la ruta• Ejemplo: IXP
Tráfico
IP 192.0.2.1
IP 198.51.100.2 NH 198.51.100.2
Switch
Atributos de rutas: next-hop
33
• Problema común: NH externo a nuestra red
AS 64500B
AS 64496198.51.100.0/25
A
eBGP
192.0.2.1 192.0.2.2
CiBGP
AS 64505203.0.113.0/24
Network Next Hop 198.51.100.0/25 192.0.2.1203.0.113.0/24 192.0.2.1
• 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.
Atributos de rutas: AS-Path
34
BGP table version is 134358, local router ID is 198.51.100.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 0 64496 65511 i*> 192.0.2.128/26 198.51.100.1 0 64496 64506 i*>i 198.51.100.22 0 0 64506 e* 203.0.113.128/25 198.51.100.1 0 64496 64501 i*> 198.51.100.114 0 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 64496 ?
• Puede ser utilizado para detectar loops.
Atributos de rutas: AS-Path
35
• 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 table version is 134358, local router ID is 198.51.100.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin 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 65511 i*> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i*>i 198.51.100.22 95 0 64506 e* 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i*> 198.51.100.114 100 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 6449964500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i
• MED es utilizado para anunciar a los vecinos eBGP preferencia sobre el tráfico entrantea nuestro AS– 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).
Atributos de rutas: MED
36
BGP table version is 134358, local router ID is 198.51.100.1Status codes: s suppressed, d damped, h history, * valid, > best, i – internal, S StaleOrigin 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 65511 i*> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i*>i 198.51.100.22 95 0 64506 e* 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i*> 198.51.100.114 100 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 i
Atributos de rutas: MED
37
• 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
menor MED.
AS 64496
AS 64500
Router C Network Next Hop Metric* 192.0.2.0/24 B 80 *>192.0.2.0/24 A 50
192.0.2.0/24A
B
C Router B192.0.2.0/24Set metric 80
Router A192.0.2.0/24Set metric 50
• 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.
Atributos de rutas: LOCAL_PREF
38
Network Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 95 0 64496 65511 i*> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i*>i 198.51.100.22 95 0 64506 e* 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i*> 198.51.100.114 100 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 i
Atributos de rutas: LOCAL_PREF
39
AS 64496192.0.2.0/24
AS 64500
Router A Network Next Hop LocPref*> 203.0.113.0/24 F 400 * 203.0.113.0/24 E 200
A B
C203.0.113.0/24set local-pref 200
AS 64510203.0.113.0/24
E
D
G
ping 203.0.113.1
203.0.113.0/24set local-pref 400
AS 64505F
Atributos de rutas: Weight
40
• 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 Next Hop Metric LocPrf Weight Path*> 192.0.2.0/26 198.51.100.1 95 300 64496 65511 i*> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i*>i 198.51.100.22 95 100 64506 e* 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i*> 198.51.100.114 100 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 i
Atributos de rutas: WeightAS 64505
203.0.113.0/25AS 64510
AB
C
AS 64496
D
AS 64500
203.0.113.0/25set weight 100
203.0.113.0/25set weight 200
41
Atributos de rutas: WeightAS 64505
203.0.113.0/25AS 64510
Router D Network Next Hop Weight* 203.0.113.0/25 A 100 *> 203.0.113.0/25 C 200
AB
C
AS 64496
D
ping 203.0.113.1
AS 64500
203.0.113.0/25set weight 100
203.0.113.0/25set weight 200
42
AS 64500
AS 64496192.0.2.0/24
B
AC
iBGP
Router BNetwork Next Hop Metric LocPrf Weight
*>i 192.0.2.0/24 C 0 100 0
BGP – default behavior
192.0.2.0/24 192.0.2.0/24
eBGP
Local-‐pref, MED y Weight
43
AS 64500
B
AC
iBGP
Router BNetwork Next Hop Metric LocPrf Weight
*>i 192.0.2.0/24 C 0 200 0
LOCAL_PREF
192.0.2.0/24 192.0.2.0/24set local-pref 200
eBGP
Router B aprendelocal-pref 200
Local-‐pref, MED y Weight
44
AS 64496192.0.2.0/24
AS 64500
B
AC
iBGP
Router BNetwork Next Hop Metric LocPrf Weight
*>i 192.0.2.0/24 C 0 100 0
WEIGHT
192.0.2.0/24 192.0.2.0/24set weight 50
eBGP
Local-‐pref, MED y Weight
45
AS 64496192.0.2.0/24
Router B no aprende weight
AS 64500
AS 64496192.0.2.0/24
B
AC
iBGP
Router BNetwork Next Hop Metric LocPrf Weight
*>i 192.0.2.0/24 C 80 100 0
MULTI_EXIT_DISC
192.0.2.0/24set metric 80 192.0.2.0/24
metric = 80eBGP
Local-‐pref, MED y Weight
46
Router B aprendemétrica 80
Atributos de rutas: COMMUNITY
47
• 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.
Atributos de rutas: COMMUNITY
48
access-list 101 permit ip 192.0.2.0 0.0.0.255 anyaccess-list 102 permit ip 198.51.100.0 0.0.0.255 any!route-map Peer-R1 permit 10match ip address 101set community 64496:650
route-map Peer-R2 permit 10match ip address 102set community 64500:750
ip community-list 1 permit 64496:650 ip community-list 2 permit 64500:750!route-map Peer-R3 permit 10match community 1set local-preference 130
route-map Peer-R4 permit 10match community 2set local-preference 140
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
49
Insertando prefijos en BGP
Network • Ejemplo:
router bgp 64496network 203.0.113.128 mask 255.255.255.128ip route 203.0.113.128 255.255.255.128 serial0
• Una ruta coincidente debe existir en la tabla de ruteoantes de que la red sea anunciada.
• Fuerza el atributo origin a ser “IGP”.
50
Insertando redes en BGP
network• Ejemplo
ip route 203.0.113.128 255.255.255.128 null0 250router bgp 64496network 203.0.113.128 mask 255.255.255.128
• Se inserta la ruta en la tabla de ruteo idéntica al prefijoque se quiere anunciar
• La ruta estática a “null0” es llamada ruta “pull up”.• sólo se usará 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.51
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
53
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)
54
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 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).
• 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
55
Filtrado de rutas
Prefix-list
router bgp 64496neighbor 203.0.113.100 remote-as 65551neighbor 203.0.113.100 prefix-list PEER-IN inneighbor 203.0.113.100 prefix-list PEER-OUT out
!ip prefix-list PEER-IN deny 198.51.100.0/24ip prefix-list PEER-IN permit 0.0.0.0/0 le 32ip prefix-list PEER-OUT permit 192.0.2.0/24
56
Filtrado de rutas
Filtrado de rutas
Por ejemplo si tenemos un router con esta configuración en su bgp:Willis# show run | begin bgprouter bgp 64496no synchronizationbgp log-neighbor-changesnetwork 198.51.100.0 mask 255.255.255.192network 198.51.100.64 mask 255.255.255.192network 198.51.100.128 mask 255.255.255.192network 198.51.100.192 mask 255.255.255.192neighbor 203.0.113.100 remote-as 65551neighbor 203.0.113.100 prefix-list route-filter outneighbor 203.0.113.210 remote-as 64505neighbor 203.0.113.210 remote-as 64505no 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 | begin NetworkNetwork Next Hop Metric LocPrf Weight Path
*> 198.51.100.0/26 0.0.0.0 0 32768 i*> 198.51.100.64/26 0.0.0.0 0 32768 i*> 198.51.100.128/26 0.0.0.0 0 32768 i*> 198.51.100.192/26 0.0.0.0 0 32768 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 longitudes de prefijodesde 16 hasta 26
57
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)
58
Filtrado de rutas
• 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_
...
59
Filtros por AS-‐PATH
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$ ...
60
AS 64500
AS 65550
AS 64505
R1R2
R4R3
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 ...
61
AS 64500
AS 65550
AS 64505
R1R2
R4R3
Filtros por AS-‐PATHEjemplo:
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 ...
62
AS 64500
AS 65550
AS 64505
R1R2
R4R3
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.
63
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
64
router bgp 64496neighbor 203.0.113.10 route-map infilter in
!route-map infilter permit 10
match ip address prefix-list HIGH-PREFset local-preference 120
!route-map infilter permit 20
match ip address prefix-list LOW-PREFset local-preference 80
!route-map infilter permit 30!ip prefix-list HIGH-PREF permit 192.0.2.0/25ip prefix-list LOW-PREF permit 192.0.2.128/25
65
Route-‐maps
router bgp 64496neighbor 203.0.113.10 route-map filter-on-as-path in
!route-map filter-on-as-path permit 10match as-path 1set local-preference 80set weight 200set metric 127set next-hop 192.0.2.10
!route-map filter-on-as-path permit 20match as-path 2set local-preference 200set weight 500set metric 327set 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_
66
Route-‐maps
Route-‐maps• Uso de prepend en un route-‐map
router bgp 64510network 192.0.2.0neighbor 203.0.113.10 remote-as 64496neighbor 203.0.113.10 route-map set-path out!route-map set-path permit 10set as-path prepend 64510 64510
• Debe ser usado con nuestro número de AS• De no ser así BGP puede detectar un loop y retirará la ruta
67
Atributos de rutas: AS-Path
68
• 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 65511 i*> 192.0.2.128/26 198.51.100.1 95 0 64496 64506 i*>i 198.51.100.22 95 0 64506 e* 203.0.113.128/25 198.51.100.1 95 0 64496 64501 i*> 198.51.100.114 100 0 64501 i*> 203.0.113.0/25 198.51.100.1 0 100 0 64496 64497 64498 6449964500 64503 64540 64540 65540 65540 655440 65540 65540 65540 i
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”.
69
Selección del mejor camino
5. En caso del mismo local-‐pref, se prefiere una ruta quees originada por el router (comando network o redistribución).
6. Si la ruta no fue originada por el router y local-‐pref esigual, se prefiere la ruta con el path de sistemasautónomos más corto (shortest as-‐path).
7. Si todo es igual, se prefiere el menor código de “origen” (IGP<EGP<Incomplete).
70
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 always-‐compare-‐med”).
9. Se prefieren rutas aprendidas por eBGP que por iBGP.
10.Se prefiere la ruta cuyo next-‐hop tiene menor métricaen el IGP.
11.Si hasta aquí no hay decisión, se prefiere la rutacorrespondiente al neighbor de menor router-‐id.71
Puesta a punto de BGPBGP 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.
73
Puesta a punto de BGPBGP 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)
74
Puesta a punto de BGPBGP 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
75
Puesta a punto de BGPBGP• Nunca hacer
– Redistribuir prefijos BGP en un IGP
– Redistribuir rutas IGP dentro de BGP
– NO Usar IGP para transportar los prefijos de los clientes u otras redes externas
76
Puesta a punto de BGPBGP• 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
77
Puesta a punto de BGP
78
• Que prefijos no debería recibir:router bgp 64496network 192.0.2.0 mask 255.255.255.0 neighbor 203.0.113.100 remote-as 64505neighbor 203.0.113.100 prefix-list in-filter in!ip prefix-list in-filter deny 0.0.0.0/0 ! Block defaultip prefix-list in-filter deny 0.0.0.0/8 le 32ip prefix-list in-filter deny 10.0.0.0/8 le 32ip prefix-list in-filter deny 101.10.0.0/19 le 32 ! Block local prefixip prefix-list in-filter deny 127.0.0.0/8 le 32ip prefix-list in-filter deny 169.254.0.0/16 le 32ip prefix-list in-filter deny 172.16.0.0/12 le 32ip prefix-list in-filter deny 192.0.2.0/24 le 32ip prefix-list in-filter deny 192.168.0.0/16 le 32ip prefix-list in-filter deny 224.0.0.0/3 le 32 ! Block multicastip prefix-list in-filter deny 0.0.0.0/0 ge 25 ! Block prefixes >/24ip prefix-list in-filter permit 0.0.0.0/0 le 32