@jings
2014-12-31T19:54:51.000000Z
字数 4402
阅读 2751
这里我们使用强大的dig工具,trace参数是指从根服务器开始查询。dns是使用V2EX的dns://178.79.131.110 和谷歌dns://8.8.4.4.
接下来打开终端开始查询。
v2ex的dns(日本的linode搭建)查询到跟服务器就断了,说明它不是一个真正的dns服务器,而是返回其他正规dns服务器的结果。
C:\Users\Jings>dig +trace google.com @178.79.131.110; <<>> DiG 9.3.2 <<>> +trace google.com @178.79.131.110; (1 server found);; global options: printcmd. 16252 IN NS a.root-servers.net.. 16252 IN NS b.root-servers.net.. 16252 IN NS c.root-servers.net.. 16252 IN NS d.root-servers.net.. 16252 IN NS e.root-servers.net.. 16252 IN NS f.root-servers.net.. 16252 IN NS g.root-servers.net.. 16252 IN NS h.root-servers.net.. 16252 IN NS i.root-servers.net.. 16252 IN NS j.root-servers.net.. 16252 IN NS k.root-servers.net.. 16252 IN NS l.root-servers.net.. 16252 IN NS m.root-servers.net.;; Received 228 bytes from 178.79.131.110#53(178.79.131.110) in 1466 mscom. 172800 IN NS a.gtld-servers.net.com. 172800 IN NS b.gtld-servers.net.com. 172800 IN NS c.gtld-servers.net.com. 172800 IN NS d.gtld-servers.net.com. 172800 IN NS e.gtld-servers.net.com. 172800 IN NS f.gtld-servers.net.com. 172800 IN NS g.gtld-servers.net.com. 172800 IN NS h.gtld-servers.net.com. 172800 IN NS i.gtld-servers.net.com. 172800 IN NS j.gtld-servers.net.com. 172800 IN NS k.gtld-servers.net.com. 172800 IN NS l.gtld-servers.net.com. 172800 IN NS m.gtld-servers.net.;; Received 488 bytes from 198.41.0.4#53(a.root-servers.net) in 1201 msdig: couldn't get address for 'b.gtld-servers.net': not found
下面是正规的谷歌dns,返回的结果正好是四步下来(四个时间戳)。
这是属于dns挟持,而dns污染则是只能显示两步就给出一个错误的ip给用户。
但我们发现,最后的结果确实是谷歌服务器,但是无法访问。
C:\Users\Jings>dig +trace google.com @8.8.4.4; <<>> DiG 9.3.2 <<>> +trace google.com @8.8.4.4; (1 server found);; global options: printcmd. 20741 IN NS g.root-servers.net.. 20741 IN NS m.root-servers.net.. 20741 IN NS d.root-servers.net.. 20741 IN NS f.root-servers.net.. 20741 IN NS c.root-servers.net.. 20741 IN NS l.root-servers.net.. 20741 IN NS a.root-servers.net.. 20741 IN NS k.root-servers.net.. 20741 IN NS e.root-servers.net.. 20741 IN NS j.root-servers.net.. 20741 IN NS h.root-servers.net.. 20741 IN NS b.root-servers.net.. 20741 IN NS i.root-servers.net.;; Received 228 bytes from 8.8.4.4#53(8.8.4.4) in 249 mscom. 172800 IN NS d.gtld-servers.net.com. 172800 IN NS m.gtld-servers.net.com. 172800 IN NS a.gtld-servers.net.com. 172800 IN NS j.gtld-servers.net.com. 172800 IN NS h.gtld-servers.net.com. 172800 IN NS l.gtld-servers.net.com. 172800 IN NS i.gtld-servers.net.com. 172800 IN NS g.gtld-servers.net.com. 172800 IN NS k.gtld-servers.net.com. 172800 IN NS f.gtld-servers.net.com. 172800 IN NS c.gtld-servers.net.com. 172800 IN NS b.gtld-servers.net.com. 172800 IN NS e.gtld-servers.net.;; Received 488 bytes from 192.112.36.4#53(g.root-servers.net) in 265 mgoogle.com. 172800 IN NS ns2.google.com.google.com. 172800 IN NS ns1.google.com.google.com. 172800 IN NS ns3.google.com.google.com. 172800 IN NS ns4.google.com.;; Received 164 bytes from 192.5.6.30#53(a.gtld-servers.net) in 265 msgoogle.com. 300 IN A 173.194.127.192google.com. 300 IN A 173.194.127.193google.com. 300 IN A 173.194.127.201google.com. 300 IN A 173.194.127.197google.com. 300 IN A 173.194.127.196google.com. 300 IN A 173.194.127.195google.com. 300 IN A 173.194.127.194google.com. 300 IN A 173.194.127.198google.com. 300 IN A 173.194.127.200google.com. 300 IN A 173.194.127.206google.com. 300 IN A 173.194.127.199;; Received 204 bytes from 216.239.34.10#53(ns2.google.com) in 218 ms
那么我们怎么获得可用的谷歌ip地址呢?
这里还是使用dig,由于windows没有自带dig,但是有自带nslookup,nslookup也可以。
C:\Users\Jings>dig google.com @178.79.131.110; <<>> DiG 9.3.2 <<>> google.com @178.79.131.110; (1 server found);; global options: printcmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1962;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIO;; QUESTION SECTION:;google.com. IN A;; ANSWER SECTION:google.com. 105 IN A 74.125.230.229google.com. 105 IN A 74.125.230.238google.com. 105 IN A 74.125.230.232google.com. 105 IN A 74.125.230.227google.com. 105 IN A 74.125.230.228google.com. 105 IN A 74.125.230.231google.com. 105 IN A 74.125.230.230google.com. 105 IN A 74.125.230.226google.com. 105 IN A 74.125.230.233google.com. 105 IN A 74.125.230.224google.com. 105 IN A 74.125.230.225;; Query time: 483 msec;; SERVER: 178.79.131.110#53(178.79.131.110);; WHEN: Thu Jan 01 01:49:13 2015;; MSG SIZE rcvd: 204
C:\Users\Jings>nslookup -vc ipv4.google.com 178.79.131.110服务器: UnKnownAddress: 178.79.131.110非权威应答:名称: ipv4.l.google.comAddresses: 74.125.230.23274.125.230.22774.125.230.23374.125.230.23074.125.230.23174.125.230.22874.125.230.22474.125.230.22974.125.230.22574.125.230.23874.125.230.226Aliases: ipv4.google.com
那为什么V2EX的dns解析出来的网站反而能访问呢?
俗话说的好,树大招风,谷歌的dns在国内是被挟持的,而V2EX的dns只是通过过滤掉污染的ip再使用日本的网络以TCP协议的方式解析出可用ip,再把这些ip进行筛选而选出ping值最小的ip段。
搭建类似的dns只需使用如下开源工具搭建即可。
https://github.com/styx-hy/dnsmasq-chinadns