Ho un robot che esegue Linux con adattatori cablati e wireless. Quando avvio, si collega alla multa wireless. Quando assegno un IP al cavo (staticamente o con DHCP), sembra che funzioni. Come in, ifconfig
mostra un IP corretto e route
mostra i percorsi corretti. Tuttavia, quando eseguo una richiesta ARP dell'IP cablato, la risposta ARP contiene il MAC wireless.
??? Non c'è alcun ponte in esecuzione sul robot, quindi perché non ottengo il MAC cablato ???
Quando il cavo viene disconnesso, l'IP cablato risponde al ping ...
Perché il robot risponde tramite l'interfaccia wireless alle richieste IP sul cavo ???
EDIT: sia gli adattatori cablati che wireless sulla stessa sottorete IP. Eseguo una richiesta ARP da un computer (provato con computer diversi) sulla stessa sottorete IP.
output ifconfig rilevante:
eth0 Link encap:Ethernet HWaddr 00:01:C0:04:BD:F7
inet addr:192.168.0.110 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ra0 Link encap:Ethernet HWaddr 24:3C:20:06:3E:6D
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:59 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:31023598 (29.5 MiB) TX bytes:85640627 (81.6 MiB)
uscita del percorso pertinente:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ra0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
È un Linux molto ridotto, quindi non ho strumenti come artptables, iptables, sysctl, brctl, ecc.
MODIFICA: diagramma come richiesto
EDIT: sto scaricando il traffico e guardando il tavolo ARP. Una richiesta ARP di 192.168.0.110 restituisce una risposta ARP contenente 24: 3C: 20: 06: 3E: 6D. Il MAC sorgente del pacchetto di risposta ARP è anche 24: 3C: 20: 06: 3E: 6D. Ho provato a giocherellare con _filter, _ignore e _announce, come menzionato qui , ma senza risultati.
EDIT: l'impostazione di un gateway (su entrambe le interfacce) non fa differenza (come non dovrebbe).
EDIT: funzionava bene su una versione precedente del sistema operativo (basato su openembedded). è possibile che abbiano cambiato qualcosa?