这是我的 LAN 布局:
[Laptop (Windows 10)] [Raspberry Pi (Ubuntu)]
\ /
(Layer 2 Switch)
|
(Wireless router w/ gigabit LAN)
|
(Wireless router w/ 100 Mbps LAN)
|
Internet
我正在使用 Raspberry Pi 作为 NAS,所以我希望 Pi 和 Windows 笔记本电脑之间有千兆速度。
设置曾是两个路由器之间的 LAN-to-WAN,以及我有Windows 和 Pi 之间的千兆速度。
我刚刚将其更改为千兆路由器处于 LAN-to-LAN 模式(以太网插入 LAN 端口,DHCP 禁用)。但是现在,Pi 和 Windows 的通信速度仅为 338 Mbps!这是怎么回事?
我的理解是,交换机会将流量直接从一个设备引导到另一个设备,而无需路由器参与。(此外,pathping/tracert 不会显示两者之间的任何其他 IP 地址。)但是:
- 当我运行 iperf3 时,交换机上的所有三个灯都会疯狂闪烁 - 包括路由器上的灯。
- 当我允许千兆路由器成为自己的主人(启用 DHCP,连接 WAN 到 LAN)时,速度是千兆的。
- 当我将千兆路由器设置为辅助路由器(DHCP 关闭,LAN 到 LAN)时,速度约为 338 Mbps,和当我移除千兆路由器,将交换机直接连接到 100 Mbps 路由器时。两种情况下的速度相同,因此显然是路由器速度慢了。
(详细信息:我正在使用 iperf3 进行测量。Windows 机器在 WSL 中使用 iperf3,带有以太网转 USB 3.0 适配器。交换机是 D-Link DGS-105,千兆路由器是 TP-Link Archer C2,100 Mbps 路由器是 Fritz!Box 7430。我仅使用 Windows 作为客户端和 Pi 作为服务器进行测量;即使禁用防火墙,我也无法让它反过来工作。)
答案1
问题解决了!我需要执行 DHCP 释放/续订。(回答我自己的问题,以便我可以将其标记为已解决。)
对于任何未来的读者:在 Windows 上,那就是 ipconfig /release
,ipconfig /renew
在 Linux 上, sudo dhclient -r eth0
那就是sudo dhclient eth0
。(eth0
是接口;请检查以ip a
确定您的接口的正确名称)。
如果有人能花几分钟回答我剩下的问题,我将不胜感激!我希望能从中学到一些东西。
以下是时间表:
- iperf3 以 338 Mbps 的速度运行,需要 FritzBox 100 Mbps 路由器。
- 12 小时过去了。遗憾的是,在执行下列操作之前我没有再次检查 iperf。
- 在 Windows 上,我检查了一下
arp -a
,发现 Pi 根本没有出现在列表中。 - 我尝试了一下,包括从 Windows ssh 进入 Pi(使用主机名)。当我
arp -a
再次检查时,Pi 神奇地出现了!(此时我还没有执行 DHCP 发布/更新。) - iperf3 现在实现了千兆速度,但当我断开交换机与路由器的连接时,Pi 和 Windows 无法互相 ping 通。此外,运行 iperf 时,交换机与路由器的端口会疯狂闪烁。
- 我在 Windows 和 Pi 上都进行了 DHCP 释放/更新。现在,我获得了相同的千兆速度,但即使我断开交换机与路由器的连接,它也能正常工作。在 iperf 期间连接时,路由器的端口仍然闪烁,但较少的比以前更加疯狂。
由此我了解到以下内容:
- 当我获得 338 Mbps 时,交换机需要启用 DHCP 的路由器某物,但可能不用于承载流量(因为 338 Mbps > 100 Mbps)。它是否可能查询路由器以确定每个数据包的目的地?
- 通过从 Windows SSH 进入 Pi,我以某种方式改善了这种情况,但没有让交换机完全独立于路由器。也许这导致千兆路由器学习如何回答交换机的查询,而不涉及较慢的路由器?
- 通过完整的 DHCP 发布/更新,交换机无需路由器即可引导流量。这是因为 Windows 和/或 Pi 了解了彼此的地址,还是 DHCP 发布/更新也更新了交换机的路由表(或交换机的等效项)?
- 现在开关能在没有路由器的情况下承载流量,为什么如果可用它仍然会循环路由器(如闪烁的灯光所示)?
感谢您花时间回答这些问题!也感谢@user1686 为我指明了正确的方向。