Práctica 10 - Capa de enlace#
El objetivo de esta práctica es entender el encapsulamiento y las cabeceras usadas en protocolos de diferentes capas, desde la de enlace hasta transporte. Para ello se utilizarán herramientas de generación de tráfico sintético. También se abordará el modo en el que el protocolo Ethernet lleva a cabo la entrega de tramas a través de direcciones MAC, en contrapunto a la entrega host to host del protocolo IP.
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.
Como herramienta para generar tráfico sintético utilizaremos
PackETH, por lo que necesitarás tener esa herramienta instalada.Nota
Recuerda que para instalar ésta herramienta puedes utilizar
sudo apt install packeth.Si deseas guardar las capturas, prepara tu directorio de trabajo:
Dentro de
/home/alumnocrea un directorio llamadop10. Puedes hacerlo con estos comandos:rm -rf p10 mkdir p10 cd p10 pwd
Debe devolver:
/home/alumno/p10
Recepción de una trama Ethernet broadcast#
En este primer ejercicio debes capturar una trama Ethernet que será enviada de manera periódica durante toda la sesión desde el ordenador del profesor.
Arranca Wireshark y empieza a realizar una captura en la interfaz de red cableada de tu equipo.
Añade un filtro de visualización que muestre únicamente tramas
LLCque tengan la dirección de broadcast (FF:FF:FF:FF:FF:FF) como dirección de destino.En unos segundos deberías recibir una trama categorizada como
LLC.Detén la captura y responde a las preguntas de esta parte del cuestionario.
Envío de una trama Ethernet broadcast#
En este ejercicio debes usar el programa PackETH para generar una trama Ethernet sintética para enviar a la red.
Nota
Recuerda que si no tienes PackETH instalado puedes usar apt para
instalarlo como se menciona más arriba.
Averigua la dirección IP y Ethernet de la tarjeta de red de tu equipo con el siguiente comando:
ip addrAverigua la dirección IP del enrutador por defecto. Para ello, analiza la salida del siguiente comando:
ip routeNota
Para saber cuál es la IP del enrutador, ten en cuenta que su IP debe estar en la misma subred que la IP de tu interfaz.
Lanza el programa PackETH con permisos de administrador:
sudo packethEn la sección link layer de la interfaz gráfica selecciona lo siguiente:
ver II (Ethernet version II)
MAC Header:
Destination: añade la dirección Ethernet de broadcast.
Source: añade la dirección Ethernet de tu equipo que obtuviste anteriormente.
Ethertype: selecciona ARP del desplegable y comprueba que el valor es
0806.
Next layer: selecciona «Arp packet».
Nota
Recuerda que puedes copiar la dirección MAC en el portapales y pegarla en tantos sitios como necesites.
En la sección Arp payload selecciona lo siguiente:
Message type: ARP request (0x0001)
Sender MAC: de nuevo, la dirección Ethernet de tu equipo (recuerda que puedes copiar y pegar).
Sender IP: la dirección IP de tu equipo.
Target MAC:
00:00:00:00:00:00(es la que queremos averiguar).Target IP: la dirección IP del enrutador por defecto que averiguaste anteriormente.
Abre Wireshark y comienza una captura en la interfaz de red adecuada.
Nota
Para este ejercicio puedes utilizar un filtro de captura o de visualización para el protocolo ARP con «arp».
Una vez iniciada la captura, vuelve a la ventana de PackETH; pincha en el botón
Interfacey selecciona la interfaz adecuada.En la ventana de PackETH, pincha en el botón
Send.Vuelve a la ventana de Wireshark, observa si se han capturado paquetes ARP. Detén la captura y responde a las preguntas de este apartado del cuestionario.
Envío de una trama Ethernet unicast a un host de la red#
De nuevo, utiliza PackETH para generar un nuevo paquete. Esta vez lo que
debes conseguir es enviar un datagrama ICMP a la IP 8.8.8.8. Para
poder enviar un datagrama que, a nivel de red, va hacia una red
externa a la nuestra, deberemos enviar la trama Ethernet a la
dirección MAC del enrutador por defecto.
Ten a mano la dirección MAC del enrutador por defecto de tu red que has obtenido en el ejercicio anterior en el paquete ARP Reply que hayas capturado.
Abre de nuevo PackETH con permisos de administrador:
sudo packethEn la sección link layer de la interfaz gráfica selecciona lo siguiente:
ver II (Ethernet version II)
MAC Header:
Destination: añade la dirección Ethernet del enrutador por defecto.
Source: añade la dirección Ethernet de tu equipo.
Ethertype: pon
0800, o selecciona IPv4 del desplegable.
Next layer: selecciona «IPv4».
En la sección IPv4 data selecciona lo siguiente:
Version: 0x4
Header Length: 0x5
TOS: 00.
Total length: Marca la casilla «Auto».
Identification: 0x0001.
Flags: 2 (elige «Don’t fragment» a «Set» y «More fragments» a «Not set»).
Fragent offset: 0
TTL: 128
Protocol: 1 (o selecciona ICMP) del desplegable.
Header cks: Marca la casilla «Auto».
Source IP: selecciona tu dirección IP.
Destination IP:
8.8.8.8Next layer: ICMP
En la sección ICMP data:
Type: selecciona Echo request en el desplegable.
Code: 00
Checksum: selecciona «Auto».
Identifier: 0x0123
Seq. number: 0x0123
Abre Wireshark y comienza una captura en la interfaz de red adecuada.
Nota
Para este ejercicio puedes utilizar un filtro de captura o de visualización para el protocolo ICMP con «icmp»
Una vez iniciada la captura, vuelve a la ventana de PackETH; pincha en el botón
Interfacey selecciona la interfaz adecuada.En la ventana de PackETH, pincha en el botón
Send.Vuelve a la ventana de Wireshark, observa si se han capturado paquetes ICMP. Debes capturar tanto la petición como la respuesta. Después, detén la captura y responde a las preguntas de este apartado del cuestionario.
Finalización#
Finalmente, borra el directorio generado /home/alumno/p10 con:
rm -rf /home/alumno/p10