19.11.2014 Views

Tema 2: IP Tema 2: IP Tema 2: IP Tema 2: IP - UPC

Tema 2: IP Tema 2: IP Tema 2: IP Tema 2: IP - UPC

Tema 2: IP Tema 2: IP Tema 2: IP Tema 2: IP - UPC

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Funcionalidad de un router<br />

• Fragmentación, reensamblado y MTU<br />

• ICMP, MTU path discovery y troubleshooting<br />

• Ping<br />

• Traceroute<br />

• Encaminamiento en <strong>IP</strong><br />

• Path determination y concepto de convergencia<br />

• Encaminamiento estático y dinámico<br />

• Protocolos de Encaminamiento Interno (IGP’s) : R<strong>IP</strong><br />

• Sistemas Autónomos (AS) y protocolos de<br />

Encaminimamiento Externo : BGP<br />

• DNS<br />

• Direcciones privadas y NAT (Network Address Translation)<br />

• Firewalls y ACL’s (Listas de acceso)<br />

• Funcionalidad de un router<br />

• Los routers operan en la capa de red registrando y grabando las<br />

diferentes redes y eligiendo la mejor ruta entre las mismas.<br />

• Cualquier host A (<strong>IP</strong> A ) que quiera enviar un datagrama <strong>IP</strong> a otro host B<br />

(<strong>IP</strong> B ) que esté en una subred distinta (NetID A ≠ NetID B ) debe hacerlo a<br />

través de un router.<br />

• Los routers tienen una dirección <strong>IP</strong> por cada interfaz.<br />

Red A<br />

Router<br />

Router<br />

Red B<br />

1<br />

2<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Funcionalidad de un router<br />

• Si un host recibe un datagrama que no está dirigido a él, el host<br />

descarta el datagrama<br />

• Si un router recibe un datagrama que no está dirigido a él, intenta<br />

encaminarlo a un host o a otro router FORWARDING<br />

tcp_input()<br />

tcp_output()<br />

ip_input() ip_forwarding() ip_output()<br />

Buffer<br />

Driver<br />

Buffer<br />

Driver<br />

• Funcionalidad de un router<br />

• El router deberá entre otras cosas realizar las siguientes funciones:<br />

• “Forwarding”: envíar datagramas de una subred a otra.<br />

• “Routing”: decidir a que subred debe enviar un datagrama que le<br />

llegue de otra subred (decidir interficies de salida del router).<br />

• Separan las tramas de la capa 2 y envian paquetes basados en las<br />

direcciones de destino de capa 3.<br />

• “Error messaging”: notificar al host origen con un mensaje ICMP<br />

de cualquier problema que le impida realizar un “forwarding”<br />

• Otras funciones:<br />

• “Fragmentation and reassembly”: (cada vez más en desuso) debido<br />

al uso del “MTU Path Discovery”<br />

• “Quality of Service” (QoS): cada vez más en uso con la introducción<br />

de aplicaciones en tiempo real (Reserva de recursos)<br />

• Otras: balanceos de cargas, servicios multiprotocolo, seguridad<br />

informática (<strong>IP</strong>Sec), protección de entrada en Intranets (firewalls),<br />

conectar diferentes tecnologías de capa dos como Eth, TR....<br />

3<br />

4


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Ejemplo:<br />

• Routers<br />

Modem<br />

Router debe:<br />

‣ Routing: decidir la interficie de<br />

salida del router para cada<br />

datagrama que le llega<br />

• Routers transmiten información de nivel 3 (datagramas)<br />

• Un router no retransmite (forwarding) tramas broadcast (e.g.<br />

ARP).<br />

• Selecciona la mejor ruta y conmuta paquetes de datos.<br />

<strong>IP</strong> A<br />

Internet<br />

‣ Forwarding: usar la tecnología<br />

de nivel 2 para transmitir<br />

datagramas por una interficie de<br />

salida<br />

• Se utiliza para interconectar una o más LAN con objeto de crear<br />

una WAN.<br />

A<br />

5 Subredes: A,<br />

B, C, D, E<br />

B C D E<br />

<strong>IP</strong> E<br />

‣ Error messaging: notificar<br />

cualquier problema que impida el<br />

forwarding de datagramas usando<br />

mensajes ICMP<br />

Cada router tiene una <strong>IP</strong> con NetID distinto<br />

por interficie de salida<br />

Router<br />

Router<br />

5<br />

6<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Routers, Bridges/Switches y Hubs<br />

• Hubs separados por switches forman un dominio de colisiones<br />

• Switches y Hubs separados por un router forman un dominio<br />

broadcast<br />

• Bridges/Switches deben estar distribuidos de forma que NO<br />

formen bucles cerrados (Spanning Tree Protocol, IEEE 802.1q<br />

se encarga de ello)<br />

• Los conmutadores transmiten a mayor velocidad que los routers y<br />

además son más baratos<br />

• MTU (Maximum Transfer Unit)<br />

• Número máximo de bytes de datos que pueden aparecer<br />

encapsulados en una trama de red<br />

• Cada red (Ethernet, ATM, X.25 ...) tiene su propia MTU<br />

• “Path MTU”: se define como el mínimo MTU de entre todas las<br />

redes que hay entre dos hosts conectados a Internet<br />

Network<br />

MTU (Bytes)<br />

Punto a Punto 296<br />

X.25 576<br />

Ethernet 1500<br />

IEEE 802.3/802.2 1492<br />

FDDI 4352<br />

IEEE 802.5 (4 Mbps TR) 4464<br />

IBM (16 Mbps TR) 17914<br />

7<br />

8


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Fragmentación y reensamblado:<br />

• Cada día menos usado con el uso de MTU Path Discovery<br />

•Fragmentación y reensamblado:<br />

<strong>IP</strong> A<br />

MTU = 1500<br />

bytes<br />

R 1 R 2<br />

Red 2<br />

Red 3<br />

MTU = 576<br />

bytes<br />

MTU = 1500<br />

bytes<br />

<strong>IP</strong> B<br />

0 16 19<br />

31<br />

Identificación<br />

Flags<br />

Desplazamiento<br />

de Fragmento<br />

Red 1<br />

10<br />

• R 1 fragmentará datagramas enviados por host A debido a que la MTU<br />

de la Red 2 es menor que la de la Red 1 (Path MTU = 576 bytes)<br />

• El datagrama no se reensambla en R 2 , sino que lo hará el destino<br />

(Host B )<br />

0<br />

D<br />

F<br />

M<br />

F<br />

• R2 reenvía los fragmentos como si fuesen datagramas<br />

independientes (podrían llegar desordenados o que alguno de los<br />

fragmentos no llegase)<br />

9<br />

• Usa los campos “flags”, “fragment offset”, “total length” de la cabecera<br />

<strong>IP</strong> para fragmentar y reensamblar<br />

10<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Fragmentación y reensamblado:<br />

• “Flags”: campo de 3 bits. El segundo y tercer bit se usan para<br />

fragmentar:<br />

• Primer bit reservado a “0”<br />

• Flag DF“don’t fragment”<br />

• “0” = puede fragmentar el datagrama<br />

• “1” = no pude fragmentar el datagrama<br />

• si activo un router NO fragmentará el datagrama<br />

(devolverá un mensaje ICMP indicando que no puede<br />

enviar el datagrama ya que no se le permite fragmentar)<br />

• Flag M F “more fragments”<br />

• “0” = único ó último fragmento<br />

• “1” = aun hay más fragmentos<br />

• activo cuando se fragmenta excepto en el último fragmento<br />

que se desactiva<br />

• Fragmentación y reensamblado:<br />

• Identificación: número de 16 bits que identifica el datagrama,<br />

permite implementar números de secuencias y reconocer<br />

diferentes fragmentos de un mismo datagrama ya que todos<br />

comparten este número.<br />

• “Fragment offset” ó desplazamiento de Fragmento: campo de 13<br />

bits que indica el offset ó tamaño (en bytes) en bloques de<br />

fragmento con respecto al datagrama original desde el origen del<br />

datagrama<br />

• Todos los fragmentos excepto el último deben ser multiplos de 8<br />

bytes (en su campo de datos)<br />

• Las direcciones <strong>IP</strong> origen y destino NO se modifican<br />

• Si un fragmento se pierde, todos los fragmentos del datagrama se<br />

descartarán (esto se descubre en destino que es el que<br />

reensambla los fragmentos)<br />

11<br />

12


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Fragmentación y reensamblado:<br />

• ICMP (Internet Control Message Protocol)<br />

• Permite el intercambio de mensajes de control y de supervisión entre<br />

dos ordenadores y sobre la red.<br />

1500 (Ethernet data) = 20 (<strong>IP</strong> header) + 1480 (<strong>IP</strong> data)<br />

• Notifica un fallo y sugiere las acciones que deben ser tomadas para<br />

cada error.<br />

flag D = 0, flag M = 0, offset = 0, total length = 1500<br />

572 (layer 2) = 20 (<strong>IP</strong> header) + 552 (<strong>IP</strong> data)<br />

flag D = 0, flag M = 1, offset = 0, total length = 572<br />

• Reporta las condiciones de error sólo a la fuente original. La fuente<br />

debe decidir que acción tomar.<br />

• El host no sabe que GW ó maquina ocasionó el problema.<br />

• El datagrama sólo contiene la dirección <strong>IP</strong> fuente y destino final<br />

572 (layer 2) = 20 (<strong>IP</strong> header) + 552 (<strong>IP</strong> data)<br />

• Los mensajes ICMP requieren de dos niveles de encapsulación<br />

flag D = 0, flag M = 1, offset = 552, total length = 572<br />

• Protocolo de control para comunicar incidencias:<br />

396 (layer 2) = 20 (<strong>IP</strong> header) + 376 (<strong>IP</strong> data)<br />

flag D = 0, flag M = 0, offset = 1104, total length = 396<br />

1480 bytes = 552 (multiplo de 8) + 552 (multiplo de 8) + 376<br />

• Un datagrama no puede alcanzar su destino<br />

• Un router no puede almacenarlo temporalmente para reenviarlo<br />

• Un router indica a un ordenador que envíe el datagrama por una<br />

ruta mas corta<br />

13<br />

14<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

•ICMP (Internet Control Message Protocol)<br />

• ICMP (Internet Control Message Protocol)<br />

• ICMP comunica mensajes de error y control ademas de otras<br />

condiciones que requiera atención por parte de un router o host<br />

Cabecera<br />

Datos<br />

• Los mensajes van encapsulados en datagramas <strong>IP</strong><br />

ICMP<br />

ICMP<br />

Cabecera<br />

DATAGRAMA<br />

Datos<br />

DATAGRAMA<br />

<strong>IP</strong> header<br />

ICMP mensaje<br />

Cabecera<br />

TRAMA<br />

Datos<br />

TRAMA<br />

0 8 16 31<br />

Tipo Codigo Checksum<br />

ICMP Data (Depending on the type of message)<br />

15<br />

16


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• ICMP (Internet Control Message Protocol)<br />

• Tipos de mensajes:<br />

• Respuesta a Eco (0)<br />

• Detectar destinos inalcanzables (3)<br />

• Petición de control de flujo (4)<br />

• Redireccionamiento de rutas (5)<br />

• Solicitud de Eco (8)<br />

• Anuncio de rutas (9)<br />

• Petición de rutas (10)<br />

• Tiempo excedido (11)<br />

• Problema de parámetros (12)<br />

• Marca de tiempo (13)<br />

• Respuesta a la marca de tiempo (14)<br />

• Petición de máscara de dirección (17)<br />

• Respuesta a la máscara de dirección (18)<br />

• ICMP (Internet Control Message Protocol)<br />

• Checksum cubre todo el mensaje ICMP<br />

• Hay 15 tipos de mensajes definidos por el campo “type”<br />

• Un mismo tipo puede emplear el campo “code” para especificar<br />

cierta condición del mensaje<br />

Type Code Description Query Error<br />

0 0 Echo reply (Ping reply) x<br />

3 0 Network unreachable x<br />

1 Host unreachable x<br />

2 Protocol unreachable x<br />

3 Port unreachable x<br />

..........<br />

8 0 Echo request (Ping request) x<br />

9 0 Router advertisement x<br />

11 0 time-to-live exceeded x<br />

...................................<br />

17<br />

18<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

19<br />

• Tipos de mensajes ICMP (mensaje ECO petición y respuesta)<br />

• La respuesta devuelve los mismos datos que se recibieron en la<br />

petición<br />

• Se utiliza para construir la herramienta “PING”<br />

• Se emplea para detectar problemas en la red<br />

• Permite comprobar que existe comunicación entre dos host a nivel<br />

de capa de red<br />

• Permite comprobar si el destino esta activo y si existe una ruta hacia<br />

el<br />

• Permite medir el tiempo de ida y vuelta<br />

• Permite estimar la fiabilidad de la ruta<br />

• Puede ser utilizado tanto por host como por routers<br />

• Comprueban que la capa física (cableado), acceso al medio (tarjetas<br />

de red), y red (configuración <strong>IP</strong>) están correctas<br />

• No se comprueban las capas de transporte y aplicación que podrían<br />

estar mal configuradas<br />

20<br />

• Tipos de mensajes ICMP ( Mensaje de Destino inalcanzable)<br />

• Son enviados por un router cuando no puede enviar o entregar<br />

un datagrama <strong>IP</strong><br />

• Se envían al emisor del datagrama original<br />

• El campo código tiene una información adicional del problema<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

Red Inaccesible<br />

Host Inaccesible<br />

Protocolo Inaccesible<br />

Puerto Inaccesible<br />

Necesita Fragmentación<br />

Falla en la Ruta Origen<br />

Red de Destino Desconocida<br />

Host Destino Desconocido<br />

Host de Origen Aislado<br />

Comunicación con Red Destino Administrativamente Prohibida<br />

Comunicación con Host Destino Administrativamente Prohibida<br />

Red Inaccesible por el Tipo de Servicio<br />

Host Inaccesible por el Tipo de Servicio


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Tipos de mensajes ICMP (Mensaje de Paquete de restricción)<br />

• Se utiliza para informar al Host de problema de congestión de red<br />

• Es enviado por un router cuando tiene problemas debido a la recepción<br />

de un número excesivo de datagramas<br />

• La recepción de un paquete de restricción provocara una disminución<br />

de la tasa de inyección de datagramas al Host<br />

• No existe un paquete que invierta el efecto de este, la situación se<br />

normaliza gradualmente cuando dejan de recibirse mensajes de este<br />

tipo.<br />

• Tipos de mensajes ICMP ( Mensaje de Tiempo excedido )<br />

• Este tipo de mensajes los pueden enviar tanto los router como<br />

los host<br />

• Los routers cuando descartan un datagrama por exceder su<br />

tiempo de vida (Código = 0)<br />

• Los host al ocurrir un timeout mientras se esperaban todos los<br />

fragmentos de un datagrama, descartándose (Código = 1)<br />

21<br />

22<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• TTL (Time To Live)<br />

• Especifica el tiempo(en segundos) que se permite viajar a este<br />

datagrama.<br />

• Campo que indica el límite de routers que puedes atravesar en<br />

Internet<br />

• Se inicializa en cada datagrama con un valor como máximo de 255<br />

(8 bits de campo)<br />

• Cada vez que el datagrama atraviesa un router se decrementa en<br />

1ya que el router es capaz de procesarlo en menos de 1 segundo.<br />

• Si un datagrama llega a un router y su TTL = 0, el router descarta el<br />

datagrama y envía un mensaje ICMP (mensaje con tipo = 11)<br />

• Este campo se utiliza en el programa “traceroute” para averiguar la<br />

ruta que atraviesa un datagrama cuando viaja por Internet, también<br />

el programa “ping” suele indicar el TTL<br />

• MTU Path Discovery (RFC 1063)<br />

• Objetivo: evitar la fragmentación de datagramas averiguando cual<br />

es la Mínima MTU entre el origen y el destino<br />

• ¿Cómo conseguirlo?<br />

• Se envía un datagrama con MTU la del enlace y con el bit<br />

Don’t Fragment activo<br />

• Cuando un router se encuentre que tiene una MTU menor que<br />

la que le llegue no fragmentará y enviará un mensaje ICMP<br />

“destino inalcanzable” (type = 3, code = 4 “fragmentation<br />

needed but don’t fragment bit set”)<br />

• Este mensaje ICMP advierte cual es la MTU del enlace que<br />

necesita fragmentar (sino soporta esta opción, advierte MTU =<br />

0)<br />

• El origen vuelve a empezar con la nueva MTU hasta que<br />

averigue la mínima MTU, si la MTU advertida es 0, lo intenta<br />

con MTU conocidas más pequeñas<br />

23<br />

24


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Ping:<br />

• Se encarga de verificar la conectividad.<br />

• El comando “ping” se usa como herramienta de diagnóstico para<br />

averiguar<br />

• Si un host está conectado y es accesible<br />

• Si los routers intermedios son operativos<br />

• Tu propio host (software <strong>IP</strong>) funciona correctamente<br />

• Ping envía “echo requests” a un host determinado. Este le<br />

devuelve un “echo reply”<br />

• Los echo request/reply son mensajes ICMP<br />

• Ping devuelve información del tipo “retardo desde cliente a<br />

servidor”, valor del TTL, cantidad de paquetes ICMP perdidos<br />

ping [ -dfLnqRrv] [ -c count] [ -I ifaddr] [ -i wait] [ -l preload] [ -p pattern]<br />

[ -S ifaddr] [ -s packetsize] [ -t ttl] [ -w maxwait] host<br />

ping –c3 aucanada<br />

PING aucanada.ac.upc.es (147.83.35.24): 56 data bytes<br />

64 bytes from 147.83.35.24: icmp_seq=0 ttl=255 time=0.093 ms<br />

64 bytes from 147.83.35.24: icmp_seq=1 ttl=255 time=0.074 ms<br />

64 bytes from 147.83.35.24: icmp_seq=2 ttl=255 time=0.079 ms<br />

--- aucanada.ac.upc.es ping statistics ---<br />

3 packets transmitted, 3 packets received, 0% packet loss<br />

round-trip min/avg/max = 0.074/0.082/0.093 ms<br />

ping -c3 -s512 rogent<br />

PING rogent.ac.upc.es (147.83.31.7): 512 data bytes<br />

520 bytes from 147.83.31.7: icmp_seq=0 ttl=254 time=1.530 ms<br />

520 bytes from 147.83.31.7: icmp_seq=1 ttl=254 time=1.582 ms<br />

520 bytes from 147.83.31.7: icmp_seq=2 ttl=254 time=1.584 ms<br />

--- rogent.ac.upc.es ping statistics ---<br />

3 packets transmitted, 3 packets received, 0% packet loss<br />

round-trip min/avg/max = 1.530/1.565/1.584 ms<br />

25<br />

26<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Traceroute<br />

• Programa que permite averiguar la ruta que ha seguido un<br />

datagrama de host a host.<br />

• Se aprovecha de que cuando un datagrama llega a un router con<br />

el campo TTL = 0 este es descartado y el origen recibe un<br />

mensaje ICMP (type = 11, code = 0)<br />

• Progama envía:<br />

• datagramas UDP con la cabecera <strong>IP</strong> con el TTL =1, 2, 3, 4, ....<br />

(envía 3 datagramas con cada TTL) hasta que se llegue al<br />

host destino<br />

• Como el puerto UDP destino es desconocido, el host destino<br />

devuelve un error ICMP de destino no alcanzable (unreachable<br />

port, type=3, code=3)<br />

• Además el datagrama lleva en su campo de datos un número<br />

de secuencia, una copia del TTL y un timestamp con el tiempo<br />

en que se envió el datagrama para dar estadísticas<br />

· traceroute [ -l] [ -m max_ttl] [ -n] [ -p port] [ -q nqueries] [ -r]<br />

[ -s src_addr] [ -t tos] [ -w waittime] host [packetsize]<br />

• traceroute fonoll<br />

traceroute to fonoll.ac.upc.es (147.83.31.14), 30 hops max, 40 byte packets<br />

1 arenys5.ac.upc.es (147.83.35.2) 1 ms 1 ms 2 ms<br />

2 fonoll.ac.upc.es (147.83.31.14) 1 ms * 1 ms<br />

• traceroute -q 4 fonoll 512<br />

traceroute to fonoll.ac.upc.es (147.83.31.14), 30 hops max, 512 byte packets<br />

1 arenys5.ac.upc.es (147.83.35.2) 2 ms 2 ms 1 ms 2 ms<br />

2 fonoll.ac.upc.es (147.83.31.14) 1 ms * 1 ms *<br />

27<br />

28


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• traceroute fonoll 5600<br />

traceroute to fonoll.ac.upc.es (147.83.32.14), 30 hops max, 5600 byte packets<br />

MTU=4352 MTU=2002 MTU=1492 arenys5.ac.upc.es (147.83.35.2) 3 ms 3 ms 2 ms<br />

fonoll.ac.upc.es (147.83.32.14) 2 ms * 2 ms<br />

• tcpdump –i eth0 host aucanada and fonoll<br />

09:57:48.925224 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33435: udp 1464 [ttl 1]<br />

09:57:48.928027 arenys5.ac.upc.es > aucanada.ac.upc.es: icmp: time exceeded in-transit [tos 0xc0]<br />

09:57:48.932349 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33436: udp 1464 [ttl 1]<br />

HO<br />

U<br />

MTY<br />

NYC<br />

NS<br />

SAL<br />

NYC<br />

CC<br />

MIA<br />

TIC<br />

MIA<br />

SD<br />

SJU<br />

MA<br />

D<br />

PE MA<br />

D<br />

MA RR<br />

D<br />

DE<br />

LON<br />

PAR<br />

VIE<br />

MIL<br />

ROM<br />

09:57:48.935629 arenys5.ac.upc.es > aucanada.ac.upc.es: icmp: time exceeded in-transit [tos 0xc0]<br />

BOG<br />

09:57:48.935859 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33437: udp 1464 [ttl 1]<br />

09:57:48.938164 arenys5.ac.upc.es > aucanada.ac.upc.es: icmp: time exceeded in-transit [tos 0xc0]<br />

09:57:48.938456 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33438: udp 1464<br />

09:57:48.940628 fonoll.ac.upc.es > aucanada.ac.upc.es: icmp: fonoll.ac.upc.es udp port 33438 unreachable<br />

(DF)<br />

XXX<br />

YY<br />

XXX<br />

YY<br />

XXX<br />

YY<br />

Nodo completo<br />

Sólo MS<br />

Sólo <strong>IP</strong><br />

LIM<br />

LUR<br />

SCL<br />

PR<br />

SCL<br />

FL<br />

BUE<br />

C1<br />

SAO<br />

LS<br />

MON<br />

BUE<br />

BA<br />

SAO<br />

SI<br />

Tipo de enlace<br />

2.5 Gbps<br />

622 Mbps<br />

155 Mbps<br />

45/34 Mbps<br />

2 Mbps<br />

09:57:48.944172 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33439: udp 1464<br />

09:57:51.937620 aucanada.ac.upc.es.56020 > fonoll.ac.upc.es.33440: udp 1464<br />

Enlace cable/fibra<br />

Enlace por satélite<br />

09:57:51.939703 fonoll.ac.upc.es > aucanada.ac.upc.es: icmp: fonoll.ac.upc.es udp port 33440 unreachable<br />

(DF)<br />

29<br />

30<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

· traceroute www.cisco.com<br />

traceroute to cio-sys.cisco.com (192.31.7.130), 30 hops max, 40 byte packets<br />

1 arenys5 (147.83.35.2) 0.768 ms 0.684 ms 0.698 ms<br />

2 phanella.upc.es (147.83.124.128) 2.836 ms 1.406 ms 1.875 ms<br />

3 termcat.cesca.es (193.145.223.9) 2.370 ms 1.332 ms 1.055 ms<br />

4 193.145.223.222 (193.145.223.222) 2.435 ms 3.178 ms 1.793 ms<br />

5 A0-1-1.EB-Madrid00.red.rediris.es (130.206.224.1) 14.021 ms 11.974 ms 15.546 ms<br />

6 A6-0-0-1.EB-Madrid0.red.rediris.es (130.206.224.74) 17.334 ms 26.908 ms 28.304 ms<br />

7 194.69.226.13 (194.69.226.13) 261.393 ms 262.017 ms 258.488 ms<br />

8 194.69.227.37 (194.69.227.37) 251.191 ms 262.695 ms 260.127 ms<br />

9 borderx2-hssi3-0.PompanoBeach.cw.net (204.70.92.121) 532.621 ms 519.488 ms 529.751 ms<br />

10 * * core1-fddi-1.PompanoBeach.cw.net (204.70.92.33) 543.744 ms<br />

11 204.70.12.2 (204.70.12.2) 537.980 ms * *<br />

12 * 204.70.12.1 (204.70.12.1) 512.827 ms 572.145 ms<br />

13 ast-bbn1-nap.Atlanta.cw.net (204.70.10.170) 545.150 ms 531.534 ms 539.311 ms<br />

14 h10-1-0.paloalto-br2.bbnplanet.net (4.0.1.197) 695.972 ms 628.130 ms *<br />

15 * * p2-0.paloalto-nbr2.bbnplanet.net (4.0.2.197) 645.123 ms<br />

16 p0-0-0.paloalto-cr18.bbnplanet.net (4.0.3.86) 694.410 ms * *<br />

17 * h1-0.cisco.bbnplanet.net (4.1.142.238) 716.981 ms 620.717 ms<br />

18 * pigpen.cisco.com (192.31.7.9) 687.278 ms *<br />

19 cio-sys.cisco.com (192.31.7.130) 630.708 ms 678.356 ms *<br />

31<br />

32


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

Direcciones privadas (RFC 1918)<br />

• Direcciones privadas definidas por IANA: son direcciones que no son<br />

enrutables en Internet<br />

• Clase A: 10.0.0.0 – 10.255.255.255 CIDR 10.0.0.0/8<br />

• Clase B:172.16.0.0 –172.31.255.255 CIDR172.16.0.0/12<br />

• Clase C:192.168.0.0–192.168.255.255 CIDR 92.168.0.0/16<br />

• Ideales para Labs o Test-home networks<br />

• Ideal en Intranets<br />

• Ideal en WAN links (core backbones) para ahorrar direcciones globales<br />

• Problema: no son enrutables por Internet<br />

33<br />

34<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• NAT (Network Address Translation) (RFC 1631)<br />

• Permite conectar varios PCs de una misma subred a Internet,<br />

utilizando únicamente una dirección <strong>IP</strong> pública para ello.<br />

• Mecanismo que permite la traducción de direcciones privadas a<br />

públicas para poder acceder a Internet desde una intranet<br />

• NAT se aprovecha de las características de TCP/<strong>IP</strong>, que permiten<br />

a un PC mantener varias conexiones simultáneas con un mismo<br />

servidor remoto. Esto es posible gracias a los campos de las<br />

cabeceras que definen unívocamente cada conexión, estos son:<br />

dirección origen, puerto origen, dirección destino y puerto destino.<br />

• Las direcciones identifican los equipos de cada extremo y los<br />

puertos cada conexión entre ellos.<br />

• Necesitamos un Router NAT en la frontera entre las redes que<br />

queremos traducir<br />

• El mecanismo debe ser transparente a los usuarios finales<br />

• Compatibilidad con firewalls y con seguridad en Internet<br />

Intranet<br />

Router NAT<br />

Internet<br />

35<br />

36


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• NAT estático: consiste en substituir la parte de host de la <strong>IP</strong> privada<br />

en el host de la <strong>IP</strong> pública<br />

• NAT dinámico (Por pool de la dirección <strong>IP</strong>):<br />

• Tenemos un pool de direcciones públicas y asignamos <strong>IP</strong> privada<br />

con <strong>IP</strong> pública<br />

Src:192.168.0.2:1108<br />

Dst:207.29.19.8:80<br />

192.168.0.2<br />

192.168.0.3<br />

INTRANET<br />

INTERNET<br />

Router<br />

NAT<br />

192.168.0.1 206.16.55.1<br />

Src:206.16.55.2:1108<br />

Dst:207.29.19.8:80<br />

Web server<br />

207.29.19.8<br />

FTP server<br />

205.4.22.31<br />

Src:192.168.0.2:1108<br />

Dst:207.29.19.8:80<br />

192.168.0.2<br />

192.168.0.3<br />

INTRANET<br />

INTERNET<br />

Router<br />

NAT<br />

192.168.0.1 206.16.55.1<br />

Src:206.16.55.2:1108<br />

Dst:207.29.19.8:80<br />

Web server<br />

207.29.19.8<br />

FTP server<br />

205.4.22.31<br />

Src:192.168.0.3:2401<br />

Dst:205.4.22.31:21<br />

Static NAT Table<br />

Inside<br />

Outside<br />

192.168.0.x 206.16.55.x<br />

Src:206.16.55.3:2401<br />

Dst:205.4.22.31:21<br />

Src:192.168.0.3:2401<br />

Dst:205.4.22.31:21<br />

Dinamic NAT Table<br />

Inside<br />

Outside<br />

192.168.0.2 206.16.55.2<br />

192.168.0.3 206.16.55.3<br />

Pool: 206.16.55.0 ... 15<br />

Src:206.16.55.3:2401<br />

Dst:205.4.22.31:21<br />

37<br />

38<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• NAT dinámico ó Overloading (PAT: Port Address Translation):<br />

• El router tiene una sóla <strong>IP</strong> pública, y elige un nuevo puerto origen y<br />

mapea las <strong>IP</strong> privadas a partir del puerto designado<br />

Src:192.168.0.2:1108<br />

Dst:207.29.19.8:80<br />

192.168.0.2<br />

192.168.0.3<br />

Src: 192.168.0.3:2401<br />

Dst: 205.4.22.31:21<br />

Web server, <strong>IP</strong><br />

192.168.0.4:80<br />

Reacheable as<br />

206.16.55.1:80<br />

Router<br />

NAT<br />

192.168.0.1 206.16.55.1<br />

Dinamic NAT Table<br />

Inside<br />

Outside<br />

192.168.0.2:1108 61001<br />

192.168.0.3:2401 61002<br />

Src:206.16.55.1:61001<br />

Dst:207.29.19.8:80<br />

Web server,<br />

207.29.19.8<br />

FTP server,<br />

205.4.22.31<br />

Src:206.16.55.1:61002<br />

Dst:205.4.22.31:21<br />

• Protocolos sensibles a NAT:<br />

• NAT modifica cabecera <strong>IP</strong> recalcular el checksum <strong>IP</strong> y TCP<br />

• Protocolos que llevan embebida la <strong>IP</strong> también debe ser<br />

modificada ALG (Application-Level Gateway)<br />

• ICMP: “Destination unreachable messages” llevan <strong>IP</strong><br />

embebidas<br />

• Comandos FTP llevan <strong>IP</strong> embebidas como “strings”<br />

(cambiarlas además implica que cambia la longitud del<br />

segmento TCP)<br />

• SNMP (Simle Network Management Protocol)<br />

• NetBIOS over TCP/<strong>IP</strong> (NBT)<br />

• NAT + Firewalls + <strong>IP</strong>sec<br />

• DNS, Kerberos, X-Windows, remote-shell, S<strong>IP</strong>, ... (ver Internet<br />

Draft “Protocol Complicaitons with the <strong>IP</strong> Network Address<br />

Translation”)<br />

*a partir del puerto 1024<br />

Virtual Server Table<br />

39<br />

192.168.0.4:80 80<br />

40


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Routing (encaminamiento):<br />

• Cada router mantiene una tabla de encaminamiento que indica<br />

como llegar a un destino (dirección <strong>IP</strong> e interficie)<br />

• En vez de una dirección <strong>IP</strong> puede haber prefijos de red (NetID) que<br />

representen a redes enteras<br />

• La tabla es rellenada por un algoritmo de encaminamiento<br />

<strong>IP</strong> A<br />

atm 0<br />

eth 0<br />

Red ATM<br />

Todos los host<br />

tienen el mismo<br />

NetID<br />

eth 1<br />

eth 2<br />

<strong>IP</strong> C<br />

<strong>IP</strong> B<br />

Routing table<br />

<strong>IP</strong> address<br />

Interface<br />

<strong>IP</strong> A<br />

eth 0<br />

<strong>IP</strong> B<br />

eth 1<br />

<strong>IP</strong> C<br />

eth 2<br />

NetID<br />

atm0<br />

• ¿Qué hace un router cuando recibe un datagrama?<br />

• Extraer la dirección <strong>IP</strong> dest del datagrama recibido<br />

• Extraer el NetID y HostID de la dirección <strong>IP</strong> dest<br />

• Si el NetID coincide con alguno de las redes que tiene conectadas<br />

directamente a través de una interficie, enviar el datagrama<br />

directamente por esa interficie, sino:<br />

• mirar si la dirección <strong>IP</strong> o el NetID coincide con alguna entrada<br />

dentro de la tabla y sacarla por la interficie correspondiente<br />

(Longest Match Lookup)<br />

• Sino coincide entonces enviarla al router por defecto<br />

• Default Router (Router por defecto): router dentro de una red al<br />

que se le envían aquellos datagramas que un host u otro router no<br />

saben donde encaminar. El router por defecto tienen más<br />

información que le permite encaminar<br />

41<br />

42<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Longest Match Lookup<br />

• Proceso por el cual el router encuentra una dirección de red en<br />

su tabla de encaminamiento<br />

• En la tabla se guardan el <strong>IP</strong> + máscara (NetID)<br />

• Los NetID se guardan normalmente en orden descendente<br />

• Cuando llega un paquete <strong>IP</strong>, se extrae la <strong>IP</strong> y se compara con<br />

cada entrada de la tabla hasta que se encuentra la primera<br />

entrada que coincide<br />

• E.g.; quiero ver que entrada de la siguiente tabla con 3 entradas<br />

se corresponde con la llegada 11111100<br />

a) 11111000<br />

b) 11110000<br />

c) 11100000<br />

Primero se compara con a), coinciden 5 bits, después se compara<br />

con b), coinciden 4 bits, ya no sigue comparando. a) es la<br />

opción que mejor se aproxima a la llegada<br />

Routers<br />

Red A<br />

Broadcast<br />

E0<br />

S0<br />

S1<br />

Routing Table<br />

Network Port<br />

A E0<br />

B S0<br />

C S1<br />

Red B<br />

Red C<br />

43<br />

44


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Routers<br />

10.1.0.0 10.2.0.0 10.3.0.0 10.4.0.0<br />

E0<br />

S0 S0<br />

S1 S1<br />

E0<br />

Tabla de enrutamiento Tabla de enrutamiento Tabla de enrutamiento<br />

10.1.0.0<br />

10.2.0.0<br />

10.3.0.0<br />

10.4.0.0<br />

E0 0<br />

10.2.0.0<br />

S0 0<br />

10.3.0.0<br />

S0 1<br />

10.4.0.0<br />

S0 0<br />

S1 0<br />

S1 1<br />

S0 2<br />

10.1.0.0 S0 1<br />

10.3.0.0<br />

10.4.0.0<br />

10.2.0.0<br />

10.1.0.0<br />

S0<br />

E0<br />

S0<br />

S0<br />

0<br />

0<br />

1<br />

2<br />

• Longest Match Lookup (tabla de un router)<br />

• Si existe una “correspondencia explicita” a una entrada en la<br />

tabla, el router sabe por donde sacar la trama<br />

• Si no existe una correspondencia explicita, normalmente habrá<br />

una salida por defecto (gateway o router por defecto)<br />

• Por consiguiente nos falta en la tabla información de a que<br />

destino queremos enviar el paquete y porqué interficie sacarla<br />

eth0<br />

ppp0<br />

ppp1<br />

ppp0<br />

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<br />

<strong>IP</strong>destino Máscara Gateway Interficie<br />

198.5.3.12 255.255.255.255 0.0.0.0 eth0<br />

198.5.3.0 255.255.255.0 0.0.0.0 eth0<br />

198.5.2.0 255.255.255.0 0.0.0.0 ppp0<br />

0.0.0.0 0.0.0.0 198.5.2.2 ppp0<br />

45<br />

46<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Tabla de un host<br />

• Debe indicar como llegar a su propia subred (haciendo una<br />

ARP)<br />

• Debe indicar como salir de su subred (usando el gateway por<br />

defecto)<br />

eth0<br />

ppp0<br />

ppp1<br />

ppp0<br />

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<br />

<strong>IP</strong>destino Máscara Gateway Interficie<br />

198.5.3.0 255.255.255.0 0.0.0.0 eth0<br />

0.0.0.0 0.0.0.0 198.5.3.1 eth0<br />

• Path determination o mejor ruta<br />

• Proceso por el cual un router determina los posibles caminos por<br />

los que puede reenviar un datagrama para que este llegue a su<br />

destino<br />

• El camino puede determinarse a partir de información introducida<br />

por el administrador de red (estático) o a partir de información<br />

(métricas) intercambiada por los routers (dinámico)<br />

• Las métricas pueden ser muy variadas: saltos (“hops”), retardos,<br />

cargas, ancho de banda, fiabilidad del enlace, coste....<br />

• La información que se intercambia los routers para permitir la<br />

determinación de un camino es particular a cada protocolo de<br />

encaminamiento, que define<br />

• La periodicidad con que se intercambian los paquetes de<br />

encaminamiento<br />

• El formato y contenido de estos paquetes de encaminamiento<br />

• Algoritmos asociados que permiten calcular el camino óptimo,<br />

y por tanto decidir la interfice de salida (e.g algoritmos de<br />

mínimo coste)<br />

47<br />

48


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

49<br />

• Concepto de “convergencia” en un protocolo de encaminamiento<br />

• Cuando la topología de la red cambia, los routers deben recalcular<br />

las rutas y actualizar las tablas de encaminamiento<br />

• El tiempo en que todos los routers alcanzan un conocimiento<br />

homogéneo de la red se le llama “tiempo de convergencia”<br />

• Tiempos de convergencia grandes implican que los routers<br />

tendrán mayor dificultad para enviar los datagramas por la<br />

interficie más adecuada<br />

• Convergencia depende<br />

• Distancia en hops desde el punto en que se produjo el cambio<br />

• Cantidad de routers que usan el protocolo dinámico<br />

• El ancho de banda y la carga de tráfico de la red<br />

• La carga del router (CPU)<br />

• El protocolo de encaminamiento usado (el algoritmo)<br />

50<br />

• Protocolos de encaminamiento<br />

• Estáticos<br />

• Son aquellos en los que el administrador de sistemas introduce<br />

manualmente las entradas de la tabla de encaminamiento (puertos<br />

predeterminados)<br />

• Útil si la red es muy pequeña o cuando una red sólo puede ser<br />

alcanzado por un solo camino (“stub network”)<br />

• E.g.; en UNIX con el comando “route add/del” se modifica la tabla y<br />

con el comando “netstat –rn” se observa el contenido de la tabla<br />

• Dinámicos<br />

• Son aquellos que rellenan la tabla de encaminamiento de forma<br />

automática<br />

• Permite que la tabla cambie automáticamente cuando hay cambios<br />

en topología de la red, por tanto útil en redes grandes<br />

• Se pueden agrupar en 3 grandes grupos<br />

• Vector-distance protocols: determinan la dirección y distancia a que se<br />

encuentra cualquier enlace de la red ,(e.g. R<strong>IP</strong>, IGRP, BGP, ...)<br />

• Link-state protocols: recrean la topología exacta de la red (e.g.; OSPF,<br />

IS-IS)<br />

• Híbridos: combinan aspectos de los algoritmos de distancias y de los de<br />

estado del enlace<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Ejemplo de encaminamiento estático<br />

S1 A 172.16.2.2<br />

S2<br />

S0<br />

172.16.2.0<br />

Tabla de Routing<br />

172.16.2.1<br />

Red Mascara Dirección Interfaz<br />

172.16.1.0 255.255.255.0 172.16.1.1 E0<br />

0.0.0.0 0.0.0.0 172.16.2.2 S0<br />

S0<br />

B<br />

172.16.1.0 / 24<br />

E0<br />

Red Stub<br />

• Ejemplo en los routers Cisco<br />

• Habilitación de rutas estáticas<br />

ip route red [máscara] {dirección | interfaz} [distancia] [permanent]<br />

• red es la red o subred de destino<br />

• máscara es la máscara de la subred<br />

• dirección es la dirección <strong>IP</strong> del router del próximo salto<br />

• interfaz es el nombre de la interfaz que debe usarse para llegar al<br />

destino<br />

• distancia es un parámetro opcional que define la distancia<br />

administrativa (0-255) ( a menor distancia mayor probabilidad de usar el<br />

router)<br />

• permanent es un parámetro opcional que especifica que la ruta no debe<br />

ser eliminada, aunque la interfaz deje de estar activa.<br />

Para configurar una ruta estática en el router A<br />

router(config)#ip route 172.16.1.0 255.255.255.0 172.16.2.1<br />

y para configurar la ruta predeterminada del router B<br />

router(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2<br />

51<br />

52


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Ejemplo de encaminamiento estático: comando route (modo root)<br />

route [-v] [-A family] add [-net|-host] target [netmask<br />

Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I]<br />

[reject] [mod] [dyn] [reinstate] [[dev] If]<br />

route [ -v] [ -A family] del [ -net| -host] target [ gw Gw]<br />

[ netmask Nm] [ metric N] [[ dev] If]<br />

• Comando “netstat” (modo usuario)<br />

• Permite observar entre otras cosas la tabla de encaminamiento<br />

además del estado de las conexiones, estadísticas, ....<br />

netstat { --route|-r} [address_family_options]<br />

[ --extend| -e[ --extend| -e]] [ --verbose| -v] [ --numeric| -n]<br />

[ --continuous| -c]<br />

• Ejemplo: ver la tabla de routing<br />

• Ejemplo: ver la tabla de routing<br />

• route -v<br />

Kernel <strong>IP</strong> routing table<br />

Destination Gateway Genmask Flags Metric Ref Use Iface<br />

147.83.35.0 * 255.255.255.0 U 0 0 0 eth0<br />

loopback * 255.0.0.0 U 0 0 0 lo<br />

0.0.0.0 arenys5.ac.upc. 0.0.0.0 UG 0 0 0 eth0<br />

• netstat -rn<br />

Kernel <strong>IP</strong> routing table<br />

Destination Gateway Genmask Flags MSS Window irtt Iface<br />

147.83.35.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0<br />

loopback 0.0.0.0 255.0.0.0 U 0 0 0 lo<br />

0.0.0.0 arenys5.ac.upc.es 0.0.0.0 UG 0 0 0 eth0<br />

53<br />

54<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

55<br />

A<br />

• ARP, Proxy ARP y encaminamiento<br />

• Los host normalmente siguen la secuencia siguiente cuando quieren<br />

comunicarse<br />

• Consultan la tabla de encaminamiento<br />

• La tabla les indica que la <strong>IP</strong> pertenece a un host de su misma red,<br />

entonces hacen ARP para averiguar su MAC<br />

• La tabla les indica que la <strong>IP</strong> no es de la red y deben ir por tanto al<br />

router por defecto, entonces hacen ARP del router para averiguar su<br />

MAC<br />

• ¿Cuándo hacen Proxy ARP?<br />

• SOLO en casos muy especiales. Por ejemplo cuando un host quiere<br />

enviar un datagrama a otro host cuya NetID coincide con la suya pero<br />

que tiene un router por en medio.<br />

R B • Su tabla de encaminamiento le dice que la subred está conectado<br />

directamente a su interficie, por lo que envía un ARP en esa interficie con<br />

<strong>IP</strong> la del host destino<br />

• El router sabe que el host destino está en una interficie conectada<br />

directamente a él, y además que él no deja pasar ARPs. Por lo que hace<br />

un Proxy ARP y responde con su MAC<br />

• El host origen cree que se está conectando con el host destino<br />

directamente cuando en realidad lo está haciendo a través del router<br />

56<br />

Comparativa de las caracteristicas de los protocolos de routing<br />

Name Type Proprietary Function Updates Metric VLSM Summ<br />

R<strong>IP</strong> DV No Interior 30 sec Hops No Auto<br />

R<strong>IP</strong>V2 DV No Interior 30 sec Hops Yes Auto<br />

IGRP DV Yes Interior 90 sec Comp. No Auto<br />

EIGRP Adv DV Yes Interior Trig. Comp. Yes Both<br />

OSPF LS No Interior Trig. Cost Yes Man.<br />

IS-IS LS No Int/Ext Trig. Cost Yes Auto<br />

BGP DV No Exterior Trig. N/A N/A Man.<br />

•DV distancia vector<br />

•LS link state<br />

•Hops saltos<br />

•Comp anchura de banda + retardo<br />

•Cost proporcional al ancho de banda<br />

•Summ sumarización<br />

•Trig solo cuando hay cambios


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Vector -Distancia<br />

• Son algoritmos que utilizan las pasarelas para actualizar su<br />

información de encaminamiento.<br />

• Cada router comienza con un conjunto de rotas con las que esta<br />

directamete conectado que se guarda en la tabla de<br />

encaminamiento.<br />

• Periodicamente cada router manda una copia de su tabla de<br />

encaminamiento a cualquier router que pueda alcanzar<br />

directamente.<br />

Los routers destino actualizaran su tabla de encaminamiento si:<br />

•<br />

• El router origen conoce un camino más corta al destino.<br />

• El router destino no tiene al origen en su tabla.<br />

• La distancia del rigen al destino ha cambiado<br />

• Vector -Distancia (Desventajas)<br />

• Cuando las rutas cambian rápidamente la topología de<br />

encaminamiento puede inestabilizarse ya que se puede propagar<br />

una información incorrecta que tengan algunos routers.<br />

• Al pasar toda la información de la tabla de encaminamiento a<br />

intervalos regulares la carga de la red aumenta lo que provoca<br />

problemas de tiempo de respuesta a los cambios de topología.<br />

• Los algoritmos vector-distancia que usan los “hops” o saltos como<br />

métrica no tienen en cuenta la velocidad o la fiabilidad del enlace.<br />

• Problema de cuenta hasta infinito cuando un router falla<br />

57<br />

58<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• R<strong>IP</strong> (Routing Information Protocol)<br />

• Es un protocolo de encaminamiento interior<br />

• Cada router envía periódicamente (cada 30 segundos) un datagrama de<br />

encaminamiento a cada uno de SUS VECINOS con TODA su tabla de<br />

encaminamiento, dichos envios no estan sincronizados. Cuando no se envia un<br />

Tout expira y el router informa a la red del cambio.<br />

• Esta tabla indica el coste (métrica son “hops”) para llegar a cada uno de los<br />

destinos (<strong>IP</strong>) desde ese router. Si el número de saltos es mayor de 15 se<br />

desecha el paquete.<br />

• El router calcula con algoritmo de mínimo coste (Algoritmo de Bellman-Ford)<br />

la mínima distancia para llegar a los destino y actualiza su tabla<br />

(convergencia: debe ser rápido)<br />

• R<strong>IP</strong> versión 1: no anuncia máscaras (RFC1058)<br />

• Aplica la máscara de la interficie<br />

• Sino tiene, aplica la mascara de la clase por defecto de esa <strong>IP</strong><br />

• R<strong>IP</strong> versión 2: anuncia máscaras (RFC2453)<br />

• UNIX routing daremons<br />

• Routed (R<strong>IP</strong> v1)<br />

• Gated (R<strong>IP</strong> v1, v2, v3, OSPF v2, BGP v1, v2)<br />

• Algoritmo de Bellman - Ford<br />

• D(i,j) es el coste para llegar directamente de la Red i a la j, y vale<br />

infinito si no es posible llegar directamente a una red vecina (D(i,i) = ∞)<br />

• D(i,j) representa la métrica de la mejor ruta entre dos redes<br />

• Entonces la mejor métrica se puede describir como:<br />

• El mínimo para llegar a la red j-sima a través de mi red vecina k-<br />

sima y se calcula como el mínimo de la suma entre el coste de<br />

llegar a mi red vecina k-sima y la métrica de llegar desde la red k-<br />

sima a la j-sima<br />

D(i,i) = 0<br />

all i<br />

D(i,j) = mimk [D(i,k) + D(k,j) ] otherwise<br />

59<br />

60


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

Ejemplo de routing<br />

Ejemplo de routing<br />

N0<br />

N0<br />

R1<br />

N1<br />

R2<br />

N2<br />

R3<br />

N3<br />

R1<br />

N1<br />

R2<br />

N2<br />

R3<br />

N3<br />

Tabla de R1<br />

Tabla de R2<br />

Tabla de R3<br />

R4<br />

N4<br />

Tabla de R4<br />

R4<br />

N4<br />

Red Hops Ruta<br />

Red Hops Ruta<br />

Red Hops Ruta<br />

Red Hops Ruta<br />

Tabla de R1<br />

Tabla de R2<br />

Tabla de R3<br />

Tabla de R4<br />

N0<br />

N1<br />

1<br />

1<br />

Local<br />

Local<br />

N1<br />

N2<br />

1<br />

1<br />

Local<br />

Local<br />

N2<br />

N3<br />

1<br />

1<br />

Local<br />

Local<br />

N2<br />

N4<br />

1<br />

1<br />

Local<br />

Local<br />

Red Hops Ruta<br />

N0<br />

N1<br />

1<br />

1<br />

Local<br />

Local<br />

Red Hops Ruta<br />

N1<br />

N2<br />

1<br />

1<br />

Local<br />

Local<br />

Red Hops Ruta<br />

N2<br />

N3<br />

1<br />

1<br />

Local<br />

Local<br />

Red Hops Ruta<br />

N2<br />

N4<br />

1<br />

1<br />

Local<br />

Local<br />

N2<br />

2 R2<br />

N0<br />

2<br />

R1<br />

N1<br />

2<br />

R2<br />

N1<br />

2<br />

R2<br />

N3<br />

2<br />

R3<br />

N4<br />

2<br />

R4<br />

N3<br />

2<br />

R3<br />

N4<br />

2<br />

R4<br />

* El contador de saltos para redes conectadas directamente es de 1 hop (ya que coste de<br />

Gateway consigo mismo es 0)<br />

61<br />

62<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

Ejemplo de routing<br />

• R<strong>IP</strong> (Routing Information Protocol)<br />

• Ventajas:<br />

N0<br />

• Si la red tiene rutas redundantes, R<strong>IP</strong> es capaz de<br />

detectarlas y escoger la mejor (routing estático no)<br />

R1<br />

N1<br />

R2<br />

N2<br />

R3<br />

N3<br />

• Corrige fallos de la red automáticamente<br />

• Protocolo fácil de configurar, usar y mantener<br />

R4<br />

N4<br />

• Util si la red es sencilla y sin fuertes requerimientos<br />

respecto a la buena eficiencia de la red<br />

Tabla de R1<br />

Tabla de R2<br />

Tabla de R3<br />

Tabla de R4<br />

• Desventajas<br />

Red Hops Ruta<br />

Red Hops Ruta<br />

Red Hops Ruta<br />

Red Hops Ruta<br />

• Converge muy lentamente ante fallos de la red<br />

N0<br />

N1<br />

N2<br />

N3<br />

N4<br />

1<br />

1<br />

2<br />

3<br />

3<br />

Local<br />

Local<br />

R2<br />

R2<br />

R2<br />

N1<br />

N2<br />

N0<br />

N3<br />

N4<br />

1<br />

1<br />

2<br />

2<br />

2<br />

Local<br />

Local<br />

R1<br />

R3<br />

R4<br />

N2<br />

N3<br />

N0<br />

N1<br />

N4<br />

1<br />

1<br />

3<br />

2<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

R4<br />

N2<br />

N4<br />

N0<br />

N1<br />

N3<br />

1<br />

1<br />

3<br />

2<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

R3<br />

• Puede crear ciclos (loops) infinitos que hagan que la red<br />

sea inconsistente<br />

• Debido a la vulnerabilidad ante la lenta convergencia<br />

hace que sea muy poco útil en WANs<br />

63<br />

64


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Problemas del R<strong>IP</strong><br />

• R<strong>IP</strong> sólo permite 15 saltos. Considera métrica infinita cualquier<br />

router que esté más lejos de 15 saltos (Límite de la red = 15)<br />

• No tiene en cuenta métricas importantes como puede ser el<br />

retardo o el ancho de banda<br />

• No permite intercambiar información entre subredes (paquete R<strong>IP</strong><br />

no informa de las máscaras de red)<br />

• E.g. Routers CISCO: aplica la máscara de la interficie, SINO la<br />

de la clase correspondiente a la <strong>IP</strong> anunciada<br />

• Vulnerabilidad: counting to infinite (Infinito=16 hops en R<strong>IP</strong>), si<br />

una red se alcanza con un valor de 16 se considera una red<br />

inalcanzable (ICMP message “network unreachable”). Esto se<br />

soluciona con Split horizon consiste en ser más selectivo<br />

haciendo que los routers que advierten omitan información de<br />

refresco que pueda “confundir” a los routers o con poison reverse<br />

no omitas, advierte pero con un coste infinito<br />

Ejemplo de cuenta a infinito<br />

R1<br />

Red Hops Ruta<br />

N0<br />

N1<br />

N2<br />

N3<br />

Tabla de R1<br />

1<br />

1<br />

2<br />

3<br />

Local<br />

Local<br />

R2<br />

R2<br />

N0<br />

N1<br />

Red Hops Ruta<br />

N1<br />

N2<br />

N0<br />

N3<br />

Tabla de R2<br />

1<br />

1<br />

2<br />

2<br />

R1<br />

R2<br />

Local<br />

Local<br />

R3<br />

N2<br />

R4<br />

Red Hops Ruta<br />

N2<br />

N3<br />

N0<br />

N1<br />

Tabla de R3<br />

1<br />

1<br />

3<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

R3<br />

N4<br />

N3<br />

Red Hops Ruta<br />

N2<br />

N4<br />

N0<br />

N1<br />

Tabla de R4<br />

1<br />

1<br />

3<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

N4<br />

3<br />

R2<br />

N4<br />

2<br />

R4<br />

N4<br />

2<br />

R4<br />

N3<br />

2<br />

R3<br />

65<br />

66<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

Ejemplo de cuenta a infinito<br />

Ejemplo de cuenta a infinito<br />

N0<br />

N0<br />

R1<br />

X<br />

N1<br />

R2<br />

N2<br />

R3<br />

N3<br />

R1<br />

X<br />

N1<br />

R2<br />

N2<br />

R3<br />

N3<br />

R4<br />

N4<br />

R4<br />

N4<br />

Tabla de R1<br />

Tabla de R2<br />

Tabla de R3<br />

Tabla de R4<br />

Tabla de R1<br />

Tabla de R2<br />

Tabla de R3<br />

Tabla de R4<br />

Red Hops Ruta<br />

N0<br />

N1<br />

N2<br />

N3<br />

1<br />

1<br />

2<br />

3<br />

Local<br />

-<br />

-<br />

-<br />

Red Hops Ruta<br />

N1<br />

N2<br />

N0<br />

N3<br />

1<br />

1<br />

4<br />

2<br />

Local<br />

Local<br />

R1<br />

R3<br />

Red Hops Ruta<br />

N2<br />

N3<br />

N0<br />

N1<br />

1<br />

1<br />

3<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

Red Hops Ruta<br />

N2<br />

N4<br />

N0<br />

N1<br />

1<br />

1<br />

3<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

Red Hops Ruta<br />

N0<br />

N1<br />

N2<br />

N3<br />

1<br />

1<br />

2<br />

3<br />

Local<br />

-<br />

-<br />

-<br />

Red Hops Ruta<br />

N1<br />

N2<br />

N0<br />

N3<br />

1<br />

1<br />

4<br />

2<br />

Local<br />

Local<br />

R1<br />

R3<br />

Red Hops Ruta<br />

N2<br />

N3<br />

N0<br />

N1<br />

1<br />

1<br />

5<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

Red Hops Ruta<br />

N2<br />

N4<br />

N0<br />

N1<br />

1<br />

1<br />

5<br />

2<br />

Local<br />

Local<br />

R2<br />

R2<br />

N4<br />

3<br />

-<br />

N4<br />

2<br />

R4<br />

N4<br />

2<br />

R4<br />

N3<br />

2<br />

R3<br />

N4<br />

3<br />

-<br />

N4<br />

2<br />

R4<br />

N4<br />

2<br />

R4<br />

N3<br />

2<br />

R3<br />

67<br />

68


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Split Horizon: evitar bucles (counting to infinite)<br />

• Un router NO envía información a otro router de las redes que le son<br />

comunicadas por ese otro router<br />

• Router 3 no envía refrescos de la tabla<br />

• Router 2 informa al Router 3 solo de la Ethernet y Token Ring.<br />

• Router 2 informa al Router 1 solo de la ATM<br />

• Router 1 sólo informa de Token Ring<br />

Token Ring 1 hop<br />

Ethernet: 1 hop<br />

Token Ring 2 hops<br />

Token<br />

Ring Router 1 Router 2<br />

Router 3<br />

X<br />

ATM<br />

network<br />

Ethernet<br />

ATM Network: 1 hop<br />

• Poison Reverse: advertir costes infinitos<br />

Ethernet: 1 hop<br />

ATM Network: ∞ hop<br />

Token Ring 2 hops<br />

Token<br />

Ring Router 1 Router 2<br />

Router 3<br />

X<br />

Ethernet<br />

ATM<br />

network<br />

ATM Network: ∞ hop<br />

Ethernet: ∞ hops<br />

Token Ring ∞ hops<br />

ATM Network: 1 hop<br />

Ethernet: ∞ hops<br />

Token Ring ∞ hops<br />

69<br />

70<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Poison reverse<br />

• Cuando detecta que su antigua ruta por un interface no es valiada<br />

envia un mensaje a los otros interfaces en el que se indica que su<br />

coste es infinito, por lo que los routers que reciben el mensaje<br />

tardan menos en saber que esta ruta no es valida. El problema que<br />

tenemos es que incrementa el tamaño de los mensajes de<br />

encaminamieno.<br />

• Triggered updates<br />

• Consiste en que si un router ha cambiado su tabla debido a un<br />

cambio en la topología tardará 30 segundos en el peor de los<br />

casos en avisar del nuevo cambio a un router vecino<br />

• Eso hace que un el tiempo de convergencia pueda ser muy alto<br />

(minutos) ante cambios en la topología de la red<br />

• “triggered update” consiste en enviar la tabla enseguida de que se<br />

produzca un cambio en la red sin tener que esperar los 30<br />

segundos, mejorando por tanto el tiempo de convergencia, el<br />

tiempo es de 1 a 5 segundos.<br />

• Cambios en la topología de la red<br />

• Un router con R<strong>IP</strong> suele enviar mensajes de refresco cada Tout =<br />

30 segundos con la tabla de encaminamiento a todos sus vecinos<br />

• Si hay un cambio en la topología de la red, e.g.; router cae, este no<br />

puede notificar el cambio con un mensaje de refresco (“update”)<br />

• Si transcurridos 6*Tout = 180 segundos, un router no ha recibido<br />

un update de su vecino, el router marcará la ruta a través de ese<br />

router como invalida<br />

• Una métrica de valor infinito (=16) indica que una ruta NO es valida<br />

71<br />

72


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• R<strong>IP</strong>v1 (Routing Information Protocol)<br />

• Se describe en el RFC 1058<br />

• Descrito en www.isi.edu/in-notes/rfc1058.txt<br />

• Es una implementación directa del encaminamiento vector-distancia para LANs<br />

• Utiliza UDP como protocolo de transporte, con el número de puerto 520 como<br />

puerto de destino.<br />

• Los mensajes R<strong>IP</strong> se envian en los datagramas UDP<br />

• Operaciones básicas:<br />

• Se inicia enviando un mensaje a los routers vecinos pidiendo la copia de la<br />

tabla de encaminamiento.<br />

• Se envia la tabla de encaminamiento a todos los routers vecinos, cada 30<br />

segundos.<br />

• Cuando R<strong>IP</strong> detecta que la métrica ha cambiado la difunde por broadcast a<br />

los routers.<br />

• Cuando se recibe se valida y si es necesario se actualiza.<br />

• Las rutas que R<strong>IP</strong> aprende de otros routers expiran a los 180 segundos (<br />

6x30) a no ser que se vuelva a difundir.<br />

• Cuando una ruta expira la métrica se pone a infinito y 60 segundos más<br />

arde se borra de la tabla.<br />

• Message Format (UDP port = 520)<br />

<strong>IP</strong> header<br />

UDP header<br />

R<strong>IP</strong> message<br />

20 bytes<br />

73<br />

74<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• R<strong>IP</strong>v2 (Routing Information Protocol)<br />

• Se describe en el RFC 1721 y RFC 1722<br />

• Descrito en www.isi.edu/in-notes/rfc1721.txt y www.isi.edu/in-notes/rfc1722.txt<br />

• Es compatible con R<strong>IP</strong>v1.<br />

• No es tan potente como OSPF ni IS-IS pero tiene la ventaja de que<br />

necesita una fácil implementación y menores factores de carga<br />

• Se puede usar en presencia de subnetting variable.<br />

• Soporta multicast con preferencia al broadcast, lo que implica una<br />

reducción de carga a los host que no estan a la ecucha de mensajes<br />

R<strong>IP</strong>v2.<br />

• OSPF (Open-Short Path First)<br />

• Primero se escoge la ruta más corta.<br />

• Protocolo de encaminamiento interior.<br />

• Link-state (estado del enlace entre dos routers) protocol<br />

• Se dibuja un mapa con toda la topología de la red<br />

• Cada router envía información a TODOS los routers de la red<br />

cuando se produzca un cambio en la topología de la red<br />

• A partir de esa información se recalcula la tabla de<br />

encaminamiento usando el algoritmo de Dijkstra<br />

• OPSF se basa en:<br />

• Enviar LSAs (Link State Advertisements), el estado de las interfaces y<br />

adyacencias del router, con los cambios que se producen en la red<br />

(LSAs van encapsulados en <strong>IP</strong>)<br />

• Mantener una base de datos con la topología de la red (Link State<br />

Database) en cada router<br />

• Mantener una tabla de encaminamiento con los caminos y puertos<br />

• Un algoritmo de encaminamiento (Dijkstra) que rellena la tabla a partir<br />

del contenido de la base de datos<br />

75<br />

76


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• OSPF (Open-Short Path First)<br />

• Funcionamiento general:<br />

• Los routers intercambian su conocimiento de la red (métricas)<br />

con todos los routers de la red (usa un mecanismo llamado<br />

flooding) enviando LSAs<br />

• Flooding consiste en que un router que recibe un LSA, lo reenvía<br />

por todos sus puertos de salida excepto por el que le ha llegado<br />

• Si a un router le llega por segunda vez el mismo LSA, entonces<br />

no lo reenvía, sino que lo descarta<br />

• El LSA llegará (con el tiempo) a todos los routers de la red<br />

• Cada vez que hay un cambio en la red, este es advertido a<br />

toda la red por medio de un LSA (no se envían LSAs<br />

periódicamente, sólo cuando hay cambios)<br />

• A partir de los LSAs los routers construyen una base de datos<br />

con la topología de la red mediante un algoritmo (Dijkstra)<br />

• A partir de la base de datos, se rellena la tabla de<br />

encaminamiento<br />

• OSPF (Open-Short Path First)<br />

• Desventajas<br />

• Flooding implica una gran cantidad de tráfico en la red,<br />

degradando la eficiencia de la red temporalmente<br />

• Un router recibe demasiados LSAs en vez de datos<br />

• Un router está demasiado tiempo calculando rutas (Dijkstra) en<br />

vez de transmitiendo datos, ....<br />

• Eficiencia depende de:<br />

• El ancho de banda disponible<br />

• La cantidad de rutas que se deben advertir<br />

• Los algoritmos consumen gran cantidad de memoria y CPU<br />

(routers potentes, y por tanto más caros)<br />

• Ventajas<br />

• Buena convergencia y buena reacción a cambios topológicos<br />

• Escala muy bien (útil en redes grandes y complejas)<br />

• Usa gran cantidad de métricas (retardos, cargas, ancho de<br />

banda, ...)<br />

77<br />

78<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Sistemas Autónomos (AS)(Autonomous System)<br />

• Aparecen cuando una empresa tiene un crecimiento muy alto y el tráfico entre<br />

sus elementos es también muy alto. La IANA es la responsable de la<br />

asignación de los números de AS<br />

• Internet se organiza como una colección de AS, cada uno de ellos<br />

administrado por una única entidad<br />

• El protocolo de encaminamiento que comunica routers dentro de un AS se le<br />

llama IGP (Interior Gateway Protocol)(e.g.; R<strong>IP</strong>, OSPF, IGRP, EIGRP)<br />

• El protocolo de encaminamiento que comunica routers de distintos AS se le<br />

llama EGP (Exterior Gateway Protocol) (e.g.; EGP, BGP)<br />

IGPs: R<strong>IP</strong>, IGRP,<br />

OSPF, EIGRP<br />

EGPs: BGP<br />

Autonomous System 65000 Autonomous System 65500<br />

• BGP (Border Gateway Protocol)<br />

• Es un EGP (Exterior Gateway Protocol) usado para comunicar AS<br />

• Inicialmente se usó bastante un protocolo llamado EGP (versión<br />

3), pero fue rechazado por su gran ineficiencia<br />

• Hoy en día se usa BGP (versión 4) como EGP<br />

• BGP permite conectar Sistemas Autónomos (AS) que pertenezcan<br />

a distintas organizaciones<br />

AS 1<br />

=101 AS 2<br />

=102<br />

• Puede haber 65535 (16<br />

bits) AS<br />

• Rango 1- 64511 son<br />

asignados por IANA para<br />

IGP<br />

BGP<br />

IGP proveedores públicos<br />

• Rango 64512 – 65535 son<br />

AS 3<br />

=103<br />

identificadores para AS<br />

privados<br />

• Organizaciones con un<br />

IGP<br />

único proveedor usa identif<br />

privados<br />

79<br />

80


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Modelo topológico BGP<br />

• Stub AS: un AS que sólo tiene una única conexión con otro AS y por tanto<br />

sólo lleva tráfico local<br />

• Multihomed AS: un AS que tiene más de una conexión con otros AS y pero<br />

rechaza llevar tráfico de transito<br />

• Transit AS: un AS con multiples conexiones a otros AS y que lleva tráfico de<br />

transito<br />

AS 1<br />

AS 2<br />

AS 3<br />

AS 4 AS 5<br />

Stub AS<br />

Transit AS<br />

Transit AS<br />

Shared<br />

Network<br />

Multihomed AS<br />

Transit AS<br />

• BGP (Border Gateway Protocol)<br />

• BGP es un protocolo de encaminamiento que se basa en políticas<br />

de red (organizaciones) y no en métricas<br />

• Un AS multihomed puede rechazar actuar como AS de tránsito<br />

a otro AS<br />

• Un AS multihomed puede convertirse en un AS de tránsito<br />

para un conjunto restrictivo de AS<br />

• Un AS de tránsito puede desfavorecer ciertos AS para llevar<br />

tráfico él mismo<br />

• Elección de rutas: elegir un camino basándose en la preferencia<br />

• Atravesar menor número de AS<br />

• Consideraciones administrativas<br />

• Presencia o ausencia de ciertos AS en el camino<br />

• Origen de la ruta<br />

• Dinámica de los enlaces<br />

81<br />

82<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• BGP (Border Gateway Protocol)<br />

• BGP usa TCP como protocolo de comunicaciones (puerto 179)<br />

• BGP es un protocolo de vectores de caminos (“path vector protocol”) que<br />

anuncia AS<br />

• Un mensaje BGP envía una secuencia de números AS que indican el<br />

camino completo hasta un destino<br />

• BGP envía UPDATES a sus vecinos cada vez que hay un cambio en la<br />

red indicando los cambios<br />

AS 1<br />

AS 2<br />

AS 3<br />

AS 4 AS 5<br />

Stub AS<br />

Transit<br />

Transit AS<br />

AS<br />

Shared<br />

Network<br />

Multihomed AS<br />

Destino AS 1 : (AS 2 ,AS 1 )<br />

Transit AS<br />

• Protocolos de encaminamiento y los esquemas de direcciones <strong>IP</strong><br />

Classless Routing<br />

protocols<br />

R<strong>IP</strong> v1<br />

IGRP<br />

EGP<br />

BGP v3<br />

Classfull Routing<br />

protocols<br />

R<strong>IP</strong> v2<br />

EIGRP<br />

OSPF<br />

IS-IS<br />

BGP v4<br />

Protocolos de encaminamiento<br />

que no envían la máscara:<br />

• Si la dirección anunciada<br />

pertenece a la misma<br />

subred que la interfice por<br />

la que se recibe, aplican la<br />

mascara de la interficie por<br />

donde reciben el mensaje<br />

• Sino pertenecen a la<br />

misma subred, aplican la<br />

de la clase de la dirección<br />

que reciben<br />

83<br />

84


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Elegir el protocolo de encaminamiento en una red<br />

• Elegir el protocolo de encaminamiento en una red<br />

• Protocolos basados en vectores de distancias (R<strong>IP</strong>(v1-v2), IGRP)<br />

• Fáciles de configurar pero trabajan mal en redes grandes y<br />

complejas debido a la cantidad de tiempo que tardan en<br />

converger<br />

• R<strong>IP</strong> cuando balancea cargas lo hace por igual<br />

independientemente de la velocidad del enlace<br />

• IGRP sí las tiene en cuenta hasta cierto grado<br />

• Elegir el protocolo más sencillo para tu red<br />

• Si la red no tiene enlaces redundantes o paralelos y no tiene<br />

VLSM se puede usar R<strong>IP</strong>v1 y si usa VLSM entonces R<strong>IP</strong>v2<br />

• Si la red tiene enlaces redundantes o paralelos y no requiere<br />

VLSM puede usar un protocolo estilo IGRP (CISCO)<br />

• Si la red tiene enlaces redundantes o paralelos y requiere VLSM<br />

entonces usar OSPF, EIGRP, IS-IS , ...<br />

• Protocolos de estado del enlace (OSPF, EIGRP, ...)<br />

• Más difíciles de configurar pero convergen mejor en redes<br />

grandes y complejas<br />

85<br />

86<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• DNS (Domain Name System):<br />

• Sistema usado en Internet para traducir nombres de nodos de red en<br />

direciones <strong>IP</strong>.<br />

• A cada máquina se le asigna una dirección <strong>IP</strong> (e.g. 147.83.35.24) y un<br />

nombre (aucanada.ac.upc.es)<br />

• DNS es una base de datos distribuida que permite realizar un mapeo entre<br />

nombres de máquinas y direcciones <strong>IP</strong><br />

• De esta manera cuando queramos acceder a una máquina (Web, Ftp,<br />

Telnet, ...) en vez de recordar la <strong>IP</strong>, basta recordar el nombre<br />

• DNS usa un “resolver” para acceder a los nombres desde las <strong>IP</strong><br />

• En UNIX las aplicaciones usan Llamadas al sistema para acceder a este<br />

resolver, estas LLS son<br />

• *gethostbyname(char *name): dado un nombre devuelve su <strong>IP</strong><br />

• *gethostbyaddr(char *addr, int len, int type): dado una <strong>IP</strong> devuelve el<br />

nombre del host<br />

• Estas LLS consultan inicialmente el fichero /etc/host donde está<br />

guardado la correspondencia nombre-<strong>IP</strong>. Sino está resuelto, entonces<br />

se accede al servidor de DNS y se resuelve el nombre<br />

• La <strong>IP</strong> del servidor de nombres (DNS) se guarda en un fichero resolver:<br />

/etc/resolv.conf<br />

• Asignación de Dominios<br />

• Un dominio es un mecanismo de identificación utilizado en Internet<br />

• El ICANN es la responsable que los nombres de las máquinas sean únicos<br />

• Consta de varias palabras separadas por un punto: xxx.xxx.com<br />

• Las primeras palabras xxx.xxx indican un conjunto de nombres que<br />

identifican a la empresa u organización (e.g.; ac.upc designa el<br />

departament d’Arquitectura de Computadors de la <strong>UPC</strong>)<br />

• Las empresas deben registrar su nombre para que pase a ser su<br />

marca en Internet (problemas con marcas ya registradas)<br />

• En España se encarga del registro RedIris (es-nic)<br />

• El resto del dominio está organizado en:<br />

• Dominios genérico: .com, .org, .net, .edu, ...<br />

• Dominios geográficos: .es, .fr, .uk, .it, ....<br />

• Propuesta (de CORE) para ampliar el número de dominios genericos.<br />

• .firm, .shop, .info, .web, .nom, .arts, .rec<br />

87<br />

88


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• DNS basa su funcionamiento en un espacio jerárquico de nombres<br />

e.g.; aucanada.ac.upc.es<br />

arpa<br />

in-addr<br />

147<br />

83<br />

65<br />

13<br />

unamed root<br />

org com edu uk es<br />

7 dominios genéricos<br />

arpa es un dominio que<br />

permite la resolución<br />

inversa de direcciones<br />

(address-to-names)<br />

upm<br />

ac<br />

aucanada<br />

dominios geográficos<br />

upc<br />

lsi<br />

• DNS se basa en servidores de nombres distribuidos geográficamente<br />

• Puerto 53 (tanto UDP como TCP)<br />

• Cada administrador de sistemas de una zona es responsable de<br />

mantener<br />

• Un servidor de DNS primario (disk file), tiene la información de<br />

una zona, y la autoridad sobre ella.<br />

• Uno o varios servidores de DNS secundarios (backups)<br />

independientes del primario pero que obtienen la información a<br />

partir del primario (normalmente se actualizan cada 3 horas)<br />

• Cuando se conecta un nuevo usuario hay que añadirlo al primario<br />

(<strong>IP</strong> y nombre), mientras que los secundarios lo obtendrán (“zone<br />

transfer”) del primario (hacen “querys” del primario cada 3 horas)<br />

• Si la información no está en el DNS de la zona, este servidor debe<br />

acceder a uno de los servidores “root” para obtenerla (DNS<br />

servers deben conocer la <strong>IP</strong> de los roots)<br />

• Los servidores DNS (no los resolver de la aplicación) disponen de<br />

caches para resolver nombres que han mapeado recientemente<br />

89<br />

90<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Ejemplo de una “query recursiva”<br />

• Ejemplo de una “query iterativa”<br />

root DNS server<br />

root<br />

zone DNS<br />

server<br />

5<br />

2<br />

DNS con dom .es<br />

3<br />

zone DNS<br />

server<br />

2<br />

3<br />

4<br />

.es<br />

4<br />

DNS<br />

.upc.es<br />

5<br />

6<br />

.upc.es<br />

1<br />

6<br />

1 8<br />

7<br />

DNS<br />

ftp. upc.es<br />

ftp. upc.es<br />

91<br />

4. DNS .upc.es le devuelve la <strong>IP</strong> del servidor<br />

ftp.upc.es al dominio .es<br />

1. Host pregunta por ftp.upc.es a su DNS<br />

2. Zone DNS pregunta al DNS server con<br />

dominio .es<br />

3. DNS con dominio .es pregunta a DNS<br />

con dominio .upc.es<br />

*Cada DNS guarda en su cache las <strong>IP</strong> un tiempo indicado por TTL<br />

5, 6 la <strong>IP</strong> del servidor ftp.upc.es vuelve al<br />

cliente<br />

92<br />

1. Host pregunta por ftp.upc.es a su DNS<br />

2. Zone DNS pregunta a su root DNS<br />

3. Root DNS le devuelve la <strong>IP</strong> del DNS con<br />

dominio .es al zone DNS<br />

4. Zone DNS pregunta al DNS .es<br />

5. DNS .es devuelve la <strong>IP</strong> de DNS .upc.es<br />

6. Zone DNS pregunta a DNS .upc.es<br />

7. DNS .upc.es devuelve <strong>IP</strong> de server<br />

ftp.upc.es<br />

8. Zone DNS devuelve la <strong>IP</strong> del server al host<br />

*Zone DNS guarda en su cache las <strong>IP</strong> un tiempo indicado por TTL


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Mensajes DNS<br />

• Mensajes DNS<br />

• Identification: permite mapear respuestas con peticiones (activado<br />

por el cliente y retornado por el servidor)<br />

• 16-bit flags: dividido en multiples campos (e.g. 1-bit QR:<br />

Queries=0, Responses=1; 1-bit RD for iterative/recursive queries,<br />

etc)<br />

• Los siguientes 4 campos indican cuantas peticiones (e.g. QR=0,<br />

number of questions (QD) =1, resto=0) y respuestas (e.g. QR=1,<br />

number of answers (AN), number of autority (NS), number of<br />

aditional (AR) ≥ 1, resto ≥ 0) hay en el resto del mensaje<br />

• Question contiene las consulytas al servidor de nombres.<br />

• Answer, Autority, Additional Information contienen un número<br />

variable de recursos como TTL, etc...<br />

93<br />

94<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Comando “nslookup”<br />

• Permite averiguar en UNIX un nombre o una dirección <strong>IP</strong><br />

nslookup [ -option ...] [host-to-find | -[server]]<br />

• nslookup<br />

Default Server: gaudi.ac.upc.es<br />

Address: 147.83.32.3<br />

> aucanada.ac.upc.es<br />

Server: gaudi.ac.upc.es<br />

Address: 147.83.32.3<br />

Name: aucanada.ac.upc.es<br />

Address: 147.83.35.24<br />

> finger joseb<br />

[aucanada.ac.upc.es]<br />

Welcome to Linux version 2.2.18 at aucanada.ac.upc.es<br />

!<br />

11:35am up 6 days, 14:34, 3 users,<br />

Login: joseb Name: Jose M. Barcelo<br />

Directory: /home/joseb Shell: /usr/bin/zsh<br />

• Resolución inversas<br />

• Conozco la <strong>IP</strong> y quiero el nombre<br />

• Cada servidor gestiona una rama que comienza con la etiqueta<br />

“in-addr” de la que cuelgan las direcciones en sentido númerico<br />

inverso<br />

• Es decir, las direcciones cuelgan del árbol en orden<br />

descendiente: e.g.; la <strong>IP</strong> 147.83.65.13 estaría como<br />

13.65.83.147.in-addr.arpa<br />

• En UNIX se usa el comando gethostbyaddr()<br />

• Con tcpdump podeis identificar mensajes DNS como<br />

aucanada% ping teix.ac.upc.es<br />

aucanada% tcpdump<br />

18:29:52.211280 aucanada.ac.upc.es.nimreg > gaudi.ac.upc.es.domain: 20983+ A?<br />

teix.ac.upc.es. (32)<br />

18:29:52.214912 gaudi.ac.upc.es.domain > aucanada.ac.upc.es.nimreg: 20983* 1/2/1 A<br />

teix.ac.upc.es (106) (DF)<br />

95<br />

96


<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

• Gestión en la asignación de Dominios<br />

• Historia:<br />

• Hasta hace poco tiempo lo gestionaba IANA (Internet Assigned<br />

Numbers Authority: http://www.iana.org) - organización del<br />

gobierno USA<br />

• Ahora es privado (aunque con una organización sin ánimo de<br />

lucro) que recogio las actividades del IANA. Esta organización<br />

se llama ICANN (Internet Corporation for Assigned Names and<br />

Numbers: http://www.icann.org) y que se encarga de dar<br />

tanto dominios genéricos como <strong>IP</strong><br />

• Los dominios genéricos son registrados por compañías a las que<br />

ICANN da el derecho a que actúen como tales bajo ciertas<br />

restricciones (Accredited Registrars)<br />

• España: (se puede pedir a cualquier entidad)<br />

• Nominalia (de la Fundació Catalana per a la Recerca:<br />

http://www.nominalia.com) o,<br />

• Interdomain (Compañía internacional de registro de nombres y<br />

dominios tanto genéricos como territoriales<br />

http://www.interdomain.com)<br />

• Gestión en la asignación de Dominios<br />

• El dominio territorial de España (.es) los asigna el Ministerio de<br />

Fomento: servicio ES-NIC (http://www.nic.es) gestionado por<br />

INECO (empresa pública)<br />

Se restringe el acceso al dominio territorial (.es) a<br />

•<br />

“las organizaciones legalmente establecidas en España entendiendo<br />

como tal toda persona jurídica de derecho público o privado<br />

debidamente constituida de acuerdo con el marco normativo que<br />

las regule”<br />

• Tarifas: (http://www.nic.es/tarifas/ )<br />

• Alta o registro de un nuevo dominio: 12.000 ptas (72.12 €)<br />

• Mantenimiento anual de un dominio: 8.000 ptas (48.08 €)<br />

97<br />

98<br />

<strong>Tema</strong> 2: <strong>IP</strong><br />

<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

• Gestión en la asignación de Dominios<br />

• Las empresas pueden:<br />

• Hacer uso de los servicios de un ISP sin tener un dominio<br />

propio: e.g; www.isp.es/empresa.html y empresa@isp.es<br />

• “Adquirir” un dominio propio y albergar sus servidores en la<br />

empresa: e.g; www.empresa.es y empleado@empresa.es<br />

• “Adquirir” un dominio propio y albergar los servidores en un ISP<br />

• Firewalls:<br />

• Se emplean para proteger una red interna de Internet.<br />

• No protegen contra los ataques internos.<br />

• Son puntos entre dos redes por donde todo el tráfico debe pasar<br />

(check point).<br />

• El tráfico puede ser controlado, puede ser autentificado en el<br />

dispositivo y todo el tráfico puede ser registrado.<br />

• Definición del problema :<br />

• ¿Qué?<br />

• ¿Cómo?<br />

• ¿Quién?<br />

• ¿Cuánto?<br />

99<br />

100


<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

• Metodos de ataques:<br />

MZ<br />

DMZ<br />

• Social engineering: Se obtiene información de la buena voluntad de la<br />

gente, información de las papeleras.<br />

WWW<br />

DNS<br />

FTP<br />

SMTP<br />

• Scanning: Se buscan puertos y direcciones <strong>IP</strong> mediante funciones<br />

como “Ping”. Mediante War dialing se buscan modems que tengan<br />

accesos a los host o redes.<br />

Router<br />

FW<br />

Router<br />

Internet<br />

• Misadministration: Explota la relación de confianza del administrador.<br />

• Non-autenticated/centralized services: Hay que vigilar los servicios<br />

no autenticados como SMTP, DNS, R<strong>IP</strong>, TFTP / SNMP, registros<br />

remotos.<br />

• Malicious data: CD de autoarranque, mala programación, programas<br />

maliciosos.<br />

• Spoofing: suplantar usuarios.<br />

• Exploit software bugs: utilizar agujeros causados por otros<br />

programas, se cambian los privilegios.<br />

• Denial-of-service: estos ataques provocan la inutilización de las redes<br />

o equipos que han sido atacados, discos, redes, tablas etc.<br />

101<br />

102<br />

<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

• Categorías de firewalls<br />

• Firewalls comerciales:<br />

• Packet filtering and screening routers: utiliza un filtro<br />

basado en una combinación de la dirección <strong>IP</strong> del host de la<br />

red. También puede añadir el número del puerto y otros<br />

datos.<br />

• Application gateways or proxy servers: efectua de<br />

intermediario aceptando los servicios de la red que solicita el<br />

usuario, actuan a nivel de aplicación y pueden<br />

examinar el contenido de la misma.<br />

• Stateful inspection (dinamic packet filtering): toma el<br />

estado de las sesiones y las cambia las reglas siempre según<br />

una política preestablecida.<br />

• Hybrid firewalls: combinación de las tres categorias.<br />

• CheckPoint – Firewall-1<br />

• Cisco – PIX Firewall<br />

• Axent – Raptor<br />

• Network Associates – Gauntlet<br />

• Secure Computing – Sidewinder<br />

103<br />

104


<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

• ACL:<br />

• Para identificar los bits que han de ser verificados en una dirección <strong>IP</strong><br />

o rango de direcciones <strong>IP</strong> es necesario utilizar mascaras y en este<br />

caso se llama wildcard.<br />

• La wildcard funciona al contrario de la máscara <strong>IP</strong>, un “0” en la<br />

mascara indica que hay que comprobar el bit correspondiente a la<br />

dirección y si hay un “1” el bit puede ser ignorado.<br />

E.g.; 206.153.80.0 /24<br />

• Máscara: 255.255.255.0<br />

• Wildcard Mask: 0.0.0.255<br />

Ejemplo: supongamos que deseamos comprobar las subredes <strong>IP</strong><br />

206.153.80.0/24 a 206.153.90.0/24<br />

Red . Host<br />

206.153.80. 0<br />

01010000 = 80<br />

01010001 = 81<br />

Coin-Indif<br />

…………<br />

01011010 = 90<br />

Máscara de wildcard que coinciden con los bits : 0000 comprobar<br />

Máscara de wildcard que no coinciden con los bits : 1111 ignorar,<br />

en este caso hasta 1010<br />

105<br />

106<br />

Dirección y mascara wildcard 206.153.80.0 0.0.10.255<br />

Máscara wildcard 00001010 = .10<br />

<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

<strong>Tema</strong> 4: Conceptos Avanzados de <strong>IP</strong><br />

107<br />

• ACL<br />

La sintaxis del comando access-list de una lista de acceso extendida:<br />

Router(config)#access-list número_lista_de_acceso {permit I deny}<br />

protocolo dirección_de_origen máscara_origen [puerto_del_operador]<br />

dirección_de_destino máscara_destino [puerto_del_operador]<br />

[established] [log]<br />

Donde:<br />

•número_lista_de_acceso: identifica la lista entre 100 y 199<br />

•permit I deny: indica si se permitirá o bloqueará una lista especifica<br />

•Protocolo: puede ser <strong>IP</strong>, TCP, UDP, ICMP, GRE, O IGRP<br />

•origen y destino: identifican las direcciones <strong>IP</strong> origen y destino<br />

•máscara_origen y máscara_destino: mascara wildcard los “0” las<br />

posiciones que deben coincidir y los “1” no importan<br />

•puerto_del_operador: puede ser lt(menor que), gt(mayor que), eq(igual<br />

que), neq(distinto de) y un número de puerto del protocolo<br />

•Established: solo para TCP de entrada, permite que el tráfico TCP pase si<br />

el paquete utiliza una conexión preestablecida (ACK)<br />

•Log: envia un mensaje de registro a la consola<br />

108<br />

• ACL<br />

Ejemplo : bloqueo el tráfico FTP desde una subred específica<br />

206.150.0.0<br />

206.150.80.0 206.150.81.0<br />

E0<br />

Router(config)#access-list 101 deny tcp 206.150.81.0 0.0.0.255<br />

206.150.80.0 0.0.0.255 eq 21<br />

Router(config)#access-list 101 deny tcp 206.150.81.0 0.0.0.255<br />

206.150.80.0 0.0.0.255 eq 20<br />

Router(config)#access-list 101 permit any any<br />

(Any = 0.0.0.0 255.255.255.255)<br />

S0<br />

E1<br />

X<br />

Tráfico FTP<br />

206.150.81.5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!