【問題】請問設定DNS的問題



贊助商連結


kuan40
2008-05-25, 08:13 PM
如果我有兩條ADSL及兩個固定IP

假設我的網址為www.123.com

我的IP為:123.123.123.123、456.456.456.456

我的DSN如果設定

www.123.com 123.123.123.123
www.123.com 456.456.456.456


如果由網址www.123.com欲進入網站

DSN是否為"輪流指派"由兩個不同的IP進入?

也就是
預連入www.123.com的人

第一人:由123進入
第二人:由456進入
第三人:由123進入
第四人:由456進入
.....以此類推

不知我這樣理解DNS的設定觀念是否正確?

煩請各位先進指正~~謝謝^^

贊助商連結


linux_xp
2008-05-25, 09:49 PM
大致來說,YES,會輪流回報

不過 DNS 觀念方面,有些許出入

舉個例子:
這是 DNS 正解檔


$TTL 1D

@ IN SOA ns.123.com. webmaster.123.com. (
2008052501 ; Serial
8H ; Refresh
4H ; Retry
8D ; Expire
1D ) ; Minimum

@ IN NS ns.123.com.
@ IN MX 10 mail.123.com.

@ IN A 123.123.123.123
ns IN A 123.123.123.123
mail IN A 123.123.123.123

www IN A 123.123.123.123
www IN A 456.456.456.456


1.此正解檔中, www 主機有兩個 A 紀錄,因此每次查詢 www.123.com. 就會輪流報這兩個 IP。

2.網域,例如:123.com. 並不能註冊到兩個 IP,正確的說,是 www 主機才能對應到兩個 IP。

3.同樣的 ns(DNS 主機)一般情況下,也只能有一台。通常 ns 主機的 IP 會設和 DOMAIN 一樣。

4.理論上每次查詢都會不同,但實際上都會有 DNS 快取,並不保證一定每次查詢都不同。

因為網路是雙方的,你只能控制你這一方,無法控制別人那一方。

例如:
你是 server端,每次 DNS 都會輪流回報不同 IP

瀏覽者是 Client端,他的電腦第一次查詢會來你 DNS 主機查詢,但查到後就會放入快取(幾乎大部分 OS 都有這個功能),第二次,就直接抓快取了,根本不會到你的 DNS 查詢,所以也就無效了。

個人使用者比較無所謂,但 ISP 的 DNS 伺服器也是幾乎都有快取機制的,快取時限通常為 86,400 秒(一日)。


比方說幾乎大多數的人都會把 DNS 設為 168.95.1.1,也就是 HiNet 中華電信的 DNS server。

當使用者在網址列鍵入:www.123.com 時
作業系統不認識的 domain,去問 168.95.1.1
168.95.1.1 也不認識,又去問其它 DNS
這個流程有點繁瑣,有興趣自行看書
總之,最後會問到你的 DNS,然後你的 DNS 就回報一個 IP

關鍵在:168.95.1.1 第一次問到 www.123.com 的 IP 後
它就快取了!再接下來 86400 秒內,都不會再問了
具體影響就是,這一日不管誰再來問 168.95.1.1 都是直接取用快取值
換句話說,就是沒有跳號效果了
想想看全台灣有多少人把 168.95.1.1 設為 Default DNS
雖然也有其它 ISP DNS,但分散流量效果就比較有限了

不確定 168.95.1.1 的快取時限是否為一日
不過應該都是有快取的,只是快取過期時間長短差別而已
有些 ISP 幫管理固定 IP DNS,會說設定後 24小時才會生效,就是這個原因
理論上,ISP DNS 不應快取,應把過期時間設為 0,立即更新
也許現在就是這樣子也說不定,那就要實際去測測看才準了

kuan40
2008-05-25, 11:14 PM
嗯嗯~~~謝謝你的指導
我已經知道了

唉~~原來我想這麼做似乎還是沒啥作用-.-
效果非常有限阿>"<

啊~~對了
我剛想到一個辦法,不知道效果會不會比較好

像我有向TWNIC購買網址
網址是:我簽名檔那個@@
如果我自己架設DNS
而在TWNIC的DNS指到我的DNS SERVER
那麼我將我的DNS SERVER快取更新頻率設為0
這樣使用者瀏覽會不會比較有機會輪著不同IP進入?

我只是想將兩條線路的上傳頻寬盡可能都能頻均使用
目前市面上的機器似乎沒有整合上傳頻寬的功能(如果有,ISP可能得去喝西北風了~~嘿嘿)
想弄看看有沒有偏門可以達到or接近我想要的效果@@

謝謝大大的教導~~

mis339
2008-05-26, 12:01 AM
我的做法原來都是不正確的啊,可是我都是這樣做的……
一個域名,註冊兩個NS,兩個NS不同IP。接下來所有的WWW、Mail、FTP……之類的都只是「域名」的別名而已!

C:\Documents and Settings\Alan>nslookup
Default Server: tcdns.seed.net.tw
Address: 139.175.150.20

> jemfa.com
Server: tcdns.seed.net.tw
Address: 139.175.150.20

Name: jemfa.com
Addresses: 59.120.76.86, 60.248.222.196

> set q=ns
> jemfa.com
Server: tcdns.seed.net.tw
Address: 139.175.150.20

jemfa.com nameserver = jemfa.com
> set q=mx
> jemfa.com
Server: tcdns.seed.net.tw
Address: 139.175.150.20

jemfa.com MX preference = 10, mail exchanger = jemfa.com
> set q=a
> www.jemfa.com
Server: tcdns.seed.net.tw
Address: 139.175.150.20

Name: jemfa.com
Addresses: 59.120.76.86, 60.248.222.196
Aliases: www.jemfa.com

你要的設備是有「Inboung Load Balance」功能的,不會少,只是看你需不需要為了這個功能去花這筆錢!

mis339
2008-05-26, 12:06 AM
補充一下,DNS Cahce是在Client端做,跟你設定的DNS Server應該沒太大的關係!以我上面的域名為例,我第一次ping時出現的是59.120.76.86,這時候你之後再ping就都還是59.120.76.86,這時候就有DNS Cache了!然後我再下ipconfig /flushdns,這個應該是把我的dns cache清掉,而不是DNS Server的cache吧!之後我再ping就變成60.248.222.196了!如果沒變的,可以多下幾次ipconfig /flushdns。

mis339
2008-05-26, 12:09 AM
Hinet的SOA記錄如下:

C:\Documents and Settings\Alan>nslookup
Default Server: tcdns.seed.net.tw
Address: 139.175.150.20

> 168.95.1.1
Server: tcdns.seed.net.tw
Address: 139.175.150.20

Name: dns.hinet.net
Address: 168.95.1.1

> set q=soa
> dns.hinet.net
Server: tcdns.seed.net.tw
Address: 139.175.150.20

hinet.net
primary name server = hntp1.hinet.net
responsible mail addr = hostmaster.hinet.net
serial = 200805212
refresh = 21600 (6 hours)
retry = 7200 (2 hours)
expire = 3600000 (41 days 16 hours)
default TTL = 86400 (1 day)

P.S.另一個Hinet的DNS 168.95.192.1,也就是hntp1.hinet.net的SOA記錄也是一樣的。

linux_xp
2008-05-26, 12:58 AM
唉~~原來我想這麼做似乎還是沒啥作用-.-
效果非常有限阿>"<

啊~~對了
我剛想到一個辦法,不知道效果會不會比較好

像我有向TWNIC購買網址
網址是:我簽名檔那個@@
如果我自己架設DNS
而在TWNIC的DNS指到我的DNS SERVER
那麼我將我的DNS SERVER快取更新頻率設為0
這樣使用者瀏覽會不會比較有機會輪著不同IP進入?

我只是想將兩條線路的上傳頻寬儘可能都能頻均使用
目前市面上的機器似乎沒有整合上傳頻寬的功能(如果有,ISP可能得去喝西北風了~~嘿嘿)


正確的說:也不是全然沒有效啦,只是效果不會剛好就 A->B->A->B 這樣輪流跳

DNS 跳號這個方法,只有自己架設DNS才能辦到,TWNIC 或其它代理商,通常只允許對應一個 IP。

註冊網域時,使用者可以選擇兩種模式:
1.DNS 模式:使用者自行架設 DNS。
2.HOST 模式:TWNIC 代管。

在 DNS 模式來說
比方說把 123.com.tw. 指向 123.123.123.123

簡單說明一下 DNS 查詢流程:

網域的查詢是「由右至左」,一次無法問到全部,要逐步詢問

當查詢 www.123.com.tw. 時候
1.首先是 . 根,全球有 48 台根 DNS。去問 . 根伺服器,tw. 是誰管的?答案是 TWNIC

2.接著去問 TWNIC ,com.tw. 是誰管的?答案還是 TWNIC

3.接著再問 TWNIC,123.com.tw. 是誰管?答案是你的 DNS server (假設自行架設的話,非代管)

4.接著問你的 DNS server,www.123.com.tw. 的 IP 多少(已經最左邊了,不用再問誰管的,直接問 IP)?答案就在你的 DNS 正解檔的 A 紀錄。

以上就是 DNS 正向解析查詢流程

我上面那一篇說的快取問題,問題是出在使用者要和誰(哪台 DNS)進行查詢

因為網路使用者,幾乎都會把 ISP 的 DNS 設為第一優先查詢,例如:168.95.1.1 這一台。當 168.95.1.1 按照上述的 DNS 查詢流程跑一遍後,它得到 www.123.com.tw. 的 IP 資料。

這個流程全跑一遍很花時間,有的甚至要繞地球一大圈,因此 DNS server 內建快取機制。照理說沒有人一天到晚在換 IP 的,所以快取的有效期限預設為 86,400 秒 (預設值,可更改)。

當 168.95.1.1 快取到 www.123.com.tw 的 IP 資料後,也就是你的 DNS 第一次回報給它的資料,它在 86,400 秒內都不會在查詢了。

「關鍵」在:別人的電腦的 windows,是把 168.95.1.1 設為 第一優先。

由於 168.95.1.1 已經把 www.123.com.tw. 的 IP 資料快取住了,因此第二次以後(86,400 秒內)它根本就不會在來你的 DNS server 問了。所以在這快取有限時間內,不管什麼人去問 168.95.1.1,它回答的都是第一次取得的資料。

這邊有一個重點是:
別人並不會直接來問你的 DNS,除非他把你 DNS server 設為第一優先,這是不可能的...幾乎大部分人都會把 ISP 的 DNS 設為第一優先。

http://img359.imageshack.us/img359/5628/003si9.jpg

比方說上圖,這是 windows 的設定
下面有個 DNS 的設定
我把第一優先設為自己內部的 DNS server,因為這樣查詢比較快
第二優先是 so-net 的主 DNS

其他人怎麼設不曉得,但第一優先,絕不可能是你的 DNS server 例如: 123.123.123.123。

通常都是 168.95.1.1 啦。因為 HiNet 佔大宗。

包括如果是 ISP DHCP 自動取得的話,指派的都是 ISP 的 DNS。

在這個情況下,比方說第一優先是 168.95.1.1,而它已經快取住 www.123.com.tw 的 IP 資料,瀏覽者得到的會是快取的資料。



想弄看看有沒有偏門可以達到or接近我想要的效果@@


有一旁門左道,僅是理論,沒有實證過,你可試試

DNS 跳號,看要不要做都無所謂

重點在:網頁程式,重新導向,自動換 IP

把 index 檔,弄成 php/jsp...之類,反正可以寫程式的

當有人連進來時,查詢系統時間,按秒數,或分鍾數
單數就重新導向到 123.123.123.123
偶數就重新導向到 456.456.456.456

如此便可以分散流量....

不過實做上可能會有一些問題

例如:
網址重新導向後,變成 http://123.123.123.123/xxxx
這樣就會覺得很蠢,不美觀,不方便記憶
有沒有辦法弄成 domain name?

可以設定成首頁是 http://www.123.com.tw
首頁進入後,或任何頁面進入後(頁面不存在,404重新導向)
立刻重新導向到 http://www1.123.com.tw
或 http://www2.123.com.tw

然後具體在 DNS 新增 www1、www2 的 A 紀錄就好了
當然這只是範例啦,可以想一些比較好看、好記的
不一樣要 www1、www2

不過這樣又會碰到一個問題
有些網頁程式會認位址,比如論壇後台有網站位址
可能就要從 Apache 的 Virtual Host 功能來解決
具體虛擬兩個網站,兩套網頁目錄,共用一個資料庫

可能還有其它問題,例如上傳檔目錄怎麼弄到同步
ln -s 軟連結 (Linux 系統)?

這個我就不曉得了,純理論的旁門左道,沒實做過
有興趣可以試試,問題就自己想辦法解決囉

理論上是可以做到很平均的自動跳 IP
無視 DNS 快取,因為具體是不同的主機 IP 位址

更正確的說,不是自動跳 IP,是自動強制導向
於是主控權,就回到你手上了
要使用者用哪個 IP (哪條線路)進入,由你決定(網頁程式決定)

mis339
2008-05-26, 01:19 AM
這……我上面的例子不夠清楚嗎?:|||:

mis339
2008-05-26, 10:53 AM
如果真的有去申請過Domain的話,就會知道你在指定NS時對方一定會要求至少兩筆記錄,只是你有可能這兩筆記錄都是指定到同一個IP而已!

kuan40
2008-06-03, 09:52 AM
從理論上來說,這樣的作法應該是可以達到輪流跳號的功能~
可是實際上,受限於每個使用者的習慣上使然
所以~~可能效果不好~~

我想這樣理解應該是沒錯吧?!@@

謝謝mis339的指教,我想~可能要求使用者自行清除dns紀錄會比較不現實吧-.-