Joh*_*ley 5 networking domain-name-system router wifi
很长一段时间以来,我家里的 wi-fi 网络都遇到了一个非常奇怪的问题。我有一台BT Voyager 2100 ADSL 调制解调器和一台 iMac,一台老化的 PowerBook 和一台无线连接到它的 PC。问题是我永远无法访问少数特定网站,因为它们总是超时。
没有任何明显的东西可以以任何方式连接这些网站。我遇到的一些例子是www.adobe.com、www.microsoft.com、www.portsmouthguildhall.co.uk(本地场所)和减法.com(博客)。我可以毫无问题地 ping 一些站点;没有超时。事实上,我曾经能够访问subtraction.com并且仍然可以获得它的RSS提要。我只是无法再在 Web 浏览器中查看该站点。这是一个非常孤立的问题 - 对于我的大多数 Internet 使用,一切正常。
这显然不是个别计算机的问题,因为它们都有这个问题,所以它一定是我的路由器甚至ISP下游的问题。我已经将路由器升级到最新固件并尝试重置它,但它没有解决问题。
我什至如何诊断问题出在哪里?我不知道从哪里开始!是否有任何可以使用的 UNIX 网络命令(我有 Mac OS X)?
谢谢你的帮助。
编辑:按照 Alnitak 的建议,我尝试使用 adobe.com 进行跟踪路由和 ping。如您所见,traceroute 永远不会到达那里:
$ traceroute adobe.com
traceroute to adobe.com (192.150.18.117), 64 hops max, 40 byte packets
1 voyager.home (192.168.1.1) 1.975 ms 1.505 ms 1.574 ms
2 lo0-plusnet.ptn-ag2.plus.net (195.166.128.53) 28.476 ms 47.139 ms 28.036 ms
3 ge0-0-0-204.ptn-gw02.plus.net (84.92.3.93) 28.520 ms 37.297 ms 33.186 ms
4 te2-2.pte-gw2.plus.net (212.159.1.106) 35.670 ms 36.262 ms 34.995 ms
5 80.239.193.141 (80.239.193.141) 33.932 ms 28.600 ms 28.764 ms
6 ldn-bb1-link.telia.net (80.91.248.90) 29.649 ms 28.149 ms 30.857 ms
7 ldn-b5-link.telia.net (80.91.249.178) 27.991 ms 28.014 ms 28.490 ms
8 verio-129583-ldn-b5.telia.net (213.248.100.50) 28.468 ms 29.286 ms 31.702 ms
9 ae-1.r23.londen03.uk.bb.gin.ntt.net (129.250.5.237) 30.871 ms 29.295 ms ae-1.r22.londen03.uk.bb.gin.ntt.net (129.250.5.233) 28.614 ms
10 ae-0.r22.londen03.uk.bb.gin.ntt.net (129.250.4.85) 29.732 ms as-0.r20.nycmny01.us.bb.gin.ntt.net (129.250.3.254) 108.909 ms ae-0.r22.londen03.uk.bb.gin.ntt.net (129.250.4.85) 28.505 ms
11 ae-0.r21.nycmny01.us.bb.gin.ntt.net (129.250.2.26) 109.164 ms as-0.r20.nycmny01.us.bb.gin.ntt.net (129.250.3.254) 104.860 ms ae-0.r21.nycmny01.us.bb.gin.ntt.net (129.250.2.26) 111.253 ms
12 as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9) 104.777 ms ae-0.r21.nycmny01.us.bb.gin.ntt.net (129.250.2.26) 109.973 ms as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9) 108.774 ms
13 as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9) 103.691 ms ae-3.r21.asbnva01.us.bb.gin.ntt.net (129.250.2.128) 104.958 ms as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9) 104.455 ms
14 as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167) 197.595 ms ae-3.r21.asbnva01.us.bb.gin.ntt.net (129.250.2.128) 105.027 ms 106.565 ms
15 * as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167) 179.946 ms *
16 * te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86) 176.374 ms *
17 * * te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86) 189.724 ms
18 * * *
19 * * *
20 * * *
^C
Run Code Online (Sandbox Code Playgroud)
—现在尝试从第 14 跳开始执行 ping。可以看到,最后一次ping有20%的丢包:
$ ping -s 1492 as-3.r20.snjsca04.us.bb.gin.ntt.net
PING as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167): 1492 data bytes
1500 bytes from 129.250.2.167: icmp_seq=0 ttl=55 time=214.555 ms
1500 bytes from 129.250.2.167: icmp_seq=1 ttl=55 time=215.339 ms
1500 bytes from 129.250.2.167: icmp_seq=2 ttl=55 time=221.211 ms
1500 bytes from 129.250.2.167: icmp_seq=3 ttl=55 time=224.296 ms
^C
--- as-3.r20.snjsca04.us.bb.gin.ntt.net ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 214.555/218.850/224.296/4.062 ms
$ ping -s 1492 as-3.r20.snjsca04.us.bb.gin.ntt.net
PING as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167): 1492 data bytes
1500 bytes from 129.250.2.167: icmp_seq=0 ttl=55 time=299.852 ms
1500 bytes from 129.250.2.167: icmp_seq=1 ttl=55 time=326.598 ms
1500 bytes from 129.250.2.167: icmp_seq=2 ttl=55 time=243.278 ms
1500 bytes from 129.250.2.167: icmp_seq=3 ttl=55 time=214.610 ms
1500 bytes from 129.250.2.167: icmp_seq=4 ttl=55 time=232.900 ms
^C
--- as-3.r20.snjsca04.us.bb.gin.ntt.net ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 214.610/263.448/326.598/42.517 ms
$ ping -s 1492 te-5-3.r02.snjsca04.us.ce.gin.ntt.net
PING te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86): 1492 data bytes
1500 bytes from 128.241.219.86: icmp_seq=0 ttl=245 time=349.851 ms
1500 bytes from 128.241.219.86: icmp_seq=1 ttl=245 time=270.748 ms
1500 bytes from 128.241.219.86: icmp_seq=2 ttl=245 time=334.406 ms
1500 bytes from 128.241.219.86: icmp_seq=3 ttl=245 time=220.046 ms
^C
--- te-5-3.r02.snjsca04.us.ce.gin.ntt.net ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 220.046/293.763/349.851/51.869 ms
$ ping -s 1492 te-5-3.r02.snjsca04.us.ce.gin.ntt.net
PING te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86): 1492 data bytes
1500 bytes from 128.241.219.86: icmp_seq=0 ttl=245 time=472.908 ms
1500 bytes from 128.241.219.86: icmp_seq=1 ttl=245 time=228.290 ms
1500 bytes from 128.241.219.86: icmp_seq=2 ttl=245 time=231.048 ms
1500 bytes from 128.241.219.86: icmp_seq=3 ttl=245 time=229.906 ms
^C
--- te-5-3.r02.snjsca04.us.ce.gin.ntt.net ping statistics ---
5 packets transmitted, 4 packets received, 20% packet loss
round-trip min/avg/max/stddev = 228.290/290.538/472.908/105.296 ms
Run Code Online (Sandbox Code Playgroud)
这听起来像是 MTU 问题。
您和那些站点之间可能存在一些不支持典型 1500 字节 MTU 的问题,除此之外,防火墙可能会阻止用于“路径 MTU 发现”的 ICMP 数据包,因此您的终端无法判断不能使用普通 MTU。
尝试使用 traceroute,然后依次针对每一跳,尝试发送一个大的 ping 数据包(1492 字节),看看这些跳中是否有任何一个拒绝返回数据包。
编辑 - 您的tcpdump输出显示您的一端仍在尝试启动 TCP 的“三向握手”,因为该SYN位是在您一端的数据包中发送的。但是,从 Adobe 返回的数据包似乎被截断或格式错误。这很奇怪,因为数据包中不应该有任何负载,只有远端的 SYN 响应。我需要查看前 4 个左右数据包的完整转储(包括 -X 选项)以了解更多信息。
EDIT2 - 根据您详细的 tcpdumps,我相信您的路由器正在破坏来自某些站点的 TCP 响应。测试这个最好的方法是借用另一个品牌的路由器。
将您的一台计算机直接插入您的互联网连接,让它从您的 ISP 获取所有网络设置。如果您无法访问这些站点,则是 ISP 问题,如果可以访问,则是路由器问题,您可以从那里访问。