la capa de red - fcqi.tij.uabc.mxfcqi.tij.uabc.mx/usuarios/lpalafox/cursos/redes/red1.pdf · la...

33
1 La capa de red (Parte 1 de 3) Redes de Computadoras Introducción a la capa de red

Upload: others

Post on 22-Oct-2019

34 views

Category:

Documents


0 download

TRANSCRIPT

1

La capa de red(Parte 1 de 3)

Redes deComputadoras

Introducción a la capa de red

2

Funciones de capa de redLa principal función es el enrutamiento

– llevar paquetes de la fuente al destino, pasando por nodosintermedios (e.g. enrutadores).

– Existen diferentes algoritmos de enrutamiento.

Conecta en forma lógica nodos remotos

– 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

Se transportan paquetesdesde un origen hastaun destino.

Los protocolos de capade red están en cadahost y enrutador(extremos y nodosintermedios)

3

ConmutaciónConmutación de circuitos

– hosts conectados via enlace de capa 1 o 2 sobre demanda(e.g. red telefónica)

Conmutación de mensajes– 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

4

Conmutación de paquetesPermite a mas usuarios usar la redEjemplo: enlace de 1 Mb

Cada usuario– 100 Kb/s cuando esta “activo”– activo 10% del tiempo

Conmutación de circuitos:– 10 usuarios

Conmutación de paquetes:– Con 35 usuarios, probabilidad > 10 activos menor a .004

Servicio datagramaPaquetes independientesDirección destino en cada paqueteEl enrutador envía cada paquete al siguiente enrutador basadoen la direcciónNo hay estado por flujo (flujo = grupo de paquetes con mismasdirecciones fuente y destino)Cada uno puede tomar rutas diferentesAnalogía: servicio postal, entrega de paquetes

5

Servicio de circuito virtualEstablecimiento de conexión (y de ruta)Secuenciamiento de paquetesDirección fuente requerida solo para la conexiónCada paquete sigue la misma rutaEl switch mantiene información de estado (tabla de VCs)Facilita garantías de QoS (Frame Relay, ATM)Analogía: llamada telefónica

Circuitos virtualesLa trayectoria fuente-a-destino se comporta en forma similar a un circuito telefónico

– Alto desempeño– Acciones de la red a lo largo de trayectoria fuente-a-destino

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

– Recordar: la conexión en capa de transporte solo involucralos 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?

6

Conmutación

¿Red datagrama o VC?Internet (datagrama)

Intercambio de datos entrecomputadoras

– servicio “elástico”, no requieretiempo estricto en entrega de datos

Sistemas extremos“inteligentes” (computadoras)

– pueden adaptar, realizarcontrol, recuperación de errores

– complejidad en los “extremos”, simple en el centro de la red

Muchos tipos de enlaces– diferentes características– difícil tener servicio uniforme

ATM (VC)evolucion de la telefoníaconversación humana:

– requerimientos de tiempo y confiabilidad estrictos

– se necesita serviciogarantizado

Sistemas extremos“tontos”

– teléfonos, “videófonos”– complejidad dentro de la red

7

Protocolos de la pila TCP/IP

Address Resolution Protocol

8

Panorama general

Resolución de direcciones

Problema:

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?

9

Resolución de direcciones

El problema es básicamente encontrar unafunción f eficiente:

PA = f(IA)

Solución posible: mapeo directo– Tabla relacionando PX con IX– Problemas en construir y mantener la tabla.

Resolución de direcciones

Otra solución es emplear un protocolo paraligar direcciones dinámicamente.

Este es el enfoque seguido por el Address Resolution Protocol (ARP).

Ver RFC 826.

10

ARPLa idea es simple:

A envía un paquete a todas las estaciones pidiendoal nodo con la dirección IB responder con sudirección PB.

Todos reciben la petición pero solo B reconoce sudirección y responde.

Cuando A recibe la respuesta utiliza después PBpara comunicar sus datos.

ARP

11

Cache ARP

Sería muy ineficiente hacer broadcast cadavez que A quiera comunicarse con B.

La primera vez que A recibe PB la guarda en un cache local.

Antes de enviar a un nodo busca en sucache si ya tiene la dirección.

Otras mejoras a ARP

Si A busca la dirección de B, es muyprobable que B necesite luego comunicarsecon A.

Entonces, A puede incluir PA al hacer la petición.

Cada nodo al inicializarse también difundesu dirección.

12

Encapsulación de ARPEl mensaje ARP es encapsulado en un marco de capa 2 para poder viajar.El marco indica en uno de sus campos quecarga un mensaje ARP.

Mensajes ARPEjemplo de mensaje ARP con hardware Ethernet.Longitud variable según el hardware utilizado.

13

Mensajes ARPHardware y protocolo– Para saber el tipo de interface buscada.

HLEN y PLEN (Hardware y Protocol Length)– Para determinar las longitudes de las direcciones.

Sender y Target HA (HA = Hardware Address)– Las direcciones fuente y destino.

Resolución inversa

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 tienedisco?¿Cómo determina su propia dirección IP?Recordar que la dirección física ya la conocepues está en la tarjeta de red.

14

Reverse ARP (RARP)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 mensajeses similar a ARP.Uno o mas servidores RARP tienen lasasociaciones de direcciones.Ver RFC 903

RARP

15

Algunos detalles de ARP¿Qué pasa si una solicitud ARP se hace para un host que no existe?

– Se hacen varias solicitudes ARP a intervalos crecientesentre cada una. Eventualmente ARP se dá por vencido.

En algunos sistemas un host envía solicitudes ARP periódicamente para todas las direcciones en el cache ARP.

– Esto refresca el contenido del cache, pero introduce tráficoextra.

Gratuitous ARP Requests: Un host envía unasolicitud ARP para su propia dirección IP:

– Útil para detectar si una dirección IP ya ha sido asignada.

Vulnerabilidades de ARP1. Puesto que ARP no autentifica peticiones o respuestas, éstas

pueden ser falseadas.2. ARP es stateless: Las respuestas ARP pueden enviarse sin

haber una petición ARP correspondiente.3. 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 nodoreceptor ya tiene una entrada para la dirección IP de la fuenteen su cache ARP.

Explotación típica de éstas vulnerabilidades:Una solicitud o respuesta ARP falseada puede usarse paraactualizar el cache ARP de un sistema remoto (ARP Poisoning)Esto puede usarse para redirigir tráfico IP a otros hosts

16

Internet Control Message Protocol

ICMPIP se apoya en varios otros protocolos pararealizar varias funciones de enrutamiento y control:– funciones de control (ICMP)– Señalización multicast (IGMP)– Establecer tablas de enrutamiento (RIP, OSPF,

BGP, PIM, …)

17

ICMPEn Internet los paquetes viajan de extremo a extremo pasando por enrutadores.

Pero pueden surgir problemas en los enrutadores o en otros nodos.

Para anunciar problemas y monitorear la red se usael Internet Control Message Protocol (ICMP).

ICMP es un protocolo auxiliar que le brinda a IP reporte de errores y queries simples

Ver RFC 792, 1122.

ICMPLos 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).

18

Mensajes ICMPCada mensaje tiene su propio formato.Pero todos inician con tres campos comunes:

– 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

19

Mensajes ICMPCódigos para mensaje con tipo 3 (destination unreachable)

Mensajes ICMPEl comando ping utiliza los mensajes de tipoECHO

El comando traceroute establece un TTL chico para que enrutadores en el caminorespondan con un Time Exceeded

20

El Protocolo de Internet (IP)

La capa de red en Internet

21

IP – Internet ProtocolProtocolo de interconexión en capa de red– 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)

22

Campos encabezado IPVersión – número de versión del protocolo

– El protocolo actual tiene un 4.

IHL (Internet Header Length) – longitud del encabezado en palabras de 32 bits.

– 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 IPLongitud Total – incluyendo encabezado.– El máximo es 65,535 bytes.

Identificación.– 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.

23

Campos encabezado IPOffset del Fragmento– Indicando la posición del fragmento dentro del

paquete.

Time to Live (TTL) – Tiempo de vida– 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 IPChecksum del encabezado– Normalmente recalculado en cada salto.

Direcciones fuente y destino– 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.

24

Campos encabezado IPOpciones 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 ReensambleLos enlaces de la red tienenMTU (Maximum Transfer Unit) – máximo marco posible en capa de enlace.

– 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 ordenarfragmentos relacionados

25

Fragmentación y Reensamble

Direcciones IP

Longitud de 32 bitsUsualmente representación decimal– dotted-quad decimal: cuatro decimales separados

por puntosUsan un sistema jerárquico– La dirección indica la red, la subred y la dirección

del nodo

26

Direcciones IPHay dos partes: prefijo (red) y host– La máscara de red identifica el prefijo mediante

un AND logicoEjemplo con máscara 255.255.255.0

Clases de direcciones IPHay tres clases de direcciones

– Clase A: para redes grandes– Clase B: para redes medianas– Clase C: para redes pequeñas

Otro par de clases poco utilizadas– Clase D: para redes multicast– Clase E: para uso experimental

Método “antiguo”– direccionamiento con clases (classful)

27

Clases de direcciones IP

Clases de direcciones IP

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?

28

Clases de direcciones IP

La red 127 está reservada para loopback.El espacio de direcciones casi estáexhausto.

Formación de subredesEs usual tener varias redes en una entidad– 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.

29

Formación de subredesBásicamente se toman bits de la parte local (host) para indicar una porción de subred.

Los enrutadores utilizan las máscaras paradeterminar la parte de red y enrutar mejor.Cada entidad decide como usar máscaraspara formar sus subredes.Ver RFC 950, 1219.

Direccionamiento sin clases: CIDRDireccionamiento con clases:

– 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

30

Dirs IP: ¿cómo obtener una?¿Cómo obtiene una red la parte de red de unadirección IP?Obtiene una porción del espacio de direcciones de su ISP.

Direccionamiento jerárquico: agregación de rutas

El direccionamiento jerárquico permite el aviso eficiente de información de enrutamiento :

31

Enrutamiento IPUn datagrama IP sigue una trayectoriaformada por una secuencia de saltos.

Cada enrutador en el camino determina el siguiente salto

Los enrutadores pueden programarse parainformar sobre cambios en la red y re-enrutar tráfico dinámicamente.

Enrutamiento IP

El enrutador consulta una tabla de enrutamiento con información que le ayuda a decidir el siguiente salto.Entrada típica en una tabla:

32

Enrutamiento IP

Enrutamiento IP

Otros aspectos en las tablas:

Rutas default – si ningun prefijo sirve, utilizaruna ruta por omisión.

Rutas de host – especificar explícitamente la ruta a tomar para llegar a un host.

33

Enrutamiento IP

Ejemplo utilizando el comando netstat

Algoritmo de enrutamiento IPEnrutamiento_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;