Introdución a Interdomain Routing y BGP
Transcript of Introdución a Interdomain Routing y BGP
Routers IP de Altas Prestaciones
Introdución a Interdomain Routing y
BGP
Basado en … T. GriffinSIGCOMM 2001 Tutorial Session
1
Autonomous Routing Domains
Colección de redes físicas, unidas, usandoIP, que tienen una política adminstrativa de encaminamiento común
• Redes de campus (CAN)• Redes corporativas • Redes internas de ISPs• …
Autonomous Systems (ASes)
Un autonomous system es un autonomous routing domainal que le ha sido asignado un Autonomous System Number (ASN).
RFC 1930: Guía para la creación, selección, y registro de Autonomous System
… la administración de un AS ofrece a otros ASes un esquema coherente de encaminamiento interior y de alcazabilidad a otras redes a traves de ella.
AS Numbers (ASNs)ASNs son valores de 16 bit.
64512 a 65535 son “privados”
• Genuity: 1 • MIT: 3• Harvard: 11• UC San Diego: 7377• AT&T: 7018, 6341, 5074, …• UUNET: 701, 702, 284, 12199, …• Sprint: 1239, 1240, 6211, 6242, …• …
Secuencia de ASNs representan el camino a un destino
Aprox. unos 11,000 en uso (agosto 2001).
Arquitectura de encaminamiento dinámico
AS 1
AS 2
BGP
EGP = Exterior Gateway Protocol
IGP = Interior Gateway ProtocolBasado en Métrica: OSPF, IS-IS,
RIP, EIGRP (cisco)
OSPF
EIGRP
Basado en “políticas”: BGP
El Routing Domain de BGP es Internet
Tecnologías de encaminamiento distribuido
Link State Vectoring
• Información de la topología inunda todo el routing domain
• Las mejores rutas las calcula cada router
• La mejor ruta establece el Next-hop.
• Basado en minimizar el coste (asociado a una métrica)
• OSPF, IS-IS
• Cada router conoce poco sobre la topología del routing domain
• Cada router manda toda la información sólo a sus vecinos.
• La mejor ruta resulta de la componer los mejores next-hop
• No es imperativo utilizar el concepto de distancia
• RIP distace vectorBGP path vector
The Gang of Four
Link State Vectoring
EGP
IGP
BGP
RIPIS-ISOSPF
8
Varios protocolos de encaminamiento en el mismorouter
Forwarding Table
OSPFDomain
RIPDomain
BGP
OS kernel
OSPF Process
OSPF Routing tables
RIP Process
RIP Routing tables
BGP Process
BGP Routing tables
Forwarding Table Manager
Nontransit vs. Transit ASes
ISP 1ISP 2
Nontransit ASpodría ser una red corporativa o un campus.
NET Atráfico IP
Internet Serviceprovidersnormalmentetienen redes de tránsito
El tráfico nunca debe pasar a través de una red Nontrasit
9
Transit AS
AS1
AS3
AS2
r3
r1 r2
r2,r3
r1 r1,r3r2
Nontransit AS
AS1
AS3
AS2
r3
r1 r2
r3
r1 r3r2
Selective Transit
NET BNET C
NET A permite transitoentre NET B y NET Cy entre NET D y NET CNET A
NET D
NET A no permitetransito entre NET D y NET B
trafico IP
12La mayoría de las transit networks permiten tránsito de forma selectiva…
Clientes y Proveedores
proveedor
cliente
trafico IPproveedor cliente
Los clientes pagan a los proveedores por acceder a Internet
Los clientes no siempre necesitan BGP
proveedor
cliente
Ruta “default” 0.0.0.0/0apuntando al proveedor.
Ruta 192.0.2.0/24apuntando al cliente
192.0.2.0/24
Encaminamiento estático es el más frecuente para conectar un cliente a su proveedor de Internet. Esto explica porqué BGP es un misterio para muchos...
Jerarquía cliente-proveedor
tráfico IPproveedor cliente
Relación entre “pares”
Pares proporcionan transito entresus respectivos cliente
Pares no proporcionan transito entrepares
Pares, habitualmente, no intercambian $$$
par par
clienteproveedor
tráficopermitido
tráfico NOpermitido
Guerra entre pares
• Pueden reducir costes de upstream
• Pueden mejorar sus prestaciones
• Puede ser la única manera de tener acceso a una parte de Internet
• Uno no tiene clientes• El otro es su
competidor
La competencia entre pares es, con mucho,el contencioso más problemático en Internet!
Los acuerdos entre pares suelen ser confidenciales.
Acuerdos si... No acuerdos si...
Renegociaciones periódicas
BGP-4• BGP = Border Gateway Protocol
• Es un Policy-Based routing protocol (Policy vs. Topology)• Es el de facto EGP para Internet
• Protocolo relativamente simple, pero de configuración compleja.
• Errores de configuración repercuten en toda Internet
• 1989 : BGP-1 [RFC 1105]– Sustituye a EGP (1984, RFC 904)
• 1990 : BGP-2 [RFC 1163]• 1991 : BGP-3 [RFC 1267]• 1995 : BGP-4 [RFC 1771]
– Soporte para Classless Interdomain Routing (CIDR)
18
BGP: Funcionamiento básico
19
Establecimiento sesiónTCP puerto 179
Intercambio de todas las rutas
Intercambio incrementalupdates
AS1
AS2
Mientras la conexión es ALIVE intercambiaUPDATE mensajes
BGP sesión
Inter-Domain Routing
R
You can reach R via me
Cuatro tipos de mensajes BGP
• Open : Establecimiento de sesión. • Keep Alive : ...a intervalos regulares. • Notification : error cierre de sesión. • Update : Anuncio de nuevas rutas o
cierre de rutas anteriores.
21
anuncio =
prefijo + atributos
BGP atributos
Value Code Reference----- --------------------------------- ---------
1 ORIGIN [RFC1771]2 AS_PATH [RFC1771]3 NEXT_HOP [RFC1771]4 MULTI_EXIT_DISC [RFC1771]5 LOCAL_PREF [RFC1771]6 ATOMIC_AGGREGATE [RFC1771]7 AGGREGATOR [RFC1771]8 COMMUNITY [RFC1997]9 ORIGINATOR_ID [RFC2796]
10 CLUSTER_LIST [RFC2796]11 DPA [Chen]12 ADVERTISER [RFC1863]13 RCID_PATH / CLUSTER_ID [RFC1863]14 MP_REACH_NLRI [RFC2283] 15 MP_UNREACH_NLRI [RFC2283] 16 EXTENDED COMMUNITIES [Rosen]
...255 reserved for development
Hablaremos de estos
No todos los atributos forman parte de un anuncio (LOCAL_PREF)
Atributos: se usan para seleccionar la “mejor ruta”
192.0.2.0/24yo mejor!
192.0.2.0/24escógeme!
192.0.2.0/24mas corto!
192.0.2.0/24y 2 huevos duros!
Dadas múltiples rutas al mismo prefijo, un BGP speaker debe seleccionar, al menos, una mejor ruta.
Dos tipos de relación vecinal
24
• Externa (eBGP): con router en diferente Autonomous Systems
• Internal (iBGP): con router en el mismo Autonomous SystemAS1
AS2
eBGP
iBGP
iBGP es encaminado (usa IGP!)
Atributo “Next Hop”
AS 6431AT&T Research
135.207.0.0/16Next Hop = 12.125.133.90
AS 7018AT&T
AS 12654RIPE NCCRIS project
12.125.133.90
135.207.0.0/16Next Hop = 12.127.0.121
12.127.0.121
Cada vez que un anuncio de ruta atraviesa los límites de un AS, el Next Hop se cambia a la dirección IP del border-router que anuncia la ruta.
25
Forwarding Table
Forwarding Table
Uniendo EGP con IGP
AS 1 AS 2192.0.2.1
135.207.0.0/16
10.10.10.10
EGP
192.0.2.1135.207.0.0/16
destination next hop
10.10.10.10192.0.2.0/30
destination next hop
135.207.0.0/16Next Hop = 192.0.2.1
192.0.2.0/30
135.207.0.0/16
destination next hop
10.10.10.10
+
192.0.2.0/30 10.10.10.10
Implementando relaciones Cliente/Proveedor y Par/Par
Dos partes: • Implementación de relaciones de transito
– Filtrado de rutas saliente
• Implementación de preferencias de rutaproveedor < par < cliente
Importación de rutasprovider route customer routepeer route ISP route
Fromprovider
Fromprovider
Frompeer
Frompeer
From customer
From customer
Exportación de rutasprovider route customer routepeer route ISP route
Topeer
Topeer
Tocustomer
Tocustomer
Toprovider
From provider
filtersblock
Blackholes
192.0.2.0/24
192.0.2.0/24Accidental o malicioso anuncio de un prefijo puede generar un agujero negro para ese prefijo en gran parte de Internet
par par
clienteproveedor
Filtro Necesario !
falso
legitimo
Mars Attacks!
• 0.0.0.0/0: default• 10.0.0.0/8: private• 172.16.0.0/12: private• 192.168.0.0/16: private• 127.0.0.0/8: loopbacks• 128.0.0.0/16: IANA reserved • 192.0.2.0/24: test networks• 224.0.0.0/3: classes D and E• …..
Importación de rutas (revisión)
Frompeer
Frompeer
Fromprovider
Fromprovider
From customer
From customer
provider route customer routepeer route ISP route
filtrado demarcianos
xxxxxx
xxxxxx
xxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx
Filtros delcliente
cccccccccccccccccc
potencialesagujerosnegros
Marcianos
Cual ?
Que ruta debemos coger para 13.13.0.0./16 ?
AS 1
AS 2
AS 4
AS 3
13.13.0.0/16
UPV
par par
clienteproveedor
33
BGP: Selección de rutas
Rx.BGPUpdates
Mejores rutas
Tx.BGP Updates
Policy =filtro de rutas & selecc.atributos
Basado envalores deatributos
Policy =filtro de rutas & selecc.atributos
Limitado sólo por el lenguaje de configuración del equipo
Selección mejor ruta
ImportPolicies
Tabla de mejores rutas
ExportPolicies
Tabla de IP Forwarding
34
Selección de rutas (cont)
LOCAL_PREFerence mayor relaciones (clientes, pares, proveedores)
AS-PATH más corto
MED más bajo (Multi-Exit Discriminator)
ORIGIN: i-BGP (IGP) < e-BGP < Incomplete (static)
Coste IGP más bajo al nodo BGP de salida
traffic engineering
Router ID más bajo Último recurso
Atributo LOCAL_PREF
AS 1AS 2
AS 4
AS 3
13.13.0.0/16
local pref = 80
local pref = 100
local pref = 90
Valores más altos más preferidos
UPV
par par
clienteproveedor
36
Implementando Backup Links con Local Preference
AS 1
primary link backup link
Set Local Pref = 100
AS 65000Set Local Pref = 50
El tráfico de salida cogerá el primary link, salvo si este cae
37
38
Atributo AS_PATH
AS7018135.207.0.0/16AS Path = 6341
AS 1239Sprint
AS 1755Ebone
AT&T
AS 3549Global Crossing
135.207.0.0/16AS Path = 7018 6341
135.207.0.0/16AS Path = 3549 7018 6341
AS 6341
135.207.0.0/16AT&T Research
Originador del prefijo
AS 12654RIPE NCCRIS project
AS 1129Global Access
135.207.0.0/16AS Path = 7018 6341
135.207.0.0/16AS Path = 1239 7018 6341
135.207.0.0/16AS Path = 1755 1239 7018 6341
135.207.0.0/16AS Path = 1129 1755 1239 7018 6341
Evitación de bucles interdomain
39
AS 7018
12.22.0.0/16ASPATH = 1 333 7018 877
No se acepta !
AS 1
BGP en AS “YYY”nunca aceptaráuna ruta con un AS_PATH que contenga “YYY”.
Distance vector … Path vector …¿ Cuenta a infinito en BGP ?
R
AS 1
AS 2
AS 3
R: AS3R: AS2 AS3 AS2 AS1R: AS2 AS3
R: AS1 AS3R: AS3
El tráfico frecuentemente sigue la ruta en AS_PATH
AS 4AS 3AS 2AS 1135.207.0.0/16
135.207.0.0/16ASPATH = 3 2 1
IP Packet Dest =135.207.44.66
… pero puede que no !
AS 4AS 3AS 2AS 1135.207.0.0/16
135.207.0.0/16ASPATH = 3 2 1
IP PacketDest =135.207.44.66
AS 5
135.207.44.0/25ASPATH = 5
135.207.44.0/25
AS 2 filtra todas lassubredes con máscaramayor que /24
135.207.0.0/16ASPATH = 1
Desde AS 4 pareceque el paquete tomarála ruta 3 2 1, pero realmente toma la ruta 3 2 5
Exportarestado internoincrementariade forma dramática la información de routing
“Más corto” no siempre significa“más corto”
AS 4
AS 3
AS 2
AS 1
BGP dice que la ruta4 1 es mejor que 3 2 1
Sorpresa !
Forzando el tráfico de entrada con AS_PATH Padding
AS 1
192.0.2.0/24ASPATH = 2 2 2
clienteAS 2
proveedor
192.0.2.0/24
backupprimary
192.0.2.0/24ASPATH = 2
44
Padding puede no ser suficiente
45
AS 1
192.0.2.0/24ASPATH = 2 2 2 2 2 2 2 2 2 2 2 2 2 2
clienteAS 2
proveedor
192.0.2.0/24
192.0.2.0/24ASPATH = 2
AS 3proveedor
AS 3 mandará tráfico porlínea de “backup”porque prefiere rutas decliente a rutas de pary considera este criterioantes que la longitud deASPATH !
Padding puede usarse para balancear la carga
backupprimary
¿Cómo?
Hot Potato Routing: Ir al punto de salida más próximo
46
192.44.78.0/24
15 56 distancia IGP
salida 1 salida 2
Este Router tiene dos rutas BGP a 192.44.78.0/24.
Hot potato: Saca el trafico de tu red tan pronto como puedas
El reverso tenebroso de Hot Potato
15 56
172865High bandwidth
Provider backbone
Low bandwidthcustomer backbone
HeavyContent
Web Farm
SFF NYC
San Diego
Muchos clientes prefieren que su proveedor le lleve los bits! ... el proveedor también !
petición http (pequeña)respuesta http (larga)
47
Cold Potato Routing con MEDs(Multi-Exit Discriminator Attribute)
15 56
172865 Heavy
ContentWeb Farm
192.44.78.0/24
192.44.78.0/24MED = 15
192.44.78.0/24MED = 56
Preferible MEDs con valor más bajo
MEDs debe ser considerado ANTES QUEla distancia IGP !
Nota1 : algunos proveedores no tienen en cuenta MEDs48Note2 : MEDs no tiene porqué ser necesariamente la distancia IGP
Selección de rutas (cont)
LOCAL_PREFerence mayor relaciones (clientes, pares, proveedores)
AS-PATH más corto
MED más bajo (Multi-Exit Discriminator)
i-BGP < e-BGP
Coste IGP más bajo al nodo BGP de salida
traffic engineering
Router ID más bajo Último recurso
Politicas pueden interactuar de forma inesperada
backupcliente
1 2 Instalación de una línea de backup.
3 Recuperación del primario peroparte del tráfico queda enganchadoa la línea de backup.
4Caída del primario al cliente.Entra backup.
... y la buena noticia es ...
• BGP no garantiza convergencia a una ruta estable. Interacción entre políticas puede llevar a alimentar oscilaciones del protocolo. Ver “Persistent Route Oscillations in Inter-domain Routing” by K. Varadhan, R. Govindan, and D. Estrin. ISI report, 1996
• Corolario: BGP no garantiza recuperación de rutas tras caídas.
El problema del problema
Que problema soluciona BGP ?
El problema aresolver
Shortest Paths
Mecanismo distribuidopara calcular la solución.
X?RIP, OSPF, IS-IS
BGP
Stable Paths Problem (SPP)
2 5 5 2 1 0
0
2 1 02 0
1 3 01 0
3 0
4 2 04 3 0
3
42
1
• Nodo 0, el origen, • Para cada nodo distinto de
0, hay un conjunto de rutas permitidas al origen (incluida la “ruta nula”).
• Cada nodo tiene su ranking de rutas permitidas. La “ruta nula” es siempre la menos preferida. (no se muestra en las tablas de la figura) más preferida
…menos preferida (no nula)
Modelo BGP : los nodos representanBGP speaking routers, y 0 representa el nodo originador de un prefijo
Una solución a Stable Paths Problem
5 5 2 1 02
0
2 1 02 0
1 3 01 0
3 0
4 2 04 3 0
3
42
1
Una solución es una asignación de rutas permitidas a cada nodo tal que :
1
• la ruta asignada al nodo “u” es o la “ruta nula” o es una ruta “uwP”, donde “wP” es asignada al nodo “w”,
• a cada nodo se le asigna su ruta más preferida entre las consistentes con las rutas asignadas a sus vecinos. Una solución no representa
necesariamente un camino más corto, o un spanning tree.
Un SPP puede tener múltiple soluciones
Primera solución
1
0
2
1 2 01 0
1
0
2
1
0
2
2 1 02 0
1 2 01 0
2 1 02 0
1 2 01 0
2 1 02 0
Segunda soluciónDesacuerdo
Sin solución ?
2
0
31
2 1 02 0
1 3 01 0
3 2 03 0
4
3
Inestabilidad IGP puede exportar inestabilidad al resto de Internet
15 56
192.44.78.0/24
AS 4
AS 3AS 2
AS 1
10FLAP
FLAP
FLAP FLAP192.44.78.0/24ASPATH = 4 2 1
192.44.78.0/24ASPATH = 4 3 1
57
MEDs puede exportar inestabilidad interna
15
172865 Heavy
Content Web Farm
192.44.78.0/24
192.44.78.0/24MED = 15
192.44.78.0/24MED = 56 OR 10
56
10FLAP
FLAP
FLAP
FLAP
FLAPFLAP
58
Crecimiento de la tabla BGP
Thanks to Geoff Huston. http://www.telstra.net/ops/bgptable.html on August 8, 2001
64,511
2005?2007?
Cuando se agotarán los ASNs?
ASNs > 16 bits ?
BGP Routing Tables
show ip bgpBGP table version is 111849680, local router ID is 203.62.248.4Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
. . .*>i192.35.25.0 134.159.0.1 50 0 16779 1 701 703 i*>i192.35.29.0 166.49.251.25 50 0 5727 7018 14541 i*>i192.35.35.0 134.159.0.1 50 0 16779 1 701 1744 i*>i192.35.37.0 134.159.0.1 50 0 16779 1 3561 i*>i192.35.39.0 134.159.0.3 50 0 16779 1 701 80 i*>i192.35.44.0 166.49.251.25 50 0 5727 7018 1785 i*>i192.35.48.0 203.62.248.34 55 0 16779 209 7843 225 225 225 225 225 i*>i192.35.49.0 203.62.248.34 55 0 16779 209 7843 225 225 225 225 225 i*>i192.35.50.0 203.62.248.34 55 0 16779 3549 714 714 714 i*>i192.35.51.0/25 203.62.248.34 55 0 16779 3549 14744 14744 14744 14744 14744 14744 14744 14744 i. . .
Psss… ¡¡ NO es la tabla de forwarding !!
ASN y redIRIS
http://www.ripe.net/perl/whoisbuscar 158.42.0.0 para encontrar AS
buscar por AS (AS766) para obtener lista de import/export con otros AS.
BGP RFCs
http://www.ietf.orgInternet Engineering Task Force (IETF)
• IDR : http://www.ietf.org/html.charters/idr-charter.html• RFC 1771 A Border Gateway Protocol 4 (BGP-4)
• Latest draft rewrite: draft-ietf-idr-bgp4-12.txt
• RFC 1772 Application of the Border Gateway Protocol in the Internet
• RFC 1773 Experience with the BGP-4 protocol • RFC 1774 BGP-4 Protocol Analysis • RFC 2796 BGP Route Reflection An alternative to full mesh IBGP • RFC 3065 Autonomous System Confederations for BGP • RFC 1997 BGP Communities Attribute • RFC 1998 An Application of the BGP Community Attribute in Multi-
home Routing • RFC 2439 Route Flap Dampening
Bibliografía
• Internet Routing Architectures. Bassam Halabi. Second edition Cisco Press, 2000
• BGP4: Inter-domain Routing in the Internet. John W. Stewart, III. Addison-Wesley, 1999
• Routing in the Internet. Christian Huitema. 2000• ISP Survival Guide: Strategies for Running a
Competitive ISP. Geoff Huston. Wiley, 1999.• Interconnection, Peering and Settlements. Geoff
Huston. The Internet Protocol Journal. March and June 1999.
64
BGP: Estabilidad y convergencia
• The Impact of Internet Policy and Topology on Delayed Routing Convergence. Craig Labovitz, AbhaAhuja, Roger Wattenhofer, Srinivasan Venkatachary. INFOCOM 2001
• An Experimental Study of BGP Convergence. Craig Labovitz, Abha Ahuja, Abhijit Abose, FarnamJahanian. SIGCOMM 2000
• Origins of Internet Routing Instability. C. Labovitz, R. Malan, F. Jahanian. INFOCOM 1999
• Internet Routing Instability. Craig Labovitz, G. Robert Malan and Farnam Jahanian. SIGCOMM 1997
¿ Preguntas ?
Pares iBGP deben estar totalmente conectados
eBGP update
iBGP updates
67
• En iBGP es necesario evitar bucles conexión total
• BGP no proporciona “shortest path”routing
• iBGP NO es un IGP
Vecinos iBGP no retransmiten rutas recibidas vía iBGP a otros vecinos iBGP.