Direccionamiento y enrutamiento en Internet

Anuncio
Direccionamiento y enrutamiento en
Internet
Avi Freedman
Ravi Sundaram
Esquema
Orígenes de Internet
Protocolos y paquetes
Direccionamiento - IPv4 frente a IPv6
Enrutamiento – visión global
BGP - modelo
BGP - convergencia y dificultades
Introducción
• Internet es una RED de redes – tanto desde el punto
de vista lógico como físico.
• Millones de ordenadores son capaces de comunicarse
entre sí en tiempo real.
• Almacenamiento y envío basados en paquetes.
• Direccionamiento – modo de identificar ordenadores.
• Enrutamiento – transmisión de paquetes desde un
origen hasta un destino.
Orígenes
• Experimento académico realizado en la década de los 60,
financiado por ARPA - Advanced Research Projects
Agency, conocida ahora como DARPA.
• Diciembre de 1969 – se activó la primera red de 4 nodos,
utilizando para ello una conexión de 56 kbps.
• 1978 – surge el protocolo IP.
• 1982 – surge TCP, ARPANET se divide en MILNET e
Internet.
• 1983 - Internet consta de 200 ordenadores.
Orígenes
• 1984 – nacen los grupos de noticias.
• 1986 – surge el DNS y, motivado por el correo electrónico,
sustituye a la tabla de host.
• 1988 – surge el gusano, creado por el CERT.
• 1989 – 100.000 ordenadores en Internet, con readaptación
del protocolo TCP para evitar congestionamiento.
• 1990 – tráfico comercial aún prohibido en el backbone de
Internet.
• 1991 – fin de la prohibición comercial, nace la www.
Orígenes
• Mayo de 1993 – última petición de la NSFNET para NAPs
privados.
• 1995 – vBNS sustituye a NSFNET – un servicio de
backbone de alto rendimiento que conecta ciertas
universidades y centros de investigación a una velocidad de
155 Mbps e incluso más, contrato otorgado a MCI
(reemplazado por Abilene 10 Gbps?).
• 2002 - 350 millones de hosts.
Observaciones
•
•
•
•
•
•
•
•
Crecimiento sin precedentes.
Control descentralizado – desafíos y oportunidades.
Rendimiento.
Fiabilidad.
Contabilidad.
Seguridad.
Directorio.
Argumentos finales sobre el diseño del sistema. ACM Trans
on Comp systems, noviembre de 1984, págs. 277-288.
Protocolos
FTP
SMTP
DNS
UDP
TCP
ICMP
IP
SNMP
Paquetes
De 46 a 1500 bytes
Cabecera IP
Ethernet
Cabecera
Datos de la aplicación
TCP/UDP
Cola
Ethernet
Direccionamiento
•
•
•
•
Direcciones de 32 bits - a.b.c.d
4.000 millones de direcciones posibles.
250 millones de hosts aproximados.
IPv4 basado en RFC791 en 1981.
Direccionamiento
• Clasificación en el pasado:
Class A - primeros 8 bits fijos.
Class B - primeros 16 bits fijos.
Class C - primeros 24 bits fijos.
• CIDR – Enrutamiento de interdominio sin clases.
a.b.c.d/m - primeros bits m fijos.
p.ej. 0.0.0.0/29 = 0.0.0.0 a 0.0.0.7
• Regla de enrutamiento de correspondencia más concreta.
Direccionamiento
• Cuestiones relacionadas con IPv4.
Reducción del espacio de direcciones.
Control realizado por el registro central.
Ninguna consideración sobre redes/enrutamiento.
Ninguna consideración de seguridad.
Ninguna consideración en cuanto a calidad de
servicio (QoS).
Esto quedaría resumido como escalabilidad, seguridad y
calidad de servicio (QoS).
Direccionamiento
• IPv6 o IPng
128 bits
jerárquico (basado en la red);
seguro (usa IPSec);
calidad de servicio (bits repartidos para el etiquetado
de flujos).
Direccionamiento
• La migración tendrá lugar de 4 a 6.
Escalabilidad - CIDR/NAT (no antes del 2010).
Seguridad - IPSec y nivel de aplicación.
Calidad de servicio – nivel de aplicación.
Enrutamiento
• Internet – colección de sistemas autónomos.
• Sistema autónomo (AS) – conjunto de enrutadores que
comparten la misma política de enrutamiento, los
enrutadores de un AS son parecidos a las oficinas de
correo de un país.
• Protocolo de enrutamiento – colección de reglas para el
envío de paquetes.
Enrutamiento
• Distancia (ruta)- protocolos de vector.
Las actualizaciones de enrutamiento incluyen vector
de distancias (rutas);
Cada nodo posee un árbol de ruta más corta
(basado en una política).
Ejemplos: RIP, BGP4
Enrutamiento
• Protocolos de estados de conexión.
Las actualizaciones de enrutamiento incluyen estados
de conexión y otras actualizaciones;
Cada nodo contiene un grafo completo;
Ejemplo: OSPF
Localización de rutas
[koods@koods-desktop ~]$ traceroute www.berkeley.edu
traceroute to arachne.berkeley.edu (169.229.131.109), 30 hops max, 40 byte packets
1 172.24.80.1 (172.24.80.1) 0.401 ms 0.308 ms 0.291 ms
2 corp2-primary.kendall.akamai.com (172.24.8.2) 0.411 ms 0.334 ms 0.331 ms
3 akafire.kendall.akamai.com (172.24.44.4) 0.280 ms 0.208 ms 0.368 ms
4 65.202.32.3 (65.202.32.3) 0.608 ms 1.651 ms 0.923 ms
5 65.202.33.246 (65.202.33.246) 0.754 ms 0.664 ms 0.832 ms
6 serial4-0-2.hsipaccess1.Boston1.Level3.net (166.90.184.53) 0.912 ms 0.888 ms 0.881 ms
7 unknown.Level3.net (64.159.3.141) 1.349 ms 1.696 ms 2.018 ms
8 so-2-0-0.mp2.SanJose1.Level3.net (64.159.0.218) 85.658 ms 85.287 ms 84.278 m
9 gige9-1.hsipaccess1.SanJose1.Level3.net (64.159.2.103) 84.682 ms 84.666 ms 84.404 m
10 unknown.Level3.net (209.247.159.110) 80.145 ms 80.630 ms 80.860 m
11 ucb-gw--qsv-juniper.calren2.net (128.32.0.69) 83.634 ms 84.703 ms 110.922 m
12 vlan196.inr-201-eva.Berkeley.EDU (128.32.0.74) 83.906 ms 87.205 ms 85.161 m
13 vlan209.inr-203-eva.Berkeley.EDU (128.32.255.2) 138.753 ms 141.608 ms 142.004 m
14 arachne.Berkeley.EDU (169.229.131.109) 140.416 ms 128.705 ms 143.716 ms
BGP - modelo
• Modelado como una colección de sistemas autónomos
con relaciones no jerárquicas entre sí.
• Se puede considerar como un grafo G=(V,E) con
sistemas autónomos representados por los vértices v
en V, y por relaciones no jerárquicas por
extremidades e en E.
12222
701
BGP- Protocolo de puerta de enlace en el borde
• Protocolo vector-ruta – cada vértice mantiene un árbol de
camino más corto, arraigado en sí mismo.
• “más corto” – combinación de política y distancia basada
en métrica.
• Cada sistema autónomo selecciona sus rutas basadas en
su propia política, junto a las mejores rutas de sus vecinos.
BGP – modelo idealizado
• Internet está modelada como un grafo no dirigido G=(V,E), donde
V corresponde a los sistemas autónomos y E a las relaciones no
jerárquicas.
• Cada vértice asimila un conjunto de avisos de ruta de sus vecinos.
• Un aviso de ruta es un registro con los siguientes atributos:
nlri: información sobre accesibilidad de capa de red, ej. 1.2.3.4
as_path: lista ordenada de vértices, comenzando con el próximo
salto, ej. 701 12222.
loc_pref: preferencia local con dlp usado para representar un valor
por defecto.
BGP – modelo idealizado
• Cada vértice selecciona la mejor ruta para un determinado
destino. Si posee muchas rutas r_1, r_2 … r_k con el
mismo destino, es decir, r_i.nlri = r_j.nlri, éste selecciona la
primera con base en la más alta local-pref, luego con base
en el as_path más corto, con vínculos rotos arbitrariamente.
• Transformaciones de ruta:
- Las preferencias locales no son comunicadas.
- Sin bucles: v nunca acepta rutas r donde v ε r.as_path.
- El conjunto de rutas seleccionadas en v se pasa a los vecinos
de v con v colgando de as_path.
- Política de importación y exportación.
BGP – modelo idealizado
• Política de importación y exportación.
Exportar
Verdadero=> aceptar
Importar
17 ε as_path => rechazar
• Si todas las reglas de importación y exportación fuesen
“verdadero => aceptar”, BGP quedaría reducido a un
puro protocolo de vector de distancia.
BGP – modelo idealizado
• Comportamiento dinámico.
Informalmente, un sistema BGP S = <G, Policy(G), S0>,
compuesto de un grafo AS G= (V,E), posee una
política de importación y exportación para cada v_j en V,
y un estado inicial S0 = (c0_1,c0_2,…c)_n), donde
c0_j es el destino originado por v_j.
• Si v_j se activa, obtendrá avisos de ruta de sus vecinos
más próximos y seleccionará sus mejores rutas.
BGP – cuestión de convergencia
• Grafo de estado.
- Grafo dirigido de todos los estados con S_j => S_k, si existe un v
cuya activación provoque el cambio.
- Se dice que un estado S es final si S => S en la activación de
cualquier v.
- Se dice que un sistema BGP se puede solventar si posee un
estado final.
- Se dice que un sistema BGP es convergente si termina en un
estado final independientemente de la secuencia de
activación.
BGP - cuestión de convergencia
• ¿Es posible que la política configurada localmente de modo
correcto provoque anomalías globales de enrutamiento?
• ¿Puede el protocolo divergir, es decir, puede hacer que
una colección de sistemas autónomos intercambien
mensajes continuamente sin llegar a converger?
BGP - cuestión de convergencia
• ¿Es un sistema BGP divergente en la práctica? Existen historias
terroríficas sobre redes que se han configurado accidentalmente para
absorber todo el tráfico, pero que no dan pruebas de trampas a gran
escala.
• Sin embargo, se dan muchos y frecuentes casos de convergencia
retrasada hasta 50 minutos. En Labovitz, C., Ahuja, A., Bose, A. y
Jahanian, F., “Delayed Internet Routing Convergence”, Proceedings
of Sigcomm, 2000, págs. 175-18, los autores realizan experimentos en
los que apartan una ruta y la sustituyen por otra, para ver cuánto
tiempo antes descarga en Internet, mientras es observada desde
varios puntos con ventaja.
BGP - cuestión de convergencia
• Además de las varias anomalías específicas del
fabricante, la principal razón para que se dé una
convergencia larga, es que los protocolos de vector
de ruta consideren múltiples rutas de una longitud
determinada, a diferencia de los protocolos de vector
de distancia, que tienen en cuenta sólo una ruta de
una longitud específica. En la referencia
anteriormente mencionada, los autores construyen un
ejemplo en el que se tiene en cuenta cada ruta libre
de bucles en toda la red, pues, dado que existe un
número exponencial de dichas rutas, cabe esperar
que la convergencia se retrase.
BGP - cuestión de convergencia
• El siguiente ejemplo ha sido tomado de:
Varadhan, K., Govindan, R. y Estrin D.
Persistent route oscillations
ISI TR 96-631
BGP - cuestión de convergencia
dest
DISPOSITIVO CON
PROBLEMA
2
1
0
3
Todas las reglas son en mod. 3
Reglas de exportación: nlri=dest => aceptar
Reglas de importación: si i+1 => i entonces nlri=dest y as_path=[I+1,0]
=>
loc_pref = dlp +1; nlri=d => loc_pref=dlp
si i-1 => I entonces nlri=dest => aceptar
BGP - cuestión de convergencia
dest
DISPOSITIVO CON
PROBLEMA
1
2
0
33
¿Tiene solución el DISPOSITIVO CON PROBLEMA?
BGP - cuestión de convergencia
dest
DISPOSITIVO CON
PROBLEMA
11
2
0
3
¿Tiene solución el DISPOSITIVO CON PROBLEMA?
BGP - cuestión de convergencia
dest
DISPOSITIVO CON
PROBLEMA
1
2
0
3
¿Tiene solución el DISPOSITIVO CON PROBLEMA?
BGP - cuestión de convergencia
dest
DISPOSITIVO CON
PROBLEMA
1
2
0
33
¿Tiene solución el DISPOSITIVO CON PROBLEMA?
BGP - cuestión de convergencia
• ¿Tiene solución el DISPOSITIVO CON PROBLEMA?
- Para que un DISPOSITIVO CON PROBLEMA tenga solución,
debe tener un estado final.
- En el caso de sistemas de un único destino, es fácil observar que
en un estado final, el grafo inducido por as_path en cada vértice
para un destino, es un árbol orientado hacia el destino, y que
este estado final se puede alcanzar al activar todos los nodos
del árbol, siguiendo un orden de primer ancho.
- El DISPOSITIVO CON PROBLEMA no posee un estado final, y
esto se puede comprobar observando los 6 árboles arraigados en
0, y verificando que ninguno de ellos funciona.
BGP - cuestión de convergencia
• Los siguientes resultados se han tomado de:
Griffin, T. y Wilfong, G.,
“An Analysis of BGP Convergence Properties”
Proceedings of Sigcomm 99, págs. 277-288
BGP - otro problema
• ACCESIBILIDAD: dado un sistema S, los vértices v y w, y
el destino d originado por w, ¿existe un estado final en el
que d se pueda alcanzar desde v?
• ACCESIBILIDAD está en NP
Pf (función programada): se considera un estado final, y
se verifica la accesibilidad (y la finalidad).
• Para mostrar que la ACCESIBILIDAD es un problema
NP-difícil, demostramos una reducción a partir de 3SAT.
La ACCESIBILIDAD es NP-difícil
Ejemplo de 3-SAT: (x1 V x2’ V x3) y (x1’ V x2’ V x3’) …
x1
x2
xn
w
z
d
X1’
X2’
Xn’
C1
C2
Cm
La ACCESIBILIDAD es NP-difícil
X1=verdadero; x2=falso; x3=falso…
x1
x2
xn
w
z
d
X1’
X2’
Xn’
C1
C2
Cm
La ACCESIBILIDAD es NP-difícil
• Política de exportación: verdadero => aceptar.
• Política de importación: asegura que sólo uno de xj o xj’
está en el atributo as_path de una ruta hacia d, y una vez
que la ruta se haya escogido, es obligatorio un bloqueo.
Ejemplo: xj Æ xj’: nlri=d => loc_pref = dlp + 1;
xj-1 Æ xj : nlri=d & xj-1’ no en
as_path => loc_pref = dlp;
Para la cláusula Cj = xk V xl V xm: xk en as_path o xl en
as_path o xm en as_path => loc_pref = dlp.
La ACCESIBILIDAD es NP-difícil
• Se puede satisfacer => ACCESIBLE
Pf (función programada): se activa por las
erratas que se definen como verdaderas.
• ACCESIBLE => se puede satisfacer
Pf (función programada): Proviene superficialmente del
modo en el que la política funciona para garantizar una
única ruta.
Otros problemas e implicaciones
• ASIMETRÍA
• SOLVENCIA
• ROBUSTEZ
• RADB (base de datos de arbitraje de enrutamiento) y
verificación centralizada.
Investigación
Considere un protocolo de vector de ruta como BGP – en
cada paso, un nodo obtiene información de sus vecinos y
utiliza su política (local) para actualizar su tabla de rutas.
Una topología y una colección de políticas se pueden
satisfacer si existe un estado en el que las actualizaciones
no cambien. Se dice que un sistema converge si éste
alcanza dicho estado.
El problema consiste en probar y caracterizar el
comportamiento de estos sistemas, es decir, cuándo
divergen, y si pueden converger en más de un estado que
se pueda satisfacer.
Referencia:
www.acm.org/pubs/citations/proceedings/comm/3
16188/p277-griffin/
¿Preguntas?
Descargar