1.大家最关注的,翻墙,防止DNS被劫持。' a5 c# @+ j7 c
资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果' V6 O7 B/ n4 V- E3 `! T- D/ N9 b& u
正常请求一个被劫持的域名,当然是劫持没商量了7 c. z% x# `. v( Q: S0 u4 l
& G# c0 f4 R) m( {Sam@Bra:~$ dig hen.bao.li5 M7 G( w0 }; ~
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li' p$ D; _# @( T4 }/ u# s! p. n& ]
;; global options: +cmd
5 P3 L8 x5 E ~* X7 l;; Got answer:
' }" b% x/ A: c; J3 I;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
4 j& q# f) P: D7 B! i; R" I& K;; flags: qr rd ra& a6 E# k; Q2 R9 ?9 r9 t+ Q
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0% M% P- f: m8 R2 T' [) R
;; QUESTION SECTION: ;hen.bao.li. IN A# o* l: ^; {! R) g, l, c
;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15: }6 T# \( p' O9 A& E; I
;; Query time: 0 msec
4 {) \- P3 d0 C: W2 G7 u) w;; SERVER: 127.0.0.1#53(127.0.0.1)
" e9 w. [* I3 V" i1 I2 r V3 C;; WHEN: Mon Dec 7 23:18:48 2009
' m7 Z6 i8 s/ N8 I;; MSG SIZE rcvd: 44
: S; ~* C& w4 u5 X2 `$ K2 ]) {: f9 _
Sam@Bra:~$ dig hen.bao.li5 P9 Y# t5 _% y5 x
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
, p6 e) n0 N) f% t5 ]6 W;; global options: +cmd* ]$ ?) U8 G5 P, f+ |5 `
;; Got answer:, _0 M$ w0 Z# {% ^
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
& G H. w& ]+ w% ?, B3 T# l( h8 t;; flags: qr rd ra) }" {) n" f% M& G- R. Z8 r r
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0- v0 h8 H9 u$ k; _" T& z5 t
;; QUESTION SECTION:0 `( w7 ]1 g1 z
;hen.bao.li. IN A
1 Z- b1 u# F: U# o k8 T3 O;; ANSWER SECTION:
( B8 n5 r! P* e4 z/ o0 X) Vhen.bao.li. 85697 IN A 78.16.49.15$ y* g: d1 K" g/ |
;; Query time: 0 msec
6 R1 i* M- s) M& w; `;; SERVER: 127.0.0.1#53(127.0.0.1)
- n7 A+ v7 g' R2 X+ T;; WHEN: Mon Dec 7 23:18:48 2009
- {" T: C& j4 \9 X;; MSG SIZE rcvd: 44
7 F! k$ z$ t" x3 \( {" z) \' H/ J; D
然后再看用了Google Public DNS后,照样劫持你没商量
8 u3 W1 D, @* ^: V3 M( J
0 F' Y/ ~2 W% X1 X6 ?; X/ l( nSam@Bra:~$ dig @8.8.8.8 hen.bao.li9 c5 w9 v4 X% U3 P4 u
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li, j, I. f+ L- m* q
; (1 server found)9 u, n7 M. P0 K6 ^+ Q4 _( y
;; global options: +cmd
' b8 m0 e. C* t. p. d7 t;; Got answer:
6 @" e( c" @& r/ F( x4 @* G;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485
0 m. M; |# |- e% n% v;; flags: qr aa rd ra( m9 v4 V* ^4 F, C% A- I
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0. T7 i! u k6 E S0 u- Y- e9 ?
;; QUESTION SECTION: ;hen.bao.li. IN A* M o$ A2 E0 }5 J
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15
1 Z- w2 J5 r9 `;; Query time: 75 msec
$ ?. p! j' y& Z- m' };; SERVER: 8.8.8.8#53(8.8.8.8)
! {. a3 H/ Z* D; {;; WHEN: Mon Dec 7 23:20:58 20096 H9 h2 J6 H6 G( [' h; |" f
;; MSG SIZE rcvd: 54
9 ]9 [# C' c; T7 P* y; g# b$ o1 U6 f5 r- d
我们看看国外机器得出的真实结果
/ b+ p6 s' J! P( l! W9 e7 z2 j. e/ M2 x$ L4 f
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li9 @8 w3 t7 m- ^
; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li3 C5 Z0 @5 G: Z; j6 _# ?
; (1 server found), m' k! @8 J7 M& g3 X# n- r. j
;; global options: printcmd
! o, n/ I- p7 U5 |0 y7 o. I& m;; Got answer:& }4 r4 n# \9 h ^; _. J! e' R# q4 R
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845 M, g( T* L$ V1 [. v# K9 w0 E
;; flags: qr rd ra% V! w1 B/ h3 P3 u" }, o
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
$ B3 N4 U' f% O6 h2 R9 M4 Z K;; QUESTION SECTION: ;hen.bao.li. IN A- T6 I& D8 n8 [; H7 m
;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44 Q9 l$ L+ X9 y8 { R
;; Query time: 252 msec
7 ]. I! D4 Y% J! a( u- \;; SERVER: 8.8.8.8#53(8.8.8.8)
1 N2 n( G' A' c/ b! s; E, y8 v;; WHEN: Mon Dec 7 23:25:12 2009
- `$ g) ^+ ?! f3 X8 p;; MSG SIZE rcvd: 44
5 y, Z# \$ x2 m8 o: e4 g/ D) c% i# L/ H4 P) C
可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。 N0 Z- E/ S' z" \
/ ~9 N9 t' c6 f2.解析速度快& k V( t# [* H- a& }- d# R
2 z% k/ D$ W1 s0 l: p \1 aGoogle Public DNS解析速度是挺快的,但OpenDNS就未必了
4 _. Q2 Q2 x% I y- m3 t" H& {& F+ g+ U# X/ n
Sam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com
& v# a! G1 i5 `" p) A1 @; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com, H3 }4 `; `) ^5 `$ _; u$ K
; (1 server found)' f* v2 ~0 v. Q" J
;; global options: +cmd' R. w, b3 }* w1 C& f
;; Got answer:
' l3 e, {) U! h; I& R1 u. V* m;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404
: J/ i* x6 P, {; b# t. G2 L;; flags: qr rd ra
. |( H( m7 h0 ~7 V& v; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 07 a! n% m( y, v1 k8 \, r7 e( q
;; QUESTION SECTION: ;www.dnspod.com. IN A$ R2 B# E7 ?8 T% {0 K; z+ i2 z c' m
;; 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
5 N8 X' U: e0 \2 F3 A* {;; Query time: 608 msec7 ^" y7 a1 p' W9 c
;; SERVER: 208.67.222.222#53(208.67.222.222)4 ~0 N& v4 x6 `8 P: g. R3 ]
;; WHEN: Mon Dec 7 23:29:01 2009
" Q( H6 L$ g" V* n) \7 d;; MSG SIZE rcvd: 101
; A$ o, d, L$ T7 o; ?5 m( |2 j: G2 m0 J9 f. }8 H
3.最重要的问题,访问网站真的快吗?( N; y9 ?' S7 m; N: s1 [- v l- T8 O
0 o1 P% }! C8 v9 {5 }5 Q/ `
相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。2 V# G) E& N! X1 b
/ S, T8 ~) Y* s. f$ U
大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
4 r+ W4 N+ n% z: O* \
4 }+ _' t' o; F网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
) I3 H$ j, \! `+ ~: s) y" U0 z
- ?1 G8 H- f- ]! Q% S, W% f智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。
% w8 k5 x8 J* G/ j' N+ ~/ A- [: y/ b
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
# K7 g |0 v! N, f: @$ y6 [4 W, e( c& P
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。0 X& L3 n, _7 m3 I
) ?6 Z( M/ ?3 w) ~3 s返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。6 z" A: u" h2 g9 `6 C8 x
) s. W2 E+ y4 V4 o; b& Q0 K; [
本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。8 q0 A3 @ m5 X3 m1 H/ N
* V! C4 S% @0 h2 D" e# h# j拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果2 [3 B1 g" g& n+ E2 H$ N# w% m( \
( z G! @3 C/ t# `# T8 \Sam@Bra:~$ dig http://www.google.com
8 i3 F ~0 t, J# |......! }7 B6 \9 S# O' K9 W) a& V& o$ Q
;; ANSWER SECTION:$ g. |) u+ E2 b. U. T e c+ e% w# i: P
http://www.google.com. 48102 IN CNAME http://www.l.google.com.
) S+ o4 s5 ?7 ?: @9 g! s8 Z$ r! q/ Jhttp://www.l.google.com. 300 IN A 216.239.61.104
: [2 [* h: X. F" o& x
; A8 t; X P. l, @- v! J/ g9 U如果我用了OpenDNS的话,那么我得到下面的结果' v; g9 V- o' R2 D
& s. _3 \& C& {/ ?/ `1 e
Sam@Bra:~$ dig @208.67.222.222 http://www.google.com, {# w" e2 V0 ~! a
......; B8 E2 W. N! z( M
;; ANSWER SECTION:
! Z& D0 r0 I% Z" E a" Uhttp://www.google.com. 30 IN CNAME google.navigation.opendns.com.: n6 y( ^$ l) v/ `- w. q
google.navigation.opendns.com. 30 IN A 208.67.219.230
3 G7 ]5 V" R% R0 Q6 @google.navigation.opendns.com. 30 IN A 208.67.219.231
% q( @- i: I% C
: X" k+ a: B( Q2 ^ping一下得出的IP地址,看看速度,其实并不快8 \, H4 S+ S3 `& V; F, O
& Q7 N. e& | G& U4 J: |, GSam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes) Q9 w) t- R$ d, C2 {; t
64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms
: J" j1 b" x- _, [3 R9 M. L64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
* w' I5 B( A. A' ~3 O64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms5 i& L8 a+ U, s0 ? {$ w3 X
^C0 c/ b" w4 L5 D1 e2 o9 a8 r- ?
--- 208.67.219.230 ping statistics ---
. P3 [; @- K- i) \! `3 packets transmitted, 3 packets received, 0.0% packet loss) O1 m `# [4 T# Z9 V
round-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms- Z& R" x- v( D2 T: \: \, b2 i
( D9 j1 l3 z* I5 i2 O7 S; Q+ C
我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
9 D1 R; x' y4 G
0 r. o( C6 \+ m0 w( k; j我网通DNS直接解析
: }/ a+ t' u5 g! Z# _5 z9 f
+ D0 L1 ^1 H6 w( ?! H' d; R1 JSam@Bra:~$ dig kaixin001.com
0 e" @' u" U3 C* N, x9 V......8 h# f6 ?* Q# p1 f7 B! O& p9 F: h
;; ANSWER SECTION:
' F1 K7 L" I: g R1 Qkaixin001.com. 120 IN A 220.181.100.31 P5 N' P% @& t( {9 {
kaixin001.com. 120 IN A 220.181.100.32
8 l: x" a+ ^' A0 K8 \kaixin001.com. 120 IN A 220.181.100.33
0 P- p3 _. j# ?" B: U! ?2 ~kaixin001.com. 120 IN A 220.181.100.34( c9 ^: b0 C7 \% X* m1 T" B
kaixin001.com. 120 IN A 220.181.100.35 z6 C8 O, P' G6 c2 F. ?( }
kaixin001.com. 120 IN A 220.181.100.30
! r$ k. K; K- [: c% R# B4 g# a" ~8 r
3 L4 X) T% Z( q4 g7 C M如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP9 n4 M' x& X' o* s5 |+ N$ h$ j
7 C/ l5 H( s; D" C# q2 H$ {
Sam@Bra:~$ dig @208.67.222.222 kaixin001.com ......; a, H8 F' T8 L! u# H
;; ANSWER SECTION:: `6 c. y$ H7 d. J+ I. P
kaixin001.com. 60 IN A 123.125.58.247/ p- R2 i9 e5 ~
kaixin001.com. 60 IN A 123.125.56.246
. b; V* X: z1 w" u7 qkaixin001.com. 60 IN A 123.125.56.2475 F# k. a- b, i8 x
kaixin001.com. 60 IN A 123.125.56.245
3 H2 I, G6 p: i6 |4 Ckaixin001.com. 60 IN A 123.125.56.248& M% W$ j" I% @ G
kaixin001.com. 60 IN A 123.125.59.20/ x; z. E* b) K# S
kaixin001.com. 60 IN A 123.125.59.163 g# I' W# d. h2 t& A( C0 h
kaixin001.com. 60 IN A 123.125.58.248
! E) H+ b, q ~# v, d6 B" o; U0 bkaixin001.com. 60 IN A 123.125.58.246
8 k2 L# }( L( Z- Pkaixin001.com. 60 IN A 123.125.58.245% }9 P4 e8 A" A$ C. }5 X
, U8 _. O# [# y7 Z
中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网
, B( U7 d& i% @- `, ]2 J" X' f" c8 \; T: T- g" d3 w' G0 \/ Q& u
网通直接查询,可以得到网通服务器的IP* v0 |$ h O, {* F. Y, `
' c2 C6 J+ w) [2 x% a R2 p* N- g
Sam@Bra:~$ dig shooter.cn ......
- G4 c- _- Z- H0 s;; ANSWER SECTION:
- H4 X: b) x9 P8 gshooter.cn. 800 IN A 218.21.130.42
~- d. l* W3 b+ P5 y7 ]: r$ _* U" p2 |; f7 s; t2 F. T4 W
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP) @: P; S, \4 ^" o7 \. ^) {5 l- t
& F7 t& J( F) C2 G2 R) i$ y, T, MSam@Bra:~$ dig @208.67.222.222 shooter.cn ......- s# q2 _( t8 ]2 s) t. H1 `! R
;; ANSWER SECTION:$ F8 Q& `- O& q w
shooter.cn. 750 IN A 74.207.252.170
% f9 b- O" f6 Q# ?8 v
8 a& B9 U: I' t这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。
* v6 G0 u+ g6 H7 E$ G
$ O5 f& ], q' O# g- V国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |