Mam robota z systemem Linux z adapterami przewodowymi i bezprzewodowymi. Po uruchomieniu łączy się z bezprzewodową funkcją grzywny. Kiedy przypisuję adres IP przewodowemu (statycznie lub za pomocą DHCP), wygląda na to, że działa. Jak w, ifconfig
pokazuje poprawne IP i route
pokazuje właściwe trasy. Jednak gdy przesyłam żądanie ARP przewodowego adresu IP, odpowiedź ARP zawiera bezprzewodowy adres MAC.
??? Na robocie nie ma mostu, więc dlaczego nie mam przewodowego MAC ???
Po odłączeniu drutu przewodowy adres IP odpowiada na polecenie ping ...
Dlaczego robot odpowiada przez interfejs bezprzewodowy na żądania IP na kablu?
EDYCJA: zarówno przewodowe, jak i bezprzewodowe karty sieciowe w tej samej podsieci IP. Wykonuję żądanie ARP z komputera (próbowanego na różnych komputerach) w tej samej podsieci IP.
odpowiednie dane wyjściowe ifconfig:
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)
odpowiedni wynik trasy:
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
Jest to bardzo popularny linux, więc nie mam narzędzi takich jak artptables, iptables, sysctl, brctl itp.
EDYCJA: schemat zgodnie z życzeniem
EDYCJA: Zrzucam ruch i patrzę na tabelę ARP. Żądanie ARP z 192.168.0.110 zwraca odpowiedź ARP zawierającą 24: 3C: 20: 06: 3E: 6D. Źródłowy adres MAC pakietu odpowiedzi ARP to również 24: 3C: 20: 06: 3E: 6D. Próbowałem majstrować przy _filter, _ignore i _announce, jak wspomniano tutaj , ale bezskutecznie.
EDYCJA: ustawienie bramy (na każdym interfejsie) nie robi różnicy (tak jak nie powinno).
EDYCJA: działało dobrze w poprzedniej wersji systemu operacyjnego (opartej na openembedded). czy to możliwe, że coś zmienili?