Práctica 2. Protocolo de Mensajes de Control de Internet (ICMP)


Cuestión 1. Sobre mensajes ICMP del "Ping"

Inicia el programa Monitor de Red en modo captura. A continuación ejecuta el comando:


C:\ping –n 1 172.20.43.230(…la opción –n especifica el número de peticiones “echo” que se lanzan al medio)


Detener la captura en el Monitor de Red (filtrar únicamente tramas del alumno) y visualizar los paquetes capturados. En base a los paquetes capturados determinar:


1.a. ¿Cuántos y qué tipos de mensajes ICMP aparecen? (tipo y código)


Al hacer uso de ping enviamos un paquete ICMP al router cisco (172.20.43.230) del laboratorio.


Aparecen 2 tipos de mensajes ICMP: La Petición de echo (echo request - tipo 8 y código 0) correspondiente al ping y la Respuesta de echo (echo reply - tipo 0 y código 0) que corresponde a la respuesta de nuestro ping.



1.b. ¿Crees que las direcciones IP origen y MAC origen del mensaje ICMP "Reply" hacen referencia a la misma máquina o interfaz de red?

Las direcciones IP y MAC origen del mensaje de respuesta “echo reply” corresponden a la misma máquina, al router Cisco 1720 del laboratorio al que le enviamos el ping ( con IP 172.20.43.230 y MAC 00:07:0E:8C:8C:FF).


Esta coincidencia es debida a que le hemos enviado el ping a una máquina de nuestra propia red. En el caso de mandar un ping hacia fuera, la MAC no coincidiría con la IP de respuesta. En este caso, la MAC sería de nuestra puerta de enlace y la IP de la máquina de fuera.



Cuestión 2. Sobre la fragmentación de datagramas IP

Inicia el programa Monitor de Red en modo captura. A continuación ejecuta el comando:


Empleando el programa Monitor de Red de la misma forma que en la situación anterior, ejecutar:


C:\>ping –n 1 –l 2000 172.20.43.230 (…la opción –l especifica la cantidad de datos a enviar)


2.a. Filtra los paquetes en los que esté involucrada tu dirección IP. A continuación, describe el número total de fragmentos correspondientes al datagrama IP lanzado al medio, tanto en la petición de ping como en la respuesta. ¿Cómo están identificados en el Monitor de Red todos estos paquetes (ICMP, IP, HTTP, TCP…)? ¿qué aparece en la columna ‘info” del Monitor de Red?



Datagrama

Protocolo

Info

Tamaño

1

ICMP

Echo(ping) request

1514 bytes

2

IP

Fragmented ip protocol

562 bytes

3

ICMP

Echo(ping) reply

1514 bytes

4

IP

Fragmented ip protocol

562 bytes


2.b. ¿En cuantos fragmentos se ha “dividido” el datagrama original?


Como se puede apreciar en la figura anterior, el datagrama se ha dividido en dos fragmentos. El primero de 1514 bytes y el segundo de 512 bytes, ya que 2000 es mayor a la MTU de nuestra Ethernet de 1500.


2.c. Analiza la cabecera de cada datagrama IP de los paquetes relacionados con el “ping” anterior. Observa el campo “identificación”, “Flags” y “Fragment offset” de los datagramas. ¿Qué valor tienen en estos campos en los datagramas anteriores? Indica en la columna “dirección” si son de petición o respuesta. Muestra los datagramas en el orden de aparición del Monitor de Red.


Aparecen dos fragmentos tanto para la petición, como para la respuesta.




Datagrama

Protocolo

Dirección

Flags

Frag. offset

Identificación

1

ICMP

172.20.43.230

0.0.1

0

0x7a35

2

IP

172.20.43.230

0.0.0

1480

0x7a35

3

ICMP

172.20.43.215

0.0.1

0

0x7a35

4

IP

172.20.43.215

0.0.0

1480

0x7a35




2.d.¿Qué ocurre en la visualización de los fragmentos de datagramas si introduces un filtro para ver únicamente paquetes de “icmp” en el Monitor de Red? ¿qué fragmentos visualizas ahora?


Introduciendo “icmp” en el campo filter solo visualizamos los dos paquetes correspondientes al primer fragmento de la petición y de la respuesta respectivamente.


Esto es debido a que estos primeros fragmentos son los que poseen la cabecera ICMP. Como los siguientes fragmentos no la poseen nos aparecen como protocolo IP.


2.e.¿Para qué se pueden emplear los campos “Identificación”, “Flags” y “Fragment offset” de los datagramas IP?


Para la fragmentación.


El campo “Identificación” indica cada fragmento al datagrama que le corresponde, el campo “Flags” nos indica el número de fragmentos que nos faltan para completar el datagrama y la posición en la que se encuentra el mismo.


Por último, el campo “Fragment ofsset” identifica en el reensamblado la posición donde debe colocar ese fragmento para recomponer el datagrama original.


2.f. A continuación, se pretende observar que los datagramas pueden fragmentarse en unidades más pequeñas si tienen que atravesar redes en las que la MTU es menor a la red inicial en la que se lanzaron los paquetes originales. Inicia el Monitor de Red y captura los paquetes IP relacionados con el siguiente comando:


C:\>ping –n 1 –l 1600 10.3.7.0


(antes de contestar debes confirmar que en MSDOS el resultado del ping es correcto: paquetes enviados:1 , paquetes recibidos:1)


Indica el número total de datagramas en la red e identifica si son de petición o de respuesta (dirección):




Datagrama

Protocolo

Dirección

Flags

Frag. offset

Identificación

1

ICMP (ping request)

10.3.7.0

0.0.1

0

0x8230

2

IP (fragmented)

10.3.7.0

0.0.0

1480

0x8230

3

ICMP (ping reply)

172.20.43.215

0.0.1

0

0x009b

4

IP (fragmented)

172.20.43.215

0.0.1

480

0x009b

5

IP (fragmented)

172.20.43.215

0.0.1

960

0x009b

6

IP (fragmented)

172.20.43.215

0.0.0

1440

0x009b


- Cuando aparece “..1 = More fragments : set” significa que todavía hay más información.
- Cuando aparece “..0 = More fragments : Not set” significa que es el último fragmento.
- Cuando aparece “.0. = Don’t fragments : Not set” impide la fragmentación del datagrama.
- Cuando aparece “0.. = Reserved bit : Not set”.*


Cuestión 3. Mensaje ICMP “Destination Unreachable”
Dentro del mensaje ICMP Destination Unreachable se analizará el de código 4: Fragmentation Needed and Don't Fragment was Set (3/4). En primer lugar ejecuta el comando:

C:\>route delete 10.3.7.0 ( si ya ha sido borrada la ruta, avisa con un error)

¿Porqué ejecutar este comando? En MS Windows, con route se modifican las tablas de encaminamiento de una máquina. Con la opción delete eliminamos un camino o ruta a la dirección especificada. Al eliminarlo, borramos también cualquier información asociada a esa dirección, incluida la información sobre errores previos al acceder a ese destino.
A continuación, poner en marcha el Monitor de Red en modo captura y ejecutar el comando ping:

C:\>
ping -n 1 –l 1000 -f 10.3.7.0 (…la opción –f impide la fragmentación de los datagramas en la red)

En base a los paquetes capturados, indicar:

3.a.Identifica las direcciones IP/MAC de los paquetes IP involucrados. ¿A qué equipos pertenecen?
(identifica la máquina con la topología del anexo)

La dirección IP y MAC de la petición de echo corresponde a mi máquina (172.20.43.215 y 00:0A:5E:76:8F:7B). En cambio la dirección IP de respuesta es la de la máquina a la cual el mensaje no puede ir más allá (10.4.2.5 – Router Cisco 2513) porque el mensaje no está fragmentado con lo que ocupa demasiado para ser recibido por la máquina al que lo habíamos enviado desde un principio (10.3.7.0 - Linux 1). Y, por otro lado, la MAC es la correspondiente a nuestra puerta de enlace (00:07:0e:8c:8c:ff – Router Cisco 1720).


3.b.¿Qué máquina de la red envía el mensaje ICMP “Fragmentation Needed and Don't Fragment was Set” (3/4)? (identifica la máquina con la topología del anexo)

Se trata del Router Cisco 2513.


Cuestión 4. Mensaje ICMP “Redirect”.

Inicia el Monitor de Red. A continuación ejecutar los comandos:
C:\>route delete 10.4.2.1
(si ya ha sido borrada la ruta, avisa con un error)

C:\>ping -n 1 10.4.2.1
(antes de contestar debes confirmar que en MSDOS el resultado del Ping es correcto: paquetes enviados:1 , paquetes recibidos:1, sino debes repetir los dos comandos anteriores y el proceso de captura en el Monitor de Red)

En base a los paquetes capturados, filtra sólo los datagramas que contengan tu dirección IP y contesta a las siguientes preguntas:

4.a.¿Cuántos datagramas IP están involucrados en todo el proceso? Descríbelos…(tipo, código y tamaño)

Datagrama

Tipo y Código ICMP

Tamaño del paquete ICMP

Origen IP

Destino IP

1

8 – 0 (echo request)

60 bytes

172.20.43.215

10.4.2.1

2

5 – 1 (redirect)

60 bytes

172.20.43.230

172.20.43.215

3

0 – 0 (echo reply)

60 bytes

10.4.2.1

172.20.43.215


4.b.¿Las direcciones MAC e IP de todas las tramas capturadas con el Monitor de Red hacen referencia al mismo interfaz de red? Indica en qué casos la respuesta es afirmativa y en qué casos la dirección IP especifica un interfaz de red que no se corresponde con el mismo interfaz indicado por la MAC.

Datagrama

Tipo y Código ICMP

Origen MAC

Origen IP

¿Representan al mismo interfaz?

1

8 – 0 (echo request)

00:0A:5E:76:8F:7B

172.20.43.215

Si

2

5 – 1 (redirect)

00:07:0E:8C:8C:FF

172.20.43.230

Si

3

0 – 0 (echo reply)

00:07:0E:8C:8C:FF

10.4.2.1

No


4.c.¿Qué máquina o interfaz de red envía el mensaje ICMP Redirect?
La puerta de enlace predeterminada de mi máquina, el router Cisco 1720.

4.d.¿Qué dato importante para tu PC transporta en su interior ese mensaje de Redirect?

El mensaje de redirección transporta un bloque que contiene la dirección ip del ‘router de destino’ (para el cual va dirigido el mensaje). Con esto, para futuros envíos, la dirección de salida correcta que debe tomar nuestra máquina será dicha ip.

4.e. Observa los campos “Identificación”, “TTL” del datagrama que se envió originalmente. A continuación, analiza el contenido del mensaje Redirect. ¿Puedes encontrar la misma identificación dentro de los datos (no cabecera) del mensaje ICMP Redirect? ¿Qué ocurre con los campos TTL del datagrama transportado por el Redirect?

El campo Identificación es el mismo y el TTL varía, se incrementa de 128 en el echo request a 255 bits en el redirect.


Cuestión 5. Mensaje ICMP “Time Exceeded”.

Dentro del mensaje ICMP Time Exceeded se analizará el de código 0: Time to Live exceeded in Transit (11/0). En primer lugar, inicia el monitor de red para capturar paquetes IP relacionados con la máquina del alumno y ejecuta el comando:

C:\> ping –i 1 –n 1 10.3.7.0

5.a. Finaliza la captura e indica la máquina que envía el mensaje “ICMP Time to Live exceeded in Transit”… ¿Puedes saber su IP y su MAC? (identifica la máquina en la topología del anexo)

Haciendo ping a 10.3.7.0 con 32 bytes de datos:
Respuesta desde 172.20.43.230: El periodo de vida caducó en tránsito.
Estadísticas de ping para 10.3.7.0:
Paquetes: enviados = 1, recibidos = 1, perdidos = 0 (0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mínimo = 0ms, Máximo = 0ms, Media = 0ms



La máquina que lo envía es el router Cisco 1720 con IP 172.20.43.230 y MAC 00:07:0e:8c:8c:ff .

Inicia de nuevo la captura y ejecuta a continuación el comando:

C:\> ping –i 2 –n 1 10.3.7.0

5.b. Finaliza la captura y determina qué máquina envía ahora el mensaje “ICMP Time to Live exceded in Transit”… Averigua y anota la IP y la MAC origen de este mensaje de error. ¿Pertenecen ambas direcciones a la misma máquina? (identifica las máquinas en la topología del anexo)


En este caso, la máquina que lo envía es el router Cisco 2513 del Serial 1 con IP 10.4.2.5 y con MAC 00:07:0e:8c:8c:ff perteneciente a la máquina anterior, el router Cisco 1720.
Como vemos no corresponden a la misma máquina.
Lo que sucede es que al expresar un tiempo de vida de 2 saltos en el ping (-i 2), el datagrama atraviesa el primer router y el segundo router devuelve el mensaje de error con su IP.
La MAC siempre es la indicada por el router más próximo a tu máquina que expresa la tipología de tu red, esto explica este fenómeno de no concordancia.

Por último, inicia de nuevo la captura y realiza un ping a la siguiente dirección:

C:\> ping –i 50 –n 1 10.3.7.12

5.c.Finaliza la captura y observa el mensaje de error ICMP que aparece en el monitor de red. ¿Qué tipo y código tiene asociado ese mensaje? ¿Qué crees que está sucediendo al intentar conectarte a esa máquina y obtener ese mensaje de error? ¿En qué subred estaría ubicada?


El tipo asociado es 11 (Time to live exceed) y código 0 (Time to live exceed in transit).
Lo que sucede es que se está produciendo un bucle entre las máquinas 10.3.2.0 y 10.3.7.0 hasta que agotan el TTL y nos envía el router éste mensaje de error.
Estaría ubicada en la subred 10.3.0.0 situada entre esas máquinas.


Cuestión 6. Sobre direccionamiento IP y creación de subredes.
6.a Dada la dirección de clase B 145.65.0.0, se desean 6 subredes. ¿Cuántos bits se tendrán que reservar para crear las subredes? Indica el valor decimal de las subredes, así como el valor de la nueva máscara de subred.

Se tendrán que reservar 3 bits, ya que es el mínimo para crear las 6 subredes puesto que con 2 bits el máximo son cuatro.

Teniendo en cuenta que en clase B la máscara es 255.255.0.0
145.65.0.0 → 10010001.10000001.00000000.00000000

Las 6 subredes tendrían como bits: 000,001, 010,011,100,101

Subred 1: 145.65.0.0 → 145.65.0.1 (1ª máquina) y 145.65.31.254 (última máquina)

Subred 2: 145.65. 32.0
Subred 3: 145.65.64.0
Subred 4: 145.65.96.0
Subred 5: 145.65.128.0
Subred 6: 145.65.160.0

Para la creación de la nueva máscara subred ponemos a 1’s los bits que hemos reservado.

Nueva Mascara Subred → 10010001.10000001.11100000.00000000→ 145.65.224.0

6.b Sea la dirección de red IP 125.145.64.0 con máscara asociada 255.255.254.0. Ampliar la máscara de subred en dos bits, indicando el nuevo valor. Determina el rango de direcciones IP que puede emplearse para numerar máquinas en cada una de las subredes obtenidas en la ampliación.

IP 125.145.64.0 → 01111101.10010001.01000000.00000000
MASK 255.255.254.0 → 11111111.11111111.11111110.00000000

Empezamos a coger los bits correspondientes (en este caso 2) a partir del ultimo bit 1 de la máscara.

Como se amplia la mascara de subred en 2 bits tenemos: 4 subredes 00 , 01, 10, 11. Fijandonos en la IP creamos la siguiente lista:

Subred 1: 125.145.64.0 → 125.145.64.1 (1ª máquina) y 125.145.64.126 (última máquina)

Subred 2: 125.145.64.128 → 125.145.64.129 (1ª máquina) y 125.145.64.254 (última máquina)

Subred 3: 125.145.65.0 → 125.145.65.1 (1ª máquina) y 125.145.65.126 (última máquina)

Subred 4: 125.145.65.128 → 125.145.65.129 (1ª máquina) y 125.145.65.254 (última máquina)