作者:张华 发表于:2014-03-11
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
(http://blog.csdn.net/quqi99 )
笔者日常一般都用好用些的google, 但总是要登录vpn速度慢也不方便, 所以也偶尔用一下百度, 但最近经常发现有时访问百度特别慢, 观察几次后, 发现问题如下:
由于我使用的是国外的DNS(如8.8.8.8), 当查询转到国内网站的DNS服务器时(这里是CDN的DNS服务器)它将无法获取你的来源,从而可能会胡乱分配到一个不同的运营商的ip, 大家知道, 国内的运营商之间互联的带宽是很低的, 所以造成访问速度超慢. 所以,查询下游的CDN DNS服务器应该是根据用户的来源查询,而不是将上游的google的DNS服务做为来源查询. 但是DNS协议只能传递域名参数查IP, 而不能传递域名+用户参数来源查IP. 本来这也不算问题, 但是遇到国内的各运营商之间互连性太差的特殊国情问题也就出现了.所以我的做法是在/etc/hosts文件中添加了一条记录,
220.181.111.86 baidu.com
$ dig baidu.com @8.8.8.8 +short
220.181.111.85
220.181.111.86
123.125.114.144
$ dig baidu.com @9.0.148.50 +short
123.125.114.144
220.181.111.85
220.181.111.86