我有一台 WBMR-HP-G300H Buffalo Airstation 路由器,上面安装了最新的 OpenWRT 软件。
一切都运行良好(ADSL、WIFI 等),除了一个小问题。我无法在 LAN 端口之间通信。例如,如果我有一台计算机连接到 LAN 端口 1,然后我尝试 ping 另一台连接到 LAN 端口 2 的计算机,则会收到“无法到达目的地”的信息。
我可以从路由器本身 ping 两台计算机,也可以从无线连接的单独笔记本电脑 ping 每台计算机。所有计算机都在同一子网范围内 (10.0.0.?/24)。
我怀疑我可能需要在交换机上配置一个 vlan,但每次我尝试使用各种 google 的配置来执行此操作时,我都会冻结所有 lan 端口,我不得不使用无线连接的笔记本电脑恢复。
这是我的 /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 '??????????????'
任何帮助都会受到热烈欢迎。
这里还有一些配置内容。
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
问候马克。
答案1
有线站点无法互相 ping 通
这是一个已知的错误:“switch eth0(Atheros AR8316)端口之间无法进行通信”根据该错误的注释,您可以尝试以下命令:
swconfig dev eth0 vlan 1 set ports "0 1 2 3 4 5" swconfig dev eth0 set apply
如果这些有效,您可以将以下行添加到 /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'
答案2
您应该检查所有 LAN 端口是否被视为单个 eth0 接口,或者它们是否使用单独的接口。
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
如果它们确实是单独的接口,请将它们添加到 LAN 桥中:
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
不过我在 dd-wrt 上试过了,所以结果可能有所不同。参考这里。
答案3
我注意到其中一个端口的连接速度为 1000Mbps,其他端口的连接速度为 100Mbps。您能否验证以相同速度连接的两台计算机之间是否存在此连接问题?
我认为内置交换机处理跨速度连接时可能存在问题,而当处理通过内核的单独接口时,这些问题可能会被隐藏。
答案4
看起来交换机配置默认未设置为允许端口之间的通信
我需要执行以下操作。
$ swconfig dev eth0 vlan 1 set ports "0 1 2 3 4 5"
$ swconfig dev eth0 set apply