我目前遇到一个连接问题,每 10 分钟左右发生一次(加减几秒钟)。
我有一台 Lynksys WRT150N,搭载 DD-WRT v24-sp2 标准版。我已确认这不是 ISP 问题,因为它发生在内部 LAN 上,当将个人路由器从组合中移除时,一切正常。
这个问题是一个相对较小的连接问题,因为在我使用的几乎所有应用程序中,你都无法注意到这个问题。我只有在参加在线 SANS 课程时才发现这个问题,课程流媒体应用程序每 10 分钟就会断线一次。
我决定运行一个 ping 测试,基本上就是连续 ping Google。(ping /t www.google.com)。我发现每隔 10 分钟就会收到“请求超时”或“来自 192.168.1.1 的回复:目标网络无法访问”错误(没有明显的模式表明哪个会优先于另一个)。这种情况只会在 10 分钟时发生在一个 ICMP 数据包上,然后就会恢复正常。
我尝试更新固件(升级到 v24-sp2,之前有一个旧版本)。我确保在升级之前和之后都进行了硬重置 30/30/30。我尝试在我能想到的所有地方寻找答案。我找到的最接近答案的是这篇文章:
当然,这只与他们每 10 分钟收到一次的 RST 标志有关(尽管我很好奇他们的问题实际上是 TCP 问题还是与我遇到的相同问题不仅仅影响 TCP 层;他们也有 WRT 路由器)。
此时我正在考虑购买一个新的路由器,但我很难相信这是一个硬件问题,导致连接如此频繁地断开。
非常感谢您所提供任何帮助。对于我所造成的任何误解或信息不足,我深表歉意。
答案1
“十分钟”是这里的赠品——它是一些定期操作由人工指导完成。这是 600 秒,所以我很想寻找某种流量计量。
鉴于此,我进行了一些谷歌搜索,发现了这一点:
http://www.handcoding.com/archives/2006/03/20/preventing-aim-disconnects-with-dd-wrt/
谷歌是你的朋友。
答案2
我知道,如果您从网络路径中移除路由器,您将无法重现此问题,但您是否已验证其他客户端也存在此问题?我会确保您能够在多个客户端上重现此问题(在另一台机器上尝试 ping 测试),然后再继续假设路由器是潜在问题(尽管很可能是)。
DD-WRT 从未给我留下非常稳定的印象。很难说这是由于它所运行的硬件具有 COTS 特性,还是 DD-WRT 本身,或者两者兼而有之。无论如何,快速谷歌搜索和浏览论坛都会发现很多“连接丢失”问题。数据包经常被丢弃,因为没有足够的内存来保存客户端建立的所有 TCP 连接的状态。无论固件如何,这都是 COTS“路由器”的常见问题(DD-WRT 有一个关于相关问题的 wiki这里)。
尝试通过 ssh(或 telnet)访问您的路由器,并查看/var/log/messages
ip_conntrack(用于跟踪连接状态的内核模块)中的任何内容。您可能会发现类似以下内容:ip_conntrack: table full, dropping packet
。
我看到您已将ip_conntrack_max
设置调整为最大值 4096,但请尝试使用命令行 ( cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
) 进行验证。如果您的 WRT150N 具有足够的内存(例如 32MB 或更大),您可以手动将其设置ip_conntrack_max
为大于 4096 的数字(请参阅这里)。
您的 WRT150N 背后有多少客户端?您使用的是 P2P 协议吗?不幸的是,根据我的经验,Linksys 硬件和 DD-WRT 有点糟糕,尤其是在存在任何实际网络流量的情况下。也许是时候升级到更强大的解决方案了。