Generar Tráfico de Broadcast vía ARP e Identificar la Dirección MAC de Broadcast
En este paso, contrastará el tráfico unicast con el tráfico de difusión (broadcast). Mientras que unicast es un mensaje uno a uno, broadcast es un mensaje uno a todos enviado a cada dispositivo en el segmento de red local. Un ejemplo principal de esto es el Protocolo de Resolución de Direcciones (ARP), que se utiliza para descubrir la dirección MAC asociada con una dirección IP específica. Para hacer esto, un dispositivo envía una trama de difusión preguntando: "¿Quién tiene esta dirección IP?".
Primero, iniciemos una nueva captura de tcpdump. Esta vez, agregaremos un filtro para que solo nos muestre los paquetes ARP. También usaremos la bandera -n para evitar que tcpdump resuelva las direcciones IP a nombres de host, y -q para hacer la salida más limpia.
En una terminal, ejecute el siguiente comando, recordando reemplazar eth0 con el nombre de su interfaz del Paso 1.
## Reemplace eth0 con el nombre real de su interfaz
sudo tcpdump -i eth0 -e -n -q 'arp'
tcpdump ahora está escuchando, pero solo para tráfico ARP.
A continuación, necesitamos activar una solicitud ARP. Una forma confiable de hacerlo es borrar la caché ARP de su sistema y luego intentar contactar a otro dispositivo en la red local, como su router de puerta de enlace. Borrar la caché obliga a su sistema a redescubrir la dirección MAC de la puerta de enlace usando ARP.
Abra una nueva terminal. Primero, encuentre la dirección IP de su puerta de enlace con el comando ip route.
ip route | grep default
La salida mostrará su ruta predeterminada, y la dirección IP listada después de "via" es su puerta de enlace.
default via 172.16.50.1 dev eth0
Nota: Es probable que la dirección IP de su puerta de enlace sea diferente. Es fundamental utilizar la dirección IP de este comando en los pasos siguientes. Un error común es usar una IP diferente como 172.17.0.1, que a menudo es la puerta de enlace para una red Docker local y no producirá el resultado correcto para este ejercicio.
En este ejemplo, la puerta de enlace es 172.16.50.1. Ahora, borre su caché ARP usando el comando ip neigh flush. Esto eliminará las asignaciones de direcciones MAC conocidas, obligando a su sistema a usar ARP para encontrarlas nuevamente.
sudo ip -s -s neigh flush dev eth0
Es posible que vea una salida que confirma que se eliminaron entradas. Finalmente, haga ping a la puerta de enlace una sola vez para activar la búsqueda ARP.
## Reemplace 172.16.50.1 con la IP real de su puerta de enlace
ping -c 1 172.16.50.1
Ahora, vuelva a su primera terminal donde tcpdump está en ejecución. Verá el tráfico ARP que se generó. Busque la línea "Request":
10:30:01.123456 00:16:3e:01:be:b3 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: ARP, Request who-has 172.16.50.1 tell 172.16.50.8, length 28
Analicemos esta trama de difusión:
00:16:3e:01:be:b3: La dirección MAC de origen (su VM).
ff:ff:ff:ff:ff:ff: Esta es la dirección MAC de difusión especial. Cuando un switch ve una trama con esta dirección de destino, la reenvía a través de todos sus puertos a cada dispositivo conectado.
ethertype ARP: Esto indica que la carga útil de la trama es un paquete ARP.
ARP, Request who-has 172.16.50.1 tell 172.16.50.8: Este es el mensaje ARP en sí, una pregunta de difusión a toda la red solicitando la dirección MAC de 172.16.50.1.
También verá el paquete "Reply", que es una trama unicast enviada directamente de vuelta desde la puerta de enlace a la dirección MAC de su VM.
Ahora puede detener la captura de tcpdump presionando Ctrl+C en su terminal.