1.大家最关注的,翻墙,防止DNS被劫持。
" t9 G% f9 N4 }资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果' F. w1 N& d. S: q1 ?$ T Q' q
正常请求一个被劫持的域名,当然是劫持没商量了
: s+ y D7 a1 Z0 K! M0 _+ d" m6 |; x' y
Sam@Bra:~$ dig hen.bao.li
. w' Z- o9 \; b9 N) ]; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li" w0 \) }0 y$ w2 Q% E% J
;; global options: +cmd3 U, C" b6 ~. Z2 }. Z
;; Got answer:
( |! [2 _$ N3 q) N0 t: O: g;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 508597 @! j1 [$ s: n/ s. d
;; flags: qr rd ra/ \2 X# p% `7 M# h
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
# h5 v1 A4 N* c4 q* f;; QUESTION SECTION: ;hen.bao.li. IN A3 S! c h! P, L* ^9 |- v* O6 {% V
;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15
3 {/ p) w) }% y& s8 e* v7 a;; Query time: 0 msec
4 Y! V5 F/ }. W- Z% M;; SERVER: 127.0.0.1#53(127.0.0.1)
6 \' O. E# U/ H2 K H;; WHEN: Mon Dec 7 23:18:48 20090 a; n; h/ O# c3 D* S1 Y5 |8 r3 E
;; MSG SIZE rcvd: 44/ N1 m& o' d7 l" r+ F% g" m
$ R$ ~8 f$ O w$ m/ A- h1 ^: W: G- VSam@Bra:~$ dig hen.bao.li2 n4 z" j0 ^4 X2 K1 t1 @
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
: C3 I$ y) o- F3 d0 b: m. Z;; global options: +cmd
- K+ \1 m2 a" Q( F+ ~! H$ V;; Got answer:$ H' q8 d- y& }
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
# ]6 F8 i: b. d8 q- g8 \/ w+ A5 y;; flags: qr rd ra
( }( G1 G: A4 w7 h; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 00 i5 l6 c: f8 k5 y+ J
;; QUESTION SECTION:
4 F- s* c! `- p' r;hen.bao.li. IN A3 j; C% j% ?1 s0 [8 I
;; ANSWER SECTION:8 T: h. C& `& D' M+ B6 {
hen.bao.li. 85697 IN A 78.16.49.15
( O9 C2 [& \2 Q. P; p;; Query time: 0 msec
: t- `, H1 r8 `3 n: ~4 J, g1 \8 c;; SERVER: 127.0.0.1#53(127.0.0.1)" G& b& K! A" t& m# V( N2 Y
;; WHEN: Mon Dec 7 23:18:48 20096 i% o9 u6 U# E+ h
;; MSG SIZE rcvd: 44
5 h) I! g- M: n+ r2 s* B
" y$ D1 ~) R/ f. R4 x8 d5 M然后再看用了Google Public DNS后,照样劫持你没商量
) B0 _/ C- B0 e0 E% [, A8 o8 @5 @- C% ^+ o/ n- _
Sam@Bra:~$ dig @8.8.8.8 hen.bao.li
6 F# r7 H9 |' @; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li/ F, G# N! a& U$ ~
; (1 server found)0 K E- |7 L9 {) `3 r
;; global options: +cmd
& W. U- \; x* W7 v3 z;; Got answer:
6 B( l- K2 R* f" W;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15485
! p( l" W: l4 k# P' _$ s: }; q; x;; flags: qr aa rd ra, ~* y% d3 }3 J: }9 t
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
* o/ U8 R! \, }6 p6 X3 s;; QUESTION SECTION: ;hen.bao.li. IN A. u2 h/ E. e `
;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15) c9 e: e) x( T
;; Query time: 75 msec
* G9 e6 h8 g* P;; SERVER: 8.8.8.8#53(8.8.8.8)7 J$ b+ J5 B& |' q
;; WHEN: Mon Dec 7 23:20:58 2009- K- Z, f9 j7 j) z6 G% [% z% A+ q
;; MSG SIZE rcvd: 54; I* q+ Y" Z4 P- T' S0 D; g
% x7 R! _2 X ?& ?; A* T! d我们看看国外机器得出的真实结果
: L9 i* U( M; P; M' G2 d* H' y# T. L( N$ f, p: x3 K% t! T
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li" p/ J% \6 T$ ~8 O' G
; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li
; I9 a E, `' P, X+ d8 Q! ^; (1 server found)5 ?9 w9 @1 ?- A
;; global options: printcmd
9 `; l; x4 g7 Y% o. _, Q;; Got answer:2 Y/ R! x% ~! S( T' ]
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845
0 l+ R+ K( ]6 T' J3 X;; flags: qr rd ra% D2 C% v& E1 i% T5 Y2 p
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
! W, H( X1 y/ };; QUESTION SECTION: ;hen.bao.li. IN A
& ~& P/ M) ]* c9 z7 ]1 X9 w;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44
. S6 T- r1 s; j+ I5 r. i9 `, j;; Query time: 252 msec
' R! w# Z3 H2 ^- s;; SERVER: 8.8.8.8#53(8.8.8.8)
9 k+ C! U2 h' k& ~9 O" c8 P;; WHEN: Mon Dec 7 23:25:12 2009* r- u) F# O7 o. F
;; MSG SIZE rcvd: 44' m: ~) i9 a+ q
5 P- q' X7 g1 Q9 h( `. P可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。
; O$ v4 K5 @( K8 s
9 h3 }. Y% y ~# N2 o2.解析速度快
+ h0 |' z+ Z, @& U/ r. D2 r" S
3 u# z0 Q$ G7 c. AGoogle Public DNS解析速度是挺快的,但OpenDNS就未必了# U8 ?* A& C& R: e
9 V0 y) L9 Q+ H/ x' a- XSam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com
1 K# r+ n1 l* C& r0 u; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com
+ M, V% U z: B% M; (1 server found)
5 ^( M" l; }: b- w4 S( z6 I' [;; global options: +cmd! ]. W& I- i0 v' i
;; Got answer:7 m" X( Z& {( T. C- O) ?, E
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404
! y$ T0 E V/ ^& X;; flags: qr rd ra
0 _* g$ n3 ~; r. \; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
5 j: [, ?5 y) B& K( d! F& q;; QUESTION SECTION: ;www.dnspod.com. IN A
, z+ I" {* k! ]& b9 t$ y;; 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
$ _; v* {" C5 T" x$ _; E) L;; Query time: 608 msec" _* s5 d/ h& j! U
;; SERVER: 208.67.222.222#53(208.67.222.222)' K5 |2 w9 f; o( Z0 G; D
;; WHEN: Mon Dec 7 23:29:01 2009
; G1 Y4 M; B) s+ Y' b- T" W( J3 a;; MSG SIZE rcvd: 101
) k5 ~+ s3 O) E2 P- ?
6 M! ^: |/ L c; G# h3 e6 D3.最重要的问题,访问网站真的快吗?6 v4 T; m4 k. a+ O. {
- w7 X0 |. B# }& c1 u
相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。
1 J1 b: Z) o, g$ u+ Z6 h$ }5 A6 i( m- R
大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
: ]( o6 s5 x) p5 R" O# i- }8 f& Y. R' [1 a4 [. C% a. d
网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
: P7 U& A" D/ W4 F
- H8 @& e. G7 o, t2 S智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。% ^) D }9 X* ~% E. G
0 u) f1 u1 o& O3 i6 B1 b, j7 @但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
1 q' a& P% }' Q U, E
! \) s" v! W) ?+ ^如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。/ L) j, _" b! Q5 }
" W5 d5 u: p! l返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。5 x8 z' ]: l/ ?+ m) x1 e
. E% M! E6 f# l0 o0 @
本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。( l' U) p: c; v# @: Q
0 {% g8 L0 }! i6 [4 R拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
: |( n0 A4 `6 b6 D# B
8 F3 Y) _, m6 h" u& USam@Bra:~$ dig http://www.google.com
' l' k% [( }' u6 z......
6 x* l- n2 e! V0 f" F5 ?2 N;; ANSWER SECTION:
6 j4 G& _7 ~7 m- h, y( S' _# i- ?http://www.google.com. 48102 IN CNAME http://www.l.google.com.
- c' x3 s+ u/ Y" D: z' {http://www.l.google.com. 300 IN A 216.239.61.104
- J" x" V, |" f1 @7 k
. \- W z3 c. L# L如果我用了OpenDNS的话,那么我得到下面的结果! z* L# K6 l5 c5 ]7 a
~( G' x" L3 y
Sam@Bra:~$ dig @208.67.222.222 http://www.google.com
8 o+ G2 q/ g% M......
9 v) s$ G0 i" _: q- o W* n;; ANSWER SECTION:+ S- S% m$ p4 R0 \
http://www.google.com. 30 IN CNAME google.navigation.opendns.com.
1 J: S& ~9 ?. K; J4 u0 rgoogle.navigation.opendns.com. 30 IN A 208.67.219.230
" X- i. U! V7 z5 b( N+ E. \0 h8 ]google.navigation.opendns.com. 30 IN A 208.67.219.231" m8 S# M6 C2 v/ X s* J% S/ ^: v
% G/ g2 b% W# t7 N
ping一下得出的IP地址,看看速度,其实并不快
8 @& F# D, m+ o0 v9 P6 H6 A4 f2 x' A4 g7 c* _8 |
Sam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
" \7 Q# s" ]0 U64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms3 n- m) w: q! @$ C$ a
64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms
1 X' Y/ i s- |5 r- h, F2 o64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms) x; F, k! y( N4 t3 W; s
^C& L6 v- @1 p3 n& U
--- 208.67.219.230 ping statistics ---
R9 y0 |8 x) a( \( K8 W" D3 packets transmitted, 3 packets received, 0.0% packet loss
' [6 C( O$ W5 v) `( Bround-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
7 u/ o- V. ~' r) Z. {
4 Z; L9 L. |0 ]) _# A* q我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
- z3 B$ e O5 [' Q g- y5 b
. s" y' L8 m2 u( ], [0 M/ ?我网通DNS直接解析+ y% K4 I" J( d! a7 q# B: `3 }" B
4 |6 t N9 p0 G; X! P+ rSam@Bra:~$ dig kaixin001.com, p$ @, m3 z b1 i3 L$ g; \, f3 r
......
0 ~7 D3 X) r/ ]8 A& z;; ANSWER SECTION:
, t6 @5 ~# c8 s( S" x+ B. w8 z1 fkaixin001.com. 120 IN A 220.181.100.31 r& t2 D2 K! g
kaixin001.com. 120 IN A 220.181.100.322 M6 c% T1 t" L% w. S
kaixin001.com. 120 IN A 220.181.100.33
; L2 z! ]4 E/ H' ykaixin001.com. 120 IN A 220.181.100.34# [/ [# o$ Y* ~
kaixin001.com. 120 IN A 220.181.100.35
* y ^1 j, T- \8 j3 z; ?+ ^8 w+ ikaixin001.com. 120 IN A 220.181.100.305 u% F# r# e7 {" |& d, a+ j
8 m8 o0 K1 H3 l: x如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP4 Q6 h3 J6 W( V- w
* ~) B! k. I* o- m1 F. b
Sam@Bra:~$ dig @208.67.222.222 kaixin001.com ......2 a/ d/ G1 b; }5 _
;; ANSWER SECTION:
* z/ s% X! e3 d2 jkaixin001.com. 60 IN A 123.125.58.247! S2 G( t1 B6 G1 a
kaixin001.com. 60 IN A 123.125.56.246
+ a C& w' D8 U5 wkaixin001.com. 60 IN A 123.125.56.247
9 K" U- E# N) h! O. X6 h! t: @+ Akaixin001.com. 60 IN A 123.125.56.245
, }9 z9 j, H1 T0 L/ O$ \3 ekaixin001.com. 60 IN A 123.125.56.248
5 n# Y( k% K5 A8 Z- A8 Q& Ykaixin001.com. 60 IN A 123.125.59.20
# u6 \) c( a+ C5 p9 l E9 ckaixin001.com. 60 IN A 123.125.59.16
7 ^% p( O( `6 e" D/ N( xkaixin001.com. 60 IN A 123.125.58.248
4 a6 c; V K0 s' [0 s% Ukaixin001.com. 60 IN A 123.125.58.246
9 a( n; c. v) |1 K( Y, bkaixin001.com. 60 IN A 123.125.58.2456 z* W1 ^. C3 y) |1 C$ I9 d
7 o7 k/ b6 n8 U$ m" W# j中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网
# _8 m9 N6 b+ W, [! v1 s# m2 l, {% u' r% O' V2 l* m' w( K( t
网通直接查询,可以得到网通服务器的IP
! n& W! S9 h7 e& x4 q
, U8 A% Q" v5 R$ JSam@Bra:~$ dig shooter.cn ......) w- s7 F+ f' z1 E
;; ANSWER SECTION:
0 T2 [( u& U1 `shooter.cn. 800 IN A 218.21.130.42- @7 u6 t" O$ v
/ i. ?$ L# Q e5 S
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP# g) q" C4 _- |- L
3 }- ~5 T; ^1 H t$ GSam@Bra:~$ dig @208.67.222.222 shooter.cn ......" B0 x/ t" K0 r! d$ c& F0 i% z
;; ANSWER SECTION:; v# i" e) o- F9 j! s, m1 `
shooter.cn. 750 IN A 74.207.252.170
: |4 W. X! e% e8 o. U8 F6 t1 h( A4 c
这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。- p5 J% b3 j) T/ s8 k6 S, q
! f9 k% p! F5 a
国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |