1.大家最关注的,翻墙,防止DNS被劫持。
, p9 z8 q3 b4 p资深不资深的玩家肯定都知道某墙的事情。用了OpenDNS之类后,真的能防止被某墙劫持域名吗?恐怕太小看某墙了吧。只要是DNS的UDP包经过旁路设备,直接就会被篡改。不信?看看结果: u# [/ p4 X( c- @9 ~, c( o# ?' u
正常请求一个被劫持的域名,当然是劫持没商量了
! ~/ V" x+ m+ m9 I
0 w# N' Q( A9 S: I. N! x2 V# D; O4 HSam@Bra:~$ dig hen.bao.li& `6 M+ W5 w0 @$ ~) ~$ p" V
; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li
, v8 h/ @% B+ }' A2 R;; global options: +cmd
: f4 l& c4 ]7 M- R/ i3 J* B1 k;; Got answer:
3 q$ b# H/ O1 k, ]1 a;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
2 x+ t5 V9 C [3 b! Z! u% c; O;; flags: qr rd ra: Z$ _5 r4 M* y& t% b# a. ]* {
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
% i7 E, s' \' \, i* v* h;; QUESTION SECTION: ;hen.bao.li. IN A8 a, j6 Z5 [# [. W$ w& k( y! T/ a
;; ANSWER SECTION: hen.bao.li. 85697 IN A 78.16.49.15* c* Q8 |: g9 F
;; Query time: 0 msec
7 `' |8 m# @5 E9 K7 V' U+ g;; SERVER: 127.0.0.1#53(127.0.0.1)8 H0 r! r" B: c( m
;; WHEN: Mon Dec 7 23:18:48 2009( @9 V# T, {+ I7 |6 [- d3 X
;; MSG SIZE rcvd: 44
$ j; J1 Y7 c2 S, @( ]7 X. E
/ |! Q# [8 O) ~& s+ c8 ~; SSam@Bra:~$ dig hen.bao.li
3 V( v* @! X/ A& d* w5 {- x0 O; <<>> DiG 9.6.0-APPLE-P2 <<>> hen.bao.li' G3 d9 P3 Z/ M7 G' d, ~
;; global options: +cmd
" w8 F3 n9 u! T;; Got answer:7 T$ Z* h C; a. C3 A/ l$ Z6 P% `
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50859
* o. {* V2 B) S4 ^' ?;; flags: qr rd ra
- H3 c1 U: U1 U7 ~ f0 A; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 08 u, n7 U! k% l4 {! r0 ~- ^$ [
;; QUESTION SECTION:' L# v' [; \ q; ]
;hen.bao.li. IN A, r" u% O1 f \7 m/ N) X( d
;; ANSWER SECTION:
, m: Z4 ?$ z' i3 l8 when.bao.li. 85697 IN A 78.16.49.15# t# i$ H' e: X; z5 O: Y: c
;; Query time: 0 msec
- y8 n j% b; }5 W* X' O;; SERVER: 127.0.0.1#53(127.0.0.1)
& t5 q6 R# B7 Z;; WHEN: Mon Dec 7 23:18:48 2009
$ r0 t( {5 L3 t$ _- h;; MSG SIZE rcvd: 44
z* z& v$ q/ {; }$ W) g2 [
0 @5 P8 P- z- P: B! U0 C) B" Q( f* a然后再看用了Google Public DNS后,照样劫持你没商量
( g* O2 I: `( M/ F' E3 {. l' U7 v8 H4 \8 ]$ I4 j: q$ e
Sam@Bra:~$ dig @8.8.8.8 hen.bao.li; J+ Y0 g& }1 T) D8 P; [
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 hen.bao.li! K! v# t! l- V5 P I$ O8 ~
; (1 server found)
' D. T }+ S7 `: ], P;; global options: +cmd
' n) w! C+ L; f( w;; Got answer:
! q p( I$ |; P;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 154850 S/ @/ L8 V( }' U/ A
;; flags: qr aa rd ra
( @- h- D m1 ]; \9 c& s6 I; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0' G# j1 x* o5 ?# v$ N5 l0 V6 E
;; QUESTION SECTION: ;hen.bao.li. IN A
- O U6 G( w8 I6 P;; ANSWER SECTION: hen.bao.li. 86400 IN A 78.16.49.15
" w; G7 K+ s; L$ D% R. ^( D;; Query time: 75 msec
/ {9 ]& ?. t! f/ @3 z% ]3 Z;; SERVER: 8.8.8.8#53(8.8.8.8), |& M, s' J* Y/ E
;; WHEN: Mon Dec 7 23:20:58 2009
& v5 W3 \ P+ v% g* Y9 P6 P;; MSG SIZE rcvd: 54* P$ X, D6 g) }, i) e% F; s2 { q$ ~
4 H/ k0 |$ O0 _. w! L4 r我们看看国外机器得出的真实结果
5 V" g/ K3 x) C' ^5 b \0 i8 u- {
[root@WS-10267 ~]# dig @8.8.8.8 hen.bao.li, m2 v% k, e0 l9 \
; <<>> DiG 9.3.4-P1 <<>> @8.8.8.8 hen.bao.li& P. v# {9 @6 h* s0 c* ~) ]/ ?: z
; (1 server found)
# q% i2 B; a: v0 C3 G. |$ W3 v;; global options: printcmd, B, J2 S$ d ]4 E
;; Got answer:
8 q3 i1 e* x% T- W;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845
5 b u) g, h$ s# l* z;; flags: qr rd ra1 i# C# Z5 q% L; `6 h
; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
: G' _9 r: l( @! d" e/ B1 ?6 F, z;; QUESTION SECTION: ;hen.bao.li. IN A
0 l2 G+ K& a; U7 K0 C1 n;; ANSWER SECTION: hen.bao.li. 14400 IN A 69.163.142.44/ S% x0 l* H4 t. y( U+ |
;; Query time: 252 msec
$ }! i- q; \; E;; SERVER: 8.8.8.8#53(8.8.8.8)" u, H! Z6 _$ e* U0 Y& s
;; WHEN: Mon Dec 7 23:25:12 2009& m( |& W1 y0 _- s. T" d
;; MSG SIZE rcvd: 44
6 J6 n0 p6 K. f( n T, x
& _) E, A8 C! u+ s5 `) d可以看到,此路不通。想靠换国外DNS来翻墙的可以醒醒了。6 P, ^( d+ b" m. P; ^( x' e" l
/ E3 x' A$ F+ C. w2.解析速度快
) B. z3 M* ^& M# w* n% }
0 t3 A8 W4 P$ N. j+ ^% Q4 }! f8 A+ QGoogle Public DNS解析速度是挺快的,但OpenDNS就未必了0 U7 ]: j0 O- i9 U0 L, Q
4 X- ]& Y2 e6 }; ~! DSam@Bra:~$ dig @208.67.222.222 http://www.dnspod.com1 H, `9 \/ T- _# y
; <<>> DiG 9.6.0-APPLE-P2 <<>> @208.67.222.222 http://www.dnspod.com! w4 X' C* t; @! \
; (1 server found)0 Y, N; T: U$ v0 ~
;; global options: +cmd
" B, D3 R; @0 p/ ^) d& t;; Got answer:
4 u3 A4 {5 y' c! ];; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17404
4 U% n* A( H: L; S* Y;; flags: qr rd ra
3 c$ Q4 W0 C0 r8 A# |; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 08 b( L- G/ b$ }8 y9 @' S* [0 |
;; QUESTION SECTION: ;www.dnspod.com. IN A- Y* Z# ?( N N) }; ^+ `7 O
;; 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.1376 m3 H5 T' r4 c% t
;; Query time: 608 msec
; V9 S% p2 I) ?! ]% n;; SERVER: 208.67.222.222#53(208.67.222.222)+ `% ~7 P d1 ?* v; |# ~
;; WHEN: Mon Dec 7 23:29:01 2009
2 H" n% y3 G$ |% f2 q;; MSG SIZE rcvd: 101
M8 g& @, X+ B$ ?+ h9 Z% F$ i5 O. g- f! T5 e: M
3.最重要的问题,访问网站真的快吗?) ^7 d b- @4 i9 f% \
- s$ w: X/ r; O6 m& \* i) |相信不少人一定记得之前QQ用户出现过一次“免费出国”,当然,现在这个情况也会出现在用了OpenDNS和Google Public DNS用户的身上。, N. Q' S! @$ U3 L% ~( m% Y
5 [! q. W2 a2 D大家都知道中国特色的互联网,南北分家,互访速度巨慢无比,网站的维护人员绞尽脑汁的想办法解决互联互通的问题,加速大家的网站访问速度。
: P( S6 g& X2 s2 G5 S8 g, X, J; ~# U* v
网站加速访问有好几种办法,有钱的大公司就用BGP AnyCast,但并不是人人都做得起(有自己的IP段,做一次BGP广播X-XX万,要达到最佳访问效果必须要做N次BGP广播,最后费用有可能达到 XXX万)。没钱的公司就只能用智能DNS了,包括自建的DNS,或者直接用DNSPod这样的现成方案,其实原理都一样。
' y* I+ ]' f! Z Z2 w
# I" i r* O N: M) z智能DNS其实并不是太智能,它靠的预先分配好几个区域,然后根据用户请求的IP来判断用户属于哪个区域,之后返回对应区域的服务器IP。正常情况下,用户在国内上网,用的是ISP自动分配的DNS,用户域名解析请求发给ISP的DNS,ISP的DNS又发给DNSPod这样的域名授权DNS。 DNSPod这时候拿到的IP地址基本是ISP的DNS地址,所以很方便的就能判断出用户所在的区域,并把结果返回给用户。6 q2 N$ r" M6 L! z
9 n r# U3 W& z5 g- B2 T+ Y5 g
但如果这个时候,用户用的是OpenDNS或者Google Public DNS,因为这些服务器的IP地址是在国外,并且N多老外都在用,智能DNS就不好判断该怎么返回了。返回国外的IP,影响国内用户的访问速度。
) E1 J1 {. i9 f8 s' k- I3 B( x A7 @* T1 G8 J
如果返回国内的IP,影响到其他老外的访问速度。并且如果返回国内的IP,那么该到底返回电信还是网通的IP呢?用户属于哪个省份?无从判断。那么最后只能人多决定人少,返回国外的服务器IP。7 g, y+ ?7 F+ z3 `0 B
) A$ _1 X+ y+ I% d! T/ P7 X
返回国外IP的结果是,用户被指向网站在国外的服务器,访问网站巨慢。7 z" M& \ Q! S0 d1 H
4 W7 v* g* z7 H5 S% M, P* J8 U
本来想找几个典型例子的,但找了一圈回来,发现国内的大公司在这上面烧钱可是一点都不心痛,全部是BGP。要么就是不搭理国外用户,没针对国外用户单独进行解析,一概解析到电信的服务器去。
6 J5 N, R9 `" x
' G; Y9 E i7 ]6 }8 J拿Google来当例子吧。我是网通用户,使用网通自带的DNS,解析www.google.com得到以下结果
O' X5 B" [% }, \
! G% k+ l z5 t. j. M! y0 h# eSam@Bra:~$ dig http://www.google.com
% a5 Y3 {* |, f. y, P$ _ [9 r: Y* M......
a. B, Y1 ~8 }: ^: B;; ANSWER SECTION:
( L! t& a; f0 ohttp://www.google.com. 48102 IN CNAME http://www.l.google.com.8 M' L6 o: Y D. ^: [' ?7 P! k
http://www.l.google.com. 300 IN A 216.239.61.1043 C2 @$ _" |) c: ]: \1 @" v
* f: P2 [. `, F6 N' f如果我用了OpenDNS的话,那么我得到下面的结果
3 C9 h/ B0 [2 O! M9 o" G q+ W8 H- d9 H
' H! e; H% B8 C% _Sam@Bra:~$ dig @208.67.222.222 http://www.google.com
; K- H# J2 R* a: y4 f......0 ?: l9 n4 [, [0 e$ S' j
;; ANSWER SECTION:& [9 r! v" N- M2 G
http://www.google.com. 30 IN CNAME google.navigation.opendns.com.
" p* X4 [1 | O* x4 s4 _' tgoogle.navigation.opendns.com. 30 IN A 208.67.219.230
, O; Z/ L5 D) H) k5 A- Y/ Q+ Ngoogle.navigation.opendns.com. 30 IN A 208.67.219.2317 @2 Y$ J: H4 s. B; B1 ~* x" f5 t
% u" y2 A! P* y9 j% `ping一下得出的IP地址,看看速度,其实并不快
4 \% Q+ R* K$ G5 N! t N
0 o! r/ \3 c4 x9 m9 n% xSam@Bra:~$ ping 208.67.219.230 PING 208.67.219.230 (208.67.219.230): 56 data bytes
- t+ r- n) A; K" W/ E64 bytes from 208.67.219.230: icmp_seq=0 ttl=51 time=213.828 ms
. A6 o9 R4 C3 S' m2 M/ ?) S64 bytes from 208.67.219.230: icmp_seq=1 ttl=51 time=213.779 ms# w' V: ?9 x& r# X. Y) }5 Q$ \7 p
64 bytes from 208.67.219.230: icmp_seq=2 ttl=51 time=214.716 ms- n% Y2 `+ n D* k2 Q8 G. c8 d: q+ J
^C
H- Y8 A& v) T: s+ {2 ^* p1 n7 u0 e--- 208.67.219.230 ping statistics ---( T) r: Q2 D, r: d- R3 [
3 packets transmitted, 3 packets received, 0.0% packet loss
1 I; s; `. `" V' Z' @) F* Ground-trip min/avg/max/stddev = 213.779/214.108/214.716/0.431 ms
0 d* ?8 E& s: E) k
" n3 J7 n2 s( d8 {6 A, P. Z5 K我们可以再看看kaixin001.com的,如果我是网通用户,用了OpenDNS或者Google Public DNS,那么我会被解析到kaixin001的电信IP去。当然,kaixin001的电信机房线路很好,网通用户访问其实影响不大。
w! c* d5 e2 m9 y- b7 T9 x, r0 q" C) e- k/ ?6 A
我网通DNS直接解析
: ?& U, g1 c. V
2 i9 P0 H) \5 M mSam@Bra:~$ dig kaixin001.com0 S ?1 b. Q: \
......( w9 X' `) z- a1 d7 f# @* r$ Q0 @
;; ANSWER SECTION:
8 U6 `& N/ n3 k6 O8 K9 A$ hkaixin001.com. 120 IN A 220.181.100.31
1 c- n! K- M) L) p: a$ M5 \kaixin001.com. 120 IN A 220.181.100.32
) }* r" R+ _) i; ^8 o- Fkaixin001.com. 120 IN A 220.181.100.33
7 ?: o7 r! ]9 U5 \4 X& _. pkaixin001.com. 120 IN A 220.181.100.34
! O2 q! `# x4 a& x, M$ \1 C) gkaixin001.com. 120 IN A 220.181.100.35
4 I/ ]& i: a: i" ]! m/ bkaixin001.com. 120 IN A 220.181.100.30
3 q& b7 v0 l# r
" ]' C& L( K6 E% H' ~. V如果我换用了OpenDNS,我得到的是kaixin001在电信服务器的IP F1 u M, n/ V" ~# S6 g# U
# q+ D2 y e5 G7 i% {$ W3 f9 j) D" qSam@Bra:~$ dig @208.67.222.222 kaixin001.com ......' i( L; }( B j, [+ k2 m
;; ANSWER SECTION:4 S& ], {$ s: |" r/ E$ M' f, @+ n
kaixin001.com. 60 IN A 123.125.58.247 _# p+ W1 k( w
kaixin001.com. 60 IN A 123.125.56.2460 k7 j- X$ I6 n$ O" J6 |2 U
kaixin001.com. 60 IN A 123.125.56.247. x# P( s8 {! r
kaixin001.com. 60 IN A 123.125.56.245
+ p+ N7 L9 x5 [/ Skaixin001.com. 60 IN A 123.125.56.248# W" C3 O! Z" l0 i+ K7 B
kaixin001.com. 60 IN A 123.125.59.20
5 Y( r( U+ |' J p6 U, F2 ?! jkaixin001.com. 60 IN A 123.125.59.16/ \$ Y& A+ `( N. C7 ~+ u7 b) D* K
kaixin001.com. 60 IN A 123.125.58.248; H/ B4 L& b5 u. c1 M. p. d
kaixin001.com. 60 IN A 123.125.58.246
- e- Z" ?" p; @$ n' D- s- Bkaixin001.com. 60 IN A 123.125.58.245( j( ~1 h. f0 G. ]; \/ a& H
5 e, `4 ~$ L. k2 k& i# W, y% {' O中小网站就没这么幸运了。中小网站没有太多的钱去买昂贵的BGP线路,只能用很低廉的智能DNS方案,比如我们经常去找字幕的射手网/ b; O7 ]: z# c& X2 `/ _2 W3 J
( D# q; B9 t; d4 p# h
网通直接查询,可以得到网通服务器的IP6 u5 V8 d( G1 T7 f7 h
$ X) d: B Z/ w* y, ESam@Bra:~$ dig shooter.cn ......
) o4 P& }/ m) i;; ANSWER SECTION:8 |, l1 R( ]) ^+ x' ?( t4 S
shooter.cn. 800 IN A 218.21.130.42* m* n+ x% l) h2 {; L" ~8 Y
0 r k6 G* A D, H2 u- k. {
网通套用OpenDNS进行查询,得到的是射手在国外服务器的IP! W) @8 M6 c( k" C
) {* F/ T/ t2 TSam@Bra:~$ dig @208.67.222.222 shooter.cn ......
" C" t1 c% _. T8 p;; ANSWER SECTION:8 p+ M( z" Z3 ?0 r/ W$ B
shooter.cn. 750 IN A 74.207.252.1702 J$ v/ |7 Q0 z- G6 V) @
0 o0 O! v; U% D- L这样,你就“被出国”了。用了OpenDNS或者Google Public DNS后,你访问的将是一个速度并不快的射手网。
/ g% Z5 }# m- i5 L# j" P
4 N9 z, X2 r9 Z2 c国内类似射手网这样的中小网站有几十万甚至上百万,不少游戏运营商也采用这样的方案。虽然他们不一定有国外的服务器,但如果你被解析到并不属于自己网络的服务器上,访问速度或多或少都会受到影响。所以,如果你最近访问网站速度有所下降,或者玩游戏的时候经常掉线,那么你就该把DNS给换回来了。 |