Gerar Tráfego de Broadcast via ARP e Identificar o Endereço MAC de Broadcast
Nesta etapa, você contrastará o tráfego unicast com o tráfego de broadcast. Enquanto unicast é uma mensagem um-para-um, broadcast é uma mensagem um-para-todos enviada a todos os dispositivos no segmento de rede local. Um exemplo principal disso é o Address Resolution Protocol (ARP), que é usado para descobrir o endereço MAC associado a um endereço IP específico. Para fazer isso, um dispositivo envia um quadro de broadcast perguntando: "Quem tem este endereço IP?"
Primeiro, vamos iniciar uma nova captura tcpdump. Desta vez, adicionaremos um filtro para mostrar apenas pacotes ARP. Também usaremos o sinalizador -n para impedir que o tcpdump resolva endereços IP para nomes de host, e -q para tornar a saída mais limpa.
Em um terminal, execute o seguinte comando, lembrando-se de substituir eth0 pelo nome da sua interface da Etapa 1.
## Substitua eth0 pelo nome real da sua interface
sudo tcpdump -i eth0 -e -n -q 'arp'
O tcpdump está agora escutando, mas apenas por tráfego ARP.
Em seguida, precisamos acionar uma requisição ARP. Uma maneira confiável de fazer isso é limpar o cache ARP do seu sistema e, em seguida, tentar contatar outro dispositivo na rede local, como o seu roteador gateway. Limpar o cache força seu sistema a redescobrir o endereço MAC do gateway usando ARP.
Abra um novo terminal. Primeiro, encontre o endereço IP do seu gateway com o comando ip route.
ip route | grep default
A saída mostrará sua rota padrão, e o endereço IP listado após "via" é o seu gateway.
default via 172.16.50.1 dev eth0
Nota: O endereço IP do seu gateway provavelmente será diferente. É crucial usar o endereço IP deste comando nas etapas abaixo. Um erro comum é usar um IP diferente como 172.17.0.1, que é frequentemente o gateway para uma rede Docker local e não produzirá o resultado correto para este exercício.
Neste exemplo, o gateway é 172.16.50.1. Agora, limpe seu cache ARP usando o comando ip neigh flush. Isso removerá os mapeamentos de endereço MAC conhecidos, forçando seu sistema a usar ARP para encontrá-los novamente.
sudo ip -s -s neigh flush dev eth0
Você pode ver uma saída confirmando que as entradas foram excluídas. Finalmente, ping o gateway apenas uma vez para acionar a consulta ARP.
## Substitua 172.16.50.1 pelo seu IP de gateway real
ping -c 1 172.16.50.1
Agora, volte para o seu primeiro terminal onde o tcpdump está rodando. Você verá o tráfego ARP que foi gerado. Procure pela linha "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
Vamos analisar este quadro de broadcast:
00:16:3e:01:be:b3: O endereço MAC de origem (sua VM).
ff:ff:ff:ff:ff:ff: Este é o endereço MAC de broadcast especial. Quando um switch vê um quadro com este endereço de destino, ele o encaminha para todas as suas portas para todos os dispositivos conectados.
ethertype ARP: Isso indica que a carga útil do quadro é um pacote ARP.
ARP, Request who-has 172.16.50.1 tell 172.16.50.8: Esta é a própria mensagem ARP, uma pergunta de broadcast para toda a rede solicitando o endereço MAC de 172.16.50.1.
Você também verá o pacote "Reply", que é um quadro unicast enviado diretamente de volta do gateway para o endereço MAC da sua VM.
Você pode agora parar a captura do tcpdump pressionando Ctrl+C no seu terminal.