Tema 2: IP z z z z z z z Tema 2: IP Funcionalidad de un router Fragmentación, reensamblado y MTU ICMP, MTU path discovery y troubleshooting z Ping z Traceroute Encaminamiento en IP z Path determination y concepto de convergencia z Encaminamiento estático y dinámico z Protocolos de Encaminamiento Interno (IGP’s) : RIP z Sistemas Autónomos (AS) y protocolos de Encaminimamiento Externo : BGP DNS Direcciones privadas y NAT (Network Address Translation) Firewalls y ACL’s (Listas de acceso) 1 z Funcionalidad de un router Los routers operan en la capa de red registrando y grabando las diferentes redes y eligiendo la mejor ruta entre las mismas. Cualquier host A (IPA) que quiera enviar un datagrama IP a otro host B (IPB) que esté en una subred distinta (NetIDA ≠ NetIDB) debe hacerlo a través de un router. Los routers tienen una dirección IP por cada interfaz. z z z Router Router Red A Red B 2 Tema 2: IP z Tema 2: IP Funcionalidad de un router Si un host recibe un datagrama que no está dirigido a él, el host descarta el datagrama Si un router recibe un datagrama que no está dirigido a él, intenta encaminarlo a un host o a otro router Æ FORWARDING z z Funcionalidad de un router El router deberá entre otras cosas realizar las siguientes funciones: “Forwarding”: envíar datagramas de una subred a otra. “Routing”: decidir a que subred debe enviar un datagrama que le llegue de otra subred (decidir interficies de salida del router). Separan las tramas de la capa 2 y envian paquetes basados en las direcciones de destino de capa 3. “Error messaging”: notificar al host origen con un mensaje ICMP de cualquier problema que le impida realizar un “forwarding” Otras funciones: z z z z z tcp_input() tcp_output() z ip_input() ip_forwarding() z ip_output() z z Buffer Driver 3 Buffer Driver z 4 “Fragmentation and reassembly”: (cada vez más en desuso) debido al uso del “MTU Path Discovery” “Quality of Service” (QoS): cada vez más en uso con la introducción de aplicaciones en tiempo real (Reserva de recursos) Otras: balanceos de cargas, servicios multiprotocolo, seguridad informática (IPSec), protección de entrada en Intranets (firewalls), conectar diferentes tecnologías de capa dos como Eth, TR.... Tema 2: IP Tema 2: IP Ejemplo: z z Router debe: ¾ Routing: decidir la interficie de salida del router para cada datagrama que le llega Routers Routers transmiten información de nivel 3 (datagramas) Un router no retransmite (forwarding) tramas broadcast (e.g. ARP). Selecciona la mejor ruta y conmuta paquetes de datos. Se utiliza para interconectar una o más LAN con objeto de crear una WAN. z z Modem z ¾ Forwarding: usar la tecnología de nivel 2 para transmitir datagramas por una interficie de salida Internet IPA A BC D E 5 Subredes: A, B, C, D, E IPE z ¾ Error messaging: notificar cualquier problema que impida el forwarding de datagramas usando mensajes ICMP Router 5 6 Tema 2: IP z Tema 2: IP Routers, Bridges/Switches y Hubs Hubs separados por switches forman un dominio de colisiones Switches y Hubs separados por un router forman un dominio broadcast Bridges/Switches deben estar distribuidos de forma que NO formen bucles cerrados (Spanning Tree Protocol, IEEE 802.1q se encarga de ello) Los conmutadores transmiten a mayor velocidad que los routers y además son más baratos z MTU (Maximum Transfer Unit) Número máximo de bytes de datos que pueden aparecer encapsulados en una trama de red Cada red (Ethernet, ATM, X.25 ...) tiene su propia MTU “Path MTU”: se define como el mínimo MTU de entre todas las redes que hay entre dos hosts conectados a Internet z z z z z z Network z 7 Router Cada router tiene una IP con NetID distinto por interficie de salida 8 MTU (Bytes) Punto a Punto 296 X.25 576 Ethernet 1500 IEEE 802.3/802.2 1492 FDDI 4352 IEEE 802.5 (4 Mbps TR) 4464 IBM (16 Mbps TR) 17914 Tema 2: IP z Tema 2: IP Fragmentación y reensamblado: Cada día menos usado con el uso de MTU Path Discovery z Fragmentación y reensamblado: z R1 IPA R2 Red1 Red2 MTU = 1500 bytes MTU = 576 bytes Red3 0 IPB 16 Identificación 19 Flags MTU = 1500 bytes • R1 fragmentará datagramas enviados por host A debido a que la MTU 0 de la Red2 es menor que la de la Red1 (Path MTU = 576 bytes) 31 Desplazamiento de Fragmento D M F F • El datagrama no se reensambla en R2, sino que lo hará el destino (HostB) • R2 reenvía los fragmentos como si fuesen datagramas independientes (podrían llegar desordenados o que alguno de los fragmentos no llegase) • Usa los campos “flags”, “fragment offset”, “total length” de la cabecera IP para fragmentar y reensamblar 9 10 Tema 2: IP z Tema 2: IP Fragmentación y reensamblado: “Flags”: campo de 3 bits. El segundo y tercer bit se usan para fragmentar: Primer bit reservado a “0” Flag D F “don’t fragment” “0” = puede fragmentar el datagrama “1” = no pude fragmentar el datagrama si activo un router NO fragmentará el datagrama (devolverá un mensaje ICMP indicando que no puede enviar el datagrama ya que no se le permite fragmentar) Flag M F “more fragments” “0” = único ó último fragmento “1” = aun hay más fragmentos activo cuando se fragmenta excepto en el último fragmento que se desactiva z z z z z z z z z z z z z z z z 11 Fragmentación y reensamblado: Identificación: número de 16 bits que identifica el datagrama, permite implementar números de secuencias y reconocer diferentes fragmentos de un mismo datagrama ya que todos comparten este número. “Fragment offset” ó desplazamiento de Fragmento: campo de 13 bits que indica el offset ó tamaño (en bytes) en bloques de fragmento con respecto al datagrama original desde el origen del datagrama Todos los fragmentos excepto el último deben ser multiplos de 8 bytes (en su campo de datos) Las direcciones IP origen y destino NO se modifican Si un fragmento se pierde, todos los fragmentos del datagrama se descartarán (esto se descubre en destino que es el que reensambla los fragmentos) 12 Tema 2: IP z Tema 2: IP Fragmentación y reensamblado: z z z 1500 (Ethernet data) = 20 (IP header) + 1480 (IP data) flag D = 0, flag M = 0, offset = 0, total length = 1500 z 572 (layer 2) = 20 (IP header) + 552 (IP data) flag D = 0, flag M = 1, offset = 0, total length = 572 572 (layer 2) = 20 (IP header) + 552 (IP data) flag D = 0, flag M = 1, offset = 552, total length = 572 ICMP (Internet Control Message Protocol) Permite el intercambio de mensajes de control y de supervisión entre dos ordenadores y sobre la red. Notifica un fallo y sugiere las acciones que deben ser tomadas para cada error. Reporta las condiciones de error sólo a la fuente original. La fuente debe decidir que acción tomar. z El host no sabe que GW ó maquina ocasionó el problema. z El datagrama sólo contiene la dirección IP fuente y destino final z Los mensajes ICMP requieren de dos niveles de encapsulación z Protocolo de control para comunicar incidencias: Un datagrama no puede alcanzar su destino Un router no puede almacenarlo temporalmente para reenviarlo Un router indica a un ordenador que envíe el datagrama por una ruta mas corta z 396 (layer 2) = 20 (IP header) + 376 (IP data) z flag D = 0, flag M = 0, offset = 1104, total length = 396 z 1480 bytes = 552 (multiplo de 8) + 552 (multiplo de 8) + 376 13 14 Tema 2: IP z Tema 2: IP z ICMP (Internet Control Message Protocol) ICMP (Internet Control Message Protocol) ICMP comunica mensajes de error y control ademas de otras condiciones que requiera atención por parte de un router o host Los mensajes van encapsulados en datagramas IP z Cabecera Datos ICMP ICMP Cabecera Datos DATAGRAMA DATAGRAMA Cabecera Datos TRAMA TRAMA z IP header ICMP mensaje 8 0 Tipo 16 Codigo 31 Checksum ICMP Data (Depending on the type of message) 15 16 Tema 2: IP z z Tema 2: IP ICMP (Internet Control Message Protocol) z Tipos de mensajes: Respuesta a Eco (0) Detectar destinos inalcanzables (3) Petición de control de flujo (4) Redireccionamiento de rutas (5) Solicitud de Eco (8) Anuncio de rutas (9) Petición de rutas (10) Tiempo excedido (11) Problema de parámetros (12) Marca de tiempo (13) Respuesta a la marca de tiempo (14) Petición de máscara de dirección (17) Respuesta a la máscara de dirección (18) ICMP (Internet Control Message Protocol) Checksum cubre todo el mensaje ICMP Hay 15 tipos de mensajes definidos por el campo “type” Un mismo tipo puede emplear el campo “code” para especificar cierta condición del mensaje z z z z z z Type Code z z Description Query Error 0 0 Echo reply (Ping reply) x 3 0 Network unreachable 1 Host unreachable x 2 Protocol unreachable x 3 Port unreachable x x z z z z .......... z 8 0 Echo request (Ping request) x z 9 0 Router advertisement x z 11 0 time-to-live exceeded 17 18 Tema 2: IP z Tema 2: IP Tipos de mensajes ICMP (mensaje ECO petición y respuesta) La respuesta devuelve los mismos datos que se recibieron en la petición Se utiliza para construir la herramienta “PING” Se emplea para detectar problemas en la red Permite comprobar que existe comunicación entre dos host a nivel de capa de red Permite comprobar si el destino esta activo y si existe una ruta hacia el Permite medir el tiempo de ida y vuelta Permite estimar la fiabilidad de la ruta Puede ser utilizado tanto por host como por routers Comprueban que la capa física (cableado), acceso al medio (tarjetas de red), y red (configuración IP) están correctas No se comprueban las capas de transporte y aplicación que podrían estar mal configuradas z z Tipos de mensajes ICMP ( Mensaje de Destino inalcanzable) Son enviados por un router cuando no puede enviar o entregar un datagrama IP Se envían al emisor del datagrama original El campo código tiene una información adicional del problema z z z z z z 0 Red Inaccesible 1 Host Inaccesible 2 Protocolo Inaccesible z 3 Puerto Inaccesible z 4 Necesita Fragmentación z 5 Falla en la Ruta Origen z 6 Red de Destino Desconocida 7 Host Destino Desconocido 8 Host de Origen Aislado 9 Comunicación con Red Destino Administrativamente Prohibida 10 Comunicación con Host Destino Administrativamente Prohibida 11 Red Inaccesible por el Tipo de Servicio 12 Host Inaccesible por el Tipo de Servicio z z 19 x ................................... z 20 Tema 2: IP z Tipos de mensajes ICMP (Mensaje de Paquete de restricción) z Se utiliza para informar al Host de problema de congestión de red z z z Tema 2: IP z Tipos de mensajes ICMP ( Mensaje de Tiempo excedido ) z Es enviado por un router cuando tiene problemas debido a la recepción de un número excesivo de datagramas z La recepción de un paquete de restricción provocara una disminución de la tasa de inyección de datagramas al Host z No existe un paquete que invierta el efecto de este, la situación se normaliza gradualmente cuando dejan de recibirse mensajes de este tipo. 21 Este tipo de mensajes los pueden enviar tanto los router como los host Los routers cuando descartan un datagrama por exceder su tiempo de vida (Código = 0) Los host al ocurrir un timeout mientras se esperaban todos los fragmentos de un datagrama, descartándose (Código = 1) 22 Tema 2: IP z Tema 2: IP TTL (Time To Live) Especifica el tiempo(en segundos) que se permite viajar a este datagrama. Campo que indica el límite de routers que puedes atravesar en Internet Se inicializa en cada datagrama con un valor como máximo de 255 (8 bits de campo) Cada vez que el datagrama atraviesa un router se decrementa en 1ya que el router es capaz de procesarlo en menos de 1 segundo. Si un datagrama llega a un router y su TTL = 0, el router descarta el datagrama y envía un mensaje ICMP (mensaje con tipo = 11) Este campo se utiliza en el programa “traceroute” para averiguar la ruta que atraviesa un datagrama cuando viaja por Internet, también el programa “ping” suele indicar el TTL z z z z z z z z z z 23 MTU Path Discovery (RFC 1063) Objetivo: evitar la fragmentación de datagramas averiguando cual es la Mínima MTU entre el origen y el destino ¿Cómo conseguirlo? Se envía un datagrama con MTU la del enlace y con el bit Don’t Fragment activo Cuando un router se encuentre que tiene una MTU menor que la que le llegue no fragmentará y enviará un mensaje ICMP “destino inalcanzable” (type = 3, code = 4 “fragmentation needed but don’t fragment bit set”) Este mensaje ICMP advierte cual es la MTU del enlace que necesita fragmentar (sino soporta esta opción, advierte MTU = 0) El origen vuelve a empezar con la nueva MTU hasta que averigue la mínima MTU, si la MTU advertida es 0, lo intenta con MTU conocidas más pequeñas z z z 24 Tema 2: IP z Tema 2: IP ping –c3 aucanada Ping: Se encarga de verificar la conectividad. El comando “ping” se usa como herramienta de diagnóstico para averiguar Si un host está conectado y es accesible Si los routers intermedios son operativos Tu propio host (software IP) funciona correctamente Ping envía “echo requests” a un host determinado. Este le devuelve un “echo reply” Los echo request/reply son mensajes ICMP Ping devuelve información del tipo “retardo desde cliente a servidor”, valor del TTL, cantidad de paquetes ICMP perdidos PING aucanada.ac.upc.es (147.83.35.24): 56 data bytes z 64 bytes from 147.83.35.24: icmp_seq=0 ttl=255 time=0.093 ms z 64 bytes from 147.83.35.24: icmp_seq=1 ttl=255 time=0.074 ms 64 bytes from 147.83.35.24: icmp_seq=2 ttl=255 time=0.079 ms z --- aucanada.ac.upc.es ping statistics --- z 3 packets transmitted, 3 packets received, 0% packet loss z round-trip min/avg/max = 0.074/0.082/0.093 ms z ping -c3 -s512 rogent z PING rogent.ac.upc.es (147.83.31.7): 512 data bytes z 520 bytes from 147.83.31.7: icmp_seq=0 ttl=254 time=1.530 ms 520 bytes from 147.83.31.7: icmp_seq=1 ttl=254 time=1.582 ms 520 bytes from 147.83.31.7: icmp_seq=2 ttl=254 time=1.584 ms ping [ -dfLnqRrv] [ -c count] [ -I ifaddr] [ -i wait] [ -l preload] [ -p pattern] --- rogent.ac.upc.es ping statistics --- [ -S ifaddr] [ -s packetsize] [ -t ttl] [ -w maxwait] host 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 1.530/1.565/1.584 ms 25 26 Tema 2: IP z Tema 2: IP Traceroute Programa que permite averiguar la ruta que ha seguido un datagrama de host a host. Se aprovecha de que cuando un datagrama llega a un router con el campo TTL = 0 este es descartado y el origen recibe un mensaje ICMP (type = 11, code = 0) Progama envía: datagramas UDP con la cabecera IP con el TTL =1, 2, 3, 4, .... (envía 3 datagramas con cada TTL) hasta que se llegue al host destino Como el puerto UDP destino es desconocido, el host destino devuelve un error ICMP de destino no alcanzable (unreachable port, type=3, code=3) Además el datagrama lleva en su campo de datos un número de secuencia, una copia del TTL y un timestamp con el tiempo en que se envió el datagrama para dar estadísticas · traceroute [ -l] [ -m max_ttl] [ -n] [ -p port] [ -q nqueries] [ -r] z [ -s src_addr] [ -t tos] [ -w waittime] host [packetsize] z • traceroute fonoll traceroute to fonoll.ac.upc.es (147.83.31.14), 30 hops max, 40 byte packets z 1 arenys5.ac.upc.es (147.83.35.2) 1 ms 1 ms 2 ms z 2 fonoll.ac.upc.es (147.83.31.14) 1 ms * 1 ms • traceroute -q 4 fonoll 512 z traceroute to fonoll.ac.upc.es (147.83.31.14), 30 hops max, 512 byte packets 1 arenys5.ac.upc.es (147.83.35.2) 2 ms 2 ms 1 ms 2 ms 2 fonoll.ac.upc.es (147.83.31.14) 1 ms * 1 ms * z 27 28 Tema 2: IP • Tema 2: IP traceroute fonoll 5600 traceroute to fonoll.ac.upc.es (147.83.32.14), 30 hops max, 5600 byte packets MTU=4352 MTU=2002 MTU=1492 arenys5.ac.upc.es (147.83.35.2) 3 ms 3 ms 2 ms fonoll.ac.upc.es (147.83.32.14) 2 ms * 2 ms • NYC CC NYC NS tcpdump –i eth0 host aucanada and fonoll 09:57:48.925224 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33435: udp 1464 [ttl 1] LON MIA TIC HO U PAR MIA SD VIE MTY MIL MA D PE SJU 09:57:48.928027 arenys5.ac.upc.es > aucanada.ac.upc.es: icmp: time exceeded in-transit [tos 0xc0] SAL MA D DE 09:57:48.932349 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33436: udp 1464 [ttl 1] 09:57:48.935859 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33437: udp 1464 [ttl 1] XXX YY Nodo completo 09:57:48.938164 arenys5.ac.upc.es > aucanada.ac.upc.es: icmp: time exceeded in-transit [tos 0xc0] XXX YY Sólo MS XXX YY Sólo IP 09:57:48.938456 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33438: udp 1464 LIM Tipo de enlace LUR SAO LS SCL PR 09:57:48.940628 fonoll.ac.upc.es > aucanada.ac.upc.es: icmp: fonoll.ac.upc.es udp port 33438 unreachable (DF) SCL FL SAO SI MON BUE C1 BUE BA Enlace cable/fibra Enlace por satélite 09:57:48.944172 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33439: udp 1464 09:57:51.937620 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33440: udp 1464 09:57:51.939703 fonoll.ac.upc.es > aucanada.ac.upc.es: icmp: fonoll.ac.upc.es udp port 33440 unreachable (DF) 30 Tema 2: IP Tema 2: IP · traceroute www.cisco.com traceroute to cio-sys.cisco.com (192.31.7.130), 30 hops max, 40 byte packets 1 arenys5 (147.83.35.2) 0.768 ms 0.684 ms 0.698 ms 2 phanella.upc.es (147.83.124.128) 2.836 ms 1.406 ms 1.875 ms 3 termcat.cesca.es (193.145.223.9) 2.370 ms 1.332 ms 1.055 ms 4 193.145.223.222 (193.145.223.222) 2.435 ms 3.178 ms 1.793 ms 5 A0-1-1.EB-Madrid00.red.rediris.es (130.206.224.1) 14.021 ms 11.974 ms 15.546 ms 6 A6-0-0-1.EB-Madrid0.red.rediris.es (130.206.224.74) 17.334 ms 26.908 ms 28.304 ms 7 194.69.226.13 (194.69.226.13) 261.393 ms 262.017 ms 258.488 ms 8 194.69.227.37 (194.69.227.37) 251.191 ms 262.695 ms 260.127 ms 9 borderx2-hssi3-0.PompanoBeach.cw.net (204.70.92.121) 532.621 ms 519.488 ms 529.751 ms 10 * * core1-fddi-1.PompanoBeach.cw.net (204.70.92.33) 543.744 ms 11 204.70.12.2 (204.70.12.2) 537.980 ms * * 12 * 204.70.12.1 (204.70.12.1) 512.827 ms 572.145 ms 13 ast-bbn1-nap.Atlanta.cw.net (204.70.10.170) 545.150 ms 531.534 ms 539.311 ms 14 h10-1-0.paloalto-br2.bbnplanet.net (4.0.1.197) 695.972 ms 628.130 ms * 15 * * p2-0.paloalto-nbr2.bbnplanet.net (4.0.2.197) 645.123 ms 16 p0-0-0.paloalto-cr18.bbnplanet.net (4.0.3.86) 694.410 ms * * 17 * h1-0.cisco.bbnplanet.net (4.1.142.238) 716.981 ms 620.717 ms 18 * pigpen.cisco.com (192.31.7.9) 687.278 ms * 19 cio-sys.cisco.com (192.31.7.130) 630.708 ms 678.356 ms * 31 ROM BOG 09:57:48.935629 arenys5.ac.upc.es > aucanada.ac.upc.es: icmp: time exceeded in-transit [tos 0xc0] 29 MA D RR 32 2.5 Gbps 622 Mbps 155 Mbps 45/34 Mbps 2 Mbps Tema 2: IP Tema 2: IP Direcciones privadas (RFC 1918) 33 • Direcciones privadas definidas por IANA: son direcciones que no son enrutables en Internet • Clase A: 10.0.0.0 – 10.255.255.255 Æ CIDR 10.0.0.0/8 • Clase B:172.16.0.0 –172.31.255.255 Æ CIDR172.16.0.0/12 • Clase C:192.168.0.0–192.168.255.255Æ CIDR 92.168.0.0/16 • Ideales para Labs o Test-home networks • Ideal en Intranets • Ideal en WAN links (core backbones) para ahorrar direcciones globales • Problema: no son enrutables por Internet 34 Tema 2: IP z Tema 2: IP NAT (Network Address Translation) (RFC 1631) Permite conectar varios PCs de una misma subred a Internet, utilizando únicamente una dirección IP pública para ello. Mecanismo que permite la traducción de direcciones privadas a públicas para poder acceder a Internet desde una intranet NAT se aprovecha de las características de TCP/IP, que permiten a un PC mantener varias conexiones simultáneas con un mismo servidor remoto. Esto es posible gracias a los campos de las cabeceras que definen unívocamente cada conexión, estos son: dirección origen, puerto origen, dirección destino y puerto destino. Las direcciones identifican los equipos de cada extremo y los puertos cada conexión entre ellos. Necesitamos un Router NAT en la frontera entre las redes que queremos traducir El mecanismo debe ser transparente a los usuarios finales Compatibilidad con firewalls y con seguridad en Internet z z z Internet Router NAT z Intranet z z z 35 36 Tema 2: IP z Tema 2: IP NAT estático: consiste en substituir la parte de host de la IP privada en el host de la IP pública INTRANET 192.168.0.2 INTRANET 192.168.0.2 Web server 207.29.19.8 FTP server 205.4.22.31 Outside 206.16.55.x Src:192.168.0.3:2401 Dst:205.4.22.31:21 Src:206.16.55.3:2401 Dst:205.4.22.31:21 37 Web server 207.29.19.8 FTP server 205.4.22.31 Dinamic NAT Table Inside Outside 192.168.0.2 206.16.55.2 192.168.0.3 206.16.55.3 Pool: 206.16.55.0 ... 15 Src:206.16.55.3:2401 Dst:205.4.22.31:21 38 Tema 2: IP z Tema 2: IP NAT dinámico ó Overloading (PAT: Port Address Translation): El router tiene una sóla IP pública, y elige un nuevo puerto origen y mapea las IP privadas a partir del puerto designado • z Src:192.168.0.2:1108 Dst:207.29.19.8:80 Web server, IP 192.168.0.4:80 Reacheable as 206.16.55.1:80 Protocolos sensibles a NAT: NAT modifica cabecera IP Æ recalcular el checksum IP y TCP Protocolos que llevan embebida la IP Æ también debe ser modificada Æ ALG (Application-Level Gateway) ICMP: “Destination unreachable messages” llevan IP embebidas Comandos FTP llevan IP embebidas como “strings” (cambiarlas además implica que cambia la longitud del segmento TCP) SNMP (Simle Network Management Protocol) NetBIOS over TCP/IP (NBT) NAT + Firewalls + IPsec DNS, Kerberos, X-Windows, remote-shell, SIP, ... (ver Internet Draft “Protocol Complicaitons with the IP Network Address Translation”) z z Src:206.16.55.1:61001 Dst:207.29.19.8:80 z z 192.168.0.2 Router NAT 192.168.0.1 206.16.55.1 Web server, 207.29.19.8 z FTP server, 205.4.22.31 192.168.0.3 z Dinamic NAT Table Src: 192.168.0.3:2401 Dst: 205.4.22.31:21 Inside Outside 192.168.0.2:1108 61001 192.168.0.3:2401 61002 z z Src:206.16.55.1:61002 Dst:205.4.22.31:21 *a partir del puerto 1024 Virtual Server Table 39 INTERNET Router NAT 192.168.0.1 206.16.55.1 192.168.0.3 Static NAT Table Inside 192.168.0.x Src:206.16.55.2:1108 Dst:207.29.19.8:80 Src:192.168.0.2:1108 Dst:207.29.19.8:80 INTERNET Router NAT 192.168.0.1 206.16.55.1 192.168.0.3 Src:192.168.0.3:2401 Dst:205.4.22.31:21 z Src:206.16.55.2:1108 Dst:207.29.19.8:80 Src:192.168.0.2:1108 Dst:207.29.19.8:80 NAT dinámico (Por pool de la dirección IP): Tenemos un pool de direcciones públicas y asignamos IP privada con IP pública z 192.168.0.4:80 80 40 Tema 2: IP z Tema 2: IP Routing (encaminamiento): Cada router mantiene una tabla de encaminamiento que indica como llegar a un destino (dirección IP e interficie) En vez de una dirección IP puede haber prefijos de red (NetID) que representen a redes enteras La tabla es rellenada por un algoritmo de encaminamiento z z ¿Qué hace un router cuando recibe un datagrama? Extraer la dirección IPdest del datagrama recibido Extraer el NetID y HostID de la dirección IPdest Si el NetID coincide con alguno de las redes que tiene conectadas directamente a través de una interficie, enviar el datagrama directamente por esa interficie, sino: mirar si la dirección IP o el NetID coincide con alguna entrada dentro de la tabla y sacarla por la interficie correspondiente (Longest Match Lookup) Sino coincide entonces enviarla al router por defecto Default Router (Router por defecto): router dentro de una red al que se le envían aquellos datagramas que un host u otro router no saben donde encaminar. El router por defecto tienen más información que le permite encaminar z z z z z z eth0 IPA atm0 Routing table eth1 IPB eth2 Red ATM Todos los host tienen el mismo NetID IPC z IP address Interface z IPA eth0 IPB eth1 IPC eth2 NetID atm0 41 42 Tema 2: IP z Tema 2: IP Routers Longest Match Lookup Proceso por el cual el router encuentra una dirección de red en su tabla de encaminamiento En la tabla se guardan el IP + máscara (NetID) Los NetID se guardan normalmente en orden descendente Cuando llega un paquete IP, se extrae la IP y se compara con cada entrada de la tabla hasta que se encuentra la primera entrada que coincide E.g.; quiero ver que entrada de la siguiente tabla con 3 entradas se corresponde con la llegada 11111100 11111000 11110000 11100000 Primero se compara con a), coinciden 5 bits, después se compara con b), coinciden 4 bits, ya no sigue comparando. a) es la opción que mejor se aproxima a la llegada Red A z Red B z Broadcast z z S0 E0 S1 z Routing Table a) Network b) A B C c) 43 44 Port E0 S0 S1 Red C Tema 2: IP z Tema 2: IP z Routers z z 10.1.0.0 10.2.0.0 10.3.0.0 10.4.0.0 z E0 S0 S0 S1 S1 E0 Longest Match Lookup (tabla de un router) Si existe una “correspondencia explicita” a una entrada en la tabla, el router sabe por donde sacar la trama Si no existe una correspondencia explicita, normalmente habrá una salida por defecto (gateway o router por defecto) Por consiguiente nos falta en la tabla información de a que destino queremos enviar el paquete y porqué interficie sacarla eth0 Tabla de enrutamiento Tabla de enrutamiento 10.1.0.0 E0 0 10.2.0.0 S0 0 10.3.0.0 S0 0 10.2.0.0 S0 0 10.3.0.0 S1 0 10.4.0.0 E0 0 10.3.0.0 S0 1 10.4.0.0 S1 1 10.2.0.0 S0 1 10.4.0.0 S0 2 10.1.0.0 S0 1 10.1.0.0 S0 2 45 198.5.3.12/24 198.5.3.1/24 IPdestino 198.5.3.12 198.5.3.0 198.5.2.0 0.0.0.0 ppp1 ppp0 198.5.2.1/24 Máscara 255.255.255.255 255.255.255.0 255.255.255.0 0.0.0.0 198.5.2.2/24 198.5.1.1/24 Gateway 0.0.0.0 0.0.0.0 0.0.0.0 198.5.2.2 Interficie eth0 eth0 ppp0 ppp0 46 Tema 2: IP z z z Tema 2: IP Tabla de un host Debe indicar como llegar a su propia subred (haciendo una ARP) Debe indicar como salir de su subred (usando el gateway por defecto) z Path determination o mejor ruta Proceso por el cual un router determina los posibles caminos por los que puede reenviar un datagrama para que este llegue a su destino El camino puede determinarse a partir de información introducida por el administrador de red (estático) o a partir de información (métricas) intercambiada por los routers (dinámico) Las métricas pueden ser muy variadas: saltos (“hops”), retardos, cargas, ancho de banda, fiabilidad del enlace, coste.... La información que se intercambia los routers para permitir la determinación de un camino es particular a cada protocolo de encaminamiento, que define La periodicidad con que se intercambian los paquetes de encaminamiento El formato y contenido de estos paquetes de encaminamiento Algoritmos asociados que permiten calcular el camino óptimo, y por tanto decidir la interfice de salida (e.g algoritmos de mínimo coste) z z z eth0 ppp0 ppp1 ppp0 z 198.5.3.12/24 198.5.3.1/24 198.5.2.1/24 198.5.2.2/24 198.5.1.1/24 z IPdestino 198.5.3.0 0.0.0.0 47 ppp0 Tabla de enrutamiento Máscara Gateway Interficie 255.255.255.0 0.0.0.0 eth0 0.0.0.0 198.5.3.1 eth0 z z 48 Tema 2: IP z Tema 2: IP Concepto de “convergencia” en un protocolo de encaminamiento Cuando la topología de la red cambia, los routers deben recalcular las rutas y actualizar las tablas de encaminamiento El tiempo en que todos los routers alcanzan un conocimiento homogéneo de la red se le llama “tiempo de convergencia” Tiempos de convergencia grandes implican que los routers tendrán mayor dificultad para enviar los datagramas por la interficie más adecuada Convergencia depende Distancia en hops desde el punto en que se produjo el cambio Cantidad de routers que usan el protocolo dinámico El ancho de banda y la carga de tráfico de la red La carga del router (CPU) El protocolo de encaminamiento usado (el algoritmo) Protocolos de encaminamiento z Estáticos Son aquellos en los que el administrador de sistemas introduce manualmente las entradas de la tabla de encaminamiento (puertos predeterminados) Útil si la red es muy pequeña o cuando una red sólo puede ser alcanzado por un solo camino (“stub network”) E.g.; en UNIX con el comando “route add/del” se modifica la tabla y con el comando “netstat –rn” se observa el contenido de la tabla Dinámicos Son aquellos que rellenan la tabla de encaminamiento de forma automática Permite que la tabla cambie automáticamente cuando hay cambios en topología de la red, por tanto útil en redes grandes Se pueden agrupar en 3 grandes grupos z z z z z z z z z z z z z z z z z z z z 49 Vector-distance protocols: determinan la dirección y distancia a que se encuentra cualquier enlace de la red ,(e.g. RIP, IGRP, BGP, ...) Link-state protocols: recrean la topología exacta de la red (e.g.; OSPF, IS-IS) Híbridos: combinan aspectos de los algoritmos de distancias y de los de estado del enlace 50 Tema 2: IP z Tema 2: IP z Ejemplo de encaminamiento estático Ejemplo en los routers Cisco Habilitación de rutas estáticas ip route red [máscara] {dirección | interfaz} [distancia] [permanent] red es la red o subred de destino máscara es la máscara de la subred dirección es la dirección IP del router del próximo salto interfaz es el nombre de la interfaz que debe usarse para llegar al destino distancia es un parámetro opcional que define la distancia administrativa (0-255) ( a menor distancia mayor probabilidad de usar el router) permanent es un parámetro opcional que especifica que la ruta no debe ser eliminada, aunque la interfaz deje de estar activa. z 172.16.1.0 / 24 z z S1 A 172.16.2.2 172.16.2.0 172.16.2.1 S0 z B z E0 S0 S2 z z Red Stub Tabla de Routing Red 172.16.1.0 0.0.0.0 51 Mascara Dirección Interfaz 255.255.255.0 172.16.1.1 E0 0.0.0.0 172.16.2.2 S0 Para configurar una ruta estática en el router A router(config)#ip route 172.16.1.0 255.255.255.0 172.16.2.1 y para configurar la ruta predeterminada del router B router(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2 52 Tema 2: IP z Tema 2: IP Ejemplo de encaminamiento estático: comando route (modo root) z Comando “netstat” (modo usuario) Permite observar entre otras cosas la tabla de encaminamiento además del estado de las conexiones, estadísticas, .... z route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] netstat [reject] [mod] [dyn] [reinstate] [[dev] If] { --route|-r} [address_family_options] [ --extend| -e[ --extend| -e]] [ --verbose| -v] [ --numeric| -n] route [ -v] [ -A family] del [ -net| -host] target [ gw Gw] [ --continuous| -c] [ netmask Nm] [ metric N] [[ dev] If] Ejemplo: ver la tabla de routing z z • netstat -rn Ejemplo: ver la tabla de routing Kernel IP routing table • route -v Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface Destination Gateway 147.83.35.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 255.0.0.0 U 0 0 0 lo UG 0 0 0 eth0 147.83.35.0 * 255.255.255.0 U 0 0 0 eth0 loopback loopback * 255.0.0.0 U 0 0 0 lo 0.0.0.0 arenys5.ac.upc.es 0.0.0.0 UG 0 0 0 eth0 0.0.0.0 arenys5.ac.upc. 53 0.0.0.0 Flags MSS Window irtt Iface 54 Tema 2: IP z Tema 2: IP ARP, Proxy ARP y encaminamiento z Comparativa de las caracteristicas de los protocolos de routing Los host normalmente siguen la secuencia siguiente cuando quieren comunicarse Consultan la tabla de encaminamiento La tabla les indica que la IP pertenece a un host de su misma red, entonces hacen ARP para averiguar su MAC La tabla les indica que la IP no es de la red y deben ir por tanto al router por defecto, entonces hacen ARP del router para averiguar su MAC ¿Cuándo hacen Proxy ARP? z z z z z A R B z z z 55 Genmask SOLO en casos muy especiales. Por ejemplo cuando un host quiere enviar un datagrama a otro host cuya NetID coincide con la suya pero que tiene un router por en medio. Su tabla de encaminamiento le dice que la subred está conectado directamente a su interficie, por lo que envía un ARP en esa interficie con IP la del host destino El router sabe que el host destino está en una interficie conectada directamente a él, y además que él no deja pasar ARPs. Por lo que hace un Proxy ARP y responde con su MAC El host origen cree que se está conectando con el host destino directamente cuando en realidad lo está haciendo a través del router Name Type Updates Metric RIP DV Proprietary No Function Interior 30 sec Hops No RIPV2 DV No Interior 30 sec Hops Yes Auto IGRP DV Yes Interior 90 sec Comp. No EIGRP Adv DV Yes Interior Trig. Comp. Yes Both Yes Man. Auto Auto OSPF LS No Interior Trig. Cost IS-IS LS No Int/Ext Trig. Cost Yes Auto BGP DV No Exterior Trig. N/A N/A Man. DV distancia vector LS link state Hops saltos Comp anchura de banda + retardo Cost proporcional al ancho de banda Summ sumarización Trig solo cuando hay cambios 56 VLSM Summ Tema 2: IP z Tema 2: IP Vector -Distancia Son algoritmos que utilizan las pasarelas para actualizar su información de encaminamiento. Cada router comienza con un conjunto de rotas con las que esta directamete conectado que se guarda en la tabla de encaminamiento. Periodicamente cada router manda una copia de su tabla de encaminamiento a cualquier router que pueda alcanzar directamente. Los routers destino actualizaran su tabla de encaminamiento si: El router origen conoce un camino más corta al destino. El router destino no tiene al origen en su tabla. La distancia del rigen al destino ha cambiado Vector -Distancia (Desventajas) Cuando las rutas cambian rápidamente la topología de encaminamiento puede inestabilizarse ya que se puede propagar una información incorrecta que tengan algunos routers. Al pasar toda la información de la tabla de encaminamiento a intervalos regulares la carga de la red aumenta lo que provoca problemas de tiempo de respuesta a los cambios de topología. Los algoritmos vector-distancia que usan los “hops” o saltos como métrica no tienen en cuenta la velocidad o la fiabilidad del enlace. Problema de cuenta hasta infinito cuando un router falla z z z z z z z z z z z z 57 58 Tema 2: IP z Tema 2: IP RIP (Routing Information Protocol) z z z z z z Es un protocolo de encaminamiento interior Cada router envía periódicamente (cada 30 segundos) un datagrama de encaminamiento a cada uno de SUS VECINOS con TODA su tabla de encaminamiento, dichos envios no estan sincronizados. Cuando no se envia un Tout expira y el router informa a la red del cambio. Esta tabla indica el coste (métrica son “hops”) para llegar a cada uno de los destinos (IP) desde ese router. Si el número de saltos es mayor de 15 se desecha el paquete. El router calcula con algoritmo de mínimo coste (Algoritmo de Bellman-Ford) la mínima distancia para llegar a los destino y actualiza su tabla (convergencia: debe ser rápido) RIP versión 1: no anuncia máscaras (RFC1058) Aplica la máscara de la interficie Sino tiene, aplica la mascara de la clase por defecto de esa IP RIP versión 2: anuncia máscaras (RFC2453) UNIX routing daremons Routed (RIP v1) Gated (RIP v1, v2, v3, OSPF v2, BGP v1, v2) z z z z z D(i,i) = 0 D(i,j) = mimk [D(i,k) + D(k,j) ] z z z z z 59 Algoritmo de Bellman - Ford D(i,j) es el coste para llegar directamente de la Red i a la j, y vale infinito si no es posible llegar directamente a una red vecina (D(i,i) = ∞) D(i,j) representa la métrica de la mejor ruta entre dos redes Entonces la mejor métrica se puede describir como: El mínimo para llegar a la red j-sima a través de mi red vecina ksima y se calcula como el mínimo de la suma entre el coste de llegar a mi red vecina k-sima y la métrica de llegar desde la red ksima a la j-sima 60 all i otherwise Tema 2: IP Tema 2: IP Ejemplo de routing Ejemplo de routing N0 N0 R1 R2 R3 N2 N1 R1 N3 R2 R3 N2 N1 R4 R4 N4 Tabla de R2 Tabla de R1 Red Hops Ruta Red Hops Ruta N0 N1 1 1 Tabla de R3 N3 N4 Tabla de R4 Red Hops Ruta Tabla de R1 Red Hops Ruta Local N1 1 Local N2 1 Local N2 1 Local Local N2 1 Local N3 1 Local N4 1 Local Red Hops Ruta N1 1 1 N2 2 N0 Tabla de R2 Red Hops Ruta Red Hops Ruta Local N2 Local N3 1 1 R1 N1 2 2 R3 N4 2 2 R4 Local N1 Local N2 1 1 N0 2 N3 N4 R2 Tabla de R3 Tabla de R4 Red Hops Ruta Local N2 Local N4 1 1 Local R2 N1 2 R2 R4 N3 2 R3 Local * El contador de saltos para redes conectadas directamente es de 1 hop (ya que coste de Gateway consigo mismo es 0) 61 62 Tema 2: IP Tema 2: IP Ejemplo de routing z RIP (Routing Information Protocol) z N0 R1 R2 R3 N2 N1 N3 R4 N4 Tabla de R1 Red Hops Ruta 63 Red Hops Ruta N2 N3 1 1 R1 N0 3 2 R3 N1 2 R4 N4 N2 1 1 R2 N0 2 3 R2 N3 3 R2 N4 N2 2 N3 N4 Red Hops Ruta Local N1 Local 1 1 Tabla de R3 Local Local N1 N0 Tabla de R2 Tabla de R4 z Red Hops Ruta Local N2 Local N4 1 1 Local R2 N0 3 2 R2 N1 2 R2 2 R4 N3 2 R3 Local R2 64 Ventajas: z Si la red tiene rutas redundantes, RIP es capaz de detectarlas y escoger la mejor (routing estático no) z Corrige fallos de la red automáticamente z Protocolo fácil de configurar, usar y mantener z Util si la red es sencilla y sin fuertes requerimientos respecto a la buena eficiencia de la red Desventajas z Converge muy lentamente ante fallos de la red z Puede crear ciclos (loops) infinitos que hagan que la red sea inconsistente z Debido a la vulnerabilidad ante la lenta convergencia hace que sea muy poco útil en WANs Tema 2: IP Tema 2: IP z Ejemplo de cuenta a infinito Problemas del RIP RIP sólo permite 15 saltos. Considera métrica infinita cualquier router que esté más lejos de 15 saltos (Límite de la red = 15) No tiene en cuenta métricas importantes como puede ser el retardo o el ancho de banda No permite intercambiar información entre subredes (paquete RIP no informa de las máscaras de red) E.g. Routers CISCO: aplica la máscara de la interficie, SINO la de la clase correspondiente a la IP anunciada Vulnerabilidad: counting to infinite (Infinito=16 hops en RIP), si una red se alcanza con un valor de 16 se considera una red inalcanzable (ICMP message “network unreachable”). Esto se soluciona con Split horizon consiste en ser más selectivo haciendo que los routers que advierten omitan información de refresco que pueda “confundir” a los routers o con poison reverse no omitas, advierte pero con un coste infinito z N0 z z R1 R2 R3 N2 N1 N3 z R4 N4 z 65 Tabla de R2 Tabla de R1 Tabla de R3 Red Hops Ruta Red Hops Ruta Local N1 Local N2 1 1 Tabla de R4 Red Hops Ruta Local N2 Local N3 1 1 Red Hops Ruta Local N2 Local N4 1 1 N2 2 R2 N0 2 R1 N0 3 R2 N0 3 N3 3 R2 N3 2 R3 N1 2 R2 N1 2 R2 N4 3 R2 N4 2 R4 N4 2 R4 N3 2 R3 Local R2 66 Tema 2: IP Tema 2: IP Ejemplo de cuenta a infinito Ejemplo de cuenta a infinito N0 N0 R1 X R2 R1 R3 N2 N1 X R2 R3 N2 N1 N3 N3 R4 R4 N4 N4 Tabla de R1 Red Hops Ruta Tabla de R2 Red Hops Ruta N2 Local N3 1 1 R1 N0 3 2 R3 N1 2 R4 N4 N1 - N2 1 1 - N0 4 3 - N3 3 - N4 1 1 N2 2 N3 N4 Tabla de R3 Red Hops Ruta Local Local N1 N0 67 Local N1 1 1 N0 Tabla de R4 Tabla de R1 Red Hops Ruta Local N2 Local N4 1 1 R2 N0 3 2 R2 N1 2 R4 N3 Red Hops Ruta Local N0 Local N1 1 1 R2 N2 2 2 R2 N3 2 R3 N4 68 Tabla de R2 Red Hops Ruta Tabla de R3 Red Hops Ruta Local N2 Local N3 1 1 R1 N0 5 2 R3 N1 2 R4 N4 Local N1 - N2 1 1 - N0 4 3 - N3 3 - N4 Tabla de R4 Red Hops Ruta Local N2 Local N4 1 1 Local R2 N0 5 2 R2 N1 2 R2 2 R4 N3 2 R3 Local R2 Tema 2: IP z Tema 2: IP Split Horizon: evitar bucles (counting to infinite) z Poison Reverse: advertir costes infinitos Un router NO envía información a otro router de las redes que le son comunicadas por ese otro router Router 3 no envía refrescos de la tabla Router 2 informa al Router 3 solo de la Ethernet y Token Ring. Router 2 informa al Router 1 solo de la ATM Router 1 sólo informa de Token Ring z z z z z Token Ring Token Ring 1 hop Router 1 Ethernet: 1 hop Token Ring 2 hops Ethernet: Token Ring Token Ring ∞ hops Token Ring ∞ hops Router 3 Router 2 ATM network X ATM network X ATM Network: 1 hop Ethernet ATM Network: 1 hop 69 Ethernet: ∞ hops Token Ring ∞ hops 70 Tema 2: IP z Tema 2: IP Poison reverse Cuando detecta que su antigua ruta por un interface no es valiada envia un mensaje a los otros interfaces en el que se indica que su coste es infinito, por lo que los routers que reciben el mensaje tardan menos en saber que esta ruta no es valida. El problema que tenemos es que incrementa el tamaño de los mensajes de encaminamieno. z z z Cambios en la topología de la red Un router con RIP suele enviar mensajes de refresco cada Tout = 30 segundos con la tabla de encaminamiento a todos sus vecinos Si hay un cambio en la topología de la red, e.g.; router cae, este no puede notificar el cambio con un mensaje de refresco (“update”) Si transcurridos 6*Tout = 180 segundos, un router no ha recibido un update de su vecino, el router marcará la ruta a través de ese router como invalida Una métrica de valor infinito (=16) indica que una ruta NO es valida z z z Triggered updates Consiste en que si un router ha cambiado su tabla debido a un cambio en la topología tardará 30 segundos en el peor de los casos en avisar del nuevo cambio a un router vecino Eso hace que un el tiempo de convergencia pueda ser muy alto (minutos) ante cambios en la topología de la red “triggered update” consiste en enviar la tabla enseguida de que se produzca un cambio en la red sin tener que esperar los 30 segundos, mejorando por tanto el tiempo de convergencia, el tiempo es de 1 a 5 segundos. z z z z 71 Router 1 2 hops Ethernet: Router 3 Router 2 Ethernet ATM Network: ∞ hop 1 hop ATM Network: ∞ hop 72 Tema 2: IP z Tema 2: IP RIPv1 (Routing Information Protocol) z z z z z z z Message Format (UDP port = 520) Se describe en el RFC 1058 Descrito en www.isi.edu/in-notes/rfc1058.txt Es una implementación directa del encaminamiento vector-distancia para LANs Utiliza UDP como protocolo de transporte, con el número de puerto 520 como puerto de destino. Los mensajes RIP se envian en los datagramas UDP Operaciones básicas: Se inicia enviando un mensaje a los routers vecinos pidiendo la copia de la tabla de encaminamiento. Se envia la tabla de encaminamiento a todos los routers vecinos, cada 30 segundos. Cuando RIP detecta que la métrica ha cambiado la difunde por broadcast a los routers. Cuando se recibe se valida y si es necesario se actualiza. Las rutas que RIP aprende de otros routers expiran a los 180 segundos ( 6x30) a no ser que se vuelva a difundir. Cuando una ruta expira la métrica se pone a infinito y 60 segundos más arde se borra de la tabla. IP header UDP header RIP message z z 20 bytes z z z z 73 74 Tema 2: IP z Tema 2: IP RIPv2 (Routing Information Protocol) Se describe en el RFC 1721 y RFC 1722 Descrito en www.isi.edu/in-notes/rfc1721.txt y www.isi.edu/in-notes/rfc1722.txt Es compatible con RIPv1. No es tan potente como OSPF ni IS-IS pero tiene la ventaja de que necesita una fácil implementación y menores factores de carga Se puede usar en presencia de subnetting variable. Soporta multicast con preferencia al broadcast, lo que implica una reducción de carga a los host que no estan a la ecucha de mensajes RIPv2. z z OSPF (Open-Short Path First) Primero se escoge la ruta más corta. Protocolo de encaminamiento interior. Link-state (estado del enlace entre dos routers) protocol Se dibuja un mapa con toda la topología de la red Cada router envía información a TODOS los routers de la red cuando se produzca un cambio en la topología de la red A partir de esa información se recalcula la tabla de encaminamiento usando el algoritmo de Dijkstra OPSF se basa en: z z z z z z z z z z z z z z z z 75 76 Enviar LSAs (Link State Advertisements), el estado de las interfaces y adyacencias del router, con los cambios que se producen en la red (LSAs van encapsulados en IP) Mantener una base de datos con la topología de la red (Link State Database) en cada router Mantener una tabla de encaminamiento con los caminos y puertos Un algoritmo de encaminamiento (Dijkstra) que rellena la tabla a partir del contenido de la base de datos Tema 2: IP z Tema 2: IP OSPF (Open-Short Path First) Funcionamiento general: Los routers intercambian su conocimiento de la red (métricas) con todos los routers de la red (usa un mecanismo llamado flooding) enviando LSAs z z z z z z z z z OSPF (Open-Short Path First) Desventajas Flooding implica una gran cantidad de tráfico en la red, degradando la eficiencia de la red temporalmente z z z z Flooding consiste en que un router que recibe un LSA, lo reenvía por todos sus puertos de salida excepto por el que le ha llegado Si a un router le llega por segunda vez el mismo LSA, entonces no lo reenvía, sino que lo descarta El LSA llegará (con el tiempo) a todos los routers de la red z Eficiencia depende de: z z El ancho de banda disponible La cantidad de rutas que se deben advertir Los algoritmos consumen gran cantidad de memoria y CPU (routers potentes, y por tanto más caros) Ventajas Buena convergencia y buena reacción a cambios topológicos Escala muy bien (útil en redes grandes y complejas) Usa gran cantidad de métricas (retardos, cargas, ancho de banda, ...) z Cada vez que hay un cambio en la red, este es advertido a toda la red por medio de un LSA (no se envían LSAs periódicamente, sólo cuando hay cambios) A partir de los LSAs los routers construyen una base de datos con la topología de la red mediante un algoritmo (Dijkstra) A partir de la base de datos, se rellena la tabla de encaminamiento 77 Un router recibe demasiados LSAs en vez de datos Un router está demasiado tiempo calculando rutas (Dijkstra) en vez de transmitiendo datos, .... z z z z 78 Tema 2: IP z Tema 2: IP Sistemas Autónomos (AS)(Autonomous System) z z z z z Aparecen cuando una empresa tiene un crecimiento muy alto y el tráfico entre sus elementos es también muy alto. La IANA es la responsable de la asignación de los números de AS Internet se organiza como una colección de AS, cada uno de ellos administrado por una única entidad El protocolo de encaminamiento que comunica routers dentro de un AS se le llama IGP (Interior Gateway Protocol)(e.g.; RIP, OSPF, IGRP, EIGRP) El protocolo de encaminamiento que comunica routers de distintos AS se le llama EGP (Exterior Gateway Protocol) (e.g.; EGP, BGP) IGPs: RIP, IGRP, OSPF, EIGRP BGP (Border Gateway Protocol) Es un EGP (Exterior Gateway Protocol) usado para comunicar AS Inicialmente se usó bastante un protocolo llamado EGP (versión 3), pero fue rechazado por su gran ineficiencia Hoy en día se usa BGP (versión 4) como EGP BGP permite conectar Sistemas Autónomos (AS) que pertenezcan a distintas organizaciones z z z z AS2=102 AS1=101 EGPs: BGP IGP BGP IGP AS3=103 IGP Autonomous System 65000 79 Autonomous System 65500 80 • Puede haber 65535 (16 bits) AS • Rango 1- 64511 son asignados por IANA para proveedores públicos • Rango 64512 – 65535 son identificadores para AS privados • Organizaciones con un único proveedor usa identif privados Tema 2: IP z Tema 2: IP Modelo topológico BGP z z z z Stub AS: un AS que sólo tiene una única conexión con otro AS y por tanto sólo lleva tráfico local Multihomed AS: un AS que tiene más de una conexión con otros AS y pero rechaza llevar tráfico de transito Transit AS: un AS con multiples conexiones a otros AS y que lleva tráfico de transito BGP (Border Gateway Protocol) BGP es un protocolo de encaminamiento que se basa en políticas de red (organizaciones) y no en métricas Un AS multihomed puede rechazar actuar como AS de tránsito a otro AS Un AS multihomed puede convertirse en un AS de tránsito para un conjunto restrictivo de AS Un AS de tránsito puede desfavorecer ciertos AS para llevar tráfico él mismo z z z z AS1 Stub AS AS2 AS3 Transit AS Transit AS z Shared Network Elección de rutas: elegir un camino basándose en la preferencia Atravesar menor número de AS Consideraciones administrativas Presencia o ausencia de ciertos AS en el camino Origen de la ruta Dinámica de los enlaces z z AS4 z AS5 z Transit AS Multihomed AS 81 z 82 Tema 2: IP Tema 2: IP z BGP (Border Gateway Protocol) z z z z z BGP usa TCP como protocolo de comunicaciones (puerto 179) BGP es un protocolo de vectores de caminos (“path vector protocol”) que anuncia AS Un mensaje BGP envía una secuencia de números AS que indican el camino completo hasta un destino BGP envía UPDATES a sus vecinos cada vez que hay un cambio en la red indicando los cambios Destino AS1: (AS2,AS1) AS1 Stub AS AS2 Transit AS AS4 Multihomed AS 83 AS3 Protocolos de encaminamiento y los esquemas de direcciones IP Classless Routing protocols Classfull Routing protocols RIP v1 RIP v2 IGRP EIGRP EGP OSPF BGP v3 IS-IS Transit AS Shared Network BGP v4 AS5 Transit AS 84 Protocolos de encaminamiento que no envían la máscara: • Si la dirección anunciada pertenece a la misma subred que la interfice por la que se recibe, aplican la mascara de la interficie por donde reciben el mensaje • Sino pertenecen a la misma subred, aplican la de la clase de la dirección que reciben Tema 2: IP z Tema 2: IP Elegir el protocolo de encaminamiento en una red z z Elegir el protocolo de encaminamiento en una red Protocolos basados en vectores de distancias (RIP(v1-v2), IGRP) Fáciles de configurar pero trabajan mal en redes grandes y complejas debido a la cantidad de tiempo que tardan en converger RIP cuando balancea cargas lo hace por igual independientemente de la velocidad del enlace IGRP sí las tiene en cuenta hasta cierto grado z z z z z z z z Elegir el protocolo más sencillo para tu red Si la red no tiene enlaces redundantes o paralelos y no tiene VLSM se puede usar RIPv1 y si usa VLSM entonces RIPv2 Si la red tiene enlaces redundantes o paralelos y no requiere VLSM puede usar un protocolo estilo IGRP (CISCO) Si la red tiene enlaces redundantes o paralelos y requiere VLSM entonces usar OSPF, EIGRP, IS-IS , ... Protocolos de estado del enlace (OSPF, EIGRP, ...) Más difíciles de configurar pero convergen mejor en redes grandes y complejas z 85 86 Tema 2: IP z Tema 2: IP DNS (Domain Name System): z z z z z z z Sistema usado en Internet para traducir nombres de nodos de red en direciones IP. A cada máquina se le asigna una dirección IP (e.g. 147.83.35.24) y un nombre (aucanada.ac.upc.es) DNS es una base de datos distribuida que permite realizar un mapeo entre nombres de máquinas y direcciones IP De esta manera cuando queramos acceder a una máquina (Web, Ftp, Telnet, ...) en vez de recordar la IP, basta recordar el nombre DNS usa un “resolver” para acceder a los nombres desde las IP En UNIX las aplicaciones usan Llamadas al sistema para acceder a este resolver, estas LLS son *gethostbyname(char *name): dado un nombre devuelve su IP *gethostbyaddr(char *addr, int len, int type): dado una IP devuelve el nombre del host Estas LLS consultan inicialmente el fichero /etc/host donde está guardado la correspondencia nombre-IP. Sino está resuelto, entonces se accede al servidor de DNS y se resuelve el nombre La IP del servidor de nombres (DNS) se guarda en un fichero resolver: /etc/resolv.conf Asignación de Dominios Un dominio es un mecanismo de identificación utilizado en Internet z z z z z z z z z Consta de varias palabras separadas por un punto: xxx.xxx.com Las primeras palabras xxx.xxx indican un conjunto de nombres que identifican a la empresa u organización (e.g.; ac.upc designa el departament d’Arquitectura de Computadors de la UPC) Las empresas deben registrar su nombre para que pase a ser su marca en Internet (problemas con marcas ya registradas) En España se encarga del registro RedIris (es-nic) El resto del dominio está organizado en: Dominios genérico: .com, .org, .net, .edu, ... Dominios geográficos: .es, .fr, .uk, .it, .... Propuesta (de CORE) para ampliar el número de dominios genericos. .firm, .shop, .info, .web, .nom, .arts, .rec z z z z z z 87 El ICANN es la responsable que los nombres de las máquinas sean únicos 88 Tema 2: IP z Tema 2: IP DNS basa su funcionamiento en un espacio jerárquico de nombres z DNS se basa en servidores de nombres distribuidos geográficamente Puerto 53 (tanto UDP como TCP) z e.g.; aucanada.ac.upc.es unamed root z Cada administrador de sistemas de una zona es responsable de mantener Un servidor de DNS primario (disk file), tiene la información de una zona, y la autoridad sobre ella. Uno o varios servidores de DNS secundarios (backups) independientes del primario pero que obtienen la información a partir del primario (normalmente se actualizan cada 3 horas) Cuando se conecta un nuevo usuario hay que añadirlo al primario (IP y nombre), mientras que los secundarios lo obtendrán (“zone transfer”) del primario (hacen “querys” del primario cada 3 horas) Si la información no está en el DNS de la zona, este servidor debe acceder a uno de los servidores “root” para obtenerla (DNS servers deben conocer la IP de los roots) Los servidores DNS (no los resolver de la aplicación) disponen de caches para resolver nombres que han mapeado recientemente z arpa org edu com uk es z dominios geográficos in-addr 7 dominios genéricos upm upc z 147 ac 83 lsi arpa es un dominio que permite la resolución inversa de direcciones 65 z (address-to-names) aucanada z 13 89 90 Tema 2: IP z Tema 2: IP Ejemplo de una “query recursiva” z Ejemplo de una “query iterativa” root DNS server zone DNS server root 2 zone DNS server 3 5 4 1 2 DNS con dom .es .es 3 4 5 DNS .upc.es 6 6 1 .upc.es 7 8 DNS ftp. upc.es 1. Host pregunta por ftp.upc.es a su DNS 2. Zone DNS pregunta al DNS server con dominio .es 3. DNS con dominio .es pregunta a DNS con dominio .upc.es ftp. upc.es 4. DNS .upc.es le devuelve la IP del servidor ftp.upc.es al dominio .es 5, 6 la IP del servidor ftp.upc.es vuelve al cliente *Cada DNS guarda en su cache las IP un tiempo indicado por TTL 91 92 1. Host pregunta por ftp.upc.es a su DNS 5. DNS .es devuelve la IP de DNS .upc.es 2. Zone DNS pregunta a su root DNS 6. Zone DNS pregunta a DNS .upc.es 3. Root DNS le devuelve la IP del DNS con dominio .es al zone DNS 7. DNS .upc.es devuelve IP de server ftp.upc.es 4. Zone DNS pregunta al DNS .es 8. Zone DNS devuelve la IP del server al host *Zone DNS guarda en su cache las IP un tiempo indicado por TTL Tema 2: IP z Tema 2: IP Mensajes DNS z Mensajes DNS Identification: permite mapear respuestas con peticiones (activado por el cliente y retornado por el servidor) 16-bit flags: dividido en multiples campos (e.g. 1-bit QR: Queries=0, Responses=1; 1-bit RD for iterative/recursive queries, etc) Los siguientes 4 campos indican cuantas peticiones (e.g. QR=0, number of questions (QD) =1, resto=0) y respuestas (e.g. QR=1, number of answers (AN), number of autority (NS), number of aditional (AR) ≥ 1, resto ≥ 0) hay en el resto del mensaje Question contiene las consulytas al servidor de nombres. Answer, Autority, Additional Information contienen un número variable de recursos como TTL, etc... z z z z z 93 94 Tema 2: IP z Tema 2: IP Comando “nslookup” Permite averiguar en UNIX un nombre o una dirección IP z Resolución inversas Conozco la IP y quiero el nombre Cada servidor gestiona una rama que comienza con la etiqueta “in-addr” de la que cuelgan las direcciones en sentido númerico inverso Es decir, las direcciones cuelgan del árbol en orden descendiente: e.g.; la IP 147.83.65.13 estaría como 13.65.83.147.in-addr.arpa En UNIX se usa el comando gethostbyaddr() Con tcpdump podeis identificar mensajes DNS como z z z nslookup [ -option ...] [host-to-find | -[server]] • nslookup z Default Server: gaudi.ac.upc.es > finger joseb Address: 147.83.32.3 [aucanada.ac.upc.es] > aucanada.ac.upc.es Welcome to Linux version 2.2.18 at aucanada.ac.upc.es ! z Server: gaudi.ac.upc.es Address: 147.83.32.3 11:35am up 6 days, 14:34, 3 users, Name: Login: joseb aucanada.ac.upc.es Address: 147.83.35.24 Directory: /home/joseb z aucanada% ping teix.ac.upc.es Name: Jose M. Barcelo aucanada% tcpdump Shell: /usr/bin/zsh 18:29:52.211280 aucanada.ac.upc.es.nimreg > gaudi.ac.upc.es.domain: 20983+ A? teix.ac.upc.es. (32) 18:29:52.214912 gaudi.ac.upc.es.domain > aucanada.ac.upc.es.nimreg: 20983* 1/2/1 A teix.ac.upc.es (106) (DF) 95 96 Tema 2: IP z Tema 2: IP Gestión en la asignación de Dominios Historia: Hasta hace poco tiempo lo gestionaba IANA (Internet Assigned Numbers Authority: http://www.iana.org) - organización del gobierno USA Ahora es privado (aunque con una organización sin ánimo de lucro) que recogio las actividades del IANA. Esta organización se llama ICANN (Internet Corporation for Assigned Names and Numbers: http://www.icann.org) y que se encarga de dar tanto dominios genéricos como IP Los dominios genéricos son registrados por compañías a las que ICANN da el derecho a que actúen como tales bajo ciertas restricciones (Accredited Registrars) España: (se puede pedir a cualquier entidad) z z z z z z z z z z z z z Gestión en la asignación de Dominios El dominio territorial de España (.es) los asigna el Ministerio de Fomento: servicio ES-NIC (http://www.nic.es) gestionado por INECO (empresa pública) Se restringe el acceso al dominio territorial (.es) a “las organizaciones legalmente establecidas en España entendiendo como tal toda persona jurídica de derecho público o privado debidamente constituida de acuerdo con el marco normativo que las regule” Tarifas: (http://www.nic.es/tarifas/ ) Alta o registro de un nuevo dominio: 12.000 ptas (72.12 €) Mantenimiento anual de un dominio: 8.000 ptas (48.08 €) Nominalia (de la Fundació Catalana per a la Recerca: http://www.nominalia.com) o, Interdomain (Compañía internacional de registro de nombres y dominios tanto genéricos como territoriales http://www.interdomain.com) 97 98 Tema 2: IP z Tema 4: Conceptos Avanzados de IP Gestión en la asignación de Dominios Las empresas pueden: Hacer uso de los servicios de un ISP sin tener un dominio propio: e.g; www.isp.es/empresa.html y [email protected] “Adquirir” un dominio propio y albergar sus servidores en la empresa: e.g; www.empresa.es y [email protected] “Adquirir” un dominio propio y albergar los servidores en un ISP z z z z z z z z z z Firewalls: Se emplean para proteger una red interna de Internet. No protegen contra los ataques internos. Son puntos entre dos redes por donde todo el tráfico debe pasar (check point). El tráfico puede ser controlado, puede ser autentificado en el dispositivo y todo el tráfico puede ser registrado. Definición del problema : ¿Qué? ¿Cómo? ¿Quién? ¿Cuánto? z z z z 99 100 Tema 4: Conceptos Avanzados de IP Tema 4: Conceptos Avanzados de IP • Metodos de ataques: Social engineering: Se obtiene información de la buena voluntad de la gente, información de las papeleras. Scanning: Se buscan puertos y direcciones IP mediante funciones como “Ping”. Mediante War dialing se buscan modems que tengan accesos a los host o redes. Misadministration: Explota la relación de confianza del administrador. Non-autenticated/centralized services: Hay que vigilar los servicios no autenticados como SMTP, DNS, RIP, TFTP / SNMP, registros remotos. Malicious data: CD de autoarranque, mala programación, programas maliciosos. Spoofing: suplantar usuarios. Exploit software bugs: utilizar agujeros causados por otros programas, se cambian los privilegios. Denial-of-service: estos ataques provocan la inutilización de las redes o equipos que han sido atacados, discos, redes, tablas etc. • MZ DMZ • WWW DNS FTP SMTP FW Router • Internet • Router • • • • 101 102 Tema 4: Conceptos Avanzados de IP • Categorías de firewalls z z z z 103 Tema 4: Conceptos Avanzados de IP Firewalls comerciales: • Packet filtering and screening routers: utiliza un filtro basado en una combinación de la dirección IP del host de la red. También puede añadir el número del puerto y otros datos. Application gateways or proxy servers: efectua de intermediario aceptando los servicios de la red que solicita el usuario, actuan a nivel de aplicación y pueden examinar el contenido de la misma. Stateful inspection (dinamic packet filtering): toma el estado de las sesiones y las cambia las reglas siempre según una política preestablecida. Hybrid firewalls: combinación de las tres categorias. z z z z z 104 CheckPoint – Firewall-1 Cisco – PIX Firewall Axent – Raptor Network Associates – Gauntlet Secure Computing – Sidewinder Tema 4: Conceptos Avanzados de IP z Tema 4: Conceptos Avanzados de IP ACL: Para identificar los bits que han de ser verificados en una dirección IP o rango de direcciones IP es necesario utilizar mascaras y en este caso se llama wildcard. La wildcard funciona al contrario de la máscara IP, un “0” en la mascara indica que hay que comprobar el bit correspondiente a la dirección y si hay un “1” el bit puede ser ignorado. Ejemplo: supongamos que deseamos comprobar las subredes IP z 206.153.80.0/24 a 206.153.90.0/24 Red . Host 206.153.80. 0 z 01010000 = 80 01010001 = 81 Coin-Indif ………… 01011010 = 90 Máscara de wildcard que coinciden con los bits : 0000 comprobar E.g.; 206.153.80.0 /24 • Máscara: 255.255.255.0 • Wildcard Mask: 0.0.0.255 Máscara de wildcard que no coinciden con los bits : 1111 ignorar, en este caso hasta 1010 Dirección y mascara wildcard 206.153.80.0 0.0.10.255 105 Máscara wildcard 00001010 = .10 106 Tema 4: Conceptos Avanzados de IP ACL La sintaxis del comando access-list de una lista de acceso extendida: Router(config)#access-list número_lista_de_acceso {permit I deny} protocolo dirección_de_origen máscara_origen [puerto_del_operador] dirección_de_destino máscara_destino [puerto_del_operador] [established] [log] Donde: •número_lista_de_acceso: identifica la lista entre 100 y 199 •permit I deny: indica si se permitirá o bloqueará una lista especifica •Protocolo: puede ser IP, TCP, UDP, ICMP, GRE, O IGRP •origen y destino: identifican las direcciones IP origen y destino •máscara_origen y máscara_destino: mascara wildcard los “0” las posiciones que deben coincidir y los “1” no importan •puerto_del_operador: puede ser lt(menor que), gt(mayor que), eq(igual que), neq(distinto de) y un número de puerto del protocolo •Established: solo para TCP de entrada, permite que el tráfico TCP pase si el paquete utiliza una conexión preestablecida (ACK) •Log: envia un mensaje de registro a la consola Tema 4: Conceptos Avanzados de IP z 107 z ACL Ejemplo : bloqueo el tráfico FTP desde una subred específica 206.150.80.0 206.150.0.0 206.150.81.0 S0 E0 E1 206.150.81.5 X Tráfico FTP Router(config)#access-list 101 deny tcp 206.150.81.0 0.0.0.255 206.150.80.0 0.0.0.255 eq 21 Router(config)#access-list 101 deny tcp 206.150.81.0 0.0.0.255 206.150.80.0 0.0.0.255 eq 20 Router(config)#access-list 101 permit any any (Any = 0.0.0.0 255.255.255.255) 108