1.大家最关注的,翻墙,防止DNS被劫持。- }7 W5 O2 A) a g/ G4 W+ k
资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果
' q% L2 t* ]; E) e# ]$ {/ M b正常请求一个被劫持的域名,当然是劫持没商量了2 V0 ^- `2 c8 w3 k- f0 |
0 Q8 Z" D! m, B! v! F
Sam@Bra:~$ dig hen.bao.li
7 ]" z5 z- y! ~! L) ?( Q; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
; `9 M# a7 x: N: [9 J;; global options: +cmd
9 O2 ~! c8 d" l2 L4 l, X;; Got answer:
0 ]9 X2 l, P8 U7 R: `;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
$ d" B r& K$ S) u5 c+ r& A! K;; flags: qr rd ra
% _6 u' e$ S" j' y; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
( g. Z- |. X; };; QUESTION SECTION: ;hen.bao.li. IN A
- b3 A. Z0 K! ?4 L1 F9 q) e# ~5 a;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15
0 n1 J7 f0 R7 |;; Query time: 0 msec) h! f, J! k& o+ j5 t
;; SERVER: 127.0.0.1#53(127.0.0.1)- I2 p2 g) _9 Y2 Q4 W" T" l
;; WHEN: Mon Dec 7 23:18:48 2009( u9 }# {, E1 m9 p0 M6 E' E9 o
;; MSG SIZE rcvd: 44
8 {" O# }: T* s( i! C! @9 k: P- p! V Q: R7 x7 L3 V) @& h% P6 V
Sam@Bra:~$ dig hen.bao.li( \- W' L' c6 Y
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
. t& U3 {2 W( ~7 K7 R6 o2 c, |% B;; global options: +cmd* n( ?2 }# U2 b" @, h2 O
;; Got answer:: X! K" w" h4 K3 y1 H, y
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
, ?* L. A5 x3 K;; flags: qr rd ra
3 b, Y3 O) D( [+ }% J2 _; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
5 t/ s6 ?$ Z2 N2 L# P/ d ~;; QUESTION SECTION:
: A, p5 Y' K. v4 U( X;hen.bao.li. IN A$ ` q5 L, u J+ ]; A
;; ANSWER SECTION:6 `% f, Y7 _- o4 S n3 D9 u: P
hen.bao.li. 85697 IN A 78.16.49.15
( i# }6 W+ t( S( p$ F;; Query time: 0 msec" l1 B$ V8 q3 I% R8 _/ N
;; SERVER: 127.0.0.1#53(127.0.0.1); w6 S3 v, G" f, c, `
;; WHEN: Mon Dec 7 23:18:48 20095 P' I$ l, U1 K- t4 J' z4 }
;; MSG SIZE rcvd: 44$ X7 d5 [$ V) R; C s( x) g9 S
/ p1 H. Y6 }3 U Q6 X E5 `
然后再看用了Google Public DNS后,照样劫持你没商量
- p% ^$ ?; J( b$ {' H! U
. S, R( u0 r" K& T( M8 ?, D) gSam@Bra:~$ dig @8.8.8.8 hen.bao.li( c- _/ p5 j; J- Z7 T' ~$ w
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li5 ]. R6 V. U- j% J- ^3 c5 `
; (1 server found)' P/ E% k) _8 M8 W, ^$ v: ~, p
;; global options: +cmd
# e) i" a% y' I: `& G$ z;; Got answer:
: Q |2 `: _+ q! T6 R; Y6 q7 \/ B;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485# T6 C7 w& T. T
;; flags: qr aa rd ra' ~9 @( b7 O! F# d% z" }# o0 u
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0& i$ S( n" Z- J) y
;; QUESTION SECTION: ;hen.bao.li. IN A8 A5 U0 F( {- c$ N' V; k9 {; v5 v
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.159 ?# p R$ V* R* \
;; Query time: 75 msec
' S' D# n; N {+ O3 c' o, z;; SERVER: 8.8.8.8#53(8.8.8.8)+ v9 s l! Q2 R5 v
;; WHEN: Mon Dec 7 23:20:58 20099 z p) g: }; L8 Y$ t
;; MSG SIZE rcvd: 54% U( Q I& v8 G; @7 e$ }7 ~
2 `/ j8 [3 w# W8 q6 H, e
我们看看国外机器得出的真实结果( ?5 F) _9 j8 ]( N; }
x0 E. _. K$ `1 Q
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li
5 S: O- l0 Y' J5 ~9 {3 @8 i; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li
) z1 ^6 M9 m9 b" K A, t; (1 server found)4 j: q. S9 m- p* b
;; global options: printcmd+ g/ W9 B3 J' @+ K/ h
;; Got answer:
# N/ ~ d' T7 l9 I- E/ y7 r6 ~;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845+ M1 T/ h# v \) E8 J/ ^
;; flags: qr rd ra
8 k/ }+ ]$ n* G- c; V; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0/ R0 O( x/ M* J. S( K
;; QUESTION SECTION: ;hen.bao.li. IN A
' g7 \& ]! }: V$ E) c) m;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44/ Y+ N* ]' G* Z$ Q# G) A2 N* j p+ A
;; Query time: 252 msec3 E+ _" m; H+ p. b* [6 o* c0 J( V
;; SERVER: 8.8.8.8#53(8.8.8.8)
' L8 ~! M2 F- B7 h) D4 B; ^* u;; WHEN: Mon Dec 7 23:25:12 20093 {- Q- R! J! ~1 M7 J7 K7 C& f
;; MSG SIZE rcvd: 44- }! e$ W6 i9 l/ u+ j9 @# j B6 C! d
9 I8 k' Z: h0 n( B. Q1 u' F
可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。
! T8 K" k [$ V! l+ N! f5 h3 i
; O& f. j9 {4 Q( w7 H; ]2.解析速度快: M: U: f! W/ o( R# {; ]. n) v+ P
- j; B. `+ X# e1 z" FGoogle Public DNS解析速度是挺快的,但OpenDNS就未必了
: ~: a+ `. {( ~7 I) v( O% C o: c$ u/ H
Sam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com
, y0 V- E7 J" j( ] m# e3 r3 o; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com
2 B; A: N1 x$ i. e/ O1 X+ ^; (1 server found)
+ O% p, V- k7 @8 _;; global options: +cmd: X% e7 g" i. \6 ^
;; Got answer:
4 e) h" R' W3 F% F( b! |;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404& z" p3 R4 S- v8 J$ }) z3 N2 L% x
;; flags: qr rd ra) @" C# {) |) G
; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
- J5 o7 U5 U9 |$ v; F;; QUESTION SECTION: ;www.dnspod.com. IN A
# l, l. u7 p: X4 \# X0 i% ]4 Z;; 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
2 `0 g D! t) [+ K: A;; Query time: 608 msec6 ^/ Q( r, S, @5 Z6 p2 B
;; SERVER: 208.67.222.222#53(208.67.222.222). c% c7 ?) X0 D1 @' H
;; WHEN: Mon Dec 7 23:29:01 20092 U/ L. i) M; [+ j3 V) F* ^
;; MSG SIZE rcvd: 101
1 w' c3 S3 t9 e+ L# i) u# R) D# M& p. w& I( a& I; p
3.最重要的问题,访问网站真的快吗? P- z4 H% I) F9 [& [, v7 S
6 |- f4 v/ m8 n, k% _相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。0 m' C2 {( W, w( Z/ V
4 d u9 }7 r5 L8 F# k大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
* X1 q5 p: r- d! v8 j7 `
$ \" _ ]' ]& L网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
9 F; @% p7 a4 ^9 C! u8 i9 Z% A. l3 ?3 c8 `
智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。
6 E8 @ ?% m% ^( l
+ Q/ P5 U% N* `# p但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。( d; o6 f w! p5 I3 ~# i5 ?
4 S* V% U+ L, D# |
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。3 \5 B7 r$ b5 Q+ A
2 E1 i: u7 l9 l0 u: i$ t* r
返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。
: |% ~3 r$ r1 [
, f; I8 |' x: \" V本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。
( a8 c* P& f& r/ l8 ~4 x) l
% N" D8 C5 x7 O) Q- \1 O0 F拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果6 d! a( h% c7 a* A3 _8 f' k1 ^* }
8 m) J7 I6 _, I( N+ y
Sam@Bra:~$ dig http://www.google.com6 v' P1 r+ w! n$ R8 O
......" o ~/ @" ~! a; {4 v2 j0 L9 {& I
;; ANSWER SECTION:1 ^( C, `) H. \/ {2 q4 y
http://www.google.com. 48102 IN CNAME http://www.l.google.com.
7 j: C, @5 F0 l( yhttp://www.l.google.com. 300 IN A 216.239.61.104) r1 ^# N3 U* J( J5 d! k9 \
1 ^) b u% n. ^& L6 s5 O如果我用了OpenDNS的话,那么我得到下面的结果' \: k9 l0 m4 p" P- S
, t- h4 h( L) t8 j8 W
Sam@Bra:~$ dig @208.67.222.222 http://www.google.com8 A0 g: ]6 `6 L3 D, }1 d
......
: R1 K$ K9 j! X" d3 @0 H! }5 s;; ANSWER SECTION:
9 ?+ S6 @4 H# Zhttp://www.google.com. 30 IN CNAME google.navigation.opendns.com.
: @0 _/ a- ]: b: q w* rgoogle.navigation.opendns.com. 30 IN A 208.67.219.230
3 C' h$ e" _* W6 z/ F L7 vgoogle.navigation.opendns.com. 30 IN A 208.67.219.231
. Y0 E5 Z' L6 W/ x1 H( m) {9 v) \& {$ _2 T$ v8 B
ping一下得出的IP地址,看看速度,其实并不快4 `: x1 O# r& s" ^0 Q9 m6 A% l& E7 T
% W" G+ ?' j% h3 M: {: xSam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes% _' `* V! I A6 V4 W( ^5 m
64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms% ?" n- x! w. a5 A+ W- H
64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
: U ~/ c4 i! i64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms% ]& X# p; @# o
^C
! C9 ^( i" a- m, v& d$ b" }--- 208.67.219.230 ping statistics ---
q' U R0 m1 k5 q$ y o% F3 packets transmitted, 3 packets received, 0.0% packet loss8 Y! n; h5 f: l- {
round-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
3 u7 N; P. |! o% w% w
' L. h7 t) U: d我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
( s" D$ _9 V3 b# t' D9 b! n- ?& M
$ B% i4 M& P, ~我网通DNS直接解析
f/ G" V8 V5 P3 Z# N: ^) @8 ?2 I1 s v) i: W) L
Sam@Bra:~$ dig kaixin001.com+ c' t4 a' U7 ~9 x* W
......- C5 ~8 Q1 P' I( a: b
;; ANSWER SECTION:
' f# B# J/ o% u# O% c. f3 n N2 |kaixin001.com. 120 IN A 220.181.100.31( K. V) { t" j7 Z, g5 ]: s
kaixin001.com. 120 IN A 220.181.100.32 B |+ a. V: i7 \2 x8 L. G
kaixin001.com. 120 IN A 220.181.100.332 O; n; Y0 j- b8 U' \
kaixin001.com. 120 IN A 220.181.100.34
/ v0 f2 P, U, X$ w, B. k: Bkaixin001.com. 120 IN A 220.181.100.35
1 F" q, c/ b2 I& K4 [) G; s) M% e7 Okaixin001.com. 120 IN A 220.181.100.30
. f8 M5 F5 o6 O$ M2 g& v0 m; I0 j9 z& _6 x4 ]! j- {' f
如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP
0 ?" O2 @8 \/ Q) ~- t8 b
' U* ~. v; a, a/ m; n7 R/ z# lSam@Bra:~$ dig @208.67.222.222 kaixin001.com ....../ O& u A g" U& K' S/ h3 z1 |
;; ANSWER SECTION:
' d; R5 u* }2 v5 N) P9 ]1 J! Q% vkaixin001.com. 60 IN A 123.125.58.2479 t. i& \; f2 l8 _# D: }
kaixin001.com. 60 IN A 123.125.56.246& v' q- |3 Y% e' ~0 l% R& F
kaixin001.com. 60 IN A 123.125.56.247
- M& G- [ O/ Z2 h$ W+ R2 ?kaixin001.com. 60 IN A 123.125.56.245& m- |/ Q! R+ C* G' t( J
kaixin001.com. 60 IN A 123.125.56.248
: S" y3 g3 e" \% Ukaixin001.com. 60 IN A 123.125.59.20
5 D7 y) }, d2 T3 I+ w0 L% C$ k6 Skaixin001.com. 60 IN A 123.125.59.16
' }* g- q; n8 \" Okaixin001.com. 60 IN A 123.125.58.248: J- n" t9 |* E
kaixin001.com. 60 IN A 123.125.58.246
& g/ c0 i1 a1 ^; \6 [kaixin001.com. 60 IN A 123.125.58.245
0 o4 L2 f4 V s5 H" @! \
% L& z3 I* [& x% M3 |中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网& k$ ^: Q5 K$ X% W6 X
5 Q. [8 ^2 O! o }. @6 K# z网通直接查询,可以得到网通服务器的IP2 L! n4 f7 a! I& o f/ C% b: s
' e C" c* h/ d
Sam@Bra:~$ dig shooter.cn ......- |: |1 }" a) d3 A% ~3 f. U
;; ANSWER SECTION:
' Q7 n, ^! q& @shooter.cn. 800 IN A 218.21.130.42, c$ ^/ Q0 ^ J" O2 `+ K0 |
0 _ ?+ R2 Z" h6 h: v4 V& U# |5 ]( H
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP
& W/ E2 L' V: q# T$ g3 s0 _' X% l" q% n9 m
Sam@Bra:~$ dig @208.67.222.222 shooter.cn ......
; ]8 Z; B& T& m9 g9 g8 \% F8 T;; ANSWER SECTION:
8 {; x r! _; e) Hshooter.cn. 750 IN A 74.207.252.170! W9 F3 S: s1 k: }5 L! g" s
3 ]2 L$ _9 q2 E& Z/ L这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。1 X4 d. E# L* h/ j9 E; P
+ G [4 ~3 F2 Z8 n5 E国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |