Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ICMP
Primero hay que saber la tabla de encaminamiento.
Para ello:
• route
• Ip route show
• Netstat –r
Hay que ejecutarlo en las terminales de cada máquina. Cada comando enseña informaciones extras,
pero para este tema, los tres nos enseñan la tabla de encaminamiento.
Si una máquina no tiene asignada ninguna dirección IP, la tabla de encaminamiento estará vacía.
Al asignar una dirección IP, automáticamente se añade una entrada en la tabla de encaminamiento
para que dicha maquina se pueda comunicar con las maquinas que están directamente conectadas a
dicha subred.
Si una máquina tiene asignada carias direcciones IP, automáticamente tendrá configuradas en su
table de encaminamiento tantas entradas como subredes a las que este conectada directamente
dicha máquina. En cada ruta de la tabla, la iface (interfaz) que aparece se refiere a la interfaz de la
máquina en la que se ejecuta la orden por la que saldrán los paquetes que utilicen esa ruta.
• Con route:
o Ruta a una maquina:
▪ Route add –host <máquinaDestino> gw <gateway> (ROUTER VECINO)
o Ruta a una subred:
▪ Route add –net <subredDestino> netmask <máscara> gw <gateway>
o Ruta por defecto:
▪ Route add default gw <gateway>
• Con ip:
o Ruta a una máquina o a una subred:
▪ Ip route add <dirIP/máscara> via <gateaway>
o Ruta por defecto:
▪ Ip route add default via <gateway>
• Con route:
o Ruta a una maquina:
▪ Route del –host <máquinaDestino>
o Ruta a una subred:
▪ Route del –net <subredDestino> netmask <máscara>
o Ruta por defecto:
▪ Route del default
• Con ip:
o Ruta a una máquina o a una subred:
▪ Ip route del <dirIP/máscara> via <gateaway>
o Ruta por defecto:
o Ip route del default via <gateway>
Para que se quede guardada después de reiniciar, hay que usar el fichero: /etc/network/interfaces
Para realizar el Diagnóstico de red, que es monitorizar el estado de conectividad a la red de las
máquinas, usaremos:
• Arp
• Ping
• Traceroute
ARP
• arp –a
-RTT (tiempo de ir y volver del destino) mínimo, medio y máximo, y desviación media.
Comienza enviado 3 paquetes con TTL = 1, cuando se obtiene una respuesta (ICMP: time
exceedes) aumenta a TTL = 2 y así sucesivamente hasta obtener respuesta UDP port
unreachable.
Cada vez que se obtiene una respuesta se imprime información de la máquina que envió
dicha respuesta y el RTT con dicha máquina.
Ejecuto en la terminal de pc1 la orden indicada, irá enviando paquetes ping cada segundo:
Esto se debe a que solo tiene asignada una única dirección IP, la de loopback, por lo que, aun
teniéndolo configurada, no va a aparecer porque no tiene mucho sentido decir que la única
dirección ip que tiene registrada, es ella mismo. Sin embargo, si tuviese otra dirección IP configurada
(la de eth0, por ejemplo), ya sí que aparecería, porque ya se tiene que hacer distinción.
2. Modifica el fichero /etc/network/interfaces de pc1 para que tenga una dirección IP acorde a la
de la subred a la que está conectado. (Nota: Deberás consultar previamente la máscara de la
subred que tienen las otras máquinas conectadas a la misma subred que pc1). Reinicia la red en
pc1 para que se aplique la configuración que has escrito en el fichero /etc/network/interfaces.
Sabiendo que la máscara es la 255.255.255.0, es decir, el prefijo es /24, configuro la IP del pc1 en
nano /etc/network/interface:
Reinicio la máquina:
3. Comprueba con route el contenido actual de su table de encaminamiento. Verás cómo, tras
asignar la dirección IP a su interfaz de red, se ha añadido automáticamente una entrada en la
tabla. Con esta tabla actual pc1, ¿a qué otras direcciones IP crees que pc1 podrá enviar
datagramas IP?
Para pc2,
Solo le podrá enviar datagramas IP a las máquinas que estén en su misma subred, es decir, al eth1
de r3.
Para pc4,
Solo le podrá enviar datagramas IP a las máquinas que estén en su misma subred, es decir, a eth0 de
pc1 y eth0 de r3.
5. Intenta deducir cuál crees que será la tabla de encaminamiento de r3, dado que tiene dos
interfaces con IP asignada. Compruébalo consultando su tabla. ¿Con esta tabla de
encaminamiento, ¿crees que r3 puede enviar datagramas IP a pc1 y pc4? ¿Y a pc2?
Supongo que, como todavía no ha habido una comunicación, tendrá configurado las direcciones IP
de las subred de sus dos eth.
Con esta tabla de encaminamiento,r3 si puede enviar datagrama IP a todas las mquinas dichas. Eth0
para las maquinas pc1 y pc4 y con eth1 para la maquina pc2.
6. Haz ping desde pc1 a pc4 y haz ping desde pc1 a la dirección r3(eth0). Ten en cuenta que no
puedes utilizar los nombres pc1, pc4, etc. en el ping, sino que debes usar las direcciones IP
correspondientes. ¿Funcionan estos ping? ¿Qué entradas de las tablas de encaminamiento se
consultan en cada caso?
Ping –c 1 200.80.0.3
Igualmente se consulta para pc1 su única dirección que es en eth0 dando a su subred.
7. Haz un ping de pc1 a pc2 y haz un ping de pc1 a la dirección r3(eth1). ¿Funcionan estos ping?
¿Por qué?
Ping –c 1 202.80.0.20
Como no está en su misma subred, no tiene esa dirección IP cuando consulta en su tabla forma de
llegar.
Lo mismo pasa con r3 en eth1, que como no está en su subred, no ve la manera de poder llegar.
8. Añade una ruta con el comando route en pc1 para que los datagramas IP que no sean para su
propia subred los envíe a través del router r3.
Usaré el default:
9. Haz ahora ping desde pc1 a r3(eth1). ¿Funciona este ping? ¿Qué entradas de las tablas de
encaminamiento se consultan?
Esta vez si que funciona el ping. Se consulta en primer lugar si es vecino suyo, es decir, la dirección
de eth0, su nivel de subred. Al ver que dirección no se encuentra en su subred, consulta el default y
lo envía por ahí.
10. Haz un ping de pc1 a pc2. ¿Por qué crees que no funciona este ping?
No funciona porque, si bien si le llega a pc2, este desecha el mensaje que tiene que enviar la
respuesta a pc1, ya que no tiene configurada su default si no tiene una subred no vecina en la que
enviar su datagrama.
11. Añade las rutas necesarias utilizando el comando route para que funcione un ping de pc1 a pc2
y un ping de pc4 a pc2. Ten en cuenta que podrás utilizar, rutas de máquina, rutas de subred o ruta
por defecto.
Para hacer eso, sencillamente añado direcciones default para pc2, el eth1 de r3 y para pc4, el eth0
de r3:
De pc1 a pc2:
Pc4 a pc2:
12. ¿Crees que con la configuración que has realizado funcionará un ping de pc2 a pc1 y un ping
pc2 a pc4? Compruébalo.
13. Antes de continuar espera unos 10 minutos después de haber ejecutado el último ping del
apartado anterior. Consulta el estado de las cachés de ARP en los pcs y en el router hasta que
estén vacías. Arranca en pc4 un tcpdump para capturar tráfico en su interfaz eth0, guardando la
captura en el chero p3-a-01.cap. Ejecuta en pc1 un ping a pc4 que envíe sólo 1 paquete (ping -c 1
<máquinaDestino>). Interrumpe la captura en pc4 (Ctrl+C). Comprueba el estado de las cachés de
ARP en pc1, pc4, pc2 y r3 y explica su contenido.
Ejecuto el comando arp –a para ver la tabla de caché ARP de cada máquina:
Pc1:
Pc2:
Pc4:
R3:
Espero esos 10 minutos, y una vez esperado podemos ver que se han borrado:
Pc1:
Pc2:
Pc4:
R3:
Pc1:
Se ha guardado en su caché de ARP que, en caso de querer enviar una trama IP a Pc4, ya lo puede
enviar directamente por el puerto eth0 sin necesidad de preguntar si pc4 se encuentra en su
alcance. Es decir, realiza el echo request en un formato broadcast en su subred pero con direccion
destino pc4.
Pc2:
Como se le borro antes la caché pasado esos 10 minutos y al no haber recibido ninguna trama ARP,
no tienen guardada ninguna
Pc4:
El pc4, cuando le llegó la trama ARP de pc1 preguntando si había alguna dirección IP en esa subred,
este la cogió, metió ahí su dirección IP, volvió a enviar esa trama a pc1 y se guardó dónde está el pc1.
Es decir, realiza el Echo reply a pc1
R3:
No tiene guardado nada en el arp porque, al ver que no era para él el echo request, lo ha procesado
y luego ha desechado esa trama sin responderla.
14. Analiza la captura con wireshark. Observa los siguientes campos en los mensajes:
15. Espera a que la caché de ARP de pc1 esté vacía. Ahora vamos a analizar el tráfico desde pc1 a
pc2. ¿Cuántas capturas de tráfico crees que son necesarias para ver todos los paquetes que se
generan en el escenario cuando se comunican pc1 y pc2?
Arranca un tcpdump en r3(eth0) guardando la captura en el chero p3-a-02.cap.
Arranca otro tcpdump en pc2 guardando la captura en el chero p3-a-03.cap.
Ejecuta en pc1 un ping a pc2 que envíe sólo 1 paquete (ping -c 1 <máquinaDestino>).
Interrumpe las capturas (Ctrl+C).
Comprueba el estado de las cachés de ARP en pc1, pc2, pc4 y r3. Explica su contenido.
Espero a que la caché de ARP de pc1 esperando 10 minutos. Una vez visto que está vacía, continuo:
Para la comunicación entre pc1 a pc2, creo que en total necesitaríamos 2, una en pc1 o en pc2,
dando igual donde, y otra en r3, ya que este tendrá querecibir los datagramas IP, pero además los
datagramas de ARP de cada uno. En total creo que se generán para un ping de –c1 entre pc1 y pc2,
un total de 8 paquetes.
Empiezo las capturas tanto en r3 como en pc2:
Pc1:
Podemos observar que se ha guardado la dirección ip de r3, ya que este ha sido quien le ha
respondido el echo request, aunque la máquina se piensa que ahí está el pc2 en este caso (aunque
no lo sea).
Pc2:
Pasa a lo inverso que en pc1. Ha guardado que, para enviarle un datagrama ethernet a pc1, tiene
que enviarselo a 202.80.0.3.
Pc4:
Este, al no ser destinatario de esta comunicación, no ha guardado ninguna dirección ya que no le
interesa por el momento.
R3:
Este al ser el encaminador por el que se ha realizado los mensajes, ha guardado tanto de pc1 como
de pc2, cada uno dependiendo de su tarjeta ethernet, para hacer una comunicacion en caso de
necesitarlo mas efectiva.
16. Analiza las capturas realizadas con wireshark. Observa en los mensajes los mismos campos que
analizaste el apartado anterior. Presta especial atención a los datagramas IP. Identifica los
mensajes en las dos capturas que contienen el mismo datagrama IP. ¿Qué direcciones Ethernet
tiene la trama que contiene esos datagramas en cada captura? ¿Qué valor tiene el campo TTL de la
cabecera IP en cada uno?
Analisis entre pc1 y r3:
• Mensaje de solicitud de ARP que envía pc1 a r3:
o Dirección Ethernet Destino: Broadcast (ff:ff:ff:ff:ff:ff)
o Dirección Ethernet Origen: 3a:92:29:87:cf:cc
o Tipo en la cabecera Ethernet: ARP
o Contenido del mensaje de solicitud de ARP: Tiene una solicitud para saber ip del
router, para ello tiene un target IP donde va al direccion de este, y un Target MAC
address, para saber si es él para que sepa que quiere comunicar
• Mensaje de solicitud de ARP que envía r3 a pc1:
o Dirección Ethernet Destino: 3a:92:29:87:cf:cc
o Dirección Ethernet Origen: 16:d5:de:9f:8a:44
o Tipo en la cabecera Ethernet: ARP
o Contenido del mensaje de solicitud de ARP: Es un echo reply para pc1 haciéndole
saber que lo que busca lo puede enviar a la dirección ip ya que es la tarjeta ethernet
que busca.
• Datagrama IP que envía pc1 a r3.
o Dirección Ethernet destino: 16:d5:de:9f:8a:44
o Dirección Ethernet origen: 3a:92:29:87:cf:cc
o Tipo en la cabecera Ethernet: ICMP
o Dirección IP origen: 200.80.0.10
o Dirección IP destino: 202.80.0.20
o Campo TTL: 64
• Datagrama IP que envía r3 a pc1.
o Dirección Ethernet destino: 3a:92:29:87:cf:cc
o Dirección Ethernet origen: 16:d5:de:9f:8a:44
o Tipo en la cabecera Ethernet: ICMP
o Dirección IP origen: 202.80.0.20
o Dirección IP destino: 200.80.0.10
o Campo TTL: 63
2. Reinicia las máquinas pc1, pc2 y pc4. Consulta las tablas de encaminamiento en todas las
máquinas y routers, comprobarás que las rutas que configuraste en el apartado anterior han
desaparecido. Los pcs y routers sólo tienen ruta hacia las subredes a las que están directamente
conectados. Por tanto sólo podrán enviar paquetes a sus máquinas vecinas.
Para reiniciar las máquinas pc1, pc2, y pc4, apago y enciendo porque la configuración que le pusimos
desaparecía. Comprobándolo es verdad que ninguna tiene en su tabla de encaminamiento ninguna
dirección más que la de sus tarjetas ethernet.
pc1⇒r3⇒pc2
Pc2⇒r3⇒pc1
En pc1:
-Primero hago una ruta de red que, en caso de tener dirección 202.80.0.0, lo envíe directamente a r3
(de paso ya le añado la default, en caso de no saber a quien enviarle):
Pc2⇒r2⇒pc3
Pc3⇒r2⇒pc2
Para pc3:
Lo hago con default porque siempre va a tener que enviar las tramas por ahí.
b) Conectividad entre pc2 y pc3 en los dos sentidos, a través de la siguientes rutas:
Pc1⇒r1⇒r2⇒pc3
En pc1:
Y ya lo tendríamos enlazado
Pc3⇒r2⇒r3⇒pc1
Hago el camino a la inversa, lo compruebo con un ping y viendo las tablas de cada máquina.
Pc3:
R2:
4. Ejecuta en pc1 un traceroute hacia pc2 y en pc2 uno hacia pc1 para comprobar que las rutas son
las especificadas.
De pc1 a pc2:
De pc2 a pc1:
5. Ejecuta en pc2 un traceroute hacia pc3 y en pc3 uno hacia pc2 para comprobar que las rutas son
las especificadas.
De pc2 a pc3:
De pc3 a pc2:
6. Ejecuta en pc1 un traceroute hacia pc3 y en pc3 uno hacia pc1 para comprobar que las rutas son
las especificadas. En este último traceroute observarás que aparecen unos *, en el final del tema 4
de teoría veremos a qué se deben. En la siguiente práctica se estudiarán más en detalle estas
situaciones.
De pc1 a pc3:
De pc3 a pc1:
a) ¿En qué se distinguen los mensajes de ida del ping de los mensajes de vuelta?
Se distinguen sobre todo por el campo Source IP, ya que esta indica la ip inicial, es decir, la máquina
que envía el mensajes, mientras que la de ethernet va cambiando por cada máquina que va
pasando.
b) ¿En qué capturas se pueden ver los mensajes de ida del ping? ¿Y los mensajes de vuelta? ¿Por
qué?
Se pueden ver tanto en r1 como en r2 como en pc3, ya que todos estos son los que están haciendo
la comunicacion y por donde hemos dicho que es la direccion en caso de querer enviar el mensaje a
pc3. En cambio, r3 no se ha enterado de nada.
c) Comprueba los valores del campo TTL de la cabecera IP de todos los datagramas de todas las
capturas y explica dichos valores.
R1:
1. 64: Recien acaba de llegar el mensaje ICMP que se quiere enviar a pc3
2. 62: Respuesta característico de usar ping de pc3
3. 64: Segundo paquete que envía pc1 a pc3
4. 62: Respuesta de pc3
R2:
R3:
No tiene
Pc3:
8. Ejecuta en pc1 la orden traceroute a pc3. Cuando la orden anterior haya terminado
completamente, interrumpe las capturas (Ctrl+C). A la vista del resultado que se muestra en pc1:
¿por qué router intermedios ha pasado un paquete para llegar de pc1 a pc3?
9. Abre con wireshark los ficheros de captura que has obtenido. Identifica en los ficheros de
capturas los siguientes paquetes:
R1: Paquetes 3, 5 y 7
R2: no
Pc3: no
R1: paquete 4, 6 y 8
R2: no
Pc3: Ni uno
R1: paquete 9, 11 y 13
R2: paquete 3, 5 y 7
Pc3: no
R2: paquete 4, 6 y 8
Pc3: No
Pc3: paquete 3, 5 y 7
R2: no
Pc3: no
a) ¿Por qué ruta van viajando los mensajes enviados por pc1 con TTL creciente?
Los mensajes van enviados, en el siguiente orden, de pc1 a r1, de r1 a r2, y de r2 a pc3
b) ¿Por qué ruta viajan los ICMP enviados por r1? ¿Qué dirección IP usa r1 como IP de origen el
enviar esos ICMP?
La dirección que usa como IP origen es la de pc1, 200.80.0.10 netmask 255.255.255.0, enviandolo
por la subred 201.80.0.0 a r2, y r2 a pc3
c) ¿Por qué ruta viajan los ICMP enviados por r2? ¿Qué dirección IP usa r2 como IP de origen el
enviar esos ICMP?
Viajan por la subred 203.80.0.0 netmask 255.255.255.0. Se lo envía directamente a pc3, usando la IP
origen la de pc1, 200.80.0.10
Los ICMP enviado por pc3 se envia, en el siguiente orden, de pc3 a r2, de r2 a r1 y de r1 a pc1.