Não posso responder com certeza sem uma investigação real, mas aqui está o meu palpite:
-
Quando o roteador, ou algum outro host na LAN, tenta alcançar
10.100.102.221
, ele envia uma consulta ARP para esse endereço, solicitando a tradução para o endereço MAC. (A consulta em si é transmitida, pois, é claro, o endereço MAC ainda não é conhecido . ) -
A Ethernet e a rede Wi-Fi do seu roteador são conectadas em uma única sub-rede e em um domínio de broadcast. Assim, a mesma consulta de difusão atinge o Raspberry em todas as interfaces pertencentes à rede (eth0 e wlan0).
-
No Linux (e em muitos outros sistemas operacionais), acredita-se que os endereços IPv4 pertençam ao host ao invés da interface, então o Raspberry responde a todos consultas recebidas - mesmo que não seja a interface que contém o endereço.
-
O roteador recebe as duas respostas do ARP: uma pela Ethernet, reivindicando
10.100.102.221 is at b8:27:eb:c2:e8:a4
e uma pela Wi-Fi, reivindicando10.100.102.221 is at 00:36:76:55:54:a2
. Como a Ethernet geralmente tem menor latência do que o Wi-Fi, a primeira resposta chega mais rápido e é isso que o roteador armazena em seu cache ARP. -
A tabela do roteador parece ser construída com base no conteúdo do cache ARP e no cache do host de ponte, e como as respostas do ARP para ambos os endereços IP chegaram mais rapidamente via Ethernet, elas são mostradas na porta Ethernet.
No Linux, o comportamento no ponto # 3 pode ser alterado via sysctl:
sysctl net.ipv4.conf.all.arp_ignore=1