Network Layer 4-1
Capítulo 4
Capa de red
Network Layer 4-2
Capitulo 4: Capa de red
Objetivos del capítulo:
Entender los principios detrás de los
servicios de la capa de red:
Modelos de servicios de la capa de red Forwarding vs routing
Como funciona un router
Enrutamiento (Selección de caminos) Escalamiento
Tópicos avanzados: IPv6
Aplicación e implementación en la Internet
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Network Layer 4-4
Capa de red
Transporta segmentos de origen a destino En origen encapsula
segmentos en datagramas En destino entrega
segmentos a capa transporte
Hay protocolos capa red (network) en cada terminal y router
Router examina campos de cabecera en todos los datagramas IP que pasan por él application transport network data link physical application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical Network Layer
Funciones claves de la capa de red
Ruteo:
determinar
ruta para los
paquetes desde un
origen a destino.
Algoritmos de Ruteo
Re-envío
(forwarding):
mover
paquetes desde la
entrada del router a
la salida apropiada.
Analogía:
Ruteo:
proceso de
planear viaje de
origen a destino
Re-envío
(forwarding):
proceso
de transitar a través
de una intersección
1
2 3
0111
Valor en la cabecera del paquete que arriba
routing algorithm
local forwarding table header value output link
0100 0101 0111 1001 3 2 2 1
Network Layer 4-7
Armando la conexión
Fuera de ruteo y re-envío, el establecimiento de la
conexión es la 3rafunción de importancia en algunas
arquitecturas de redes:
ATM, frame relay, X.25
En algunas redes, antes que los datagramas fluyan, los
dos hosts y los routers que intervienen establecen una conexión virtual
Routers se involucran en las conexiones
Diferencia entre los servicio de conexión de las capas
de red y transporte:
Red:conexión entre dos terminales (hosts)
Transporte:conexión entre dos procesos
Network Layer 4-8
Modelo de servicio de red
Q:¿Cuál es el modelo de serviciopara el “canal” que transporta los datagramas desde Tx a Rx?
Sería bueno contar con:
Ejemplo de servicios para datagramas individuales: Entrega garantizada Entrega garantizada con
retardo inferior a X [ms] (e.g. 40 ms)
Ejemplo de servicios para un flujo de datagramas: Entrega de datagramas en
orden
Ancho de banda mínimo
garantizado para el flujo
Restricciones sobre cambios en el intervalo (tiempo) entre paquetes
Modelos de servicios de capa de
red:
Arquitectura De red
Internet
ATM
ATM
ATM
ATM
Modelo de Servicio
best effort
CBR
VBR
ABR
UBR
Bandwidth
none
constant rate guaranteed rate guaranteed minimum none
no Loss
no
yes
yes
no
no Orden
no
yes
yes
yes
yes Timing
no
yes
yes
no
no
Congestion feedback
no (inferred via loss) no congestion no congestion yes
Network Layer 4-10
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes 4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-11
Servicios de la capa de red
orientado y no orientado a la
conexión
Las redes de datagramas proveen servicio sin
conexión en su capa de red (caso Internet) Redes de VC (Virtual Circuit) proveen servicio de
conexión en su capa de red (e.g. ATM)
Análogo a los servicios de capa transporte, pero: Servicio es: terminal-a-terminal (host-to-host)
No hay opción:la capa de red provee sólo uno u otro Implementación: en la red interna (core)
Circuitos virtuales VC
Hay tres fases identificables:
Establecimiento de la llamada, Transferencia de datos, y Término de la llamada
Cada paquete lleva un identificador del VC (no dirección de máquina destino)
Cada router en el camino de origen a destino mantiene el
“estado” por cada conexión que pasa por él
Enlace y recursos del router (ancho de banda, buffers)
“camino de origen a destino se comporta más como un circuito de teléfono”
performance-prudente
Network Layer 4-13
Implementación VC
Un VC consiste de:
1. Camino desde origen a destino
2. Número de VC, un número por cada enlace a lo largo del camino
3. Entradas en tablas de re-envío en los routers a lo largo
del camino
Los paquetes que pertenecen a un VC llevan el
número de VC correspondiente.
El número de VC debe ser cambiado en cada
enlace.
El nuevo número de VC es tomado de la tabla de re-envío
Network Layer 4-14
Tabla de reenvío
12 22 32
1 2 3 VC number
interface number
Incoming interface Incoming VC # Outgoing interface Outgoing VC #
1 12 3 22 2 63 1 18 3 7 2 17 1 97 3 87
… … … …
Forwarding table in northwest router:
Routers mantienen la información del estado de la conexion!
Circuitos virtuales: protocolos de
señalización
Usado para establecer, mantener y terminar VC Usado en ATM, frame-relay, X.25
No usado en el Internet de hoy
application transport
network
data link physical
application transport
network
data link physical
1. Initiate call 2. incoming call 3. Accept call 4. Call connected5. Data flow begins
Network Layer 4-16
Redes de Datagrama
No establecimiento de la llamada en la capa de red routers: no estado acerca de las conexiones
end-to-end
no concepto de “conexión” a nivel de red
Los paquetes son reenviados utilizando direcciones
de host destino
paquetes entre el mismo par origen-destino pueden
tomar diferentes caminos application
transport
network
data link physical
application transport
network
data link physical
1. Send data 2. Receive data
Network Layer 4-17
Tabla de Forwarding
Destination Address Range Link Interface 11001000 00010111 00010000 00000000
through 0
11001000 00010111 00010111 11111111 11001000 00010111 00011000 00000000 through 1
11001000 00010111 00011000 11111111 11001000 00010111 00011001 00000000 through 2
11001000 00010111 00011111 11111111 otherwise 3
4 billones de Posibles entradas
Concidencia del prefijo mas largo
Prefix Match Link Interface 11001000 00010111 00010 011001000 00010111 00011000 1
11001000 00010111 00011 2
otherwise 3
DA: 11001000 00010111 00011000 10101010
Examples
DA: 11001000 00010111 00010110 10100001 Cual interfase?
Network Layer 4-19
Red de datagrama o VC : por que?
Internet (datagrama)
Datos intercambiados entre computadores
Servicio “elástico”, sin
requerimientos de tiempo estricto.
Sistemas terminales “inteligentes” (computadores)
Se pueden adaptar, hacer
control, recuperación de errores
Red interna simple, la
complejidad en “periferia” Muchos tipos de enlaces
Características diferentes:
satélite, radio, fibra, cable
Es difícil uniformar servicios:
tasas, pérdidas, BW
ATM (VC)
Evoluciona desde la
telefonía
Conversación humana:
Tiempos estrictos,
requerimientos de confiabilidad
Necesidad de servicios
garantizados
Sistemas terminales
“tontos”
Teléfonos
Complejidad dentro de
la red
Network Layer 4-20
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Arquitectura de routers
Generalidades
Dos funciones claves de los routers:
Correr algoritmos/protocolos de ruteo (RIP, OSPF, BGP)
Network Layer 4-22
Funciones del puerto de entrada
Conmutación Descentralizada:
Dada la dirección destino de datagrama, se obtiene puerto de salida usando la tabla de re-envío en la memoria del puerto de entrada Objetivo: procesamiento completo en puerto
de entrada a “velocidad de la línea” Hacer cola si datagramas llegan más rápido
que velocidad de re-envío en el switch fabric
Capa física:
Recepción nivel de bits
Capa enlace datos:
e.g., Ethernet (más adelante)
Network Layer 4-23
Tres tipos de switching fabrics
Switching via memoria
Routers de primera generación:
Computador tradicional con conmutación bajo control
directo de la CPU (routing processor)
Paquetes son copiados a la memoria del sistema
Rapidez limitada por ancho de banda de la memoria (2
buses son cruzados por cada datagrama)
Input Port
Output Port Memory
Network Layer 4-25
Switching Via un Bus
Datagrama desde el puerto de
entrada de memoria al puerto de salida de memoria via un bus compartido no esta involucrado el routing processor
Contención de bus: velocidad de
switching limitado por el ancho de banda del bus ( solo un paquete a la vez puede ser transferido por el bus)
Bus de 32 Gbps bus, Cisco 6500:
velocidad suficiente para acceso y enterprise routers
Network Layer 4-26
Switching via una red de interconexión
Supera limitaciones de ancho de banda del bus Redes de interconexión originalmente
desarrolladas para conectar procesadores en una arquitectura multi-procesador
Diseño avanzado: fragmentación de datagramas en
celdas de tamaño fijo, las cuales pueden ser conmutadas en la estructura más rápidamente.
Cisco 12000: conmuta a través de la red de
interconexión 60 [Gbps]
Puertos de salida
Almacenamiento (Buffering) requerido cuando los
datagramas llegan de fabric más rápido que la velocidad de transmisión
Disciplina de itinerario (Scheduling)selecciona
Network Layer 4-28
Encolamiento de puerto de salida
buffering cuando la velocidad de arribo via switch
excede la velocidad de la linea de salida
queueing (retardo) y pérdida debido a overflow del
buffer del puerto de salida!
Network Layer 4-29
Cuanto buffering?
RFC 3439 regla del pulgar: buffering
promedio igual al “tipico” RTT (digamos 250
msec) veces la capacidad del enlace C
ejemplo, C = 10 Gps link: 2.5 Gbit buffer
Recomendaciones recientes: con
N
flujos,
buffering igual a
RTT C.
NEncolamiento puerto de entrada
Fabric más lento que los puertos de entrada combinados-> encolamiento puede ocurrir en las colas de entrada Head-of-the-Line (HOL) blocking:datagramas encolados
en el frente de la cola previene a otros en la cola de moverse hacia adelante
Network Layer 4-31
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-32
Capa de red de Internet
forwarding table
Host, funciones de la capa de red del router :
Routing protocols •path selection •RIP, OSPF, BGP
IP protocol •addressing conventions •datagram format •packet handling conventions ICMP protocol •error reporting •router “signaling”
Transport layer: TCP, UDP
Link layer
physical layer Network
layer
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Network Layer 4-34
Formato del datagrama IP
ver length 32 bits
data (variable length,
typically a TCP or UDP segment)
16-bit identifier
header checksum time to
live
32 bit source IP address IP protocol version
number header length (bytes) max number remaining hops (decremented at each router) for fragmentation/ reassembly total datagram length (bytes)
upper layer protocol to deliver payload to
head. len type ofservice
“type” of data flgs fragment offset upper
layer
32 bit destination IP address
Options (if any) E.g. timestamp, record route taken, specify list of routers to visit.
Cuanto overhead con TCP?
20 bytes de TCP 20 bytes de IP = 40 bytes +
overhead de la capa de apli.
Network Layer 4-35
Fragmentación de IP
Fragmentation & reensamblaje
Los enlaces de red tienenMTU (max.transfer size) – frame de nivel de enlace lo más largo posible.
Diferentes tipos de enlace Diferentes MTUs
Datagrama largo IP dividido (“fragmentado”) dentro de la red
Un datagrama se convierte
en algunos datagramas
“reensamblaje” unicamente
en el destino final
Bits del encabezado IP son
usados para identificar, ordenar los fragmentos relacionados
fragmentacion:
in:un datagrama largo
out:3 datagramas pequeño
reassembly
Fragmentación IP y reensamblaje
ID
=x fragflag=0 offset=0 length
=4000
ID
=x fragflag=1 offset=0 length
=1500
ID
=x fragflag=1 offset=185 length
=1500
ID
=xfragflag=0 offset=370 length
=1040
Un datagrama largo se convierte en algunos pequeños datagramas
Ejemplo
Datagrama 4000
byte
MTU = 1500 bytes
1480 bytes en el campo de datos
Network Layer 4-37
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-38
Direccionamiento IP: introducción
Dirección IP address:
identificador 32-bit para host, interfaces de router
interface:conexión
entre el host/router y el enlace físico
Los routers
tipicamente tienen múltiples interfaces
Host tipicamente
tienen una interface
Direcciones IP
asociados con cada interface
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2 223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 1 1
Subnets
Direcciones IP :Parte de subnet (bits
de alto orden)
host part (bits de bajo
orden)
Que es una subnet ? Dispositivos cuyas
interfaces tienen la misma parte de subnet en la dirección IP
Pueden fisicamente
llegar a otros sin la intervención de un router
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2 223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
network consisting of 3 subnets
Network Layer 4-40
Subnets
223.1.1.0/24 223.1.2.0/24223.1.3.0/24 Receta
Para determinar las
subnet, quite la interface de su host o router, creando islas de redes aisladas. Cada red aislada es llamadasubnet.
Subnet mask: /24
Network Layer 4-41
Subnets
Cuantas? 223.1.1.1
223.1.1.3 223.1.1.4
223.1.2.2 223.1.2.1
223.1.2.6
223.1.3.2 223.1.3.1
223.1.3.27 223.1.1.2
223.1.7.0
223.1.7.1 223.1.8.0 223.1.8.1 223.1.9.1
223.1.9.2
Network Layer 4-43
Direcciones IP : Como obtener una?
Q:
Como un host obtiene una dirección IP?
hard-coded en un archivo por el system admin
Windows:
control-panel->network->configuration->tcp/ip->properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol:
dinámicamente obtiene una dirección desde un servidor
“plug-and-play”
Network Layer 4-44
DHCP: Dynamic Host Configuration Protocol
Objetivo:permitir a un host obtener dinamicamente una dirección IP de un servidor de red cuando el host se une a la red
Puede renovar su arrendamiento de la dirección en uso Permite la reutilización de las direcciones (solo las direcciones
agarradas mientras se conectan “on” )
Soporte para usuarios mobiles que quieren unirse a la red DHCP generalidades:
host transmite a todos “DHCP Discover ” mensaje DHCP server responde con “DHCP offer” mensaje host solicita una dirección IP: “DHCP request” mensaje DHCP server envía dirección: “DHCP ack” mensaje
Escenario DHCP cliente-servidor
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2 223.1.2.1
223.1.3.2 223.1.3.1
223.1.3.27
A
B
E
DHCP servidor
Network Layer 4-46
Escenario DHCP cliente-servidor
DHCP server: 223.1.2.5 arriving client
time
DHCP discover
src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654
DHCP offer
src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs
Network Layer 4-47
Direccionamiento IP : CIDR
CIDR: Classless InterDomain Routing
Porción de subnet de direccion de longitud
arbitraria
Formato de dirección: a.b.c.d/x, donde x es el #
bits en la porción de subnet de la dirección (prefijo)
11001000 00010111 00010000 00000000
subnet part
host part
200.23.16.0/23
Direcciones IP: como obtener una?
P:
Como la red obtiene la parte de subnet de
una dirección IP?
R:
Obtiene la porción asignada de el espacio de
direccionamiento de su proveedor ISP’s
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
Network Layer 4-49
Direccionamiento Jerárquico: route
aggregation
“Send me anything with addresses beginning 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP Organization 0
Organization 7 Internet
Organization 1
ISPs-R-Us “Send me anythingwith addresses beginning 199.31.0.0/16”
200.23.20.0/23
Organization 2 .. .
.. .
Direccionamiento Jerarquico permite un eficiente anuncio de la información de enrutamiento:
Network Layer 4-50
Direccionamiento Jerárquico: rutas más
específicas
ISPs-R-Us tienen una ruta más espercífica a la Organización 1
“Send me anything with addresses beginning 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23 200.23.30.0/23
Fly-By-Night-ISP Organization 0
Organization 7 Internet
Organization 1
ISPs-R-Us “Send me anythingwith addresses beginning 199.31.0.0/16 or 200.23.18.0/23”
200.23.20.0/23
Organization 2 .. .
.. .
Direccionamiento IP: las últimas
palabras..
P:
Como un ISP obtiene un bloque de
direcciones?
R:
ICANN: Internet Corporation for AssignedNames and Numbers
Asignan direcciones Administra DNS
Asigna los dominios de nombres, resuelve
Network Layer 4-52
NAT: Network Address Translation
Traducción de direcciones de red
10.0.0.1
10.0.0.2
10.0.0.3 10.0.0.4
138.76.29.7
local network (e.g., home network)
10.0.0/24 rest of
Internet
Datagramas con origen o destino en la red tienen la dirección 10.0.0/24 para origen, destino
(como usual)
Todos losdatagramas quedejan la red local tienen un mismo y unico
origen NAT IP address: 138.76.29.7, Diferentes números de puertos
origen
Network Layer 4-53
NAT: Network Address Translation
Traducción de direcciones de red
Motivación: la red local usa solo una dirección IP en lo
que respecta al mundo exterior:
Rango de direcciones no son necesarias del ISP:
solamente una dirección para todos los dispositivos
Puede cambiar direcciones de los dispositivos en la
red local sin modificar el mundo exterior
Puede cambiar de ISP sin cambiar las direcciones de
los dispositivos en la red local
Los dispositivos de la red local interna no son
explicitamente direccionables ni visibles para el mundo exterior ( seguridad).
NAT: Network Address Translation
Traducción de direcciones de red
Implementacion:El router NAT debe:
outgoing datagrams: reemplazar(dirección IP origen,
, # puerto) de cada uno de los datagramas de salida hacia (dirección IP NAT, nuevo # puerto)
. . . Clientes remotos/servidores responderán usando (dirección IP NAT, nuevo # puerto) como dirección destino.
recordar (en la tabla de traducción NAT) cada
(dirección IP origen, # puerto) para (dirección IP NAT, nuevo # puerto) par traducido
incoming datagrams: reemplazar(dirección IP NAT,
Network Layer 4-55
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345 D: 128.119.40.186, 80
1 10.0.0.4 138.76.29.7
1: host 10.0.0.1 sends datagram to 128.119.40.186, 80
NAT translation table WAN side addr LAN side addr
138.76.29.7, 5001 10.0.0.1, 3345
…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 S: 138.76.29.7, 5001
D: 128.119.40.186, 80
2 2: NAT router changes datagram source addr from 10.0.0.1, 3345 to 138.76.29.7, 5001, updates table
S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3
3: Reply arrives dest. address: 138.76.29.7, 5001
4: NAT router changes datagram dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Network Layer 4-56
NAT: Network Address Translation
Traducción de direcciones de red
Campo del número de puerto 16-bit:
60,000 conexiones simultáneas con una únicadirección del lado LAN!
NAT es polémico:
Los routers unicamente deberan procesar hasta
capa 3
Viola el argumento end-to-end
• La posibibilidad de NAT deberá ser tomada en consideración por los diseñadores de aplicaciones, ejemplo aplicaciones P2P
La falta de direcciones deberá ser resuelto por
IPv6
NAT problema traversal
El cliente quiere conectarse al
servidor con la dirección 10.0.0.1 La dirección de servidor 10.0.0.1
es local para LAN (el cliente no puede usar esta como dirección destino)
Solo es visible una dirección
NATeada externamente: 138.76.29.7
solución 1: NAT configurado
estáticamente para reenviar los requerimientos de conexiones de entrada a un puerto dado del servidor
e.g., (123.76.29.7, port 2500)
siempre reenviando a 10.0.0.1 puerto 25000
10.0.0.1
10.0.0.4 NAT router 138.76.29.7
Network Layer 4-58
NAT traversal problem
solución 2: Universal Plug and
Play (UPnP) Internet Gateway Device (IGD) Protocol. Permite al host Nateado:
Aprender direcciones
públicas (138.76.29.7)
añadir/remover los mapeos
de puertos (con tiempos de arrendamiento)
Ejemplo, automatizar configuración de mapas de puertos NAT estáticos
10.0.0.1
10.0.0.4
NAT router
138.76.29.7
IGD
Network Layer 4-59
NAT traversal problem
solución 3: relevos (usado en Skype)
Cliente NATeado establece conexión con el relevo Cliente externo se conecta con el relevo El relevo hace puente para los paquetes entre las
conexiones
138.76.29.7
Client
10.0.0.1
NAT router
1.connection to relay initiated by NATted host
2.connection to relay initiated by client
3.relaying established
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Network Layer 4-61
ICMP: Internet Control Message Protocol
Usado por los hosts & routers para comunicarse información de nivel de red
Reporte de errores:
unreachable host, network, port, protocol
echo request/reply (usado
por ping) Capa de red “encima” IP:
Mensajes ICMP son
llevados en datagramas IP
Mensaje ICMP :tipo, codigo
más los primeros 8 bytes del datagrama IP causante del mensaje ICMP.
Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion
control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header
Network Layer 4-62
Traceroute e ICMP
Origen envía una serie de
segmentos UDP al destino Primero tiene TTL =1 Segundo tiene TTL=2, etc. Se utiliza un número de
puerto improbable (raro)
Cuando nth datagrama llega
al nth router: Router descarta el
datagram
Y envía al origen un
mensaje ICMP (tipo 11, codigo 0) TTL expired
Mensaje incluye nombre
del router & dirección IP
Cuando el mensaje ICMP
llega, el origen calcula RTT
Traceroute envía set de 3
paquetes con el mismo TTL Criterio para detenerse Segmento UDP
eventualmente llega al host destino
Destino retorna un paquete
ICMP “destination port unreachable” (tipo 3, codigo 3)
Cuando el origen obtiene este ICMP, para.
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Network Layer 4-64
IPv6
Motivación inicial:
el espacio de direcciones de
32-bit pronto va ser completamente
asignado.
Motivación adicional:
Formato de cabecera ayuda a la velocidad de
procesamiento/forwarding
Cabecera cambia para facilitar el QoS
Formato del datagrama IPv6 :
Cabecera de longitud fija 40 byte no se permite fragmentación
Network Layer 4-65
Cabecera IPv6 (Cont)
Priority: identifica la prioridad entre los datagramas en el flujo
Flow Label:identifica datagramas en el mismo “flujo.” (concepto de “flujo” no esta bien definido aún).
Next header:identifica protocolo de capa superior para datos
Otros cambios en relación IPv4
Checksum
:
removido enteramente para
reducir el tiempo de procesamineto en
cada hop
Options:
permitido, pero fuera del header,
indicado por el campo “Next Header”
ICMPv6:
nueva version de ICMP
Tipos de mensaje adicional, ejemplo: “Paquete
muy grande”
Network Layer 4-67
Transición de IPv4 a IPv6
No todos los routers pueden ser actualizados
simultáneamente
no “ventana de mantenimiento”
Como la red operará con una mezcla de routers
IPv4 e IPv6 ?
Tunneling:
IPv6 llevará un payload en los
datagramas IPv4 entre los routers IPv4
Network Layer 4-68
Tunneling
A B E F
IPv6 IPv6 IPv6 IPv6
tunnel
Vista Lógica:
Vista Física: A B E F
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
Tunneling
A B E F
IPv6 IPv6 IPv6 IPv6
tunnel
Vista Lógica:
Vista Física: A B E F
IPv6 IPv6 IPv6 IPv6
C D
IPv4 IPv4 Flow: X
Src: A Dest: F data
Flow: X Src: A Dest: F data Flow: X
Src: A Dest: F data
Src:B Dest: E
Flow: X Src: A Dest: F data
Src:B Dest: E
A-to-B:
Network Layer 4-70
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-71
1
2 3
0111
Valor en la cabecera del paquete que llega
routing algorithm
local forwarding table header value output link
0100 0101 0111 1001 3 2 2 1
Interacción entre enrutamiento y
forwarding
u
y
x
w v
z
2 2
1 3
1 1
2 5 3 5
Graph: G = (N,E)
N = set of routers = { u, v, w, x, y, z }
E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Abstracción Gráfica
Comentario: Abstracción gráfica es util en otros contextos de red
Network Layer 4-73
Abstracción gráfica: costos
u
y
x
w v
z
2 2
1 3
1 1
2 5 3
5 • c(x,x’) = costo del enlace (x,x’)
- e.g., c(w,z) = 5
• costo podría ser siempre 1, o inversamente relacionado al ancho de banda, o inversamente relacionad a la congestión
Costo del camino (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Pregunta: Cual es el camino de menor costo entre u y z ?
Algoritmo de enrutamiento: algoritmo que encuentra el camino de menor costo
Network Layer
Clasificación de los algoritmos de ruteo
Según información global o descentralizada? Global:
Todos los routers conocen la
topología completa y costos de enlaces
Algoritmos de “estado de enlace” (link state)
Descentralizada: El router conoce vecinos
conectados físicamente y el costo del enlace a ellos.
Proceso iterativo de cómputo e intercambio de información con sus vecinos
Algoritmos de “vector de distancia”
Según si es estático o dinámico?
Estático:
Rutas cambian lentamente en el tiempo
Dinámico:
Rutas cambian más
rápidamente
Actualizaciones
periódicas
En respuesta a cambios
de costos de enlaces
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Network Layer
Un Algoritmo de ruteo de estado
de enlace
Algoritmo de Dijkstra Supone topología de red y
costos de enlaces conocidos a todos los nodos
Se logra vía “difusión de
estado de enlace”
Todos los nodos tienen la
misma información
Se calcula el camino de costo
menor desde un nodo (fuente) a todos los otros
Determina tabla de re-envío
(forwarding)para ese nodo
Iterativo: después de k
iteraciones, se conoce el camino de menor costo a k destinos
Notación:
c(x,y):costo del enlace desde nodo x a y; = ∞si no es vecino directo
D(v):valor actual del costo del camino de menor costo desde fuente a destino v.
p(v):nodo previo a v en el camino actual de menor costo desde el origen a v.
N':conjunto de nodos, v esta en el conjunto si el camino cuyo camino de menor costo desde el origen a v es conocido
Network Layer 4-77
Algoritmo de Dijsktra
1 Initialization:
2 N' = {u} 3 for all nodes v 4 if v adjacent to u 5 then D(v) = c(u,v) 6 else D(v) = ∞ 7
8 Loop
9 find w not in N' such that D(w) is a minimum 10 add w to N'
11 update D(v) for all v adjacent to w and not in N' : 12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known 14 shortest path cost to w plus cost from w to v */ 15 until all nodes in N'
Ejemplo de algoritmo Dijkstra
Step 0 1 2 3 4 5 N' u ux uxy uxyv uxyvw uxyvwz D(v),p(v) 2,u 2,u 2,u D(w),p(w) 5,u 4,x 3,y 3,y D(x),p(x) 1,u D(y),p(y)∞
Network Layer 4-79
Algorimo de Dijkstra: ejemplo (2)
u
y
x
w v
z
Arbol resultante de los caminos más cortos desde u:
v x y w z
(u,v) (u,x) (u,x) (u,x) (u,x) destination link
Tabla de forwarding resultante de u:
Network Layer 4-80
Algoritmo de Dijkstra, discusión
Complejidad del algoritmo: n nodos
Cada iteracción: se necesita revisar en todos los nodos, w que no está en N
El numero total de nodos que se necesitan buscar a traves de
todas las iteraciones es n(n+1)/2: O(n2)
Implementaciones lo más eficientemente posibles: O(n log n) Posible oscilaciones:
ejemplo, costo del enlace = cantidad del tráfico llevado
A D
C B
1 1+e
e 0
e
1 1
0 0
A D
C B
2+e 0
0 01+e 1
A D
C B
0 2+e
1+e 1 0 0
A D
C B
2+e 0
e 01+e 1
Inicialmente … recomputandoenrutamiento … recomputo … recomputo
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Network Layer 4-82
Algoritmo de distancia Vectorial
Ecuación de Bellman-Ford (programación dinámica)
Definir
dx(y) := menor costo del camino x a y
Luego
dx(y) = min {c(x,v) + dv(y) }
donde min es tomado de todos los vecinos v de x
v
Network Layer 4-83
Ejemplo Bellman-Ford
u
y
x
w v
z
2 2
1 3
1 1
2 5 3
5 Claramente, d
v(z) = 5, dx(z) = 3, dw(z) = 3
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5, 1 + 3, 5 + 3} = 4
Nodo que logra el mínimo es el siguiente
hop en el camino más corto➜ Tabla de forwarding
Ecuación B-F dice:
Algoritmo de distancia vectorial
D
x(y)
= estimado del menor costo desde x
hasta y
Node x conoce el costo a cada vecino
diretamente conectado v:
c(x,v)
Node x mantiene el vector distancia
D
x=
[D
x(y): y
є
N ],
estimado de x de todos sus
costos a todos los destinos y en N
Node x también mantiene los vectores
distancia a cada uno de sus vecinos
Network Layer 4-85
Algoritmo vector distancia(4)
Idea básica:De tiempo en tiempo, cada nodo envía su propio
vector distancia estimado a los vecinos
Asincronico
Cuando un nodo x recibe un nuevo estimado DV de
su vecino, este actualiza su propio DV usando la ecuación B-F:
Dx(y) ←minv{c(x,v) + Dv(y)} para cada nodo y ∊N
Mientras todos los nodos continuen
intercambiando sus vectores distancia y bajo condiciones normales cada costo estimado Dx(y) converge al menor costo actualdx(y)
Network Layer 4-86
Algoritmo de distancia vectorial (5)
Iterativo, asincronico:
cada iteracción local causada por:
Cambio en el costo del
enlace local
Mensaje de actualización del DV enviado por el vecino
Distribuido:
Cada nodo notifica a los
vecinos solamente cuando su DV cambia
Vecinos luego notifican a
sus vecinos si es necesario
waitfor (change in local link cost or msg from neighbor)
recomputeestimates
if DV to any dest has changed, notifyneighbors Cada nodo:
x y z x y z
0 2 7 ∞ ∞ ∞ ∞ ∞ ∞
fr
om
cost to
fr
om
fr
om
x y z x y z
0
fr
om
cost to
x y z x y z
∞ ∞
∞ ∞ ∞ cost to
x y z x y z ∞ ∞ ∞
cost to ∞ 2 0 1
∞ ∞ ∞
2 0 1 7 1 0
x2 7 1z
y
node x table
node y table
node z table
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3
Network Layer 4-88 x y z
x y z
0 2 7 ∞ ∞ ∞ ∞ ∞ ∞ fr om cost to fr om fr om
x y z x y z
0 2 3
fr
om
cost to x y z
x y z
0 2 3
fr
om
cost to
x y z x y z ∞ ∞ ∞ ∞ ∞ cost to
x y z x y z
0 2 7
fr
om
cost to
x y z x y z
0 2 3
fr
om
cost to
x y z x y z
0 2 3
fr
om
cost to x y z
x y z
0 2 7
fr
om
cost to x y z
x y z ∞ ∞ ∞7 1 0
cost to ∞ 2 0 1
∞ ∞ ∞
2 0 1 7 1 0
2 0 1 7 1 0
2 0 1 3 1 0
2 0 1 3 1 0
2 0 1
3 1 0 2 0 1 3 1 0
time
x2 7 1z
y
node x table
node y table
node z table
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3
Network Layer
Vector de distancia: cambios en costos
de enlaces
Cambios en costos de enlaces:
nodo detecta un cambio de costo en
uno de sus enlaces
actualiza información de ruteo,
recalcula vector distancia
si hay cambio en DV notifica a sus vecinos “buenas noticias viajan rápido” x z 1 4 50 y 1
En el tiempo t0, ydetecta un cambio en costo de enlace, actualiza su DV e informa a sus vecinos.
En el tiempo t1, zrecibe la información de y, también actualiza su tabla. Calcula un nuevo costo para x y le envía su DV a sus vecinos.
En el tiempo t2, yrecibe la actualización de zy actualiza su tabla de distancia. Los costos mínimos de yno cambian, yno envía ningún nuevo mensaje a z.
Vector distancia: cambios en los costos
de los enlaces
Cambios en los costos de enlaces:
Buenas noticias viajan rápido Malas noticias viajan lento
-problema del “count to
infinity” ! x z
1 4
50
y
Network Layer
Vector de distancia: cambio en costo de enlaces (e.g. incremento de costo)
Inicialmente: Dy(x) = 4, Dy(z) = 1, Dz(x) = 5, Dz(y) = 1
En el tiempo t0 y detecta el cambio de costo y calcula: Dy(x) = min {c(y,x) + Dx(x), c(y,z) + Dz(x)} =
= min {60 + 0, 1 + 5} = 6
Con nuestra visión global de la red sabemos que este valor de Dy(x) está equivocado. Esto pasa porque la última información que el nodo y tiene es que para llegar de z a x uno puede rutear a través de z con un costo de 5. Ahora (en t1) tenemos un routing loop. Para llegar a x ruteamos a través de z y z rutea a través de y... un paquete que cae en un routing loop va a rebotar entre los dos routers para siempre (en IP muere por TTL).
y tiene un nuevo mínimo costo de 6para Dy(x), y informa de su nuevo vector de distancia DYa sus vecinos.
z recibe este vector de distancia DYy recalcula Dz DZ(x) = min {50 + 0, 1 + 6} = 7
En t2al cambiar el mínimo costo para llegar a x, z informa a y de su nuevo vector de distancia DZ
y recibe DZ , recalcula un nuevo Dy(x) e informa a sus vecinos... etc...el proceso se repite por 44 iteraciones!
x4 501z y
60
x y z x y z
0 4 5
fr
om
5 1 0 4 0 1 node y table
x y z x y z
0 4 5
fr
om
5 1 0
60 1 node y table
Network Layer
Comparación de algoritmos de estado (LS) de
enlace y vector de distancia (DV)
Complejidad de mensajes
LS:con n nodos, E enlaces,
O(nE) mensajes son enviados
DV:sólo intercambios entre
vecinos
Tiempo de convergencia
varía
Rapidez de convergencia
LS:O(n2), algoritmo requiere
O(nE) mensajes
Puede tener oscilaciones
DV: tiempo de convergencia varía
Podría estar en loops Problema de cuenta infinita
Robustez:¿qué pasa si un router funciona mal? LS:
Nodos pueden comunicar
incorrecto costo del link
Cada nodo computa sólo su
propia tabla
DV:
DV nodo puede comunicar costo de caminoincorrecto
La tabla de cada nodo es
usada por otros
• error se propaga a través de la red
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de
Network Layer 4-94
Enrutamiento Jerárquico
escalamiento:con 200 millones de destinos:
No puede guardar todos los destinos en tablas de enrutamientos!
Los intercambios de las tablas de enrutamiento pueden inundar el enlace!
Autonomía administrativa
internet = red de redes Cada administrador de red
querrán controlar el enrutamiento en su propia red
Ideal
Todos los routers son idénticos red “plana”
… no es verdad en la práctica
Network Layer 4-95
Enrutamiento Jeráquico
Agregar los routers dentro
de regiones,“sistema autonomo” (AS)
Los routers en el mismo AS
corren el mismo protocolo de enrutamiento
Protocolo de enrutamiento “intra-AS”
routers en diferentes AS
pueden correr diferentes protocolos de enrutamiento intra-AS
Gateway router
Enlace directo a router en
otro AS
3b
1d 3a
1c 2a
AS3
AS1
AS2
1a
2c 2b 1b
Intra-AS Routing algorithm
Inter-AS Routing algorithm
Forwarding table
3c
Interconectando ASes
forwarding table configurado por los dos algoritmos de enrutamiento intra- and inter-AS
intra-AS pone entradas
para los destinos internos
inter-AS & intra-As pone
Network Layer 4-97
3b
1d 3a
1c 2a
AS3
AS1
AS2
1a
2c 2b 1b
3c
Tareas Inter-AS
Suponga que el router en
AS1 recibe un datagrama destinado para la parte outside de AS1:
Router debera entregar
el paquete al gateway router, pero a cual?
AS1 deberá:
1. Aprender cuales destinos son alcanzables a través de AS2, y cuales a través AS3
2. Progagar la información de alcanze a todos los routers en AS1
Trabajo de enrutamiento inter-AS !
Network Layer 4-98
Ejemplo: Estableciendo la forwarding table en
el router 1d
Suponga que AS1 aprende (via inter-AS protocol) que la
subnet xes alcanzable via AS3 (gateway 1c) pero no via AS2.
Protocolo inter-AS propaga la información de alcance a
todos los routers internos.
router 1d determina de la información de enrutamiento
intra-AS que su interface I esta en el caminos de menor costo a 1c.
instala la entrada (x,I) en el forwarding table
3b
1d 3a
1c 2a
AS3
AS1 AS2
1a
2c 2b 1b
3c
x
…
Ejemplo: Seleccionando entre múltiples ASes
Ahora suponga que AS1 aprende del protocolo
inter-AS que la subnet xes alcanzable desde AS3 y desde
AS2.
Para configurar la forwarding table, router 1d
deberá determinar hacia cual gateway deberá entregar los paquetes para el destinox.
Esto es tambien trabajo del protocolo de
enrutamiento inter-AS l!
3b
1d 3a
1c 2a
AS3
AS1
AS2
1a
2c 2b 1b
Network Layer 4-100 Learn from inter-AS
protocol that subnet x is reachable via multiple gateways
Use routing info from intra-AS protocol to determine
costs of least-cost paths to each of the gateways
Hot potato routing: Choose the gateway
that has the smallest least cost
Determine from forwarding table the interface I that leads to least-cost gateway. Enter (x,I) in forwarding table
Ejemplo: Escogiendo entre multiples ASes
Ahora suponga que AS1 aprende del protocolo inter-AS que la
subnet xes alcanzable desde AS3 y desdeAS2.
Para configurar la forwarding table, router 1d deberá determinar hacia cual gateway el deberá entregar los paquetes para el destinox.
Este es tambien trabajo del protocolo de enrutamiento
inter-AS!
hot potato routing:envia el paquete hacia el más cerca de dos
routers.
Network Layer 4-101
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Enrutamiento Intra-AS
También conocido como Interior Gateway Protocols (IGP)
Más comunmente Intra-AS routing protocols:
RIP: Routing Information Protocol OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol (Cisco
Network Layer 4-103
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-104
RIP ( Routing Information Protocol)
Algoritmo de distancia vectorial
Incluido en BSD-UNIX distribuido en 1982 Metrica de distancia: # de hops (max = 15 hops)
D
C
B A
u v
w
x
y z
destination hops
u 1
v 2
w 2
x 3
y 3
z 2
From router A to subnets:
RIP advertisements
Vector distancia:
intercambio entre vecinos
cada 30 seg via Response Message
(también llamado
advertisement
)
cada advertisement: lista hasta 25 subnet
Network Layer 4-106
RIP: Ejemplo
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
w x y
z
A
C
D B
Routing/Forwarding table in D
Network Layer 4-107
RIP: Ejemplo
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
Routing/Forwarding table in D
w x y
z
A
C
D B
Dest Next hops
w - 1
x - 1
z C 4
…. … ...
Advertisement from A to D
RIP: Falla de enlace y recuperación
Si no se escucha de advertisement despúes de 180 seg --> el enlace/vecino es declarado muerto
Rutas a través de ese vecino son inválidas Nuevos advertisements son enviados a los vecinos Los vecinos en turno envían nuevos advertisements
(si las tablas cambian)
Información de la falla de enlace rapidamente se
propaga a toda la red
poison reverse usado para prevenir los lazos
Network Layer 4-109
RIP Procesamiento de Tabla
Tablas de enrutamiento RIP administradas por un
proceso de nivel de aplicación llamado route-d (daemon)
advertisements enviado en paquetes UDP,
repetidos periódicamente
physical link
network forwarding (IP) table Transprt
(UDP) routed
physical link network (IP) Transprt (UDP) routed
forwarding table
Network Layer 4-110
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
OSPF (Open Shortest Path First)
“abierto”: disponible publicamente Usa el algoritmo de estado de enlace
Diseminación de paquete LS Mapa topológico en cada nodo
Computo de rutas utilizando el algoritmo de Dijkstra’s
OSPF advertisement lleva una entrada por cada
router vecino
Diseminación de advertisements a todo el AS (via
flooding)
Llevado en el mensaje OSPF directamente sobre IP (en vez
Network Layer 4-112
Características avanzadas de OSPF (no
en RIP)
seguridad:todos los mensaje OSPF son autenticados
(para prevenir una intrusión maliciosa)
multiplescaminos del mismo costo son permitidos
(solo un camino en RIP)
Por cada enlace, multiples costos de metricas para
diferentesTOS (e.g., costo enlace satelital se establece “bajo” para un mejor esfuerzo; alto para real time)
Soport a uni integrado y multicast:
Multicast OSPF (MOSPF) usa la misma base de
datos topológica que OSPF
JerarquicoOSPF en dominios largos.
Network Layer 4-113
OSPF Jerárquico
OSPF Jerárquico
Dos niveles de jerarquía:area local, backbone.
advertisements de estado de enlace solamente en
el area
Cada nodo tiene una topología de area detallada;
solamente se conoce las indicaciones(camino más corto) a las redes de otras áreas.
area border routers:“sumariza” las distancias a las
redes dentro de su propia area, anuncia a otros Area Border routers.
backbone routers:corre enrutamiento OSPF limitado
al backbone.
Network Layer 4-115
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en Internet
RIP OSPF BGP
4.7 Enrutamiento de
Broadcast y multicast
Network Layer 4-116
Enrutamiento Internet inter-AS :
BGP
BGP (Border Gateway Protocol):
estandard
de facto
BGP provee a cada AS un significado para :
1. Obtener información de alcance a subnet desde
los vecindarios ASs.
2. Propaga información de alcance a todos los
routers AS-internal .
3. Determina “ buenas” rutas a las subnets
basadas en la información de alcance y políticas.
Permite a la subnet anunciar su existencia
al resto de Internet:
“I am here”
Aspectos básicos BGP
Parejas de routers (BGP peers) intercambianinformación de enrutamiento sobre conexiones TCP semi-permanentes: BGP sessions
BGP sessions no necesitan correspondencia a los
enlaces físicos.
Cuando AS2 anuncia un prefijo a AS1:
AS2 promete que el entregará datagramas hacia
ese prefijo.
AS2 puede agregar prefijos en sus
advertisement
3b 3a
1c 2a
AS3
AS2
1a
Network Layer 4-118
Distribuyendo Información de
alcance
Usando sesiones eBGP entre 3a y 1c, AS3 envía informacion de alcance de prefijos a AS1.
1c puede luego usar iBGP para distribuir nueva
información de prefijos a todos los routers en AS1
1b puede luego re-anunciar nueva información de alcance
a AS2 sobre la sesión eBGP 1b-to-2a
Cuando el router aprende el nuevo prefijo, el crea una
entrada para el prefijo en su forwarding table.
3b
1d 3a
1c 2a
AS3
AS1
AS2
1a
2c 2b
1b 3c eBGP sessioniBGP session
Network Layer 4-119
Atributos de los caminos & rutas
BGP
El prefijo anunciado incluye los atributos BGP
prefijo + atributos = “ruta”
Dos atributos importantes:
AS-PATH:contiene ASs através el prefijo
anunciado ha pasado: ejemplo, AS 67, AS 17
NEXT-HOP:indica un router especifico
internal-AS al siguiente hop internal-AS. (puede ser multiples enlaces desde el actual AS al next-hop-AS)
Cuando el gateway router recibe una ruta
anunciada, usa
politicas de importación
para
aceptar/declinar.
Selección de ruta BGP
El router puede aprender acerca de más
de una ruta a algún prefijo. El router
deberá seleccionar la ruta.
Reglas de eliminación:
1. Valor de atributo de preferencia local:
decisión en base a políticas
2. Más corto AS-PATH
3. Más cerca NEXT-HOP router: hot potato
routing
Network Layer 4-121
Mensajes BGP
Los mensajes BGP son intercambiados usando TCP. Mensajes BGP :
OPEN:abre la conexión TCP al peer y autentica el
transmisor
UPDATE:anuncia un nuevo camino (o retira los
viejos)
KEEPALIVEmantiene viva una conexión en ausencia
de UPDATES; tambien hace un confirmación ACKs de un requerimiento OPEN
NOTIFICATION:reporta errores en el mensaje
previo; también usado para cerrar la conexión
Network Layer 4-122
Política de enrutamiento BGP
A,B,C son provider networks
X,W,Y son clientes (del provider networks) X es dual-homed:conectado a dos redes
X no quiere rutear desde B via X a C
.. entonces X no anunciará a B una ruta hacia C A
B
C
W X
Y
legend:
customer network: provider network
Política de enrutamiento BGP (2)
A anucia un caminio AW a B B anuncia un camino BAW a X Deberá B anunciar el camino BAW a C?
De ninguna manera! B no obtiene “ingresos” por enrutamineto CBAW dado que ni W ni C son clientes de B
B quiere forzar a C para rutear a W via A A
B
C
W X
Y
legend:
Network Layer 4-124
Por que es diferente el enrutamiento Intra- e
Inter-AS ?
Politicas:
Inter-AS: administrador quiere control sobre como su
tráfico es ruteado, quien rutea a través de su red.
Intra-AS: dominio unico, por lo tanto no se necesita
políticas para las decisiones
Escalamiento:
Enrutamiento Jerárquico ahorra en los tamaños de las
tablas, reduce el tráfico de update
Rendimiento:
Intra-AS: puede enfocarse en rendimiento Inter-AS: las políticas pueden dominar sobre el
rendimiento
Network Layer 4-125
Capítulo 4: Capa de red
4. 1 Introducción 4.2 Circuito virtual y
datagramas redes
4.3 Que hay dentro de
un router
4.4 IP: Protocolo de
Internet
Formato de Datagrama Direccionamiento IPv4 ICMP
IPv6
4.5 Algoritmo de
enrutamiento
Estado de enlace Distancia Vectorial Enrutamiento
Jerárquico
4.6 Enrutamiento en
Internet
RIP OSPF BGP
4.7 Enrutamiento de Broadcast y multicast
R1
R2
R3 R4 Duplicación de origen
R1
R2
R3 R4 Duplicacion in-network
duplicate creation/transmission
duplicate
duplicate
Enrutamiento Broadcast
Entrega de paquetes desde el origen hacia todos los otros nodos
Duplicación de origen es ineficiente:
Duplicación de origen: como la fuente
Network Layer 4-127
Duplicación In-network
Inundación (flooding): cuando el nodo recibe un paquete
broadcast, envía una copia a todos los vecinos Problemas: tormenta de ciclos&broadcast
flooding controlado: el nodo solo broadcastea el paquete si el
mismo no lo ha broadcasteado antes
Nodo mantiene un seguimiento de cada paquete que ya ha sido
broadcasteado
O el mecanismoreverse path forwarding (RPF):solamente
broadcatea el paquete si el ha llegado en el camino más corto entre el nodo y el origen
Con el flooding controlado (número de secuencia) y RPF se evita
las tormentas de broadcast pero no se evita completamente la transmision de paquetes broadcast redundantes
spanning tree
Paquetes redundantes no son recibidos por cada nodo
Network Layer 4-128
A B
G D E c
F
A B
G D E c
F
(a) Broadcast iniciado en A (b) Broadcast iniciado en D
Spanning Tree
Primero construye un spanning tree
Nodos entregan copias solamente en el
spanning tree
A B
G D E c
F
1 2 3
4
5
(a) Stepwise construction
A B
G D E c
F
(b) Constructed spanning
Creación: Spanning Tree
Nodo centralCada nodo envía un unicast mensaje tree-join al
nodo central
El mensaje es enviado hasta que llega al nodo que ya
Enrutamiento Multicast: Problema
Statement
Objetivo:encontrar un arbol (o arboles) de enlaces
que conecten todos los ruteadores que tienen host atachados que pertenecen al grupo multicast
arbol:no todos los caminos entre los routers son usados source-based:diferentes arboles para cada transmisor a
recepctor
shared-tree:mismo arbol usado para todo el grupo de miembros
Shared tree Source-based trees
Enfoques para construir los arboles
multicast
Enfoques:
source-based tree:
un árbol por origen
Arbol de camino más corto reverse path forwarding
group-shared tree:
grupo usa un árbol
spanning mínimo (Steiner) Arboles basados-centro
…Nosotros primero revisamos los enfoques básicos, luego los protocolos específicos adoptaron estos enfoques
Arbol del camino más corto
Multicast forwarding tree: Arbol de los caminos
más cortos que rutea desde el origen a todos los receptores
Dijkstra’s algorithm
R1
R2
R3
R4
R5
R6 R7
2 1
6
3 4
5
i
Ruteador con un grupo de Miembros atachado
Ruteador sin grupo de miembros atachado
Enlace usado para forwarding, i indiqa el orden del enlace añadido por el algoritmo
Reverse Path Forwarding
si(el datagrama multicast recibido a través de un enlace de entrada de camino más corto al centro)
luegoel datagrama fluye en todos los enlaces de
salida
si noignore el datagrama
Reside en el conocimiento de los ruteadores
sobre el camino más corto unicast desde él
hasta el transmisor.
Cada ruteador tiene un comportamiento
simple de forwarding:
Ejemplo: Reverse Path Forwarding
• El resultado es un source-specific reverseSPT – Puede ser una mala decisión con los enlaces
asimétricos
R1
R2
R3
R4
R5
R6 R7
Ruteador con grupo De miembros atachado
Ruteador sin grupo de Miembros atachado Datagrama será entregado LEGEND
S: source
El datagrama no será entregado
Reverse Path Forwarding: pruning
El arbol forwarding contiene subtrees sin grupo de miembros multicastno necesito entregar datagramas abajo del subtree
“prune” mensajes enviados de subida (upstream) por el router que
reciben paquetes multicast y que no tiene host atachados que esten unidos al grupo multicast
Si un router recibe mensajes prune de cada uno de sus routeres de
bajada (downstream), luego el podrá entregar un mensaje prune de subida (upstream)
R1
R2
R3
R4
R5
R7
Ruteador con grupo de miembros atachado
Ruteador sin grupo de miembros atachado
prune mensaje
S: source
Enlaces con multicast forwarding
P
P
Shared-Tree: Steiner Tree
Steiner Tree:
costo minimo del arbol
conectando todos los routers con grupo de
miembros atachados
No usado en la práctica:
Complejidad computacionalNecesidad de información acerca de toda la red monolithic: re corre cada vez que un router
necesita unirse/salirse
Center-based trees
Unico arbol de entrega compartido por
todos
Un router identificado como el
“centro”
del
árbol
Para unirse:
edge router envía un mensaje unicast de unión
direccionado al router central
Mensaje- union “procesado” por los routers intermedios y
entregado hacia el centro
Mensaje-union va a ser entregado usando enrutamiento unicast hacia el centro hasta que el llegue al nodo que ya pertenece al spanning tree o llegue al centro
Camino tomado por el mensaje-unión define el branch del
spanning tree entre el edge nodo que inicio los mensajes y el centro
Ejemplo: Center-based trees
Suponga R6 ha sido elegido como centro:
R1
R2
R3
R4
R5
R6 R7
Ruteador con grupo de miembros atachado
Ruteador sin grupo de miembros atachado
Orden del camino en el cual lo mensajes de union se generan
2
1 3