1.大家最关注的,翻墙,防止DNS被劫持。7 t& p( ]% @" @
资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果5 }9 M4 f) x( f, a, _ S: g
正常请求一个被劫持的域名,当然是劫持没商量了8 d+ r( b7 ]& T4 z! }
1 f; i- \' P' u- z4 W: `3 M
Sam@Bra:~$ dig hen.bao.li. }% U( u- C# Q; T( ^# ~* t ^
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li- f) p& q- A: Q
;; global options: +cmd
0 e+ C3 u" u2 x8 c;; Got answer:
( ?2 Y! X# b, X;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 508593 r6 v; F) G+ v+ w ?: k: h
;; flags: qr rd ra+ I8 _. B& Q2 B# |' s! r. ^0 u5 P/ L
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
, P7 X8 l3 i7 F' O; Y" i+ |$ L( \3 w;; QUESTION SECTION: ;hen.bao.li. IN A
$ w1 ]2 i# {: Z( G' _/ {5 @( A;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.153 ?8 u( @3 E6 j7 P2 }/ @
;; Query time: 0 msec
% ]5 D: t) ^# d' `;; SERVER: 127.0.0.1#53(127.0.0.1)! n' l5 A- ?& s
;; WHEN: Mon Dec 7 23:18:48 2009
9 L0 w" \1 c6 f* v6 u9 p9 [! m;; MSG SIZE rcvd: 44% G3 q j' Z" T3 m+ c. a4 L
) N2 k. w( E8 ~ l3 n. _
Sam@Bra:~$ dig hen.bao.li5 v% ?+ r- U" ~
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
8 G! L& h4 c* n;; global options: +cmd
9 |: z: u% C6 x4 g: Z;; Got answer:% a \) j0 t5 A
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
9 k6 h. L7 G* H8 |/ d7 Y;; flags: qr rd ra
Y- u$ f$ J" F+ D, b/ m; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0, u7 z: ?8 p: g0 _
;; QUESTION SECTION:- O9 y7 W% _& r1 E! @
;hen.bao.li. IN A
8 y' n5 b/ b( { y3 x* p;; ANSWER SECTION:
: v. U9 D$ K1 o0 L, rhen.bao.li. 85697 IN A 78.16.49.15/ j8 v. l% |6 P! w
;; Query time: 0 msec
. l" ^7 f; p! l7 n v9 G;; SERVER: 127.0.0.1#53(127.0.0.1)
9 s7 L) g6 t% Y& Y;; WHEN: Mon Dec 7 23:18:48 2009
% t/ ?( c* `, L0 O; N;; MSG SIZE rcvd: 44. _$ Q2 J0 R" z0 O
5 R7 b& V6 C! z/ O, V- s; d
然后再看用了Google Public DNS后,照样劫持你没商量+ b1 o. k' G8 P7 e) m. s v' B+ y
' M: {0 v5 f1 U- G7 u! {Sam@Bra:~$ dig @8.8.8.8 hen.bao.li7 ?/ L! m; @! r
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li) y- J& f' _: n- l5 C
; (1 server found); [1 n/ g l m! Z! U1 o/ V! N
;; global options: +cmd8 M/ s4 l5 g( |
;; Got answer:
' {) w1 g8 X' h8 ^% ?& [8 g) F;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485
# x- _# j0 p5 U3 A* \9 i;; flags: qr aa rd ra! ^* g/ d6 ?& e9 |# w9 u
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0* d& @: W0 i/ k1 D- r; E
;; QUESTION SECTION: ;hen.bao.li. IN A; r6 ]3 K% `1 e& Y( I% U
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15/ ^5 j9 y8 ]6 [+ ~6 z& f- {
;; Query time: 75 msec
. k& n: p0 ]- E8 v& p;; SERVER: 8.8.8.8#53(8.8.8.8)
* c9 \& c @) }# ] x9 d8 m;; WHEN: Mon Dec 7 23:20:58 2009; B# i1 f& B4 v* z9 J7 t! K
;; MSG SIZE rcvd: 54
1 K+ F1 G# g+ r% [
+ M1 N/ ~( N/ I- o i9 `- G8 w我们看看国外机器得出的真实结果5 ?! s2 g, I' Q' t- e
% \. d. I( S* }# V[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li
7 z" S K" Q2 b3 @: t; x/ M$ t; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li
/ Y/ F: n# e7 J4 o; (1 server found)- k4 H& _( |; U p7 |* T
;; global options: printcmd
/ S4 U; K. Y: Y$ Y v;; Got answer:- e) e5 G8 K( n6 t9 j0 P: A* @, o
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845
: X3 F; p1 `1 b l1 f O;; flags: qr rd ra5 j1 b* U, Z% w. w" F- g9 Y
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ^& I: d3 z: U. [8 C- z8 A
;; QUESTION SECTION: ;hen.bao.li. IN A" ~) \! v/ M' B4 w5 t4 n( c+ b
;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44
+ [% {7 C. c ]* v* s;; Query time: 252 msec
( c5 e* f; n1 g9 [6 y;; SERVER: 8.8.8.8#53(8.8.8.8)
! ^, E* i/ ~8 b" v. l3 u;; WHEN: Mon Dec 7 23:25:12 2009* ?6 d. Q d3 s" @
;; MSG SIZE rcvd: 44
/ f9 G0 m$ e7 I4 S; {* [+ G
/ I( X! j( I6 \' u/ P% b可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。
: o ~" w* a u; f5 N
9 _7 s2 Z( }9 H7 q; @2.解析速度快2 D; N1 j v. q4 }" t) b
$ U R# H, P4 }# i9 G! t9 D! G' ]3 Q h4 z; G
Google Public DNS解析速度是挺快的,但OpenDNS就未必了
% @+ M2 ^- r- G
9 N! N# q# b* [' KSam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com8 k2 p6 N6 c5 ?" c
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com
- C2 z" B2 @7 g: _; (1 server found); c" F# s& w0 i _7 I
;; global options: +cmd2 q' N7 z# O5 m D l
;; Got answer:
, u; y. R9 L! \5 z;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404
4 u: ?# r1 D. C/ S2 {1 e;; flags: qr rd ra/ G f- B) t ~, H- c, R
; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0- e' `. a0 @) M. f; z
;; QUESTION SECTION: ;www.dnspod.com. IN A' U% a4 [% _$ Q5 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.137
4 K) O# x8 v P l# N* R;; Query time: 608 msec
. k5 h x- v9 U) F" T- v;; SERVER: 208.67.222.222#53(208.67.222.222)
0 ?5 \* Q& Z/ e/ d4 j;; WHEN: Mon Dec 7 23:29:01 2009, x2 C+ O; L% ~6 O c. Y. {9 r
;; MSG SIZE rcvd: 1010 m) j$ I8 O9 Y! P8 C- m
( u5 Y( h, g- Z" `% s3.最重要的问题,访问网站真的快吗?
, @* m+ m. h4 f
2 u5 u. u; l. Z( P+ q3 y相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。5 x" }6 J6 R1 a5 e4 l# ^! S
' N* I# k0 W0 [& a: w# f3 _
大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。' `' E$ v* d n+ L* v; e; v4 H
T' [& F( t1 D! \; m( p& H网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
) e. A" H9 h+ o/ N; I
% b+ g4 }2 ?3 j8 T8 C智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。
" f% D9 C# z0 \) M3 {: {1 z% g7 T) T4 p1 b
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
% z: m6 H" p8 }/ `' J7 A M `. F7 Y& B9 a9 n
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。
) a" S: x( u9 l* N0 C M/ M- r- j
" D( u* A2 m0 E% d返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。
2 ^3 a7 J+ e6 P9 s; Y, M; w4 U; O0 L8 L! a) g `5 j7 Z) g/ j) J
本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。) [+ Z9 X- D5 h9 }7 M
% Y% c' C: g: u3 A9 A拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
2 x+ O: V0 n) s, [# j8 c. K) f/ h2 b& o% I. }
Sam@Bra:~$ dig http://www.google.com
; d. @" p. e$ o......7 Q8 m2 I% N, D3 u2 y6 R
;; ANSWER SECTION:. T3 j! M! a u! S- ]+ w
http://www.google.com. 48102 IN CNAME http://www.l.google.com.! T% W8 V; _- F* P$ f
http://www.l.google.com. 300 IN A 216.239.61.104
# q! J! o3 g& A/ ~6 O, t' Q7 S& J$ A: M, e7 \
如果我用了OpenDNS的话,那么我得到下面的结果
) T. N. x6 X5 n* s: Q
+ O, w, [* X5 r, ?Sam@Bra:~$ dig @208.67.222.222 http://www.google.com9 o; R8 x6 g/ l
......
, }$ k7 W y3 N8 @& N;; ANSWER SECTION:
' J8 R0 ~ |+ M) \" Qhttp://www.google.com. 30 IN CNAME google.navigation.opendns.com.
u6 w1 h6 w1 h! R& I* wgoogle.navigation.opendns.com. 30 IN A 208.67.219.230
& s# X0 [9 k7 y8 y |# \+ p Mgoogle.navigation.opendns.com. 30 IN A 208.67.219.231
% d: ]: t/ r0 W) Q- X% K& b8 i% O$ m) ]0 v
ping一下得出的IP地址,看看速度,其实并不快
; k. a5 d& Y3 w" V& u: R3 I+ p- {( c3 s8 L7 A
Sam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
/ B" d: N. N! z7 W" r1 h- P: W64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms
5 F9 P& W4 L# P/ T2 [5 a0 e% M( u64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms$ U- Z1 o7 ~$ Z
64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms) c7 L$ @ [7 {, a/ {0 a5 O* v
^C6 k' z2 E7 o" ]) F
--- 208.67.219.230 ping statistics ---
8 q" s' `4 _6 c$ G& i z3 packets transmitted, 3 packets received, 0.0% packet loss
. ^/ K. ]1 X+ Fround-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms+ j' x! Z' \ e j6 X' K' B3 `
/ h- ~1 ~* v- W
我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
1 B* |" P2 ?* E/ p* K: J7 ?1 ~+ b1 ^& S9 f2 D- G7 r6 |; G
我网通DNS直接解析% m3 |9 B# T, Y4 {: w
; P, ^$ x2 j" n' c1 ^3 QSam@Bra:~$ dig kaixin001.com5 V; W& R* ]1 d
......
0 B- e1 o' l |;; ANSWER SECTION:
2 J o0 J z. c7 S9 N$ ykaixin001.com. 120 IN A 220.181.100.31
: d& w: v6 y' n2 p, g+ l( S8 \kaixin001.com. 120 IN A 220.181.100.32% O8 e5 D/ i- @. g6 q. a3 C
kaixin001.com. 120 IN A 220.181.100.33/ F" A2 ?. I) Y! J
kaixin001.com. 120 IN A 220.181.100.34
) U2 M ~8 v! @" F7 \kaixin001.com. 120 IN A 220.181.100.35
9 I& l+ A# j% _9 Kkaixin001.com. 120 IN A 220.181.100.30
0 h) O4 Y: I3 [; c; a
0 q1 {4 H4 ?8 ~8 _! j如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP
) L4 s+ J1 R/ f* \7 }) d
/ O9 W. j& l: A6 n& f! DSam@Bra:~$ dig @208.67.222.222 kaixin001.com ......
" n3 G6 q9 x" k" {5 ~$ Q2 Y;; ANSWER SECTION:
0 w: u/ l6 f: @5 `. @5 okaixin001.com. 60 IN A 123.125.58.247! q2 ?1 H) x# i; \* d3 I. V2 Z
kaixin001.com. 60 IN A 123.125.56.2460 B1 o9 |" C, b
kaixin001.com. 60 IN A 123.125.56.247! V5 t; h# C; G8 T% _
kaixin001.com. 60 IN A 123.125.56.245
$ z2 @- g9 s4 @; c. `/ }kaixin001.com. 60 IN A 123.125.56.248! t; c5 F' }1 E5 y! Q
kaixin001.com. 60 IN A 123.125.59.20
5 G/ p3 I. z0 h, J2 Kkaixin001.com. 60 IN A 123.125.59.166 A; A4 w" Q* |) h* ~4 t/ g2 W
kaixin001.com. 60 IN A 123.125.58.248
0 W2 F8 h$ Z2 d9 r: Q0 A& N, ckaixin001.com. 60 IN A 123.125.58.246
6 `' Z$ T5 z/ R; Ukaixin001.com. 60 IN A 123.125.58.2451 \3 a! L9 d8 Y, B! u
5 J& Z1 X2 o) M1 Z: P中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网
/ M- ^( Y* s3 A1 \, q
; ?, x, @& X3 z( W. ` U; O网通直接查询,可以得到网通服务器的IP
1 h; s$ O n# }: Q" j$ u
) e7 ^3 @ r$ A, K0 SSam@Bra:~$ dig shooter.cn ....... o" c$ O: X3 J- p
;; ANSWER SECTION:
& z6 `: |; T: Q! Z2 ?; J" wshooter.cn. 800 IN A 218.21.130.42
. W0 J8 I6 G5 N9 K7 g7 A+ m( f3 Y" m+ g7 q" A8 d( ]
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP
9 Q/ T6 e7 m/ a* y: Y* _3 D9 D
/ m' _; ^. K* U+ M! ?Sam@Bra:~$ dig @208.67.222.222 shooter.cn ......2 t/ y" `. U4 Y% s2 E$ L& n
;; ANSWER SECTION:! `4 g: [! }4 n) G( T) n* H* l
shooter.cn. 750 IN A 74.207.252.170: R8 R5 S9 D! Z4 F
( t8 z# B4 N% b/ K$ a" h2 o! ~8 [这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。
$ v* @1 v/ H& h! x& O p
5 d* d: s( D( j3 _- n国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |