1.大家最关注的,翻墙,防止DNS被劫持。8 |9 O8 m' ^( t* Z) ?& `
资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果2 ~: [" {) `- w# }9 Q- t G
正常请求一个被劫持的域名,当然是劫持没商量了6 e/ h S' X* @/ H4 C) q
7 |3 B4 ]9 Y3 U& Z) Q# T+ z
Sam@Bra:~$ dig hen.bao.li
- | H; J2 a# y3 N$ e9 f7 P4 ~; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
" s: N8 H/ ?+ Q- e$ m% W4 B- _;; global options: +cmd( F! @ }% \/ A) b% I
;; Got answer:0 o2 ?9 m+ h6 I5 Z
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
" }4 f% H& d/ N! Z/ d;; flags: qr rd ra7 U6 [; e, i5 Q- Z! Q1 V5 J
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0' W! i: L* ]& }8 f. n( @
;; QUESTION SECTION: ;hen.bao.li. IN A
3 E- d& W& w' I$ Y' j;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15
5 [ M2 s8 w7 ];; Query time: 0 msec" X- h9 `5 S/ x0 M/ |
;; SERVER: 127.0.0.1#53(127.0.0.1)
- ~! g6 J2 A% Q! x3 J" {;; WHEN: Mon Dec 7 23:18:48 2009
2 J1 Y+ b) c. a;; MSG SIZE rcvd: 44
9 _9 E/ `4 s: ]$ w
0 u# t5 p7 K. ]Sam@Bra:~$ dig hen.bao.li
6 v% Y) W/ X$ p( l$ n) L( K( w; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li( m( K2 O- O) c }6 }- ^
;; global options: +cmd
* R5 \# @" ]$ |0 F2 `, j) q;; Got answer:9 B% r, V+ }. { h3 ?' l
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859+ e$ b: u V8 H. o+ Z; V
;; flags: qr rd ra
& Z& x8 D0 c# I& C! H, q L; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 07 [+ C# w1 g1 b; p! A, E4 G
;; QUESTION SECTION: }% T2 K/ i- F4 a; r% D
;hen.bao.li. IN A
- V6 f" I" `# M/ H2 K+ J;; ANSWER SECTION:3 A/ w& e, e3 r- ]0 a
hen.bao.li. 85697 IN A 78.16.49.15
* j- k. I' w1 p9 X R2 N, u! Y;; Query time: 0 msec. t8 Z9 H8 w3 h* W' G. F, S
;; SERVER: 127.0.0.1#53(127.0.0.1)- x( {) }6 d" c1 T8 c, ^. y
;; WHEN: Mon Dec 7 23:18:48 2009. e( f9 K! g: p- e6 A/ Z/ c
;; MSG SIZE rcvd: 44
5 h0 W% a, I/ |. V) j5 L4 T! M0 O c6 D: g) M% Y
然后再看用了Google Public DNS后,照样劫持你没商量
0 F# t) G' T( d8 p# G# ~& ^
Y$ c, E Z7 g. l& G$ r! J" R' k; tSam@Bra:~$ dig @8.8.8.8 hen.bao.li
) q$ N. N( O4 K5 o* r: [5 x; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li
. J8 l% U- q2 _! B0 A9 P0 d7 ]; (1 server found)
7 T4 U! [/ i$ w T8 B5 T8 H3 M! f;; global options: +cmd
7 F8 e+ u3 L9 a9 {;; Got answer:! Z+ b$ M8 b0 n" Q
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485: w a \6 S; V: j! L
;; flags: qr aa rd ra
5 [/ i5 e% [7 Q: X# i; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0' F/ i: t& _- x% _- O L8 @0 r W. j
;; QUESTION SECTION: ;hen.bao.li. IN A
' Q. ^0 r7 ~1 {' D+ r3 ?* o;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15
4 ]% S2 V6 |8 W2 d1 a! w N;; Query time: 75 msec
/ z6 d+ ]. H$ H9 J$ W) T;; SERVER: 8.8.8.8#53(8.8.8.8)* i' x M, J6 Q/ o! V
;; WHEN: Mon Dec 7 23:20:58 20094 w7 o- J9 u' j3 P0 ~8 W& p4 y
;; MSG SIZE rcvd: 54
) c4 I$ U }3 L5 b) ?, I, Z) `- m# k
我们看看国外机器得出的真实结果- D8 z& M3 \2 {0 B
$ p7 U% q0 K- T1 D: i% A
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li
; P; N9 N% m, t2 p! E$ Q. q- T4 `; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li$ A9 F7 @) L; z2 z& G
; (1 server found)
$ M+ c. M% _1 N$ s% W8 I: F;; global options: printcmd
; v9 X2 M+ ~! ?- f6 w0 z;; Got answer:
$ J) u& j+ G. b( v$ j( c+ R;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845
# V$ M5 F: }( g, [$ ];; flags: qr rd ra: }. g2 f* Z$ s0 O0 ^
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 03 Y9 t, }8 G- R" I3 z9 C
;; QUESTION SECTION: ;hen.bao.li. IN A8 ~, R" b- ]! A- R! N
;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44
7 L" i. ?6 i6 x$ p& d;; Query time: 252 msec/ I, o- s* F, a
;; SERVER: 8.8.8.8#53(8.8.8.8)
3 z% F: F1 k3 A* G6 V; k r+ y;; WHEN: Mon Dec 7 23:25:12 20091 R' H/ m; S: ~) E6 @& s
;; MSG SIZE rcvd: 44
% g/ m8 w; r( ^3 M+ y; D2 H& v4 l; N8 O
可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。
3 p9 g, _) h! L5 c4 {0 O
( Y6 Q% E9 F. W2.解析速度快
) v B$ z0 `6 W x t' K6 B% s( L" H) ?
Google Public DNS解析速度是挺快的,但OpenDNS就未必了
% i5 { W- S8 U; G- w" O) I8 y' F- L8 _0 s) z' q
Sam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com K- a: {3 u1 z' |
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com- a9 E ]2 c5 ]9 u1 d2 T
; (1 server found): ^+ F% T; \) h. c' S
;; global options: +cmd
( }1 m3 b7 I+ Q+ _7 M2 K;; Got answer:' ?/ W$ q7 |2 Y. |% @: G! H
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404; G/ C; |; G9 T/ s
;; flags: qr rd ra
! J: Z/ `! [( K8 ~- C; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 03 B$ W. D% m/ ^; j( F) b
;; QUESTION SECTION: ;www.dnspod.com. IN A7 ?1 G" t( l+ S8 u0 s. G
;; 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 {2 M; Q8 c1 H; A7 [* d& S;; Query time: 608 msec
0 W# g/ F7 k& o |& R;; SERVER: 208.67.222.222#53(208.67.222.222)2 M8 r- I/ j0 [0 J9 n* d( V
;; WHEN: Mon Dec 7 23:29:01 2009' a) t# }9 O1 S& {) ^4 G
;; MSG SIZE rcvd: 101; c& j4 h! Y5 Y- Z" t( E
0 X3 X6 Z5 _1 d, n+ u: a$ t3.最重要的问题,访问网站真的快吗?
. O# f: D- I* J/ N' ]
- ^! S& e, `8 w3 F! ^ S9 A相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。
- L) ~1 r$ v* I( I* [9 g9 I( W% M4 a: A8 B
大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。4 H6 l/ I0 r3 S: n. U$ U }
" f' N# H# w: D! a1 I网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
- k1 p* F2 R7 n. }
# J5 h/ o5 T' c/ m& s5 f智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。* b4 C: O( O; d& x& w) [& m
( b' B7 X1 I t3 C: i
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
4 b) f: i! n4 P: e4 o: W1 W
* b0 i4 q% @4 t, {) ^7 {如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。
3 ^$ }7 M" @; T g
6 J( S, e8 P1 f- P返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。
+ @1 F0 Z+ d+ g, B) a, ?2 W
9 p; S, M& O( ]# R/ {" e1 y本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。
6 v. W3 ^& m: e) j* C; e" b4 H7 l+ D/ h* O
拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果9 c: ^) ]* H. v( y$ _/ H1 g5 I$ Q; u
3 j0 I, {8 ` { U2 E- VSam@Bra:~$ dig http://www.google.com: ~$ | E- A" @( a* C/ J
......- N5 D# k, V# a1 ~
;; ANSWER SECTION:% V S' R; I! X
http://www.google.com. 48102 IN CNAME http://www.l.google.com.
) V2 q: a% V: r8 \http://www.l.google.com. 300 IN A 216.239.61.104/ w4 ?2 C# e- ~' ~4 ^& }
7 z' e# Q: d& |# M( T; j/ ]如果我用了OpenDNS的话,那么我得到下面的结果/ A$ Z! E; _5 x) p5 ?
, q, n1 Y# l: y" ?) MSam@Bra:~$ dig @208.67.222.222 http://www.google.com- P- i7 t0 L8 u: |; N5 x
......
, X g# ^9 V* q- t0 U4 V; l. ? d& U;; ANSWER SECTION:
: l( E0 H' X5 ]8 n0 qhttp://www.google.com. 30 IN CNAME google.navigation.opendns.com.
; t9 q) R7 B, p! J V _& z ?google.navigation.opendns.com. 30 IN A 208.67.219.230' n' S; d8 D l! l5 S
google.navigation.opendns.com. 30 IN A 208.67.219.2314 t. h4 ~) R5 G/ f( |
% x5 P: \" Y% [# Q& ~' X
ping一下得出的IP地址,看看速度,其实并不快
+ n; q/ E. x; e6 ]% P7 Q5 H: e! D8 t
Sam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
/ h) ]) w9 _; G7 L1 e64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms
, v/ q5 O6 t7 v: ? N64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
* T ^. f. c# x6 X9 x64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms
/ j3 M: C$ \0 T0 b" F$ [/ w^C
, i' V9 O* e0 p; E. e2 H7 g--- 208.67.219.230 ping statistics ---
) v. Y0 i% {8 H3 Z) i0 |5 u! `3 packets transmitted, 3 packets received, 0.0% packet loss
, w6 [' ]. ^, e) u, Tround-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
+ i2 g) o& f, P: {/ x
q& Y5 d1 j# H我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
$ J7 f' X J) D7 H. v% b: X- T3 X1 L# Z' w4 b8 q+ z
我网通DNS直接解析
' A! |9 A. C" r! e' Y# Y& T* ^ ?; a8 E. |" @. m0 d
Sam@Bra:~$ dig kaixin001.com& ~+ `8 R" [3 R. v
......
$ i" ~3 u. H8 B3 v;; ANSWER SECTION:
; |7 A7 c) l+ o6 T, Ukaixin001.com. 120 IN A 220.181.100.317 j1 L E8 O2 F7 R" i" @
kaixin001.com. 120 IN A 220.181.100.32
, F/ i1 c4 j' _: ~, |. mkaixin001.com. 120 IN A 220.181.100.330 J" O3 i- N4 p. B, x w
kaixin001.com. 120 IN A 220.181.100.34
8 i; y& C3 {2 N, I! Q: l: M4 ~kaixin001.com. 120 IN A 220.181.100.351 h# b. e8 B A* J6 \1 A3 R3 I
kaixin001.com. 120 IN A 220.181.100.30
' P4 F6 M# W4 p- g% e; p6 r9 P v/ d& l5 M: B
如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP
6 @; m, ^' A4 U& z% Y1 J# i. `: a8 ]& C: ? N
Sam@Bra:~$ dig @208.67.222.222 kaixin001.com ......& Z+ H ~) B9 C8 N2 N p5 G* B
;; ANSWER SECTION:
7 c# a9 _, i" y( m! \/ Gkaixin001.com. 60 IN A 123.125.58.247; k2 ~$ H" N. ]3 f- U* V/ h
kaixin001.com. 60 IN A 123.125.56.2461 ?+ Z; e8 i2 a( |
kaixin001.com. 60 IN A 123.125.56.2470 ~+ y: y0 U1 x6 s: y9 d4 Z7 I* X
kaixin001.com. 60 IN A 123.125.56.245* V4 q3 n; Y ?2 E) ~
kaixin001.com. 60 IN A 123.125.56.248
( S& E) W3 F+ ]+ y' v' ^7 nkaixin001.com. 60 IN A 123.125.59.202 [( s) _$ k: j, ]2 U
kaixin001.com. 60 IN A 123.125.59.16
% G/ U9 v1 \0 b4 X3 D/ xkaixin001.com. 60 IN A 123.125.58.248: W: q0 W/ H+ {, O
kaixin001.com. 60 IN A 123.125.58.246
* `1 n! t, c# F& T# R1 C jkaixin001.com. 60 IN A 123.125.58.2451 y, X& E6 F$ S& Z( P* A. L
# [2 b) C; V8 [" s
中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网
% \! P9 u! c; a# v$ Y/ Z
7 R# ~7 d2 R3 i网通直接查询,可以得到网通服务器的IP- {6 s# Z& s7 x5 e, n, |: @
$ Z' p8 [3 Z" I1 a
Sam@Bra:~$ dig shooter.cn ......8 u( ~' Y: H T9 M
;; ANSWER SECTION:3 e$ b& h8 {! x) \4 g$ s, ]
shooter.cn. 800 IN A 218.21.130.42" ]7 }& I0 f7 I8 @" ?: ^" j0 s
% O1 m! ?" G* k1 S, Y网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP
3 d2 f* U& A" G7 R& O/ x" q2 }0 x4 J9 V. H* O: w' u
Sam@Bra:~$ dig @208.67.222.222 shooter.cn ......
$ K/ @2 Q% U- |0 Z;; ANSWER SECTION:
4 B( n+ X+ \2 c6 U3 ]shooter.cn. 750 IN A 74.207.252.170
4 d q1 g2 E; a3 v, |+ R) Y
; I* v+ C5 l4 f1 d% t( H这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。5 l2 D, x9 }# k, N+ [
0 d4 b l1 B$ W. M7 l国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |