1.大家最关注的,翻墙,防止DNS被劫持。: N c X. M' W$ U. h, U. P3 Q, j
资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果3 x& s: Y' N! b" q- [$ Y0 d1 ~
正常请求一个被劫持的域名,当然是劫持没商量了 e/ z. `3 G5 t( V' T: w8 `
. m1 |6 B1 a+ E6 a
Sam@Bra:~$ dig hen.bao.li
8 C0 }6 K( I6 q0 s9 P- Z" P; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li- }6 ?9 ~9 z: K1 m
;; global options: +cmd
. z2 a( m2 D V% I X;; Got answer:
5 j" }7 M9 B+ t;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
3 c8 C! ^& z) O# }( K;; flags: qr rd ra
7 Q! s8 B y$ t; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
5 `9 R7 A& t" V5 `2 |7 c;; QUESTION SECTION: ;hen.bao.li. IN A
3 D/ ^& q! S1 t u3 M/ M;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15
" W9 I5 f# x- k8 J$ s' t8 s" r;; Query time: 0 msec
- d$ k8 U! Z+ [- R;; SERVER: 127.0.0.1#53(127.0.0.1)
5 I) J& ~1 D. o9 N;; WHEN: Mon Dec 7 23:18:48 2009
: k1 x' }3 D6 A z; v& p1 S;; MSG SIZE rcvd: 44% K1 t m, R/ k: b5 Y& S8 E
8 N2 h5 @2 _% G2 N4 W. Z" s" f8 k
Sam@Bra:~$ dig hen.bao.li
1 i& O, `1 t6 j8 M' x; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
" G l0 V* u# c4 \2 d/ [* d. s;; global options: +cmd
5 ^- Z( d+ D, I- _; g1 c4 q$ }& ^;; Got answer:
1 h- d* K$ c* k% ^$ X;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859/ g( @' w7 ?0 Y
;; flags: qr rd ra
+ Q8 c u6 `/ J# e2 l; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
! e6 E$ a& i; J6 v& ?;; QUESTION SECTION:
, e9 y* g$ Q( U;hen.bao.li. IN A' o5 H+ R& v5 o; |+ L9 ~+ Z
;; ANSWER SECTION:! }# Z$ d( c: i- y/ B u
hen.bao.li. 85697 IN A 78.16.49.154 Q9 D h+ l4 m+ L) Y
;; Query time: 0 msec. E9 _& ~" Y0 f/ V4 ?
;; SERVER: 127.0.0.1#53(127.0.0.1)) f w4 f8 \2 ~! S& e
;; WHEN: Mon Dec 7 23:18:48 20099 ]+ x) l" B, ~2 P+ J1 ^$ w* I
;; MSG SIZE rcvd: 44" u" Y/ ~4 E0 j) [6 G/ B! f0 X% y- Y
7 p l0 ]* X& w# H M- `4 c4 y然后再看用了Google Public DNS后,照样劫持你没商量
1 Y9 S( e+ h/ y. b0 x
2 G( x6 ]) k1 }5 VSam@Bra:~$ dig @8.8.8.8 hen.bao.li
% ]6 U1 J' [! M6 H+ w4 W L; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li
, a0 T6 y u$ ~0 {8 }7 C. W; (1 server found)% N, y0 u b% M/ y. x: O) K. w
;; global options: +cmd
2 m4 j+ [5 ?! @9 F6 E;; Got answer:/ g' [8 A; J. n
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485
$ o) h+ }( i$ r5 s% ~;; flags: qr aa rd ra# i( R3 K. ^ g1 T
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
# _6 c; i; `% v8 V$ O;; QUESTION SECTION: ;hen.bao.li. IN A/ @% T! i% u; ]; l" ~
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15/ `+ U |# W# H5 a. k( A
;; Query time: 75 msec+ W1 M }2 U7 s
;; SERVER: 8.8.8.8#53(8.8.8.8)
9 i9 H8 N* E9 ]/ N;; WHEN: Mon Dec 7 23:20:58 2009
' s6 ^' d& x7 o: n: I9 f8 b* b;; MSG SIZE rcvd: 54
/ q1 z5 E) Q* y: ] f! J& C0 W U- L; P$ ^6 j
我们看看国外机器得出的真实结果% }) |; V! \* N
, b$ A8 w; Q! x0 ]6 p# S A' v
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li" |" ~: |; ]2 _, E
; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li
) G1 J; j# g. y" n* S/ y; (1 server found)
: t) h" G/ d) J# X- |;; global options: printcmd- ?5 I* s. p$ [/ z- y) B* w
;; Got answer:
0 B, c, F3 H. i0 X# b;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845. L. E6 k2 @5 ?" L; E' B
;; flags: qr rd ra M# W+ P0 {, c* M; }! ?
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 02 E& E5 p& R `9 i
;; QUESTION SECTION: ;hen.bao.li. IN A
5 i( O1 M4 X8 p8 I;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.448 K: c( `+ P, }1 X/ ^
;; Query time: 252 msec
, E$ u4 F7 ^0 d;; SERVER: 8.8.8.8#53(8.8.8.8)
$ m, Q2 Z& J! R2 A6 F, H: ?;; WHEN: Mon Dec 7 23:25:12 2009
' q# v {$ S/ Y4 Y% D$ D7 I;; MSG SIZE rcvd: 44
1 U4 U4 y4 m9 `) H8 u- v: j' \ K+ S& X( c2 b& x
可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。: z8 K0 a$ p7 j' r
! r$ x/ Y6 v# w' U3 F3 d0 x
2.解析速度快& v, G" E7 ^$ k0 h8 s! D
, g2 ~& @, @5 XGoogle Public DNS解析速度是挺快的,但OpenDNS就未必了
' N) Q3 E- k) ^8 u" o4 R/ J/ w, [. D+ h, y' D8 M& p
Sam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com- ?* f" \0 Y' q# Q/ }" f
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com
5 g; r H6 E. o# S# E# z; (1 server found)
6 K( k& O5 l# M/ a) s! M;; global options: +cmd- E4 F6 w! w' D+ H$ Z0 q
;; Got answer:+ g5 ], P8 E: f; n F* x
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404* p5 a3 P/ o9 J. @! D0 h
;; flags: qr rd ra" g- K0 h: p9 o/ j& ]& b: [# u
; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
4 X& n! U+ U% M0 W9 K0 V;; QUESTION SECTION: ;www.dnspod.com. IN A
8 X3 ?& l2 a6 d; T;; 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
- X# F; D y( I5 l;; Query time: 608 msec
2 E1 p4 D* Z# f- n# {1 O;; SERVER: 208.67.222.222#53(208.67.222.222)
/ i# b3 \' T0 b8 g; g9 S# _; [;; WHEN: Mon Dec 7 23:29:01 2009+ G& v! h# \9 j% `7 z: t" F3 Y. q
;; MSG SIZE rcvd: 101
: s% g) h' g& w' G( q6 D) p+ i
3.最重要的问题,访问网站真的快吗?% l8 `1 `& i K, A# t- y
0 r) K/ S7 I8 P, k
相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。( P7 O1 p( W5 w* i. m0 P* l3 m
; |# K# l3 d. f' U- u大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。6 W) A' h; w- Q# i. |
, k/ m A! i5 v
网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
! K3 `, i/ j1 T `3 [! R0 }
5 l- `1 }( }7 J& c0 C& L8 Z0 j! ~智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。
1 }6 H3 y I/ r% j. D! `; n& p6 ^; ?. R$ i& \
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。- P) b, X; U- j7 @1 V1 q
1 C& I0 f9 B% _, c4 n
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。! X% f' h1 k4 w1 \7 ^& I- L
. I3 l! B- x, f+ i, R. m
返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。! B5 |3 L9 w( _- y1 J( q. v1 X8 j
6 K. N/ e$ o% F Q
本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。# P5 H3 X6 w( g% x
" ?7 t+ T0 k9 H8 ]0 F; S( m. u! c
拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
/ A4 a3 {. ^- \0 Y- w
+ S' m$ M% k j% oSam@Bra:~$ dig http://www.google.com1 j4 i) [7 ~; m. A/ K' s& N; ]0 J0 r
......, a6 y* n6 p! }9 C/ a8 K. e
;; ANSWER SECTION:% g8 R! N$ v3 N" }
http://www.google.com. 48102 IN CNAME http://www.l.google.com. B0 J: t1 l: e7 Z& n3 b ?
http://www.l.google.com. 300 IN A 216.239.61.104
+ N2 F' e1 i9 o% \4 U, I/ C6 l6 [; t& ~, Z
如果我用了OpenDNS的话,那么我得到下面的结果
: N" Z: w) x4 `8 p J# v& T2 T9 M0 U/ K$ \ K
Sam@Bra:~$ dig @208.67.222.222 http://www.google.com2 x2 e' Z5 d7 t/ [) z6 Z
......5 u! {% K8 f" l1 Y( C! n/ r- B0 g
;; ANSWER SECTION:% P) k5 s1 P+ J8 ?( {; ~. [' p
http://www.google.com. 30 IN CNAME google.navigation.opendns.com.
3 J: U4 a* G* |- m' K1 V9 I u9 bgoogle.navigation.opendns.com. 30 IN A 208.67.219.2309 d! d7 F9 e9 V4 e+ \5 Z; c D! ]# I/ F
google.navigation.opendns.com. 30 IN A 208.67.219.231
W7 Z" U; Z! ?0 F9 i* ]. i2 i. q2 D' w. X5 K! h
ping一下得出的IP地址,看看速度,其实并不快! r/ Z& V9 O; C" u3 U8 k9 o
( [6 j8 {! p/ ?: u. F4 l3 `Sam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
# t1 j$ L$ W z0 W4 ^64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms
( [# o+ @* o) _% _64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
8 K1 k2 Z; u- M2 ?+ \" p) ?64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms
0 N1 v" U7 B8 n9 C. J( W^C% t" ^$ e8 }. G+ e4 }/ }
--- 208.67.219.230 ping statistics ---6 N2 |- o5 r/ `. ~2 ~1 l" Y( f
3 packets transmitted, 3 packets received, 0.0% packet loss
: H( z* D' Z- }/ ^round-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms6 I! h' u& x# O U
7 `$ H8 F- e# V* {3 K. B5 R. H1 N( C
我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
H. Z4 u; [4 _9 Z! D6 h
% P4 x2 s+ X0 U, K7 M n我网通DNS直接解析
5 @: { t: A/ d
) G/ i% _" T' x+ p& qSam@Bra:~$ dig kaixin001.com8 M& e7 H, B& l, I' A' x$ p% ~
......
/ N* x0 \& ?& p$ R, k, Z! K;; ANSWER SECTION:1 C6 a c! q" v( _2 c! W
kaixin001.com. 120 IN A 220.181.100.31 |( a' m; Q; y- j
kaixin001.com. 120 IN A 220.181.100.32
% d9 P- j5 g% B7 {& ]kaixin001.com. 120 IN A 220.181.100.33$ D. S; N( @) h% `1 P, H4 @$ c
kaixin001.com. 120 IN A 220.181.100.34" j- [4 A3 q6 m/ ]
kaixin001.com. 120 IN A 220.181.100.35
+ h6 U+ y' a; G& Y& J: w6 N8 Gkaixin001.com. 120 IN A 220.181.100.30
% t- i5 u! K! ]- H3 M3 L& f
/ R' o) A: @8 o/ S+ Y b如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP
0 L; I8 l& O6 r, A+ G/ z: A% f9 u0 `: S6 W7 L% q3 N) w: H% x# U3 D
Sam@Bra:~$ dig @208.67.222.222 kaixin001.com ......
. K2 ]- z+ X# p;; ANSWER SECTION:" Q* A! c& |( h5 t1 s4 Z5 z
kaixin001.com. 60 IN A 123.125.58.247
1 J k% I! g( H7 e5 _kaixin001.com. 60 IN A 123.125.56.246- x* u+ E- I- Z; X( J
kaixin001.com. 60 IN A 123.125.56.247
' ]- y0 V9 J8 j& [6 ekaixin001.com. 60 IN A 123.125.56.2454 d! F/ s; h& l
kaixin001.com. 60 IN A 123.125.56.248
# y3 r& |! b+ w% m! D- m8 N5 ~kaixin001.com. 60 IN A 123.125.59.20$ B8 l9 o: [! G! d Z8 t
kaixin001.com. 60 IN A 123.125.59.16
2 g4 v7 d3 ^+ I& j+ E4 ?kaixin001.com. 60 IN A 123.125.58.2482 D" x$ |1 I! E. F
kaixin001.com. 60 IN A 123.125.58.246" q' R5 H# w: b9 V% s$ D
kaixin001.com. 60 IN A 123.125.58.245
0 y# m% V* I# ~9 w7 \( S! E: R# \7 J: e6 y! B
中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网* }+ j1 G7 B" Q: L) e7 D5 z% i
& d- C$ `' R" L+ l; f7 _& _
网通直接查询,可以得到网通服务器的IP
2 b; R. y+ P! y+ q5 A. f' |; G. k3 m3 E% H) O
Sam@Bra:~$ dig shooter.cn ......: j) {/ B- b6 A7 R$ a; x8 S1 p
;; ANSWER SECTION:
4 {0 Z$ V: R" V& g6 k: B' Ashooter.cn. 800 IN A 218.21.130.42; f e" u3 B" M
+ g3 y; \7 C& \
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP& p7 O2 R+ k) ?. C* M
7 I# i+ w2 X: W+ y" E0 }5 qSam@Bra:~$ dig @208.67.222.222 shooter.cn ......
r; H5 h9 T- n8 z% n;; ANSWER SECTION:2 _( _+ f: S& z5 i
shooter.cn. 750 IN A 74.207.252.1702 w7 v1 h8 \# b$ R( ~" g+ H- q
7 U/ E/ P% M" Q/ J: q
这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。3 e+ {/ P; i( H* W }; v) C
: K, k- z1 d* X# d- f! d
国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |