我最近使用本教程的“ Atheros”版本(我们将其称为“路由器2”)将运行DD-WRT的WNR2000v3路由器设置为一种中继桥(我们将其称为“路由器2”),该路由器正在重复Medialink Wireless-N路由器(“将其称为“路由器1”)。这对于通过wifi以及通过以太网直接连接的android手机和Windows计算机来说都是完美的,但是当我插入Raspberry pi时,无论是在运行Raspbian(wheezy)还是Raspbmc时,都无法在本地网络之外进行任何连接。
raspberry pi可以ping(并可以被ping通)本地子网上的任何其他设备,包括直接连接到其中的“路由器2”,并且能够从路由器1获取DHCP,但是当我尝试ping路由器1,我收到“目标主机不可达”,如果尝试对google.com,superuser.com等互联网上的任何东西执行ping操作,我同样会得到“目标主机不可达”。
这是网络上的另一台计算机:
ping 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_req=1 ttl=127 time=38.7 ms
64 bytes from 192.168.0.100: icmp_req=2 ttl=127 time=1.67 ms
64 bytes from 192.168.0.100: icmp_req=3 ttl=127 time=1.73 ms
64 bytes from 192.168.0.100: icmp_req=4 ttl=127 time=3.56 ms
--- 192.168.0.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.672/11.418/38.705/15.772 ms
这是路由器1:
ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.107 icmp_seq=1 Destination Host Unreachable
From 192.168.0.107 icmp_seq=2 Destination Host Unreachable
From 192.168.0.107 icmp_seq=3 Destination Host Unreachable
From 192.168.0.107 icmp_seq=4 Destination Host Unreachable
From 192.168.0.107 icmp_seq=5 Destination Host Unreachable
From 192.168.0.107 icmp_seq=6 Destination Host Unreachable
--- 192.168.0.1 ping statistics ---
8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7007ms
pipe 3
192.168.0.107是Raspberry Pi的地址:
ifconfig
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:db:c9
inet addr:192.168.0.107 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3753 errors:0 dropped:0 overruns:0 frame:0
TX packets:1262 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:595127 (581.1 KiB) TX bytes:112407 (109.7 KiB)
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:285 errors:0 dropped:0 overruns:0 frame:0
TX packets:285 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:27703 (27.0 KiB) TX bytes:27703 (27.0 KiB)
这是路由表:
sudo route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
这是DHCP请求:
sudo dhclient -v eth0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/xx:xx:xx:xx:db:c9
Sending on LPF/eth0/xx:xx:xx:xx:db:c9
Sending on Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
RTNETLINK answers: File exists
bound to 192.168.0.107 -- renewal in 274691 seconds.
其他一切都工作正常,但是我已经尝试过使用两个不同的图像(Raspbmc和raspbian)和两个不同的树莓pis对该rapsberry pi进行配置,但是没有任何配置。直接连接到路由器1时,已经测试了raspbian映像是否可以正常工作。这个问题与两年前这个未解决的问题非常相似,不同的是,在那种情况下,他似乎正在为无法连接的设备使用wifi,并且他实际上正在获得一些断断续续的连接。ping响应也来自路由器,而不是设备。是什么导致此问题?
编辑:我还应该注意,两个不同的树莓派pis具有不同的IP地址,其中一个是IP-MAC绑定的,并且在DHCP表中没有看到IP冲突,但是每个问题都是相同的。
更新:我确定了一件可能有趣的事情,那就是当MAC地址克隆功能关闭时,中继器网桥停止工作-唯一能ping覆盆子pi的是路由器2,并且没有连接(或访问路由器) 1)仅连接到路由器2的任何设备-包括Windows计算机。但是,无论如何,要克隆的mac地址与路由器2的接口实际使用的mac地址相同(根据“状态”页面)。我对路由器1和路由器2都重新通电两次,这没有什么区别。我不明白为什么在这里MAC地址克隆很重要。关闭MAC地址后,当我将ssh插入路由器本身时,路由器可以ping Raspberry pi,但不能ping通路由器1。
另一个小问题是,当启用MAC地址克隆功能并且我实际上可以对网络上的其他计算机执行ping操作时,arping会为响应ping的每个设备返回相同的mac地址。
更新2:通过检查syslog值,我发现存在与MAC地址有关的此错误消息:
Jan 1 00:00:08 Router 2 kern.err kernel: [ 6.770000] ath: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
Jan 1 00:00:08 Router 2 kern.err kernel: [ 6.780000] ath: random mac address will be used: fa:55:da:33:19:a9
显然,这是人们使用MAC地址克隆解决的已知问题。我不太确定为什么随机MAC地址会引起问题,以及MAC地址克隆会带来哪些其他后果。