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