Capa de Red

Anuncio
La capa de red
(Parte 1 de 3)
Redes de
Computadoras
Introducción a la capa de red
1
Funciones de capa de red
z
La principal función es el enrutamiento
–
–
z
Conecta en forma lógica
nodos remotos
–
z
llevar paquetes de la fuente al destino, pasando por nodos
intermedios (e.g. enrutadores).
Existen diferentes algoritmos de enrutamiento.
Estos no están conectados por
un mismo enlace físico o de
capa 2.
Debe haber algún sistema
de direccionamiento.
Funciones de capa de red
z
Se transportan paquetes
desde un origen hasta
un destino.
z
Los protocolos de capa
de red están en cada
host y enrutador
(extremos y nodos
intermedios)
2
Conmutación
z
Conmutación de circuitos
–
z
Conmutación de mensajes
–
–
z
hosts conectados via enlace de capa 1 o 2 sobre demanda
(e.g. red telefónica)
modo store and forward
no hay uso paralelo de enlaces
Conmutación de paquetes
–
–
paquetes cortos de longitud variable (e.g. IP, X.25)
paquetes muy cortos de tamaño fijo (e.g. ATM)
Conmutación
3
Conmutación de paquetes
Permite a mas usuarios usar la red
Ejemplo: enlace de 1 Mb
z
Cada usuario
–
–
z
Conmutación de circuitos:
–
z
100 Kb/s cuando esta “activo”
activo 10% del tiempo
10 usuarios
Conmutación de paquetes:
–
Con 35 usuarios, probabilidad > 10 activos menor a .004
Servicio datagrama
z
z
z
z
z
z
Paquetes independientes
Dirección destino en cada paquete
El enrutador envía cada paquete al siguiente enrutador basado
en la dirección
No hay estado por flujo (flujo = grupo de paquetes con mismas
direcciones fuente y destino)
Cada uno puede tomar rutas diferentes
Analogía: servicio postal, entrega de paquetes
4
Servicio de circuito virtual
z
z
z
z
z
z
z
Establecimiento de conexión (y de ruta)
Secuenciamiento de paquetes
Dirección fuente requerida solo para la conexión
Cada paquete sigue la misma ruta
El switch mantiene información de estado (tabla de VCs)
Facilita garantías de QoS (Frame Relay, ATM)
Analogía: llamada telefónica
Circuitos virtuales
z
La trayectoria fuente-a-destino se comporta en forma
similar a un circuito telefónico
–
–
z
z
cada paquete lleva identificador de VC (y no ID del
host destino)
cada enrutador/switch en la trayectoria mantiene un
“estado” para cada conexión que pasa
–
z
Alto desempeño
Acciones de la red a lo largo de trayectoria fuente-a-destino
Recordar: la conexión en capa de transporte solo involucra
los extremos
recursos de enlace y enrutador (ancho de banda,
buffers) pueden dedicarse al VC
–
–
para obtener desempeño tipo circuito
pero… ¿qué tal del retardo de establecimiento?
5
Conmutación
¿Red datagrama o VC?
Internet (datagrama)
z Intercambio de datos entre
computadoras
–
z
–
Sistemas extremos
“inteligentes” (computadoras)
–
–
z
servicio “elástico”, no requiere
tiempo estricto en entrega de
datos
ATM (VC)
z evolucion de la telefonía
z conversación humana:
pueden adaptar, realizar
control, recuperación de
errores
complejidad en los “extremos”,
simple en el centro de la red
Muchos tipos de enlaces
–
–
–
requerimientos de tiempo y
confiabilidad estrictos
se necesita servicio
garantizado
Sistemas extremos
“tontos”
z
–
–
teléfonos, “videófonos”
complejidad dentro de la red
diferentes características
difícil tener servicio uniforme
6
Protocolos de la pila TCP/IP
Address Resolution Protocol
7
Panorama general
Resolución de direcciones
Problema:
z
z
z
Las máquinas A y B quieren comunicarse.
Sus direcciones físicas son PA y PB.
Solo conocen la dirección IP de la otra (IA e
IB).
¿Cómo conocer la dirección física?
8
Resolución de direcciones
z
El problema es básicamente encontrar una
función f eficiente:
PA = f(IA)
z
Solución posible: mapeo directo
–
–
Tabla relacionando PX con IX
Problemas en construir y mantener la tabla.
Resolución de direcciones
z
Otra solución es emplear un protocolo para
ligar direcciones dinámicamente.
z
Este es el enfoque seguido por el Address
Resolution Protocol (ARP).
z
Ver RFC 826.
9
ARP
La idea es simple:
z
A envía un paquete a todas las estaciones pidiendo
al nodo con la dirección IB responder con su
dirección PB.
z
Todos reciben la petición pero solo B reconoce su
dirección y responde.
z
Cuando A recibe la respuesta utiliza después PB
para comunicar sus datos.
ARP
10
Cache ARP
z
Sería muy ineficiente hacer broadcast cada
vez que A quiera comunicarse con B.
z
La primera vez que A recibe PB la guarda en
un cache local.
z
Antes de enviar a un nodo busca en su
cache si ya tiene la dirección.
Otras mejoras a ARP
z
Si A busca la dirección de B, es muy
probable que B necesite luego comunicarse
con A.
z
Entonces, A puede incluir PA al hacer la
petición.
z
Cada nodo al inicializarse también difunde
su dirección.
11
Encapsulación de ARP
z
z
El mensaje ARP es encapsulado en un
marco de capa 2 para poder viajar.
El marco indica en uno de sus campos que
carga un mensaje ARP.
Mensajes ARP
z
z
Ejemplo de mensaje ARP con hardware Ethernet.
Longitud variable según el hardware utilizado.
12
Mensajes ARP
z
Hardware y protocolo
–
z
HLEN y PLEN (Hardware y Protocol Length)
–
z
Para saber el tipo de interface buscada.
Para determinar las longitudes de las direcciones.
Sender y Target HA (HA = Hardware
Address)
–
Las direcciones fuente y destino.
Resolución inversa
z
z
z
z
z
ARP permite conocer la dirección física de
otras máquinas.
Las máquinas determinan su dirección IP al
arranque pues la pueden encontrar en disco.
¿Qué pasa cuando la máquina no tiene
disco?
¿Cómo determina su propia dirección IP?
Recordar que la dirección física ya la conoce
pues está en la tarjeta de red.
13
Reverse ARP (RARP)
z
z
z
z
z
El problema de encontrar la dirección IP a
partir de la física se llama resolución inversa.
Para ello se utiliza el protocolo RARP.
El protocolo usado y el formato de mensajes
es similar a ARP.
Uno o mas servidores RARP tienen las
asociaciones de direcciones.
Ver RFC 903
RARP
14
Algunos detalles de ARP
z
¿Qué pasa si una solicitud ARP se hace para un
host que no existe?
–
z
En algunos sistemas un host envía solicitudes ARP
periódicamente para todas las direcciones en el
cache ARP.
–
z
Se hacen varias solicitudes ARP a intervalos crecientes
entre cada una. Eventualmente ARP se dá por vencido.
Esto refresca el contenido del cache, pero introduce tráfico
extra.
Gratuitous ARP Requests: Un host envía una
solicitud ARP para su propia dirección IP:
–
Útil para detectar si una dirección IP ya ha sido asignada.
Vulnerabilidades de ARP
1.
2.
3.
Puesto que ARP no autentifica peticiones o respuestas, éstas
pueden ser falseadas.
ARP es stateless: Las respuestas ARP pueden enviarse sin
haber una petición ARP correspondiente.
Según la especificación de ARP, un nodo que reciba un
paquete ARP (solicitud o respuesta) debe actualizar su cache
ARP local con la información en los campos fuente, si el nodo
receptor ya tiene una entrada para la dirección IP de la fuente
en su cache ARP.
Explotación típica de éstas vulnerabilidades:
Una solicitud o respuesta ARP falseada puede usarse para
actualizar el cache ARP de un sistema remoto (ARP
Poisoning)
z Esto puede usarse para redirigir tráfico IP a otros hosts
z
15
Internet Control Message Protocol
ICMP
z
IP se apoya en varios otros protocolos para
realizar varias funciones de enrutamiento y
control:
–
–
–
funciones de control (ICMP)
Señalización multicast (IGMP)
Establecer tablas de enrutamiento (RIP, OSPF,
BGP, PIM, …)
16
ICMP
z
En Internet los paquetes viajan de extremo a
extremo pasando por enrutadores.
z
Pero pueden surgir problemas en los enrutadores o
en otros nodos.
z
Para anunciar problemas y monitorear la red se usa
el Internet Control Message Protocol (ICMP).
z
ICMP es un protocolo auxiliar que le brinda a IP
reporte de errores y queries simples
z
Ver RFC 792, 1122.
ICMP
z
Los mensajes ICMP son transportados en
datagramas IP.
–
–
El campo TOS se establece en 0 (no hay
prioridad especial).
El campo protocolo se establece en 1 (código de
ICMP).
17
Mensajes ICMP
z
z
Cada mensaje tiene su propio formato.
Pero todos inician con tres campos comunes:
–
–
–
z
Type (8 bits) – indicando el tipo de mensaje.
Code (8 bits) – dando mas información sobre el mensaje.
Checksum (16 bits) – para verificar errores.
Se ponen datos adicionales, o 4 bytes en ceros.
–
Los mensajes ICMP tienen una longitud de 8 bytes
Mensajes ICMP
18
Mensajes ICMP
Códigos para mensaje con tipo 3 (destination unreachable)
Mensajes ICMP
z
El comando ping utiliza los mensajes de tipo
ECHO
z
El comando traceroute establece un TTL
chico para que enrutadores en el camino
respondan con un Time Exceeded
19
El Protocolo de Internet (IP)
La capa de red en Internet
20
IP – Internet Protocol
z
Protocolo de interconexión en capa de red
–
z
diferentes capas de enlace: Ethernet, PPP, ATM,
...
Servicio de datagramas
–
–
–
–
direccionamiento
envío de paquetes con tablas de enrutamiento
fragmentación/reensamble
no hay garantías de servicio: pérdidas, desorden,
mejor esfuerzo (best-effort)
Encabezado IP(v4)
21
Campos encabezado IP
z
Versión – número de versión del protocolo
–
z
IHL (Internet Header Length) – longitud del
encabezado en palabras de 32 bits.
–
–
z
El protocolo actual tiene un 4.
El valor mínimo es 5 (encabezado sin opciones).
El maximo es 15 (encabezado de 60 bytes).
TOS (Type of Service)
–
–
indica otorgamiento de servicios diferenciados.
Definición actual en RFC 1349.
Campos encabezado IP
z
Longitud Total – incluyendo encabezado.
–
z
Identificación.
–
z
El máximo es 65,535 bytes.
Usado para reensamblar fragmentos de un
mismo datagrama.
Flags – un par de banderas o indicadores:
–
–
DF (Don’t Fragment) – no fragmentar el paquete.
MF (More Fragments) – hay mas fragmentos;
todos menos el último lo traen.
22
Campos encabezado IP
z
Offset del Fragmento
–
z
Time to Live (TTL) – Tiempo de vida
–
–
z
Indicando la posición del fragmento dentro del
paquete.
Contador limitando el tránsito de los paquetes.
Se decrementa en cada salto, máximo posible
255.
Protocolo – para pasarlo a la capa 4
–
El RFC 1700 indica los números de protocolos.
Campos encabezado IP
z
Checksum del encabezado
–
z
Direcciones fuente y destino
–
z
Normalmente recalculado en cada salto.
Indicando ambos extremos de la comunicación.
Opciones – campo con longitud variable
–
–
–
Para funciones no previstas originalmente, etc.
El primer byte identifica el tipo de opción.
Se puede poner un relleno (padding) para hacer
un múltiplo de 4 bytes.
23
Campos encabezado IP
z
Opciones actualmente definidas:
–
–
–
–
Security – especifica que tan secreto es el
paquete.
Strict source routing – da la ruta completa a
seguir.
Loose source routing – hace que cada enrutador
agregue su dirección IP.
Record route – cada enrutador agrega su
dirección y un timestamp.
Fragmentación y Reensamble
z
Los enlaces de la red tienen
MTU (Maximum Transfer Unit)
– máximo marco posible en
capa de enlace.
–
z
diferentes tipos de enlace,
diferentes MTUs
datagramas IP grandes se
dividen (“fragmentan”) en la red
–
–
–
un datagrama se convierte en
varios datagramas
“reensamblados” solo en el
destino final
se usan bits del encabezado IP
para identicar y ordenar
fragmentos relacionados
24
Fragmentación y Reensamble
Direcciones IP
z
z
Longitud de 32 bits
Usualmente representación decimal
–
z
dotted-quad decimal: cuatro decimales separados
por puntos
Usan un sistema jerárquico
–
La dirección indica la red, la subred y la dirección
del nodo
25
Direcciones IP
z
Hay dos partes: prefijo (red) y host
–
z
La máscara de red identifica el prefijo mediante
un AND logico
Ejemplo con máscara 255.255.255.0
Clases de direcciones IP
z
Hay tres clases de direcciones
–
–
–
z
Otro par de clases poco utilizadas
–
–
z
Clase A: para redes grandes
Clase B: para redes medianas
Clase C: para redes pequeñas
Clase D: para redes multicast
Clase E: para uso experimental
Método “antiguo”
–
direccionamiento con clases (classful)
26
Clases de direcciones IP
Clases de direcciones IP
z
Al escribirse en notación decimal:
–
–
–
–
–
Clase A comienzan con un número entre 0 y 127
Clase B comienzan con un número entre 128 y 191
Clase C comienzan con un número entre 192 y 223
Clase D comienzan con un número entre 224 y 239
Clase C comienzan con un número entre 240 y 255
¿Qué clase es la red UABC?
27
Clases de direcciones IP
z
z
La red 127 está reservada para loopback.
El espacio de direcciones casi está
exhausto.
Formación de subredes
z
Es usual tener varias redes en una entidad
–
–
z
se particiona el espacio de direcciones reflejando
la estructura de la red con subredes.
Se aplica una “máscara” para determinar la parte
de red/subred.
Máscaras básicas (sin subredes):
–
–
–
255.0.0.0 para clase A.
255.255.0.0 para clase B.
255.255.255.0 para clase C.
28
Formación de subredes
z
Básicamente se toman bits de la parte local
(host) para indicar una porción de subred.
z
Los enrutadores utilizan las máscaras para
determinar la parte de red y enrutar mejor.
Cada entidad decide como usar máscaras
para formar sus subredes.
Ver RFC 950, 1219.
z
z
Direccionamiento sin clases: CIDR
z
Direccionamiento con clases:
–
–
z
uso ineficiente del espacio de direcciones, agotamiento del
espacio
e.g., red clase B tiene reservadas direcciones para 65K
hosts, aún si solo hay 2K hosts en esa red
CIDR: Classless InterDomain Routing
–
–
porción de red de la dirección de longitud arbitraria
formato: a.b.c.d/x, donde x es núm de bits en la porción de
red de una dirección
29
Dirs IP: ¿cómo obtener una?
z
z
¿Cómo obtiene una red la parte de red de una
dirección IP?
Obtiene una porción del espacio de direcciones de
su ISP.
Direccionamiento jerárquico:
agregación de rutas
z
El direccionamiento jerárquico permite el
aviso eficiente de información de
enrutamiento :
30
Enrutamiento IP
z
Un datagrama IP sigue una trayectoria
formada por una secuencia de saltos.
z
Cada enrutador en el camino determina el
siguiente salto
z
Los enrutadores pueden programarse para
informar sobre cambios en la red y re-enrutar
tráfico dinámicamente.
Enrutamiento IP
z
z
El enrutador consulta una tabla de
enrutamiento con información que le ayuda a
decidir el siguiente salto.
Entrada típica en una tabla:
31
Enrutamiento IP
Enrutamiento IP
Otros aspectos en las tablas:
z
Rutas default – si ningun prefijo sirve, utilizar
una ruta por omisión.
z
Rutas de host – especificar explícitamente la
ruta a tomar para llegar a un host.
32
Enrutamiento IP
Ejemplo utilizando el comando netstat
Algoritmo de enrutamiento IP
Enrutamiento_IP(datagrama, tabla)
Extraer dirección destino ID del datagrama;
Calcular dirección de red destino IN;
if IN es dirección con conexión directa then
enviar datagrama a través de esa dirección;
else if ID aparece como ruta de host
enrutar datagrama como especifica la tabla;
else if IN aparece en tabla de enrutamiento
enrutar datagrama como especifica la tabla;
else if existe ruta default
enrutar datagrama al gateway por default;
else anunciar error de enrutamiento;
33
Descargar