This is my network:
[laptop A]~~~~[ddwrt1]~~~~[ddwrt2]----[desktop B]
|
+--[desktop C]
The ddwrt2 is a wifi router running in client bridge mode connecting to another wifi router ddwrt1. Laptop is connected to ddwrt1 using wifi. The two desktops are connected with Ethernet wire to the wifi routers.
The problem:
- laptop A cannot ping to desktop B, not even have the ARP resolved
- if we set a static ARP entry in laptop A for desktop B, then laptop A can ping B
- same issue with desktop C
So the IPv4 routing is OK here but for some reason ARP packets are not. So I did some debug and found the following:
- all Ethernet LAN and wifi interfaces on ddwrt1 are combined as a bridge device
br0
- Running
tcpdump -i br0 -e -n -vv arp
on ddwrt1 shows the ARP request (broadcast) and response (unicast) packets and all fields look correct - Running tcpdump on laptop A does not see the response coming back
- Ping desktop B on ddwrt1 is OK
brctl showmacs
on ddwrt1 shows all mac addresses concerned here, at the correct interface- ddwrt1 has nothing suspicious:
bridge-nf-call-iptables
and alike sysctl items are off, no ebtables nor arptables running, iptables has no rules about arp
What can I do now? I think I boiled down to the issue of why the bridge cannot forward the ARP reply packet