1.大家最关注的,翻墙,防止DNS被劫持。
& ]5 M. V8 f. B4 I资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果% Z9 \. Q; k1 s( u9 B& q
正常请求一个被劫持的域名,当然是劫持没商量了
v$ A/ j% F) N+ W" @
9 h% s. t3 j6 j# I/ E; d% `( t' \" N ?Sam@Bra:~$ dig hen.bao.li5 @2 Q/ o W. h3 e5 X8 i, d
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
, W3 u, j5 M0 U f0 C;; global options: +cmd
2 U0 Z$ r( E6 [! ?# G;; Got answer:
/ E! I0 }8 ]( \9 Q" S$ E;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
# U' Z5 ?2 U5 F$ q;; flags: qr rd ra9 m1 t4 s0 [7 H+ b# @
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0" p& E E2 E1 |
;; QUESTION SECTION: ;hen.bao.li. IN A
4 O" M; C8 B( P8 p;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15
% x' ]6 w* V* |, b;; Query time: 0 msec
' m8 A" b7 P# l9 ^;; SERVER: 127.0.0.1#53(127.0.0.1)6 F& E! W! @9 D6 c
;; WHEN: Mon Dec 7 23:18:48 20090 ]+ _ H$ Z" W; r8 p% `
;; MSG SIZE rcvd: 44# E+ P/ b- X4 S6 ^/ J
- @ [" v; x$ i3 {Sam@Bra:~$ dig hen.bao.li* C/ i1 f8 _. e" N) D
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li$ |+ y" g, d: Y- b9 O; P
;; global options: +cmd
5 E- @7 @9 z# w0 M5 K% S, B5 {;; Got answer:/ g* b# k6 J6 {! d
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
8 ]- ?; P5 S& x# p;; flags: qr rd ra2 `+ z1 T3 Z- |1 a5 M. [7 X
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
* h- G# m9 E; Z: ~;; QUESTION SECTION:
, T$ T' H! p) V" E! j;hen.bao.li. IN A, i! _& g7 p0 l& ^ C) ?9 x
;; ANSWER SECTION:
- c4 o9 t: C+ g4 b" R9 _hen.bao.li. 85697 IN A 78.16.49.154 N+ M) ~/ W" c9 {
;; Query time: 0 msec* s+ v& [* }' l* O: V/ e6 ]
;; SERVER: 127.0.0.1#53(127.0.0.1)7 e$ y2 o8 U6 w, Z; g9 t# @9 d
;; WHEN: Mon Dec 7 23:18:48 2009
+ ?, t% K, j2 D) O: O* R;; MSG SIZE rcvd: 44
3 i6 O9 G4 u4 n" [$ F! ~
4 i5 O8 U" C8 o9 {然后再看用了Google Public DNS后,照样劫持你没商量1 l5 {$ P( b4 Q
! V: d* F y3 d5 q6 w$ TSam@Bra:~$ dig @8.8.8.8 hen.bao.li* r8 e3 \$ R& h8 N5 {. L! z
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li
4 [! a$ L3 ^) F$ }; (1 server found)
% J! I6 [6 h+ _: A$ g, n;; global options: +cmd& N' \2 A0 ~" i( ]5 Z, u
;; Got answer:- o2 r: D% Y) }1 _ y
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485. n u8 ]) y2 h; J
;; flags: qr aa rd ra
& r3 B2 H" C/ ~1 g; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 q4 b. C" D! C: h% d
;; QUESTION SECTION: ;hen.bao.li. IN A
; {9 H4 L: A) V2 X* W;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15
! T0 \. M3 u( Y& z: E+ U;; Query time: 75 msec
% l' j8 U6 e* O0 W;; SERVER: 8.8.8.8#53(8.8.8.8)
F1 L( s" [$ c# q' D+ u% i- e9 x- L;; WHEN: Mon Dec 7 23:20:58 2009
3 |) o( r1 O1 t1 p, p;; MSG SIZE rcvd: 54
1 `) v7 @1 b( L9 Z! F' a! e' O
3 f5 y6 P" _) _+ I我们看看国外机器得出的真实结果
( v# m3 Z/ w7 m. x% z. W
! z) P6 M2 r8 W5 l/ V" y[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li7 f* v/ } h" [0 n; Z
; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li- r3 t) P0 P* Z6 O
; (1 server found) ^2 n7 @% v5 {8 y
;; global options: printcmd
?! x$ b0 |3 J. @; c" d0 U;; Got answer:, ~* L7 k; ^( ]1 e. J1 v
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845
% b; _1 h+ D3 a" o, i;; flags: qr rd ra
1 u6 w0 \2 X9 j9 [ T. J# o; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0. W! i$ @- |2 o& E- ]3 v
;; QUESTION SECTION: ;hen.bao.li. IN A
3 i7 L# Q6 C5 Y2 X$ o T;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44
2 y/ q _0 R# d) x7 T0 u8 t;; Query time: 252 msec- L- m! V# r- a9 p8 ~4 ^# E" Q- s1 f
;; SERVER: 8.8.8.8#53(8.8.8.8)
- u: W9 C: _- `; [, K* e3 L7 p;; WHEN: Mon Dec 7 23:25:12 20097 p6 S5 c# {0 Q' `* x
;; MSG SIZE rcvd: 445 d% F/ w$ Q# p$ F' p
4 o' n% q. K& ^/ q5 j$ T
可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。; K' x4 p- D3 D4 e, e( ?& ?, o
( X: d; r6 \( Z4 I
2.解析速度快
* F/ o7 y1 g) V) |+ ]' k4 F3 M' a; s, R6 _
Google Public DNS解析速度是挺快的,但OpenDNS就未必了# P! D/ W. \/ V. d Q$ S
/ X* x' W: d" \3 W- i/ hSam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com# }' x9 [& T* z* k: |* y; E+ p9 K4 R2 Y
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com
# f2 T2 C% E8 k. a& R; (1 server found)
( j/ `$ _# U! u8 Y) l;; global options: +cmd1 n0 S- P* f6 Y$ g0 b! O! p! _
;; Got answer:
* N2 L* b& E1 d2 b$ \: w+ Y;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404 D/ e# u8 h( I# ], t
;; flags: qr rd ra: I5 a O; J: J
; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
: v _" N w2 W( p;; QUESTION SECTION: ;www.dnspod.com. IN A( j' f j7 ^% i2 m0 A
;; 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 d# t' P* j3 u* W4 R: I$ G/ o
;; Query time: 608 msec! Q) y7 r, r/ J# p9 w2 k
;; SERVER: 208.67.222.222#53(208.67.222.222). Y+ B; A. f, Q4 }! r' J0 J
;; WHEN: Mon Dec 7 23:29:01 2009
1 o$ C2 n6 \/ z& G8 m4 _! h, ];; MSG SIZE rcvd: 101
7 P. g# f2 F9 d* b5 r$ P
% d; j+ l$ B# P: {) o3.最重要的问题,访问网站真的快吗?2 H1 l! Z3 u/ X
' k$ q, j& |$ w0 h. I: G
相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。$ D; o. n$ E% N9 o7 M' s% T
# u6 X2 K& I) X8 r8 t
大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
; x5 o+ W q2 e; l
; Y: }: L O# z网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。" S$ a/ h2 g& ^' f' N7 w
s4 A7 D6 }, d
智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。/ F/ G$ n$ {* L X* w: H
5 X8 `- ~- V7 s l
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。9 E- y a, p6 o! A4 _( u; N
, t6 ^4 g E4 G2 x$ L5 X: d4 G如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。
9 z. S3 v( b+ ]: {& d4 i
! \' J( \, z. _: l, ~' U返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。' k- h) c: [0 R" i0 x* }0 D" e
7 P( j+ i0 {# U5 @6 |& `* L" E本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。$ u( B5 X1 O0 \/ P0 E( q/ P! h
) x j, `& n4 _ _2 \拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果* e% M" w! e! \2 ]4 M
- u8 n+ X& \# x8 W+ ~& U7 nSam@Bra:~$ dig http://www.google.com8 Y4 E/ e* W& p! o0 v
......
9 \% T4 Q% i2 H |( ]& f;; ANSWER SECTION:
' d; e9 z& }. Fhttp://www.google.com. 48102 IN CNAME http://www.l.google.com.
3 `" z1 p/ r3 h$ l, h. ^! whttp://www.l.google.com. 300 IN A 216.239.61.104' ]. E/ s9 {! c' S' }
6 ^ T$ N* P; D/ K8 g如果我用了OpenDNS的话,那么我得到下面的结果* K" n% f; ?0 v' H, e- ], U* \9 m
9 }/ {/ U+ L, rSam@Bra:~$ dig @208.67.222.222 http://www.google.com8 Y9 ] U$ n% i* S5 O3 Y. U$ Z& U' e+ l
......
9 ^# P' k: g0 b0 e- H7 I;; ANSWER SECTION:! \9 H3 q X$ {1 W/ u! {( p# ?! Q
http://www.google.com. 30 IN CNAME google.navigation.opendns.com.
+ B7 |% G, Z* w( Y* Agoogle.navigation.opendns.com. 30 IN A 208.67.219.230
% ^( t- ~4 I. a" x! k2 xgoogle.navigation.opendns.com. 30 IN A 208.67.219.231
# v6 ~% }9 i1 ]) ~3 z. @. q' D9 {* Y; g6 Q/ j
ping一下得出的IP地址,看看速度,其实并不快- x1 F# h) v2 T2 X! I! U% l
4 p+ l9 ?, X' ^9 R! \
Sam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
5 ~0 H9 o. Z( R, p64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms
& N! b: z. k% o: m; G( z64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
6 N( Q6 d' {$ B+ X9 y3 p64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms
4 U+ G2 ]$ s1 g( \- i" O2 p^C8 p: T* C5 K$ i: [ e9 `) k% j
--- 208.67.219.230 ping statistics ---
" m5 n. C' y- z& [& s3 packets transmitted, 3 packets received, 0.0% packet loss
) `6 g% g" C3 t& M. Yround-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
3 i# E4 R3 p/ i3 j+ U5 _, d G+ o0 ~+ z0 _$ B
我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。; j% c. \/ j, N6 ]
! G% j, e. C0 J8 ]! f0 A我网通DNS直接解析8 N$ Z* O$ V. N0 j# u! O5 z9 d
o- G- ~2 E+ x7 b; Y# O
Sam@Bra:~$ dig kaixin001.com
2 g% q* e7 y5 C5 x6 O6 B2 b. W......# o* L# e' R3 s5 I1 a4 w) w
;; ANSWER SECTION:
' X+ f1 M1 \! o" z' b" i% ekaixin001.com. 120 IN A 220.181.100.31- c1 U' I9 w. I) S: G! [
kaixin001.com. 120 IN A 220.181.100.32
. |/ `: N. K- R! a7 B/ D+ p% a5 akaixin001.com. 120 IN A 220.181.100.336 L: t" c( c( J
kaixin001.com. 120 IN A 220.181.100.347 K, b! H- v% C+ e9 u) a# x" [8 V% W6 r
kaixin001.com. 120 IN A 220.181.100.35
" A! c" Z1 D2 d% J# ?) \kaixin001.com. 120 IN A 220.181.100.30; t4 S# u8 u& E7 R
( ?' m9 f7 Y. P6 D4 f" j$ z# a如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP
! P& X/ k, m/ m1 `0 }: }% ]) b% q0 _7 E6 h
Sam@Bra:~$ dig @208.67.222.222 kaixin001.com ......
( a1 F5 o2 `) c( ]8 S5 H T0 V;; ANSWER SECTION:: m7 g8 T4 F* q; z T1 v8 |8 k" e1 C0 o
kaixin001.com. 60 IN A 123.125.58.247
; E/ @2 H( K; zkaixin001.com. 60 IN A 123.125.56.246
6 V4 P0 Z" j2 I$ o# f& Akaixin001.com. 60 IN A 123.125.56.247) Z* a4 I+ i b7 s
kaixin001.com. 60 IN A 123.125.56.245: E& `% m4 A4 Q: t& p
kaixin001.com. 60 IN A 123.125.56.248
. {" Q" _; q) m' ekaixin001.com. 60 IN A 123.125.59.209 E! m1 w/ Q- ~; [) Q" R: J
kaixin001.com. 60 IN A 123.125.59.16
o- F7 Z4 ~- \kaixin001.com. 60 IN A 123.125.58.248
' x! y# a* s3 a) ^5 w; |kaixin001.com. 60 IN A 123.125.58.2466 ]2 F0 O8 u* o/ u8 x
kaixin001.com. 60 IN A 123.125.58.245* M; u8 [( _, R Z9 N( D
" ~( I4 C* _* n; j. L6 w
中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网
- ?1 i K/ t: ^4 r2 n$ h
, P2 P- n2 Q5 b/ C网通直接查询,可以得到网通服务器的IP
- @" H8 n u1 b5 |& {
* ~1 x- ? E% q3 ~% i6 J* fSam@Bra:~$ dig shooter.cn ......
3 I5 |, | C- ^) ^# T;; ANSWER SECTION:
% T o( u! I7 j' ]. q" e, z& ~6 Ushooter.cn. 800 IN A 218.21.130.42
: Y7 m) m5 s) Y6 g6 u" r
! F+ ]9 C4 s+ T网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP, ?& i# o. D& p* p$ F- Z) v2 P- ]
* H5 `. j2 I. g- A8 pSam@Bra:~$ dig @208.67.222.222 shooter.cn ......+ Q2 a' U6 Y( k; R8 W) _8 V) l. }; f
;; ANSWER SECTION:; t3 e5 k; Q/ _- g9 w# F/ r
shooter.cn. 750 IN A 74.207.252.170
! j, C- m& ^ P$ D$ G
% I- m1 ? U, _- I9 T2 I这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。4 `+ Q, ^6 D; k4 _5 K
/ m& @8 e# m, P* J" @; D5 R国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |