Práctica 9 - Capa de red II#
El objetivo de esta práctica es descubrir la jerarquía de redes
locales a través del protocolo ICMP. Para ello se utilizará la
herramienta wireshark para realizar las capturas correspondientes a
las transmisiones.
Evaluación#
Esta práctica es evaluable (0.5 puntos sobre los 3.0 puntos totales de las prácticas), por lo que deberás acceder al cuestionario correspondiente en Campus Virtual. El cuestionario se cerrará al acabar sesión. Cada respuesta errónea se penalizará con un 1/3 del valor asignado a cada pregunta.
Preparación#
Para la realización de la práctica es necesario que la conexión de red esté configurada correctamente:
Se suponen conocidos aspectos ya vistos en prácticas anteriores, por ejemplo, el comando para conocer la propia IP y el manejo de Wireshark y Tshark.
Prepara tu directorio de trabajo. Como siempre, en
/home/alumnocrea un directorio llamadop9. Puedes hacerlo con estos comandos:rm -rf p9 mkdir p9 cd p9 pwd
Debe devolver:
/home/alumno/p9
traceroute#
Nota
Utiliza apt si necesitas instalar traceroute.
La utilidad traceroute de GNU/Linux proporciona información acerca
de la ruta que toman los paquetes desde el host origen hasta alcanzar
el host de destino. Para ello, utiliza el campo de la cabecera IP TTL
(Time To Live), el cual se codifica como un contador de saltos (por
defecto con valor 64) e indica el número máximo de saltos que un
paquete puede dar en Internet antes de ser descartado. En cada salto
el campo TTL se decrementa en una unidad, de manera que cuando este
contador llega a 0 el paquete se descarta y el host que lo descarta
informa al host origen enviando un mensaje ICMP con su IP y una estimación
del tiempo Round-Trip delay Time (RTT).
El funcionamiento de traceroute es el siguiente: envía un paquete
TTL=1 que será descartado en el primer salto. Dicho host devuelve su
IP y su RTT. A continuación, envía un segundo paquete IP con TTL=2
que será descartado en el segundo salto, el cual devolverá la misma
información. El proceso se repite sucesivamente con TTL=3, 4…
hasta que el paquete alcanza su destino. Si no se devuelve
respuesta de algún salto en un tiempo máximo de 5 segundos (por
defecto), se muestra un asterisco *. Esto ocurre cuando firewalls u
otros dispositivos de seguridad bloquean tráfico.
Pruébalo con:
traceroute -n 8.8.8.8
y obtendrás una salida similar a la siguiente:
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 172.24.212.2 0.686 ms 0.593 ms 0.683 ms
2 172.16.160.42 1.463 ms 1.476 ms 1.349 ms
3 * * *
4 130.206.212.1 4.242 ms 4.210 ms 4.140 ms
5 130.206.245.25 4.280 ms 5.958 ms 5.907 ms
6 * * *
7 74.125.242.161 4.093 ms 74.125.242.177 5.193 ms 74.125.242.161 4.012 ms
8 74.125.253.197 5.144 ms 209.85.247.245 4.494 ms 142.250.213.127 4.107 ms
9 8.8.8.8 4.076 ms 4.350 ms 4.154 ms
La primera columna se corresponde con el número de salto, la segunda
proporciona el nombre de host y la IP del salto alcanzado, y las tres
columnas siguientes se corresponden con tres valores RTT, que es el
tiempo de ida y vuelta del paquete desde el host origen hasta ese
punto. Hay tres valores porque traceroute, por defecto, manda tres
datagramas de señalización diferentes. Si alguna de las tres pruebas
RTT no devuelve respuesta, se muestra en su tiempo RTT un asterisco
*. Los * * * indican, por tanto, que no se ha recibido ninguna
respuesta a las pruebas RTT para ese salto en concreto.
traceroute permite, por tanto, determinar el ruta IP que puede
seguir un paquete enviado desde su origen hasta su destino, así como
el estado de la ruta en cada punto gracias a los valores de tiempo RTT
que ofrece.
traceroute a google.es#
Arranca
wiresharke inicia el proceso de captura en la interfaz conectada a Internet.Ejecuta:
sudo traceroute -n -I -N 1 -q 1 google.esCuyas opciones son:
-n: evita quetraceroutemuestre el nombre del host de forma que sólo muestre las direcciones IP.-I: fuerza atraceroutea utilizar ICMP.-N: el número de datagramas de prueba que se envían silmultáneamente (por defecto es 16).-q: el número de datagramas de prueba que se envían por salto (por defecto 3).
Una vez terminado el comando anterior, para la captura. Deberías observar las peticiones ICMP con sus correspondientes mensajes de error de respuesta. Si quieres, salva la captura como
google-es.pcapng.Con el filtro de visualización puesto a
icmp, contesta a las preguntas del formulario asociadas a esta parte.
traceroute a microsoft.es#
Realiza el mismo ejercicio que antes, pero ahora a
microsoft.es. En este caso, ejecuta:sudo traceroute -n -I -N 1 -q 1 -m 10 microsoft.esLa opción
-mpermite definir el valor máximo del campo TTL que se va a utilizar. En este caso, al llegar a10se abortará la ejecución.Contesta a las preguntas del formulario asociadas a esta parte.
mtr#
mtr es una herramienta que funciona sobre los mismos principios que
traceroute pero está diseñada para medir la calidad de las rutas en
cada punto.
Instala
mtrcon:sudo apt install mtr-tinyEjecuta el siguiente ejemplo:
mtr -n -c 3 -r 8.8.8.8Que hará una prueba hacia
8.8.8.8, con las siguientes opciones:-n: evita que muestre el nombre del host de forma que sólo muestre las direcciones IP.-c: limita la prueba a 3 peticiones a cada punto de la ruta.-r: muestra la salida al final del proceso en vez de entrar en modo interactivo.
La salida de este comando muestra los siguientes valores por cada punto de la ruta:
Loss%: porcentaje de datagramas perdidos.Snt: número de datagramas enviados.Last: RTT del último datagrama en msAvg: media del RTT en ms.Best: el mejor RTT registrado en ms.Wrst: el peor RTT registrado en ms.StDev: desviación estándar de los RTT.
Nota
Los datagramas perdidos ya se marcan como
???.Con la salida obtenida y todo lo aprendido hasta ahora, contesta a las preguntas asociadas.
ip route#
Con el comando ip route se pueden ver y manipular las rutas por las
que los datagramas IP serán enviados cuando salen desde tu host.
Por ejemplo, ejecuta:
ip route
Y obtendrás una salida similar a la siguiente:
default via 192.168.1.1 dev ens3 proto dhcp metric 600
192.168.1.0/24 dev ens3 proto kernel scope link src 192.168.1.232 metric 600
Cada línea representa una ruta configurada en tu host:
La primera línea muestra la ruta por defecto. Esta ruta es la que tomarán los datagramas IP cuya dirección destino no esté incluída en ninguna de las otras reglas. En este caso, estos datagramas se retransmitirán al host
192.168.1.1utilizando la interfazens3. Este host es la puerta de enlace o gateway y es la ruta que se utiliza para los datagramas que van a Internet.La segunda línea será para aquellos datagramas cuya dirección destino está dentro de la red
192.168.1.0/24, en cuyo caso se enviará por la interfazens3y será entrega directa (scope link), por lo que no hay que reenviarlo a ningún router intermedio. Esta es la ruta que tomarán los paquetes dirigidos a nuestra propia LAN.
Puedes comprobar la ruta que tomará un datagrama con una IP destino
que proporciones al comando ip. Por ejemplo:
ip route get 8.8.8.8
Mostrará algo similar a:
8.8.8.8 via 192.168.1.1 dev ens3 src 192.168.1.232 uid 1000
cache
Indicando que un datagrama IP con destino a 8.8.8.8 se reenviará a
192.168.1.1.
Rutas#
Antes de ejecutar los comandos, lee todo el ejercicio al completo ya que te será de gran ayuda para entender mejor las preguntas.
Ejecuta:
ip routeResponde a las preguntas asociadas del cuestionario.
Cambio de rutas#
Antes de cada paso, lee todo el ejercicio al completo.
Vamos a eliminar la ruta al gateway. Ejecuta:
sudo ip route del defaultAhora lo vamos a sustituir por otro:
sudo ip route add default via 172.24.212.48Contesta a las preguntas de esta parte del cuestionario.
Peligro
Es posible que experimentes problemas de conexión al formulario en este momento. Si es así y no puedes contestar a las preguntas, puedes anotar tus respuestas, continuar al paso siguiente y contestarlas una vez hayas completado dicho paso.
Una vez contestado, vuelve a poner la configuración inicial con el siguiente comando:
sudo ip route replace default via <IP-original-gateway>
Finalización#
Finalmente, borra el directorio generado /home/alumno/p9 con:
rm -rf /home/alumno/p9