我有一个子网 192.168.100.x,其中所有 IP 都通过 WiFi 提供 DHCP 服务。我有
- XPS 笔记本电脑 192.168.100.121(Ubuntu 22.04)
- Inspiron 笔记本电脑 192.168.100.107(Ubuntu 22.04)
- Windows 笔记本电脑 192.168.100.113(Windows 10)
- 同一子网上的许多其他设备
我可以从所有笔记本电脑 ping 所有设备和笔记本电脑,但有一个例外,那就是从 XPS 笔记本电脑到 Inspiron 笔记本电脑的 ping 操作失败,并且两个操作都失败,并显示“目标主机无法访问”。具体来说:
来自 XPS - 192.168.100.121
PING 192.168.100.107 (192.168.100.107) 56(84) 字节数据。来自
192.168.100.121 icmp_seq=1 目标主机不可访问
...
PING 192.168.100.113 (192.168.100.113) 56(84) 字节数据。64 字节
来自 192.168.100.113: icmp_seq=1 ttl=128 时间=4.26 毫秒
来自 Inspiron - 192.168.100.107
PING 192.168.100.121 (192.168.100.121) 56(84) 字节数据。来自
192.168.100.107 icmp_seq=1 目标主机不可访问
...
PING 192.168.100.113 (192.168.100.113) 56(84) 字节数据。64 字节
来自 192.168.100.113: icmp_seq=1 ttl=128 时间=5.02 毫秒
来自 Windows 笔记本电脑 - 192.168.100.113
正在 Ping 192.168.100.121,数据为 32 字节:来自的回复
192.168.100.121:字节=32 时间=79ms TTL=64
...
正在 Ping 192.168.100.107,数据为 32 字节:来自的回复
192.168.100.107:字节=32 时间=112ms TTL=64
如果我arp -a
在 XPS 上做一个
dlinkrouter(192.168.100.1)位于 60:63:4c:7b:f6:79 [ether] 上 wlp59s0?
(192.168.100.187)于 00:11:32:9c:7a:72 [ether] 于 wlp59s0 上
Inspiron(192.168.100.107)位于 wlp59s0 Windows 上的 <incomplete>
(192.168.100.113)位于 wlp59s0 上的 d8:5d:e2:0b:22:6d [ether]
arp -a
如果我在 Inspiron 上做了
XPS (192.168.100.121) 位于 wlp1s0 上的 <incomplete>
wlp1s0 上的 Windows(192.168.100.113)位于 d8:5d:e2:0b:22:6d [ether]
dlinkrouter (192.168.100.1) 位于 wlp1s0 上的 60:63:4c:7b:f6:79 [ether]
如果我arp -a
在 Windows 笔记本电脑上
接口:192.168.100.113 --- 0x14
互联网地址物理地址类型
192.168.100.1 60-63-4c-7b-f6-79 动态
192.168.100.107 60-57-18-28-48-8f 动态
192.168.100.121 9c-b6-d0-b7-0a-5d 动态
192.168.100.164 10-62-e5-bc-d6-ad 动态
192.168.100.187 00-11-32-9c-7a-72 动态
192.168.100.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.22 01-00-5e-00-00-16 静态
224.0.0.251 01-00-5e-00-00-fb 静态
224.0.0.252 01-00-5e-00-00-fc 静态
239.255.255.250 01-00-5e-7f-ff-fa 静态
255.255.255.255 ff-ff-ff-ff-ff-ff 静态
我不是网络工程师。经过多次谷歌搜索,我发现我没有收到带有 MAC 地址的 ARP 响应,但我不知道为什么它只出现在两个 Ubuntu 系统之间。很多帖子都指责路由器防火墙或 802.11 实现,但我认为,由于通过路由器的其他所有通信都运行正常,我已经排除了这种可能性。我甚至在 Inspiron 上设置了一个 ssh 服务器,结果 XPS 也出现了同样的“目标主机无法访问”信息,但 Windows 笔记本电脑可以毫无问题地连接。
对于下一步该去哪里有什么想法吗?
============================ 更新 1 =============================
我通过手动将 IP:HWaddr 对添加到 ARP 缓存中来解决了这个问题,但不令人满意,如下所示:
在 XPS 上 - 192.168.100.121
sudo arp -s 192.168.100.107 60:57:18:28:48:8f
在 Inspiron 上 - 192.168.100.107
sudo arp -s 192.168.100.121 9c:b6:d0:b7:0a:5d
所以我现在可以双向 ping 通。但是,我不明白为什么在这些笔记本电脑相互发送请求的特定情况下,ARP 请求广播没有得到响应,但在其他所有情况下都得到了响应。我可能会使这些更改永久生效,即修复 IP 和 ARP 缓存条目,并在有时间时进行更多挖掘。我目前的问题是了解我的路由器是否无法代理 ARP 请求,或者是否确实需要代理(两台笔记本电脑都在同一个 WiFi 网络 BSSID 上 - 不确定这是否像“物理”网络一样)。
============================ 更新 2 =============================
我创建了一个启动服务来执行静态 ARP 映射。不太理想,但我把细节在 GitHub 上以防它能帮助别人。
============================ 更新 3 =============================
这是路由器的问题 - 互联网确实知道它在说什么。经过多次测试和许多看似不一致的结果后,我将问题缩小到路由器不代理其支持的 3 个 WiFi 网络(2.4GHz/5GHz A/5GHz B)之间的 ARP 请求。我的路由器是 Dlink DIR-3040,具有“智能连接”功能,可以“智能地”将设备置于最佳频段。我已关闭该功能,并将我想要连接的设备置于同一频段,到目前为止一切正常。