1.大家最关注的,翻墙,防止DNS被劫持。1 R9 j0 N! w* \3 d' ~0 p/ s
资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果
4 }/ o1 L$ t" J7 Z# k5 V; s正常请求一个被劫持的域名,当然是劫持没商量了# A1 C5 ~% `+ L; b5 I
. {: T" k: R; m2 e
Sam@Bra:~$ dig hen.bao.li7 K0 o, U. o$ s, y' i6 Y; m \& W
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
# m0 P# S% T6 W, D;; global options: +cmd
% k5 r2 V* A* K$ X" m; ?2 ?. v;; Got answer:
4 J1 Q3 j$ b& }% j" ?! g9 f! a;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 508593 |6 K- N9 a2 U
;; flags: qr rd ra0 C$ f4 F, b7 G e9 }5 ?' a
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0) P% h2 |8 x6 X6 E' w
;; QUESTION SECTION: ;hen.bao.li. IN A
$ w5 S4 N$ u8 [/ N;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15( w& |9 H& y0 x
;; Query time: 0 msec
" r6 a; f+ S1 F;; SERVER: 127.0.0.1#53(127.0.0.1)
p; H, o) _) c: s;; WHEN: Mon Dec 7 23:18:48 2009
8 U# n2 u2 [& H$ V7 F: _# l;; MSG SIZE rcvd: 44& L% v6 T: W3 y
$ s# P3 |/ a8 W' f* O' ASam@Bra:~$ dig hen.bao.li+ M7 H5 I0 p }4 _
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li& ^' U4 l% D( F6 j% x
;; global options: +cmd1 n, f2 i0 Z" E1 h
;; Got answer:
! k% h$ X8 W- T* z! x4 ]: x& L) V8 F;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 508591 w& T* Z0 }4 T/ Q
;; flags: qr rd ra
: X; h' X5 z& |) k' B& ]/ e; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 03 q- z+ ~9 f8 M! A7 \% I. d
;; QUESTION SECTION:
# T/ m6 D7 N2 {1 ?/ x( N9 P;hen.bao.li. IN A* ~* C5 W D' Y7 K$ q% F0 o* h& s
;; ANSWER SECTION:
|. w( ~: m4 ^$ N" ehen.bao.li. 85697 IN A 78.16.49.15
: V) ^% q P+ y! n2 z' p;; Query time: 0 msec1 h0 T# ~8 T0 ^0 z& {
;; SERVER: 127.0.0.1#53(127.0.0.1)" t; O8 C! ]/ ]# _$ y) J! j$ H
;; WHEN: Mon Dec 7 23:18:48 20091 U X6 {6 p: J! ~/ {! _
;; MSG SIZE rcvd: 440 P3 O, T& R) T6 c
# b! j+ C) }0 z( L n7 W Q( e然后再看用了Google Public DNS后,照样劫持你没商量
6 [( g% i' _/ I2 h) F; b+ ?3 B
" W# W7 C: l- l3 u% D7 ]* j5 dSam@Bra:~$ dig @8.8.8.8 hen.bao.li/ Z3 T, Y5 b/ o+ P: ~4 @! L
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li
6 v0 Q* c$ z' e" e% q$ s7 s; (1 server found)
( F9 \: p$ h6 [/ u+ V;; global options: +cmd0 f, W" g/ L! ^. H# g
;; Got answer:' e: W6 C. Q4 h. [. t& d4 a+ h' I
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485
; S7 ^( _& g4 q5 }; h;; flags: qr aa rd ra
* S! ~9 L7 x# m9 t2 X. \. }; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 04 w; q9 H/ f; C8 _) k! x
;; QUESTION SECTION: ;hen.bao.li. IN A3 c7 j$ ]8 c. d9 S. A/ y! \/ K& A. S9 }
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.152 T9 x) K* t# r4 o
;; Query time: 75 msec
* r4 C4 s% H3 G5 [;; SERVER: 8.8.8.8#53(8.8.8.8)% X" P" [/ h. a9 n
;; WHEN: Mon Dec 7 23:20:58 2009
% Y5 R, w; f8 l3 N7 g- x;; MSG SIZE rcvd: 54
. _+ d8 v& T3 g1 u$ Z% s1 u' e. J% D9 a0 }7 J
我们看看国外机器得出的真实结果
5 n8 l$ b, E, o1 n8 Q6 J8 U) l' r7 _. i- c
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li
7 O3 R5 {$ t% K( B! r; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li: [# c+ N& {! N) m( v; N& f
; (1 server found)
+ q x1 N% _1 U6 G/ @;; global options: printcmd) e& @( o& J2 `7 S4 W+ u
;; Got answer:
# U" j, I; K3 s$ \. \2 a3 u;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845
: Y; t+ ?) K( R; ?5 r6 M# m- M;; flags: qr rd ra
. g. D7 u* y+ C# H/ x" p+ n. |; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
+ I0 i& a. p% @! M* \ e( Y;; QUESTION SECTION: ;hen.bao.li. IN A n0 x% u$ ~4 |: J2 o# B" s
;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.443 ]# i% X! y) t6 {
;; Query time: 252 msec) c" S$ \' x" R: j s$ r
;; SERVER: 8.8.8.8#53(8.8.8.8)
7 U+ V3 O; u M( R0 q;; WHEN: Mon Dec 7 23:25:12 2009
2 X' b) Q9 u7 H2 G! a0 [ V. t9 H9 e;; MSG SIZE rcvd: 44& q% ~4 B1 U' R. k
- V/ z- o# D: N; X+ F( g6 Q( p# z可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。2 X, n$ L" v1 R8 x$ ~
# t9 U4 |7 A r' o
2.解析速度快
6 n! `5 I( p+ R/ W& R/ h" X) F: I, c- u8 V& R
Google Public DNS解析速度是挺快的,但OpenDNS就未必了4 [" m0 [7 ^6 E, ~1 g9 m P
3 [& s/ h* }. E+ K4 K% r" ~ OSam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com
, i* C4 U8 j- Q& R0 m1 E: W; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com
4 O$ \9 { q. G; (1 server found)
! {' b$ @ S# ]9 P/ m2 ~. c2 k;; global options: +cmd
5 c. ^# [& `$ ~0 n1 E;; Got answer:) b# Y/ Q5 X& h- u
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 174040 i. K" _+ L$ F, Y" P
;; flags: qr rd ra
: E) T+ |- X& A$ M* _; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 00 O3 o$ G5 J: O
;; QUESTION SECTION: ;www.dnspod.com. IN A
2 p; M' h9 F; H! y! y;; ANSWER SECTION: http://www.dnspod.com. 600 IN CNAME http://www.dnspod.com.cdnudns.com. http://www.dnspod.com.cdnudns.com. 300 IN A 61.172.249.96 http://www.dnspod.com.cdnudns.com. 300 IN A 218.244.147.137
6 _/ X7 v; b5 u;; Query time: 608 msec
6 ?8 t9 ]2 E3 X; i% r9 J2 ^. Y;; SERVER: 208.67.222.222#53(208.67.222.222)
8 Z$ J* J* K7 _% q% N7 T( t;; WHEN: Mon Dec 7 23:29:01 2009
( R* d: v8 ~$ Z;; MSG SIZE rcvd: 101
# b3 H/ o6 Y% T! ]7 s. D
# [/ z- J- V: q% n3.最重要的问题,访问网站真的快吗?, `% U% c- R4 \$ R
7 Y! ?/ R+ C% u& k% ~9 d" p& |
相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。# D. N8 n2 G) d
2 H6 {& j* \& x& z+ y* E大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
4 F" n0 @8 j1 R7 |5 @" b
3 M+ Y0 a0 B1 ]0 X4 U* T网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。 H" ~% F0 i. ~7 _
8 k; x. U0 j( K, S
智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。
+ |3 {7 V! X7 c* s+ H' c6 O7 }' v# S7 e. Y
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
9 B4 y% D- |0 }" f4 r) p9 I4 z- j' L) D* F3 T2 X
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。& {0 a3 c! j! W& ?. [
- a3 o# _; C* x0 m" l1 y4 `4 T返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。* G: a% m( i* g5 a
6 y" \9 L) g/ k; V
本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。
3 X6 K3 z, z- _& s& m) r, w! K# \. h; z4 ~
拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
$ l; n3 N+ H( h2 z
9 K4 y4 k$ p M# |1 m( sSam@Bra:~$ dig http://www.google.com+ W% O. u- s5 }* }7 P. m
......- F) b8 b$ \8 H& X2 c9 [9 X) q- n
;; ANSWER SECTION:. Q1 x! x6 ?6 a- k8 A: P
http://www.google.com. 48102 IN CNAME http://www.l.google.com.
( u6 \- `5 h6 W) s6 M" A8 @http://www.l.google.com. 300 IN A 216.239.61.104
3 z2 D# P: ]7 r- O* n- b4 d# b) p1 N/ ^% f# C% C: W# i
如果我用了OpenDNS的话,那么我得到下面的结果
& C& K# I* f9 J' p1 V! K5 }7 C& J! v: A L3 m$ k' ]& Y
Sam@Bra:~$ dig @208.67.222.222 http://www.google.com J2 l- H! t, _* J5 B G
......
' j/ _- i' F3 o& r' b d;; ANSWER SECTION:
# ~; G8 b# h' e3 T" Dhttp://www.google.com. 30 IN CNAME google.navigation.opendns.com. Q" X" ^9 e" X9 N) ]
google.navigation.opendns.com. 30 IN A 208.67.219.2302 {+ g7 s' c' M& D% G3 s: V1 F: x
google.navigation.opendns.com. 30 IN A 208.67.219.231. p# R) C, f- s$ i
" |, T" Y4 R! {3 b, N7 n; j9 O d6 L
ping一下得出的IP地址,看看速度,其实并不快
# A {7 t2 Q% j5 ]5 x
4 d% W7 G5 k0 {9 \. WSam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
/ @* Q& |0 v1 N1 r+ ]4 v64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms" }9 y8 `2 |% U5 ^# K% t' T
64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
1 S* H, \5 [, u; _64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms
+ I% ^5 l3 M/ @4 T% k^C E' w1 V _7 e& w" r! u4 |3 L
--- 208.67.219.230 ping statistics ---0 ~, s0 k" v0 V6 a9 s
3 packets transmitted, 3 packets received, 0.0% packet loss
4 }/ H; Z# E& M: k+ q3 |round-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
2 m) I e( r# g V- y$ \" r
1 i! h( B4 g$ R7 S: i我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
! h; F+ w) T/ L9 I, e
3 P2 f! y- W4 L我网通DNS直接解析0 _* E2 J& U( b% J9 m# e
6 J' P$ C) h) G6 r7 @
Sam@Bra:~$ dig kaixin001.com5 T3 I" h# X7 U _! G
......
% Y, [$ X$ u/ ?+ i' K;; ANSWER SECTION:( \) s% c) I* v5 W9 e+ Z
kaixin001.com. 120 IN A 220.181.100.31
' ^$ ^ |( N* H, c6 d2 akaixin001.com. 120 IN A 220.181.100.32
+ d; @2 J; Q' O: k3 Pkaixin001.com. 120 IN A 220.181.100.33( V6 ]; R) ?$ Q$ N; E1 \1 p5 L9 N/ d$ w: ^
kaixin001.com. 120 IN A 220.181.100.343 s8 [+ q0 c/ t* d# i9 Y. ^
kaixin001.com. 120 IN A 220.181.100.35, J4 y$ k! D: _6 \! [7 |* m, I0 |
kaixin001.com. 120 IN A 220.181.100.302 @! M4 S! ^+ ^$ i3 B: h+ `4 W4 M, k
( Q5 u( S5 v$ d* M" D* T5 M如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP3 c% J- r0 f$ [! G! x! C) P
1 f4 j6 j% ]; b* d' e
Sam@Bra:~$ dig @208.67.222.222 kaixin001.com ......! Y8 a) m% G, @' X$ h
;; ANSWER SECTION:
# ^ |3 _# u6 z1 }# M5 m: Q" ], Zkaixin001.com. 60 IN A 123.125.58.247
9 i3 e* S3 W. _ V6 Pkaixin001.com. 60 IN A 123.125.56.246
8 U" p) y0 F; ], p3 Ekaixin001.com. 60 IN A 123.125.56.247
# V$ p5 U1 ]6 r! ]kaixin001.com. 60 IN A 123.125.56.245, |9 V% ?' J ~; L8 L3 a- u* v: F
kaixin001.com. 60 IN A 123.125.56.248) ~6 u9 ]/ `9 R5 H/ b9 Q" g, a
kaixin001.com. 60 IN A 123.125.59.20+ Y4 M. p! k O$ A
kaixin001.com. 60 IN A 123.125.59.16
. E- c& f/ C7 x: m6 c" ukaixin001.com. 60 IN A 123.125.58.248. o7 S: u ~6 U% Y, C# L9 P
kaixin001.com. 60 IN A 123.125.58.246
% D9 i& J4 O5 K( Q. w, w9 ykaixin001.com. 60 IN A 123.125.58.245
* G* K6 o7 x! O/ b+ |# P2 P; ?1 G0 s
中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网% f% c# i$ d; B! I
/ n9 a$ w2 _! L网通直接查询,可以得到网通服务器的IP
7 a/ D8 r1 D0 |- q, |0 {8 T$ o, Y& o @
Sam@Bra:~$ dig shooter.cn ......
2 h% S6 a- z& j, {+ v;; ANSWER SECTION:# Y' h4 p7 x S
shooter.cn. 800 IN A 218.21.130.42! v4 }; y% d& ~& ?2 o0 Z' A( v
. F k* {; b j& O3 t" S# \
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP
0 q( o i- b( u3 @! [5 G) p
A" M d9 o& ]5 B* HSam@Bra:~$ dig @208.67.222.222 shooter.cn ......; }' d8 \8 ~" m2 u
;; ANSWER SECTION:0 S' t4 W4 \- ?1 n. u6 w
shooter.cn. 750 IN A 74.207.252.170
7 m a6 v+ h, A5 n1 M9 q8 j
; f# m8 R/ w5 R, X6 w, N% O这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。. p) H: ^) g; {3 n' i( t- Z
2 D8 W8 i* e4 ]5 X5 _5 k1 W) C国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |