- 论坛徽章:
- 0
|
前一阵子在家玩gentoo, 发现一个很奇怪的问题:
在同时打开几个网页后, 域名解析变得非常慢, 甚至很多时候都提示找不到主机, 也就是解析不了该域名, 尤其以打开news.sina.com.cn等大型网站后问题最为严重, 有时甚至会5分钟内都不能解析任何网址. 而在同一机器的windows下却没有这种现象发生.
用tcpdump观察, 发现在打开如news.sina.com.cn等大型网页首页时, 突发许多的dns请求, 在达到一定数目后就不能再观察到任何dns回复了, 只能看到本地向dns服务器发送的dns请求. 并发现这种现象跟使用的DNS服务器无关.
照其它网友提示安装了dnscache后, 这种现象减轻, 但解析还是很慢...
因为是自己编译的内核, 一直以为是我的内核有问题. 可是怎么都找不到症结所在.
后来, 由于gentoo安装软件的速度原因, 改用debian了. 一开始好象没问题, 但有时解析还是有些慢. 以为真是gentoo的问题. 但这两天连windows下也偶尔出现解析域名失败的情况, 就打开ADSL路由器配置查看, 发现在使用DMZ的时候有一个设置是关于NAT的设置:
- NAT最小端口值: 61000
- NAT最大TCP链接数: 200
- NAT最大UDP链接数: 100
- NAT最大ICMP链接数: 25
复制代码
心里一动, 是不是跟UDP链接数有关呢? 可惜我的ADSL路由器这个值保存后需要重启路由器, 启动后值仍不变...
再下来的一件事让我更加确定了问题所在.
为了选择最快的镜象服务器, 我运行netselect-apt程序, 结果如下:
- home:~# netselect-apt testing
- Using distribution testing.
- There is a already a mirrors_full file in the current
- directory. I'll use that, rather than downloading it again.
- Choosing a main Debian mirror using netselect.
- netselect: unknown host debian.kida.net
- netselect: 279 (24 active) nameserver request(s)...
- Running netselect to choose 1 out of 101 addresses.
- .
- The fastest server seems to be:
- http://mirrors.geekbone.org/debian/
- Choosing a non-US Debian mirror using netselect.
- Running netselect to choose 1 out of 0 addresses.
- netselect was unable to find a mirror, this probably means that
- you are behind a firewall and it is blocking traceroute.
复制代码
可以看到, 该程序一下发送了近300个dns请求, 这时我打开nslookup后, 不管使用哪里的服务器, 不管查询哪个域名都失败... 很显然是adsl路由器提供的200个UDP链接被占满了, 也就是说adsl路由器遭到了DOS攻击. 5分钟后, nslookup才又能正常工作.
问题终于找到, 除了给厂家提建议配置不能保存外, 看来我这段时间只能不使用路由模式了, 自己拔号总不会再有错了...
呵呵, 找到了问题所有, 心里一下通畅了许多. |
|