Tema 2: Internetworking Protocol () 1 Tema 2: Internetworking Protocol () 2 Internetworking Protocol () Tema 2: Internetworking Protocol () Problema a resolver: Cómo conseguir que las aplicaciones sean independientes de la tecnología de red? Qué pasa si interconectamos varias redes? Cómo conseguir que cualquier par de Computadores (Hosts) puedan comunicarse? (servicio universal) Funciones de Formato de la cabecera v4 Direcciones. Máscaras y subredes ARP Funcionalidad de un router Fragmentación y reensamblado Encaminamiento (R, OSPF, BGP4,CIDR) ICMP v6 DNS Conexión a Internet Tema 2: Internetworking Protocol () 3 Tema 2: Internetworking Protocol () 4 Formato de la cabecera Dirección de red ver hlen tos total length id flags fragment offset TTL protocol header checksum source address destination address options (if any) DATA... Router ver: versión de (4) hlen: longitud de cabecera (nx4 Bytes) tos: Tipo de servicio (000dρrc0) total length: longitud del datagrama (n B) id: Identificador del datagrama TTL : Time to Live (tiempo de vida) protocol: ICMP, TCP, UDP, IGMP,...
Tema 2: Internetworking Protocol () 5 Tema 2: Internetworking Protocol () 6 Ejemplo: tcpdump -x -s 512 45 10 05 dc 64 78 00 00 40 06 a3 4c 93 53 23 50 93 53 23 51 02 01 03 f0 28 c2 c7 e2 33 d4 71 80 50 18 3f e0 d8 50 00 00 32 20 etc... cabecera : Checksums Método software (, TCP, UDP,..) Checksum = - Σ Datos i 16 bits Paquete 0100 0101 0001 0000 0000 0101 1101 1100 0110 0100 0111 1000 0000 0000 0000 0000 0100 0000 0000 0110 1010 0011 0100 1100 1001 0011 0101 0011 0010 0011 0101 0000 1001 0011 0101 0011 0010 0011 0101 0001 Cout Acum. 16 bits Cin ver=4; hlen=5; TOS=min delay; totlen=05dc id= 0x6478; flags=000; offset=0 TTL= 64; protocol=6; h checksum= a3 4c source address= 93 53 23 50 (147.83.35.80) dest. address= 93 53 23 51 (147.83.35.81) Invertir bit a bit Checksum Tema 2: Internetworking Protocol () 7 Tema 2: Internetworking Protocol () 8 Direcciones Checksum de la cabecera: 45 10 05 dc Si añadimos el 64 78 checksum, la 00 00 nueva suma 40 06 valdrá 0 00 00 93 53 23 50 93 53 23 51 2 5c b1 5c b3 => h checksum = a3 4c Las direcciones son de 32 bits. Se dividen en clases CLASE A (0.0.0.0 a 127.255.255.255) 0 netid (7) hostid (24) CLASE B (128.0.0.0 a 191.255.255.255) 1 0 1 1 0 netid (14) hostid (16) CLASE C (192.0.0.0 a 223.255.255.255) netid (21) hostid (8) Direcciones de origen y destino de clase B CLASE D (224.0.0.0 a 239.255.255.255) multicast group id (28) 1 1 1 0
Tema 2: Internetworking Protocol () 9 Tema 2: Internetworking Protocol () 10 Ejemplo: red 11.0.0.0 (A) red 193.2.5.0 (C) El encaminamiento hasta la red 180.1.0.0 se basa en el netid... 180.1.0.1 red 180.1.0.0 (B) 180.1.0.1 Algunas direcciones tienen significados especiales. 0.0.0.0 = Este host (No dirección destino. Solo al arrancar el sistema) netid=0, hostid: El hostid en esta red 255.255.255.255 : Broadcast local (no dir. fuente) netid, hostid=-1 : Broadcast en la red indicada netid: 127: Loopback Dentro de la red 180.1.0.0 el encaminamiento se basa en el hostid... Tema 2: Internetworking Protocol () 11 Tema 2: Internetworking Protocol () 12 Las direcciones en una internet deben ser únicas. En Internet, el IANA, dependiente del ICANN, se encarga de asegurar que las direcciones no se repiten. (Más en concreto, que los netid no se repiten). IANA delega esta responsabilidad en organismos como RE (Reseaux Europeenes), que a su vez los delega en Internet Registers (IRs). Una situación frecuente es que un IR asigne un bloque de direcciones a un ISP (Proveedor de Servicios de Internet), que a su vez las asigna e forma temporal o permanente a sus usuarios. Algunos rangos de direcciones se reservan para su uso en redes no conectadas a Internet (ver NATs, tema 4). Clase A: 10.0.0.0 Clase B : 172.16.0.0 a 172.31.0.0 Clase C: 192.168.0.0 a 192.168.255.0 Máscaras de Red Podemos definir subredes. Algunos bits del host id se emplean en indicar el numero de subred: La máscara indica los bits que son host id: Ejemplo: Dirección: 147.83.35.80 (Clase B) Máscara: 255.255.255.0 1111 1111. 1111 1111. 1111 1111. 0000.0000 => Los 8 ultimos bits indican el host id => En una direccion clase B los bits 8 a 15 son el numero de la subred. Notación: Dirección/logitud del prefijo ej: 147.83.35.80/24
Tema 2: Internetworking Protocol () 13 Tema 2: Internetworking Protocol () 14 Comando ifconfig en Linux Internet trinux> ifconfig lo Link encap:local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 eth0 Link encap:ethernet HWaddr 00:10:5A:F7:E3:22 inet addr:19.1.6.1 Bcast:19.1.6.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 Interrupt:5 Base address:0x6800 Red 147.83.0.0/16 Subred 147.83.35.0/24 host 147.83.35.81/24 Subred 147.83.37.192/26 Subred 147.83.37.128/26 Subred 147.83.36.0/24 host: 147.83.37.133/26 Tema 2: Internetworking Protocol () 15 Tema 2: Internetworking Protocol () 16 Tablas de encaminamiento (routing) Cada host debe tener una tabla de encaminamiento que permite decidir al módulo a qué interface debe entregar un datagrama para que sea transmitido y si se debe enviar a través de un router o bien de forma directa al host destinatario Tabla de routing en Linux (netstat -rn) jorge]# netstat -rn Kernel routing table Destination Gateway Genmask Flags MSS Iface 147.83.35.0 0.0.0.0 255.255.255.0 U 1500 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 3584 lo 0.0.0.0 147.83.35.2 0.0.0.0 UG 1500 eth0 eth0 ppp0 lo tabla de routing Tabla de routing en W95 (>route print) Rutas activas: Direccion de red Mascara de red Puerta de enlace Interfaz Métrica 0.0.0.0 0.0.0.0 147.83.34.2 147.83.34.99 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 147.83.34.0 255.255.255.0 147.83.34.99 147.83.34.99 1 147.83.34.99 255.255.255.255 127.0.0.1 127.0.0.1 1 147.83.255.255 255.255.255.255 147.83.34.99 147.83.34.99 1 224.0.0.0 224.0.0.0 147.83.34.99 147.83.34.99 1 255.255.255.255 255.255.255.255 147.83.34.99 0.0.0.0 1
Tema 2: Internetworking Protocol () 17 Tema 2: Internetworking Protocol () 18 Longest Prefix Match Tabla de routing en IOS(#show ip route) routera#sh ip route Codes: C - connected, S - static, I - IGRP, R - R, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default U - per-user static route, o - ODR T - traffic engineered route Gateway of last resort is not set 168.71.0.0/24 is subnetted, 3 subnets C 168.71.9.0 is directly connected, Serial1 R 168.71.7.0 [120/1] via 168.71.9.2, 00:00:23, Serial1 [120/1] via 168.71.6.2, 00:00:18, Serial0 C 168.71.6.0 is directly connected, Serial0 Rutas activas: Cuando miramos la tabla de routing podemos encontrar que una dirección se ajusta a varias entradas de la tabla. Debemos escoger la entrada en la que coincide el prefijo más largo ( Longest prefix match ) Ejemplo: Direccion de red Mascara de red Puerta de enlace Interfaz Métrica 0.0.0.0 0.0.0.0 147.83.34.2 147.83.34.99 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 147.83.34.0 255.255.255.0 147.83.34.99 147.83.34.99 1 147.83.34.99 255.255.255.255 127.0.0.1 127.0.0.1 1 147.83.255.255 255.255.255.255 147.83.34.99 147.83.34.99 1 224.0.0.0 224.0.0.0 147.83.34.99 147.83.34.99 1 255.255.255.255 255.255.255.255 147.83.34.99 0.0.0.0 1 Tema 2: Internetworking Protocol () 19 Tema 2: Internetworking Protocol () 20 ARP: Resolución de direcciones Conocemos la dirección de un host. Queremos averiguar su dirección de red. Para cada tipo de red la solución es distinta. Caso de red Ethernet: @ A @ B Ejemplo: resolver: (gethostbyname()) DNS o /etc/host resolver ARP FTP TCP driver @eth A @eth B El host A envía un broadcast preguntando: Cuál es la direcc. Eth. del host @ B? driver driver El host B recibe este mensaje y contesta al host A: El host con @ B tiene dirección ethernet @eth B. ARP ARP Todos los hosts de la red actualizan su tabla de ARP
Tema 2: Internetworking Protocol () 21 Tema 2: Internetworking Protocol () 22 Cada host mantiene una cache con mapeos direcciones ethernet/direcciones. Normalmente las entradas se eliminan cuando pasan unos minutos después de haber sido obtenidas [root@galatzo jorge]# arp -n Address HWtype HWaddress Flags Mask Iface 147.83.35.2 ether 00:10:F6:B5:E4:00 C eth0 [root@galatzo jorge]# telnet beco.ac.upc.es Trying 147.83.35.81... Connected to beco.ac.upc.es. Escape character is ^]. FreeBSD/i386 (beco.ac.upc.es) (ttyp1) login: telnet> close Connection closed. [root@galatzo jorge]# arp -n Address HWtype HWaddress Flags Mask Iface 147.83.35.81 ether 00:A0:24:4D:A7:6A C eth0 147.83.35.2 ether 00:10:F6:B5:E4:00 C eth0 [root@galatzo jorge]# Para cada tipo de red se define un formato de paquete ARP. Ejemplo: Ethernet: Dirección ethernet destino Dirección ethernet origen Tipo de trama Tipo de dirección hardware (ethernet) Tipo de dirección de red () Tamaño de las direcciones hwd y de red Tipo de comando (ARP/RARP req, reply) Dirección ethernet del que envía del que envía Dirección Ethernet pedida pedida Tema 2: Internetworking Protocol () 23 Tema 2: Internetworking Protocol () 24 Qué pasa cuando una red no permite realizar de forma sencilla un broadcast? Ej: Lan ATM RFC 1577: Classical over ATM conmutador ATM Funcionalidad de un router Si el host A quiere enviar un datagrama al host B, lo envía de forma directa (Debe primero averiguar su dir. de red) @ A @ C Logical Subnet (LIS): nodos que se conectan a una única red ATM y que pertenecen a la misma subred @ B En cada LIS hay un servidor ATMARP. Los nodos del LIS se configuran con la direccion física (ATM) del servidor ATMARP. Si el host A quiere enviar un datagrama al host C, lo envía al router, quien se encarga de encaminarlo a su destino Cuando un nodo se conecta a una LIS comunica al servidor ATMARP su dirección y su dirección ATM. @ A @ C Cuando un nodo debe resolver una dirección pregunta al servidor ATMARP que contesta con el mapeo. El nodo establece entonces un VC al destino. @ B
Tema 2: Internetworking Protocol () 25 Tema 2: Internetworking Protocol () 26 @ A @ C El host A consulta su tabla de routing y deduce que debe enviar el paquete al Router 1 Dirección Ethernet Origen: Router 1, b Destino: Router 2, a Destino: C @ B @ A Router 1 @ C Dirección Ethernet Destino: B Destino: B El Host A consulta su tabla de routing y de ahí deduce que debe transmitir el paquete de forma directa a su destino, sin necesidad de atravesar ningún router @ B Dirección Ethernet Destino: Router 1, a Destino: C NOTA: Los routers tienen una dirección de por cada interfaz Router 2 Dirección Ethernet Origen: Router 2,b Destino: C Destino: C Tema 2: Internetworking Protocol () 27 Tema 2: Internetworking Protocol () 28 Para poder encaminar los datagramas a través de varias redes, los routers deben construir tablas de encaminamiento (Algoritmos de encaminamiento) Diferencias entre un host multihomed y un router Driver1 TCP/UDP Driver2 Si un host recibe un datagrama que no está dirigido a él, lo ignora es un protocolo NO orientado a la conexión. Esto quiere decir que cada paquete se encamina de forma independiente a través de la red. Si un router recibe un datagrama que no está dirigido a él, intenta encaminarlo a su destino ( forwarding)
Tema 2: Internetworking Protocol () 29 Tema 2: Internetworking Protocol () 30 TCP/ en un host UNIX Aplicaciones Para conseguir mayor capacidad de encaminamiento (paquetes/s), los routers de alto rendimiento tienen arquitecturas especializadas. so_input so_output CPU Mem NIC Bus CPU Mem NIC tcp_input tcp_output ip_fwdn Bus ip_input ip_output CPU Mem NIC Dr Dr Dr Dr Red de Interconexión Tema 2: Internetworking Protocol () 31 Tema 2: Internetworking Protocol () 32 Simplificando... tabla de routing Fragmentación y reensamblado A R1 R2 B Buffer (Memoria) Servidor (Recepción, Consulta a tabla de routing, Transmisión) mtu = 1500 mtu = 530 mtu = 1500 Path mtu = 530 Si el host A envía a B un datagrama con un tamaño de 1500 bytes, el R1 debe fragmentar el datagrama Cuando el tráfico de entrada es muy elevado (congestión) se acumulan paquetes en el buffer. Si el número de paquetes almacenados crece demasiado, se producen pérdidas. En el próximo tema (TCP) volveremos sobre este punto... El datagrama NO se reensambla en R2, sino que se reensambla en B. R2 debe encaminar cada uno de los fragmentos como si fueran datagramas independientes.
Tema 2: Internetworking Protocol () 33 Tema 2: Internetworking Protocol () 34 1500 = 1480 + 20 origen: A destino: B Flag M = 0 Aplicaciones 524 = 504 + 20 origen/destino : A/B Flag M = 1; Id; Offset = 0 524 = 504 + 20 origen/destino : A/B Flag M = 1; Id; Offset = 504 FRAGMENTACIÓN Los campos de datos de todos los fragmentos excepto el último deben ser de longitud multiplo de 8 octetos so_input tcp_input ip_input ip_fwdn so_output tcp_output ip_output 492 = 472 + 20 ( 504+504+472=1480) origen/destino : A/B Flag M = 0; Id; Offset = 1008 Buffer frag. Dr Rx Dr Dr Dr Tema 2: Internetworking Protocol () 35 Tema 2: Internetworking Protocol () 36 Resumen de las características de Objetivo: Aislar a las aplicaciones de las diferentes tecnologías de red Direcciones de 32 bits Encaminamiento entre redes a través de routers Protocolo NO orientado a la conexión Fragmentación y reensamblado no intenta recuperar los datagramas que se pierden. No asegura que llegan en el orden correcto. Routers, conmutadores y bridges Un router encamina datagramas (nivel 3) Un conmutador (o un bridge) encamina tramas Ethernet (o de otra ), (nivel 2) Los routers no encaminan las tramas broadcast. Los routers no son dispositivos transparentes. Los routers soportan interfaces a diferentes tecnologías de red (ej: Eth/FR) Los conmutadores deben estar dispuestos en redes sin bucles (árbol) Los conmutadores permiten conmutar tramas a mayor velocidad Los conmutadores son más baratos que los routers. Los routers permiten tener un mejor control y filtrado del tráfico