Pau*_*aul 10 networking router dd-wrt raspberry-pi
我最近使用本教程的“Atheros”版本(我们将其称为“路由器 2”)设置了一个运行 DD-WRT 的 WNR2000v3 路由器作为一种中继桥接器,它正在重复一个 Medialink Wireless-N 路由器(我们将将其称为“路由器 1”)。这对于通过 wifi 和通过以太网直接连接时的我的 android 手机和 Windows 计算机都非常有效,但是当我插入 Raspberry pi 时,无论是在运行 Raspbian (wheezy) 还是 Raspbmc 时,我都无法获得本地网络之外的任何连接。
树莓派可以 ping(并被 ping)本地子网上的任何其他设备,包括它直接连接的“路由器 2”,并且它能够从路由器 1 获取 DHCP,但是当我尝试并ping 路由器 1,我得到“目标主机无法访问”,如果我尝试 ping 互联网上的任何东西,比如 google.com、superuser.com,我同样会得到“目标主机无法访问”。
这是网络上的另一台计算机:
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
Run Code Online (Sandbox Code Playgroud)
这是路由器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
Run Code Online (Sandbox Code Playgroud)
192.168.0.107 是树莓派的地址:
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)
Run Code Online (Sandbox Code Playgroud)
这是路由表:
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
Run Code Online (Sandbox Code Playgroud)
这是 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.
Run Code Online (Sandbox Code Playgroud)
其他一切都很好,但我已经尝试过这个 rapsberry pi 有两个不同的图像(Raspbmc 和 raspbian)和两个不同的树莓派,但没有配置工作。当直接连接到路由器 1 时,raspbian 映像已被测试为工作正常。这个问题似乎与两年前的这个未回答的问题非常相似,除了在这种情况下,他似乎正在为连接失败的设备使用 wifi,并且他实际上得到了一些断断续续的连接。还有 ping 响应来自路由器,而不是设备。什么可能导致这个问题?
编辑:我还应该注意到,两个不同的树莓派有不同的 IP 地址,其中一个是 IP-MAC 绑定的,我在 DHCP 表中没有看到 IP 冲突,但每个都有相同的问题。
更新:我确定了一件可能有趣的事情,那就是当 MAC 地址克隆被关闭时,中继桥停止工作 - 唯一可以 ping 树莓派的是路由器 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
Run Code Online (Sandbox Code Playgroud)
显然,这是人们正在使用 MAC 地址克隆解决的一个已知问题。我不完全确定为什么随机 MAC 地址是一个问题,以及 MAC 地址克隆有什么其他后果。
这是一个很难诊断的问题,因为您的系统看起来配置正确。因此,我不会提供冗长的检查选项列表,而是会给您一些要测试的想法。
我会尝试的一件事是将默认网关更改为路由器 2,而不是路由器 1。
另一件事是强制 ping 绑定到接口 eth0:
ping -I 192.168.0.107 192.168.0.1
ping -I eth0 192.168.0.1
Run Code Online (Sandbox Code Playgroud)
这两个命令略有不同,都应该尝试一下。希望他们会给出不同的输出,这将表明存在故障。
然后我会检查 /etc/network/interfaces:它是否包含几行,例如
auto eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
然后我会尝试重新启动界面:
ifdown eth0
ifup eth0
Run Code Online (Sandbox Code Playgroud)
然后再次 dhclient。
总而言之,人们应该记住,这不一定是软件问题。如果您访问此网页,您可能会读到以下体验:
我订购了另一个树莓派,然后重新镜像了 SD 卡,在该卡上启动,互联网工作正常。我取出 SD 卡并将其放入旧的树莓派中,并连接相同的电缆和以太网线,但它仍然无法工作......
另外,您应该记住电缆可能存在问题。电缆不是工作/不是工作对象。RX 或 TX 中的问题可能会导致许多帧丢失、信号质量较差等。在这种情况下,TCP 等协议的表现比 ICMP 或 UDP 更好,因为它们会重新传输目标尚未收到的数据包,从而给您带来正常工作连接的错误印象。当然,这种错误的印象一直持续到您测量连接速度为止。
归档时间: |
|
查看次数: |
48505 次 |
最近记录: |