Can't communicate between lan ports on openwrt router
I've got a WBMR-HP-G300H Buffalo Airstation router on which I've installed the lates OpenWRT software.
All is working well (ADSL, WIFI etc) except for one niggle. I can't communicate between lan ports. i.e. if I have one computer connected on lan port 1 and I try to ping another computer on lan port 2 then I get "destination unreachable".
I can ping both computers from the router itself and can also ping each computer from a seperate laptop connected wirelessly. All computers are in the same subnet range (10.0.0.?/24).
I suspect that I may need to configure a vlan on the switch but everytime I try and do this with various google'ed configuration I keep freezing out all lan-ports and I have to revert back using a wirelessly connected laptop.
Here's my /etc/config/network:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ipaddr '10.0.0.1'
option _orig_ifname 'eth0 wlan0'
option _orig_bridge 'true'
option ifname 'eth0'
config adsl-device 'adsl'
option fwannex 'a'
option annex 'a2p'
config interface 'wan'
option _orig_ifname 'nas0'
option _orig_bridge 'false'
option proto 'pppoa'
option encaps 'vc'
option atmdev '0'
option vci '38'
option vpi '0'
option username '?????????????'
option password '??????????????'
Any help would be warmly received.
Here's some more config stuff.
root@OpenWrt:~# ifconfig -a
br-lan Link encap:Ethernet HWaddr 00:24:A5:BD:66:08
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:226576 errors:0 dropped:346 overruns:0 frame:0
TX packets:269292 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:26771676 (25.5 MiB) TX bytes:183986450 (175.4 MiB)
eth0 Link encap:Ethernet HWaddr 00:24:A5:BD:66:08
UP BROADCAST RUNNING 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)
ifb0 Link encap:Ethernet HWaddr 36:60:EC:DF:13:A1
BROADCAST NOARP 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:32
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ifb1 Link encap:Ethernet HWaddr 4A:7B:75:67:54:E0
BROADCAST NOARP 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:32
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:780 errors:0 dropped:0 overruns:0 frame:0
TX packets:780 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:58369 (57.0 KiB) TX bytes:58369 (57.0 KiB)
mon.wlan0 Link encap:UNSPEC HWaddr 00-24-A5-BD-66-08-00-48-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2424 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:320188 (312.6 KiB) TX bytes:0 (0.0 B)
pppoa-wan Link encap:Point-to-Point Protocol
inet addr:81.136.179.204 P-t-P:81.134.80.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:258894 errors:0 dropped:0 overruns:0 frame:0
TX packets:212976 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:177341656 (169.1 MiB) TX bytes:25192459 (24.0 MiB)
wlan0 Link encap:Ethernet HWaddr 00:24:A5:BD:66:08
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:204063 errors:0 dropped:0 overruns:0 frame:0
TX packets:245516 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:26613140 (25.3 MiB) TX bytes:162799765 (155.2 MiB)
root@OpenWrt:~# brctl show
bridge name bridge id STP enabled interfaces
br-lan 8000.0024a5bd6608 no wlan0
eth0
root@OpenWrt:~# swconfig dev eth0 show
Global attributes:
enable_vlan: 0
Port 0:
pvid: 0
link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
pvid: 0
link: port:1 link:down
Port 2:
pvid: 0
link: port:2 link:down
Port 3:
pvid: 0
link: port:3 link:down
Port 4:
pvid: 0
link: port:4 link:up speed:100baseT full-duplex txflow rxflow auto
Port 5:
pvid: 0
link: port:5 link:up speed:100baseT full-duplex txflow rxflow auto
Regards Mark.
Solution 1:
This is copied from the OpenWRT Page concerning your router:
Wired stations cannot ping each other
This is a known bug: "switch eth0(Atheros AR8316) no traffic between ports possible" Based on the comments from the bug you can try these commands:
swconfig dev eth0 vlan 1 set ports "0 1 2 3 4 5" swconfig dev eth0 set apply
If these work you can add the following lines to your /etc/config/network:
config switch option name 'eth0' option reset '1' config switch_vlan option vlan '1' option device 'eth0' option ports '0 1 2 3 4 5'
Solution 2:
You should check if all the lan ports are seen as a single eth0 interface or if they are using separate interfaces.
root@router:~# ifconfig | grep encap
wlan0 Link encap:Ethernet HWaddr 00:18:84:1A:58:29
lan Link encap:Ethernet HWaddr 00:18:84:1A:58:30
eth0 Link encap:Ethernet HWaddr 00:18:84:1A:58:30
eth1 Link encap:Ethernet HWaddr 00:18:84:1A:58:31
eth2 Link encap:Ethernet HWaddr 00:18:84:1A:58:32
eth3 Link encap:Ethernet HWaddr 00:18:84:1A:58:33
lo Link encap:Local Loopback
If they are indeed separate interfaces, add them in the lan bridge:
root@router:~# brctl show
bridge name bridge id STP enabled interfaces
lan 8000.0018841a6830 no eth0
wlan0
root@router:~# brctl addif lan eth1
root@router:~# brctl addif lan eth2
root@router:~# brctl addif lan eth3
I tried this on dd-wrt though, so ymmv. Reference here.
Solution 3:
I notice that one of the ports is connected at 1000Mbps and the others are connected at 100Mbps. Can you verify that this connectivity problem exists between two computers connected at the same speed?
I'm thinking that there might be a problem with the built-in switch handling cross-speed connections that would be hidden when dealing with a separate interface that goes through the kernel.
Solution 4:
Looks like the switch config wasn't set by default to allow communication between ports
I needed to execute the following.
$ swconfig dev eth0 vlan 1 set ports "0 1 2 3 4 5"
$ swconfig dev eth0 set apply