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:

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

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

  3. Si deseas guardar las capturas, prepara tu directorio de trabajo:

    • Dentro de /home/alumno crea un directorio llamado p10. 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.

  1. Arranca Wireshark y empieza a realizar una captura en la interfaz de red cableada de tu equipo.

  2. Añade un filtro de visualización que muestre únicamente tramas LLC que tengan la dirección de broadcast (FF:FF:FF:FF:FF:FF) como dirección de destino.

  3. En unos segundos deberías recibir una trama categorizada como LLC.

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

  1. Averigua la dirección IP y Ethernet de la tarjeta de red de tu equipo con el siguiente comando:

    ip addr
    
  2. Averigua la dirección IP del enrutador por defecto. Para ello, analiza la salida del siguiente comando:

    ip route
    

    Nota

    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.

  3. Lanza el programa PackETH con permisos de administrador:

    sudo packeth
    
  4. En 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.

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

  6. 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».

  7. Una vez iniciada la captura, vuelve a la ventana de PackETH; pincha en el botón Interface y selecciona la interfaz adecuada.

  8. En la ventana de PackETH, pincha en el botón Send.

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

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

  2. Abre de nuevo PackETH con permisos de administrador:

    sudo packeth
    
  3. En 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».

  4. 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.8

    • Next layer: ICMP

  5. En la sección ICMP data:

    • Type: selecciona Echo request en el desplegable.

    • Code: 00

    • Checksum: selecciona «Auto».

    • Identifier: 0x0123

    • Seq. number: 0x0123

  6. 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»

  7. Una vez iniciada la captura, vuelve a la ventana de PackETH; pincha en el botón Interface y selecciona la interfaz adecuada.

  8. En la ventana de PackETH, pincha en el botón Send.

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