1.大家最关注的,翻墙,防止DNS被劫持。
" X6 G/ z$ k: `6 r8 G4 E e资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果# u( ~& C- X( N) b1 |3 t
正常请求一个被劫持的域名,当然是劫持没商量了; @: _: W' o8 S- g% V# q9 p
) t5 w' W5 R) w+ k2 ?Sam@Bra:~$ dig hen.bao.li: A- n+ c! N0 ?0 ~- X/ W
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li, i, v" N* j$ c- F3 ?+ U
;; global options: +cmd$ q1 K) A+ x5 N! [
;; Got answer:- r) J+ [8 v/ P7 \9 t% J
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
; {9 V3 r& j8 h; ]+ Y;; flags: qr rd ra
" J5 y; C, O- i: q& g; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
! F' A/ k: `( s9 [, R;; QUESTION SECTION: ;hen.bao.li. IN A
8 R6 ]7 I0 u# n9 H2 T7 H. S( u X;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15( {& d6 {( H, m: E' Q
;; Query time: 0 msec
! O s$ ]0 y) H+ E( n7 t: b! s: I7 k;; SERVER: 127.0.0.1#53(127.0.0.1)
5 D2 |+ @5 ^8 `/ l; U3 Z;; WHEN: Mon Dec 7 23:18:48 2009, ^ q0 ?0 r% P/ S# k
;; MSG SIZE rcvd: 44. `* w+ l) I E4 o8 c0 _- u6 Y+ E
/ ~$ K: ^! A( v+ DSam@Bra:~$ dig hen.bao.li
9 D5 _$ i/ w# m% Y; M1 ?: K" P; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
; h3 G7 X0 g7 [;; global options: +cmd3 N( U$ T2 y* L$ ~8 J
;; Got answer:
1 M! p3 e$ P( K$ N9 P;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
* Z0 L; ~: y% |' d;; flags: qr rd ra3 r( m4 i4 S1 S
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0! W! R! o: Y, d6 ~/ k& d' p
;; QUESTION SECTION:8 E4 I- V4 \0 m' i9 m( e2 Z2 N( E$ h
;hen.bao.li. IN A/ ?/ G5 V+ O! A! j
;; ANSWER SECTION:
. }* b. H* n! W& k* t- d% xhen.bao.li. 85697 IN A 78.16.49.15/ a* b4 ?. g) X# ?
;; Query time: 0 msec# o/ v6 T' n9 @
;; SERVER: 127.0.0.1#53(127.0.0.1)
9 Y* m d2 z* F;; WHEN: Mon Dec 7 23:18:48 20096 T& D9 F5 x @ f7 @! F: a5 p0 `+ G' n! r
;; MSG SIZE rcvd: 44$ D6 _# h0 j! i q8 V
2 v _' F; G! ~( k; g c然后再看用了Google Public DNS后,照样劫持你没商量5 w2 j: u% @% @* g
2 Q1 Y( ^) D$ q
Sam@Bra:~$ dig @8.8.8.8 hen.bao.li
' k' N+ U! G* M* m% R; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li
) H6 G3 K- A M; (1 server found)' g3 }3 m/ G+ Q+ j
;; global options: +cmd
" P8 q# L6 _5 `6 t- d4 H1 x- P; J;; Got answer:
`/ j9 n+ t5 \' Z;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485- ~: @4 g, P/ Q
;; flags: qr aa rd ra% Q# {0 i _# Z9 e K
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
/ l% V" b% ? O' r+ n# q;; QUESTION SECTION: ;hen.bao.li. IN A* _ H0 L- w2 v7 l2 Z# |2 b- b
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15
6 r1 C( H$ g" |1 i;; Query time: 75 msec
+ c* C, r. F5 e& N/ W' ]* I;; SERVER: 8.8.8.8#53(8.8.8.8)
% y3 N& }9 I' M) G, w3 A;; WHEN: Mon Dec 7 23:20:58 2009' J; m R2 P* \: _# X5 a2 X+ b' T4 [
;; MSG SIZE rcvd: 54* r- l, `- v) U' n! L
; |& C: H* S+ i
我们看看国外机器得出的真实结果
: k0 I, J% _' ~/ R/ K: c* x& I; ?
5 e5 f& x! F& n; @* x G# f+ z( U0 D[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li' y! W5 _ c3 Y
; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li
3 w/ {9 n q7 L# m% H& |: T; (1 server found)
( t, N) E; G/ b" e2 g* ^;; global options: printcmd
6 h" {! f0 R8 q% ]+ i;; Got answer:
9 @. {* o6 F: ?;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845
- s4 L' b' q8 r9 A I5 W. d;; flags: qr rd ra" h. }% ]. R5 a, B0 t
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
: _1 w! o; ]8 `! ]- }! i; K;; QUESTION SECTION: ;hen.bao.li. IN A; w: J2 z5 x4 o N! r
;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44
. ?3 F0 L* D$ J8 x, W;; Query time: 252 msec3 f/ X( u0 d6 o+ F
;; SERVER: 8.8.8.8#53(8.8.8.8)
, M5 j8 Q. J& O0 n' W3 Q;; WHEN: Mon Dec 7 23:25:12 2009
" C$ |" @* m2 V;; MSG SIZE rcvd: 44
/ V! f `+ s' l
7 a# ?8 v* w" }% n z可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。3 G _, X7 `& i# A
; |9 F5 }( \& K6 c a5 S0 r0 f2.解析速度快) X! @5 T6 }/ E2 Y8 X+ m
% p6 R P2 ~- ?4 |* i/ _7 u: h8 ^Google Public DNS解析速度是挺快的,但OpenDNS就未必了5 a0 B3 g: [, M
8 s- F- ] x7 DSam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com" t: P0 |- l' N" v5 t; }
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com2 I' F& D3 D6 g
; (1 server found)$ I3 N) m1 c2 _9 }. Y3 u' k5 `
;; global options: +cmd
% K% Y( h. x( H" a7 a3 Z;; Got answer:% p* E% H: I+ l
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404
1 O! c3 H7 o, X/ ~;; flags: qr rd ra1 x! } U+ _ q. a
; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0# ]7 r. V1 N' H! [- \1 K
;; QUESTION SECTION: ;www.dnspod.com. IN A2 T6 G1 @: \4 X2 a5 p
;; 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: t# `! E- q. S' N4 m: I8 g5 `
;; Query time: 608 msec
, h9 s: I5 T) d& u, k;; SERVER: 208.67.222.222#53(208.67.222.222), l4 o5 t. y, Z/ O# B( [
;; WHEN: Mon Dec 7 23:29:01 2009
* `' \" O/ D0 \0 Y9 V5 s3 p& f;; MSG SIZE rcvd: 101
# l+ V2 Z/ J# A% m" U K1 N! l7 A+ y5 o' ]) [+ ^
3.最重要的问题,访问网站真的快吗?- c% j& B, e/ t3 J9 K. p
7 ?, `; ]$ Y3 \2 _1 R! V* k q7 d相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。' K# Z6 ]* r# c' u
, F' {' L7 I. _# Z% J8 a大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。8 U5 D9 Z6 L# i0 L
: z& q- A& z% G9 C
网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。8 h4 J6 z A8 `0 J
; u. L* G% O0 ^3 p7 ]) L5 Y智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。) ]9 _# B# _/ p2 M
, N' l; F: J0 x( R2 f1 r8 T, }
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。0 I8 |7 S: ~# l
* C4 h3 `/ ~7 u V; J1 N1 `6 X
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。
( S- U* v% M8 C" Y" R V5 I' g9 B$ \- X8 b6 U# Y# G
返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。! A( V) t" P5 v; E6 m! f
& k+ N8 v9 W @: G: G- h( W本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。; \: ?# [% {5 Y! k; a* j c0 N" N6 q0 f
" Z% [- {- s0 r( R: `9 i, z拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
1 c/ m7 D* T1 f5 Q; I# d" s4 Q& C1 V; ?
Sam@Bra:~$ dig http://www.google.com% X3 ], S2 U, p2 V/ }& j
......
# r, f" G* p6 W;; ANSWER SECTION:
4 U r! T" u) L7 T+ `# ?: }, C) |" Nhttp://www.google.com. 48102 IN CNAME http://www.l.google.com.3 B5 U+ A* i$ d! L5 i/ ?+ S# k; |
http://www.l.google.com. 300 IN A 216.239.61.104
& @5 _# c* _$ K L; d
" ?, o& s7 B% R9 r% M如果我用了OpenDNS的话,那么我得到下面的结果+ D; H: I+ t: v, L+ r7 L- y
3 u& D# t0 Y& N1 X6 HSam@Bra:~$ dig @208.67.222.222 http://www.google.com
8 }. Q% T: j8 I6 z& k......
) m+ g6 G' s1 M3 U: i;; ANSWER SECTION:) t4 z# d% Z: K0 P* y
http://www.google.com. 30 IN CNAME google.navigation.opendns.com.3 J$ ~9 p: B8 C- e. A6 k
google.navigation.opendns.com. 30 IN A 208.67.219.2309 M1 Z8 \0 Q5 z0 ]$ U' Y
google.navigation.opendns.com. 30 IN A 208.67.219.231) r5 R) {8 f: O6 ^% x2 P D- R
& W: {' o" P4 ]. P( D# c6 _
ping一下得出的IP地址,看看速度,其实并不快- J% j3 ]# F% z% O4 ]3 s
O2 V u- J# V0 i
Sam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes. {* w7 y- e1 _' U o1 ^7 n" N6 U6 R
64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms
' j3 h t" s# w1 K! n( ^4 M64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
/ w* s( U V' B& G- q8 E64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms7 t+ F6 |; L- i
^C
2 U- b Z1 O+ P4 R9 ^. L--- 208.67.219.230 ping statistics ---7 L9 t. i$ M# l) x& d& @, |
3 packets transmitted, 3 packets received, 0.0% packet loss
& H, [9 ]% b; k' jround-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
( B! U1 {1 _& F K4 X8 s9 ~
$ Y7 A( H) o. F3 q我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。 w! E. d6 f4 p$ J! o
E( a6 t5 Q! f
我网通DNS直接解析
6 \: y% G$ L! `8 f7 A: i2 u$ ~' c* y1 T8 z+ c$ o/ M( c
Sam@Bra:~$ dig kaixin001.com
4 C) x9 [* s; ^6 J. L; L1 }......
. J# z! G" D e7 Q;; ANSWER SECTION:, }1 _* j, J0 V+ d% O8 A* l
kaixin001.com. 120 IN A 220.181.100.31
1 I; l/ P+ [9 D2 Q* A% M: ~; H; Hkaixin001.com. 120 IN A 220.181.100.32 W3 Q( M1 H' _9 n" }
kaixin001.com. 120 IN A 220.181.100.33
$ s+ e, G: Y7 f7 H$ J, P" Wkaixin001.com. 120 IN A 220.181.100.34
5 L$ u1 l4 V. z2 J3 a2 Dkaixin001.com. 120 IN A 220.181.100.35! a& [# G, `0 v- O" V
kaixin001.com. 120 IN A 220.181.100.30. I" J# B/ [( |+ E) @" a
# w8 |3 E+ l7 L D如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP
8 L/ J. L6 ]. w/ K8 A1 H
6 Y1 Q% l: c! V! j* ~3 F( S. M/ dSam@Bra:~$ dig @208.67.222.222 kaixin001.com ......9 P" S. [9 m2 ]2 E9 s7 h
;; ANSWER SECTION:
# n! I+ R: T7 ]/ \. g8 Zkaixin001.com. 60 IN A 123.125.58.247
o7 G. q: |2 W- z$ z+ ykaixin001.com. 60 IN A 123.125.56.2466 m! i K6 V! E9 c" d, g1 {
kaixin001.com. 60 IN A 123.125.56.247
" \' I, Z4 J* w/ qkaixin001.com. 60 IN A 123.125.56.2453 y* E9 W4 f0 g% t; L
kaixin001.com. 60 IN A 123.125.56.2489 e ^3 Z0 _- X
kaixin001.com. 60 IN A 123.125.59.20. `) D- s! u( N
kaixin001.com. 60 IN A 123.125.59.162 ]' q; B! j' K9 F
kaixin001.com. 60 IN A 123.125.58.248
" ]9 f% E$ i, N f( |* i& z! I$ E2 nkaixin001.com. 60 IN A 123.125.58.246
, _, f; A4 p7 J# ^kaixin001.com. 60 IN A 123.125.58.245
, j! A; U; N! k
$ @+ p9 Y7 K ~- f) b! a) \中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网
7 X: Q; Z- Q( Q9 v# [. J X; [( L6 c
网通直接查询,可以得到网通服务器的IP
( M; N0 G) r: V# ?4 @/ f% f+ e6 ]0 Z6 m# p
Sam@Bra:~$ dig shooter.cn ......- U, M% Z a8 Y6 Z3 Z7 L3 i
;; ANSWER SECTION:
, B0 ^2 G; k/ R. o$ Nshooter.cn. 800 IN A 218.21.130.42
/ H; A9 W$ _/ l, }: b
7 `1 n" ?1 ]" X; z( N4 `; h2 H) }网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP
$ T6 A2 k1 X. p! ~" g! B6 e5 Q% I1 h
9 Y( }5 j- |0 E; ]Sam@Bra:~$ dig @208.67.222.222 shooter.cn ......
8 p& e# r! `: s- B, h. S;; ANSWER SECTION:0 y1 ^ @6 ]8 c( h+ A2 L
shooter.cn. 750 IN A 74.207.252.170
0 C; I. }9 z, h1 l$ a
) \! Q, D2 P2 F0 m这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。" F r" z2 a+ ^: Q) E+ `
0 a/ y3 ?" H3 V! U
国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |