1.大家最关注的,翻墙,防止DNS被劫持。
9 D, S7 M$ n) t/ L& _1 ?7 y资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果2 R) A: L/ B8 E& ]9 N K) y
正常请求一个被劫持的域名,当然是劫持没商量了
+ k4 c9 T, L, {$ Y- A
0 [& Q) C% K: ~$ L _: y* ]% n/ \Sam@Bra:~$ dig hen.bao.li" ]' m, b' v4 [$ s. p9 x; e
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
9 h' _3 t& N8 D( J/ }" N4 i! C;; global options: +cmd4 B+ K1 p+ d9 o; ?
;; Got answer:/ p# R4 X( R' W; h# w% L
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
) w+ M0 L5 P- {( e( \( n;; flags: qr rd ra
% M- M! _) ?6 j D+ X# L/ N; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
/ Q L2 w6 k0 t) [4 J( k6 {% i;; QUESTION SECTION: ;hen.bao.li. IN A
) h) @+ c J$ E;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15
$ S7 O# H# S0 F v0 r' f;; Query time: 0 msec2 m% ]5 q9 U0 l2 s$ j
;; SERVER: 127.0.0.1#53(127.0.0.1)
, ~2 u. v9 {. T; ^;; WHEN: Mon Dec 7 23:18:48 2009% k4 y2 J0 J% z* Y( A
;; MSG SIZE rcvd: 44: ]' m5 ^& F: N( B D6 ~8 @, s; B
. _& q; q' t2 O) U$ ]+ A+ TSam@Bra:~$ dig hen.bao.li
0 L4 ]( j/ C8 |6 ]7 {5 K& t- B: [; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
. c) A: M( ?& y$ y' y* z;; global options: +cmd
3 L3 p4 k" d1 M1 d/ Y; I, ^;; Got answer:
* _0 _4 d% P" V- _+ r s;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
8 \* e9 U, u' v, S; ];; flags: qr rd ra2 O8 R3 A+ I( Q' V% d2 s
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0% H. U& T* N4 c5 ?, Q% u6 m
;; QUESTION SECTION:2 K% R/ ^0 y* ]2 E a& F* {
;hen.bao.li. IN A$ P, T- ], K5 d& f0 Y
;; ANSWER SECTION:
$ P; J1 m6 u" _4 Dhen.bao.li. 85697 IN A 78.16.49.15; _" q7 R6 o' G8 ^
;; Query time: 0 msec6 }7 ?2 Q& S+ q: V, `" `) ?4 a6 r
;; SERVER: 127.0.0.1#53(127.0.0.1)
7 G. U) B4 C: V# J& {& g( p;; WHEN: Mon Dec 7 23:18:48 20097 f9 _9 N9 W. }. u7 H7 X
;; MSG SIZE rcvd: 44
1 N: b1 s4 r, K9 T3 l) u
, z& K8 }7 |5 T; j然后再看用了Google Public DNS后,照样劫持你没商量' s d: b5 t& Q% m& N+ j: \; ]! _
' }! R2 {% B$ ]: Z" L
Sam@Bra:~$ dig @8.8.8.8 hen.bao.li7 g5 r- _1 S. P% O/ a @# o
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li
, {7 p$ O h7 l& ^) y1 |% L: S; (1 server found)
, i5 P; y! s/ U* J;; global options: +cmd
5 G9 s7 p# G/ Z% Y( z: X;; Got answer:
% C; N3 w1 y D* l" U6 H;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 154851 n h* v7 ?: o8 q! j* x3 K
;; flags: qr aa rd ra
2 A9 M8 u+ v) k/ Q& V; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
/ Q2 }( F7 w& q$ L- b% R;; QUESTION SECTION: ;hen.bao.li. IN A
3 k7 W* B3 z4 O2 i* W+ m7 \% M;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15
+ r: B, ~0 D0 S% a, t0 a;; Query time: 75 msec
' k% ~3 ]- e4 z u;; SERVER: 8.8.8.8#53(8.8.8.8)
6 D2 N/ b* E; t' | E, g/ U+ z, L;; WHEN: Mon Dec 7 23:20:58 2009# ^; h: ]' g n( e
;; MSG SIZE rcvd: 54$ y& P1 M( N( Z7 U
4 U$ r0 s$ X7 f+ v3 Q- e我们看看国外机器得出的真实结果
9 ^4 E$ V/ X0 @- r& [# x/ A0 t9 c+ ?0 _2 C, ~
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li
. d0 ?$ F8 {! H- Z# y; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li
5 R/ M% g4 Q/ N8 e7 v8 E' t; (1 server found)8 q( I6 i3 C; G0 p% q r
;; global options: printcmd2 W6 S6 y( r* f* [$ u6 t0 K
;; Got answer:
: h" D l; Z2 a# \( D- A5 D;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845$ |9 Z! f4 |4 N
;; flags: qr rd ra
" Q$ M9 E5 ^8 G* L; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0' U. J" A; {& a
;; QUESTION SECTION: ;hen.bao.li. IN A
- ]4 O1 h% N5 q g;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44
8 [& a, ?0 R7 y' K, {& z9 f' g- ~;; Query time: 252 msec6 l/ b a: S2 B) D; l3 c
;; SERVER: 8.8.8.8#53(8.8.8.8)5 e0 J1 q( }3 v7 u4 e
;; WHEN: Mon Dec 7 23:25:12 20091 A2 W( n- g7 U
;; MSG SIZE rcvd: 44
' j% l- L; P. S% U4 q0 w# X' F9 ?( T9 y7 }0 Q3 i- G$ Q% V
可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。
" P% M" `5 ~' O' r. g# J1 C5 p6 G
: Z: ~! x6 I$ Y: ~2.解析速度快4 h( M [6 o+ c
9 {$ w6 ]) Q2 TGoogle Public DNS解析速度是挺快的,但OpenDNS就未必了
( H5 }6 ^6 N) C4 c) o
. Y" y: R1 g1 @0 gSam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com9 m; W- f, \6 }! w3 d# a: {9 I0 t
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com' m! J0 @, M+ L) E( j
; (1 server found)1 l6 ^7 ?1 \: U7 H# [# S
;; global options: +cmd8 _" `; X7 l! E" ]8 c" [
;; Got answer:# S _: {# b# s
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404% k- \' x+ T1 E3 R; s
;; flags: qr rd ra1 F. y- ]7 y2 Y: Q2 D5 V
; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0" h4 C# G$ e7 k2 n" @' y7 N
;; QUESTION SECTION: ;www.dnspod.com. IN A s( ~& f! M9 b" X9 g9 L5 @
;; 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' @7 ^8 N! F9 L
;; Query time: 608 msec
1 _; G8 [; l7 {) X5 I3 w+ A7 N;; SERVER: 208.67.222.222#53(208.67.222.222)
" l: y7 M9 z9 `& O" o7 |! Y$ ~;; WHEN: Mon Dec 7 23:29:01 2009
/ k( W1 z# Q" u- z7 X I;; MSG SIZE rcvd: 101
) o; X! D1 F& h6 C; W4 X
9 A1 X* n, v0 G) a1 U7 h8 b3.最重要的问题,访问网站真的快吗?
& k* f A/ V! y: `- b" \# W* `# j% C; k) P
相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。
8 X% q/ G8 S5 y7 M6 P# }2 c! e: _0 e9 h2 I- y' T
大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
* v8 s* H* m' [3 u: a0 T. e' F7 t$ y
网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。+ t+ \) N# X g2 r3 T
1 Y! d1 Y( j- ]9 t智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。/ j& c7 d! k5 P
! \. V; A; |# P% u但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
4 o7 i( o: Y$ s. m6 V# m' A7 F, t. G, p% m# r" J( n- U$ b
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。
7 F6 H! T7 X, @+ ^* a! O8 o- }1 S0 T: Y6 \$ {. b" O! {& j( B
返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。( O4 P3 e. K7 @5 Z* j
" m% k4 i9 u6 T+ A0 t+ `2 \
本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。
4 j# p0 ^: ?% ]$ t5 `. h' r" ?" @4 z4 t8 Q3 j
拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
: o( @+ R. _. O) p7 S( o4 X: K! g8 k# @! k5 r
Sam@Bra:~$ dig http://www.google.com
4 \$ K$ O" O' u9 D& t- @( D......' t+ y: f- C* K
;; ANSWER SECTION:
- ^. `" _4 A/ [9 lhttp://www.google.com. 48102 IN CNAME http://www.l.google.com.$ I( U" _6 |% D% e9 q5 o& ^. b
http://www.l.google.com. 300 IN A 216.239.61.104
+ D7 c) {, N, Z$ B0 x9 [/ x J- @3 ?* h+ c2 w
如果我用了OpenDNS的话,那么我得到下面的结果) a# v) I8 l% D _' X+ i
r& ]! T: K& W# N+ L) F4 N6 CSam@Bra:~$ dig @208.67.222.222 http://www.google.com
" b; C% x, W" ^......# V4 R3 h: E! V6 p9 W+ K" Q; l$ E
;; ANSWER SECTION:
4 ~7 y8 N8 |( S4 ahttp://www.google.com. 30 IN CNAME google.navigation.opendns.com.
1 {' H5 D( y! Y# r0 Pgoogle.navigation.opendns.com. 30 IN A 208.67.219.230
3 ]: e% U6 {1 K" S2 q; @1 [google.navigation.opendns.com. 30 IN A 208.67.219.231* r: t& |6 @( y0 k4 _
b. x/ F" T% ?$ s
ping一下得出的IP地址,看看速度,其实并不快
: L. X% J; P0 r+ g. s2 V+ w6 V" b! ^$ V: J' h, K
Sam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
) |% ]: K8 A, H2 `0 M% J( E6 ?64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms0 J4 h: r1 g4 r' a" r7 C
64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
$ t; G+ M, }- p3 J! R$ @3 Q% T4 J% H64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms
% @7 k) r! A# P7 V# }3 _^C
" y7 x, m0 W0 r. g--- 208.67.219.230 ping statistics ---, H6 G: T8 z. s* E
3 packets transmitted, 3 packets received, 0.0% packet loss4 t0 ^& }& ^/ D F+ Q' o1 F
round-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
* K* Y, | Q7 w$ e& @ r7 \& s# [' [( |
我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
5 Q- T; L ?& A: i
! Y8 t* j2 [1 C- ?# R- `我网通DNS直接解析
+ r Z, M6 ?1 B7 Z
7 m& R2 A D+ K. t( c1 V8 o LSam@Bra:~$ dig kaixin001.com
7 |4 k* d/ W5 S3 ~2 i. y) G! }; f, G* b......
! s& W* J$ ]) R;; ANSWER SECTION: i) T$ Y, {9 Z' Z2 l
kaixin001.com. 120 IN A 220.181.100.31
! G: O# x5 ~* ^* q( @. A( P3 d7 Kkaixin001.com. 120 IN A 220.181.100.32
# {$ C3 r/ w3 z! t" Q& D Ikaixin001.com. 120 IN A 220.181.100.33
- ]& \; t! \' Q9 W6 |( Nkaixin001.com. 120 IN A 220.181.100.341 `/ x; f& h' H7 P& w
kaixin001.com. 120 IN A 220.181.100.350 Y9 o3 b/ b% x4 R$ D
kaixin001.com. 120 IN A 220.181.100.300 X+ t$ N% p; E/ Y
3 N+ M8 c+ n! m# o% `% K+ d如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP
7 d" f; r9 _+ R/ a3 N( s
2 h3 R! ^- Z8 V# r6 o- x" r: ASam@Bra:~$ dig @208.67.222.222 kaixin001.com ......# s; k, u* x/ `! T9 u
;; ANSWER SECTION:
. ~) k# A5 Z2 V, y% Ekaixin001.com. 60 IN A 123.125.58.247
! P, ]3 x; g# L Vkaixin001.com. 60 IN A 123.125.56.246
# K6 v. P5 a k5 R4 A) v$ p/ Lkaixin001.com. 60 IN A 123.125.56.247
1 }3 ^/ @( d2 {, J' z4 S( Xkaixin001.com. 60 IN A 123.125.56.2456 w+ d* |6 t& D1 O5 F: ?
kaixin001.com. 60 IN A 123.125.56.248
$ I P& J5 X& _0 |0 ^3 Lkaixin001.com. 60 IN A 123.125.59.20* a) c; M- u- Y) G& q/ K9 }
kaixin001.com. 60 IN A 123.125.59.16
$ X) ~" f: K$ Q* }kaixin001.com. 60 IN A 123.125.58.248& S U( d- z: S7 v
kaixin001.com. 60 IN A 123.125.58.246
6 f2 i! ~0 M u8 S0 ~! fkaixin001.com. 60 IN A 123.125.58.245; {; r5 {6 ^' d9 D5 i3 j
0 b& }9 ~: R2 N中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网
7 u9 |- Y C$ Q+ x4 \/ v5 z
6 [. z& q6 N1 p; J网通直接查询,可以得到网通服务器的IP
; ^( i7 G' G( r) G2 [4 S2 e2 }
8 V5 A v2 }7 rSam@Bra:~$ dig shooter.cn ......
: K: Q a% I% J3 F1 S8 t* [9 |;; ANSWER SECTION:0 S$ V0 j* u X. q
shooter.cn. 800 IN A 218.21.130.42 P7 m% x- s+ |. s! K
" r" h. j( N- i* b
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP, k. ]/ V/ H0 f1 s1 ]+ z
y! B! |' [' y/ i5 `Sam@Bra:~$ dig @208.67.222.222 shooter.cn ......' g l; T* p5 R9 t: y7 {
;; ANSWER SECTION:# s" r) k$ C. ~8 p, Y$ H# o
shooter.cn. 750 IN A 74.207.252.170
: w" ?9 \! m# A/ L" Z F0 n+ @& ~% h3 N% l
这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。1 G; N" w9 l5 ^. j
$ i$ P) R7 D* O, M3 t国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |