1.大家最关注的,翻墙,防止DNS被劫持。7 o- S K* J$ P3 y- q+ _
资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果( A9 F+ X8 Y; p* q5 \, s
正常请求一个被劫持的域名,当然是劫持没商量了
$ `; Q! [5 I/ u: d* w7 j$ @6 {7 O% D9 Y( G! a1 D! s
Sam@Bra:~$ dig hen.bao.li8 R, A0 ^2 O" }. r
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
8 i* e- N0 y8 y) N( e;; global options: +cmd4 \7 G/ m$ P7 G; W# J. R& L4 C
;; Got answer:" L1 J2 t( d$ Z7 [
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
9 G' o" z' S& `5 h) u4 \' D5 S G;; flags: qr rd ra0 b9 U7 i- n4 i3 h z8 {+ s
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
) s8 U/ q$ C% E;; QUESTION SECTION: ;hen.bao.li. IN A
* k. L1 M- X3 d+ F5 r;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15
& a U" p. U/ R;; Query time: 0 msec0 B& ?. Z4 i1 }$ p: _$ ?5 `. E4 u
;; SERVER: 127.0.0.1#53(127.0.0.1)
{( U3 S1 [1 g2 P* _;; WHEN: Mon Dec 7 23:18:48 20091 }8 F1 h0 u" x
;; MSG SIZE rcvd: 44
: l5 S, \( l5 v# I) J6 M( z) s9 f8 f! y/ A) L
Sam@Bra:~$ dig hen.bao.li8 l. D u4 O& j2 p' ?, F
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
# f5 W3 L. D: U2 `4 _;; global options: +cmd
2 M9 ~5 L6 r8 q- u' ?;; Got answer:& ~+ H' C+ b: d# u$ K) P
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
6 }1 j' V; F& R$ P;; flags: qr rd ra
4 U2 M7 n% l6 V; I" q; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 03 [9 n1 |0 a* |/ a. B3 g
;; QUESTION SECTION:
' E6 H# j) y( M8 r# r;hen.bao.li. IN A
1 k* o3 G) _2 l% K3 } l8 F+ T2 s% U! J;; ANSWER SECTION:5 ^: e6 ^$ J h) U
hen.bao.li. 85697 IN A 78.16.49.15; b% ~% x% L) G2 S1 p
;; Query time: 0 msec/ |& p" N5 p/ C) I- x, \
;; SERVER: 127.0.0.1#53(127.0.0.1)& e8 {7 \" f8 @$ q2 D$ k8 X- d
;; WHEN: Mon Dec 7 23:18:48 2009, o1 f0 J+ i9 g9 l. E
;; MSG SIZE rcvd: 44
5 X8 ]1 X! k! P) @0 p6 S' i- C% P/ i, h: t- f8 W
然后再看用了Google Public DNS后,照样劫持你没商量
0 u1 \ Y/ S0 l" F! {! F6 W; |) V' |3 j# b6 ~/ T" h; P
Sam@Bra:~$ dig @8.8.8.8 hen.bao.li/ _1 D% w |( N6 k" }* X$ M6 p9 |4 z
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li
; ^; E6 _9 u; t u4 ?! x$ A; (1 server found)2 Q) X' d5 b4 u7 n3 b0 T
;; global options: +cmd: ~* @; x2 e+ B% b; m6 r
;; Got answer:: g1 y. W$ ~. v1 u
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485
1 ~; Z- Q) Y' t8 U% t$ Z;; flags: qr aa rd ra# |7 w0 z* D* s1 Y4 T3 f
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0, G* b* H9 ~9 F! u
;; QUESTION SECTION: ;hen.bao.li. IN A4 R5 m0 ^# p7 g1 [' A
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15
* Q, a# u9 P2 i) F/ f;; Query time: 75 msec# h& ]6 q1 _1 Y6 z6 l& K7 s, H: I
;; SERVER: 8.8.8.8#53(8.8.8.8)
M6 G. |: d% O& ]1 E6 L;; WHEN: Mon Dec 7 23:20:58 2009
3 z6 G/ j$ x; d8 s( c;; MSG SIZE rcvd: 54- ?* M' i$ K+ u; w
" D; o: Z' r. _6 {5 S我们看看国外机器得出的真实结果1 s- t, |5 q$ f( y( r
: v, e1 x) |6 i" h: U$ v
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li
1 }% x& f5 v. u7 d; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li
6 A' t& U+ }& n8 P; (1 server found) ^: X& E$ \, S1 Z- C
;; global options: printcmd
' Q) }* E u, e0 n! P) S2 l;; Got answer:
8 J8 M6 {+ K; ]* S$ A, j;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 208459 z# ^: I) g' @1 O; g3 i
;; flags: qr rd ra8 q# T5 e+ d. v4 V/ F
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
+ Y5 h/ x. Y# ~;; QUESTION SECTION: ;hen.bao.li. IN A
, |% ~. i' |% V" T( `; r;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44
3 [0 a/ c" q0 C;; Query time: 252 msec
& Z; r4 i/ f, c$ C/ H;; SERVER: 8.8.8.8#53(8.8.8.8)
1 P0 F' Y, n, y V% V3 c' c$ t;; WHEN: Mon Dec 7 23:25:12 20091 b% @7 ?, O3 |% C& U
;; MSG SIZE rcvd: 44
6 W( R$ |9 t1 s1 g. i. a
+ R/ ?8 _' @$ R) d5 h可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。0 S7 s: z7 [' l1 w
6 h) ^2 I3 e% I4 M9 k, S
2.解析速度快
# a' Y3 W, v8 |$ L2 T! T/ R
8 R" `) _- C- @/ f/ n( k3 e3 CGoogle Public DNS解析速度是挺快的,但OpenDNS就未必了
9 r" L, t$ v( z/ Q7 r" W R( C1 f. M
Sam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com
0 G! R4 T0 X) |+ ]+ \; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com& C% C9 ^( ^! g
; (1 server found); p. H3 M, b, f2 w5 p( f) p! S
;; global options: +cmd; V0 S& P" R- c3 v2 E5 U4 s% |( a
;; Got answer:4 d' B6 N! f3 U1 A/ ]& D" w
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404
, g2 p- A2 `/ [- }( C/ V;; flags: qr rd ra
: R' j% D! z9 | P! W; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
) Z; ?7 n! t3 Y4 q+ n4 | H5 O' O;; QUESTION SECTION: ;www.dnspod.com. IN A
$ \* Q5 L+ z5 s, J;; 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.1377 z$ e4 [/ r- w: b" o0 c3 p
;; Query time: 608 msec6 O0 B2 r* j" g( ~
;; SERVER: 208.67.222.222#53(208.67.222.222)! }) s; h8 d0 h! t! b
;; WHEN: Mon Dec 7 23:29:01 2009
' y3 i: |( s1 T;; MSG SIZE rcvd: 101
( x" H, ^3 Q5 f, A/ j1 c6 ~& C& {( y i
3.最重要的问题,访问网站真的快吗?
0 e5 |' J0 H, @# G, T+ z6 i" b. A f8 p- L5 m3 Z
相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。4 k. ~7 [& S, K9 K' M! a, a4 [
6 V7 n9 h( q' I) Z大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
* C: ^% k& {2 C+ H5 M7 B1 W1 j# B' f1 m* ?( |
网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
! d* C% B$ B4 R, _6 Q a A2 c% ?' L2 j# a! I8 K* H
智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。
* p- v1 h# o3 W1 W( h( ?/ M% I% A" Q1 w5 m
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
! {% W* l) |2 Q3 Q3 J0 z/ Y
8 X6 V3 g# B9 \. Y/ y$ }6 G: i8 ~如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。
$ `$ v& ], U v# h! ?5 i% M# l5 |! v: W* a& I3 ?" @6 o# |4 g
返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。
, T/ `1 R2 W" {# K- I+ u
: x2 ~' J! L, _6 S2 H' S本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。 ?% v* @6 @" S u
& F! I1 }/ s8 q @
拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
* M8 \( t) \) M1 f( \+ f, `- U. S) ~* X% Q( q: V8 @" Y. o" F4 t
Sam@Bra:~$ dig http://www.google.com
" t# k, I; F9 C+ \6 b......
" U' M0 r0 Z+ P9 g5 @8 e;; ANSWER SECTION:
+ a( C. ~+ K- k# O6 Qhttp://www.google.com. 48102 IN CNAME http://www.l.google.com." x# s+ u: C/ |8 o/ _2 U
http://www.l.google.com. 300 IN A 216.239.61.104
( W3 X2 O$ A: h- u# ?- |5 Q ?" X, u, z
如果我用了OpenDNS的话,那么我得到下面的结果, z3 K- h5 b* o
% V% x) n' `/ g6 y' y" X4 d
Sam@Bra:~$ dig @208.67.222.222 http://www.google.com3 Y2 O* o+ H2 A L4 _- S$ B; s1 A
......
- z$ n& K% S( ^; ]" A d% g2 `;; ANSWER SECTION:
& _( M, ` p( Q6 f) l& g; o- s' Whttp://www.google.com. 30 IN CNAME google.navigation.opendns.com.8 W1 b1 G( z' x$ b5 C' E
google.navigation.opendns.com. 30 IN A 208.67.219.230
Z" z. W3 h$ }* b6 u5 v+ N* n9 [google.navigation.opendns.com. 30 IN A 208.67.219.231# i0 A: m0 ]# |( p$ W W! S- b
) n4 f# F l" V5 vping一下得出的IP地址,看看速度,其实并不快
h" F4 Q9 M; Q0 O2 N6 Z0 N
( @6 q6 w$ g5 a, eSam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes% G* p3 F6 V$ N0 C# f9 H# P
64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms% Y' L+ k" ]; w
64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
$ E1 }6 ^- l" {9 q' V64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms
" U" q' q! g- |' n& G( i5 ?^C
9 A+ @& D7 p7 V--- 208.67.219.230 ping statistics ---" v" g7 Z5 B+ f/ G5 A! h1 ^
3 packets transmitted, 3 packets received, 0.0% packet loss( R& X1 V/ o- }9 a0 }1 ?& S
round-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
! Q9 y" w4 z, n! X/ W
( F$ _7 Q6 H d y: i: [我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
" A5 G( U4 }1 l/ Y% j8 N; P$ f% B. t! x. s; M: d5 W
我网通DNS直接解析
$ ~) d9 m. o4 p" t. d: i
; C5 R* h( m% i9 S( o( u5 uSam@Bra:~$ dig kaixin001.com
% _/ X9 ^+ E; O0 V5 @+ |. H8 X6 _......
4 R# j8 ^9 I2 n+ q& J& o7 b' W;; ANSWER SECTION:% X. ^5 Z" `5 M1 @
kaixin001.com. 120 IN A 220.181.100.31
) P, ~5 L) z2 o! ykaixin001.com. 120 IN A 220.181.100.32
8 }: c7 d1 j; w6 Q. r O3 @kaixin001.com. 120 IN A 220.181.100.33
" J+ ?* Q5 y2 j+ jkaixin001.com. 120 IN A 220.181.100.34
# Z/ n7 s, `' b+ N, ]7 U0 Vkaixin001.com. 120 IN A 220.181.100.353 r9 J' K( T c& J0 ]9 p9 P2 a1 D
kaixin001.com. 120 IN A 220.181.100.302 I( p* G& u% W/ S
! D( r2 n, N1 H% z1 h如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP9 T' p9 I% {# }
* t Y7 l( Q7 N+ m5 wSam@Bra:~$ dig @208.67.222.222 kaixin001.com ......
$ q5 ?* w8 q0 F;; ANSWER SECTION:
! d W+ J/ `1 nkaixin001.com. 60 IN A 123.125.58.2477 b8 y% o+ }5 B9 J
kaixin001.com. 60 IN A 123.125.56.246
( r5 Q+ M6 T: @3 Qkaixin001.com. 60 IN A 123.125.56.247
; y( b# z/ f. r$ fkaixin001.com. 60 IN A 123.125.56.245
7 M3 f1 }9 L( F5 p: h% g$ Wkaixin001.com. 60 IN A 123.125.56.248
0 ?. ?) h2 x- e4 {kaixin001.com. 60 IN A 123.125.59.20
2 p2 w/ u( l8 ^+ Q; R" m% Mkaixin001.com. 60 IN A 123.125.59.16. ?0 E6 L* E' v
kaixin001.com. 60 IN A 123.125.58.248% X( I% Q" h' Z- v
kaixin001.com. 60 IN A 123.125.58.246
5 g! z2 \& {) r0 F5 O% j3 z: s5 qkaixin001.com. 60 IN A 123.125.58.245
) g9 A8 ` Q; y9 d3 {: n# C. `4 K, K v& Z% H
中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网+ q6 ]1 i! `( G5 s8 o
3 @# c! s2 M1 A5 d% N1 a网通直接查询,可以得到网通服务器的IP
! f# _6 J h# K7 f6 [2 N5 q
7 t; \& W5 h2 @% ]* V8 _6 u# D7 g. i' aSam@Bra:~$ dig shooter.cn ......
. S8 ]4 s1 n4 h) D0 x1 y3 U;; ANSWER SECTION:$ y4 M* L6 b7 e; C* {
shooter.cn. 800 IN A 218.21.130.42
$ T* J! \4 j0 n+ o( a# S3 u
# q: c4 M" L6 N* h) z- l5 D. t5 Y4 \4 U网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP
3 e( I: D- k: `) B5 L- ` b2 t
8 l$ A' S; ~% _' O1 L1 r9 _Sam@Bra:~$ dig @208.67.222.222 shooter.cn ......: J$ p+ h1 K9 h7 B
;; ANSWER SECTION:4 i9 N8 T- }% w. R
shooter.cn. 750 IN A 74.207.252.170/ r: J! z; f8 }' S
: @2 k. c: B' b8 @这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。- f5 t7 v* s9 V2 y6 }( D4 w
- I2 {8 x8 Q2 v$ s9 f0 }9 q
国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |