將域名解析到IP
如果你們的局域網是通過DHCP 自動獲取IP 地址,請在服務器上將DHCP 分配地址有效時間改為盡量少的數(shù)字,默認8天.DNS 服務器也設為服務器地址.這樣的話網絡地址就由本地解析.開始討論如何排除D
如果你們的局域網是通過DHCP 自動獲取IP 地址,請在服務器上將DHCP 分配地址有效時間改為盡量少的數(shù)字,默認8天.
DNS 服務器也設為服務器地址.
這樣的話網絡地址就由本地解析.
開始討論如何排除DNS 問題之前,我們想知道你是否清楚怎樣判斷某個問題是由DNS 而不是由別的命名服務造成的。在Windows 主機上,判斷問題的原因是否真的出在DNS 上可是件困難的事。Windows 支持的命名服務真是名目繁多:如DNS 、Wins 、HOSTS 、LM HOSTS 等數(shù)不勝數(shù)。然而常用的Windows 2000 nslookup 卻全然不理會其他這些命名服務。你可能會只顧在Windows 2000計算機上運行nslookup 和查詢名稱服務器,而有問題的服務卻可能在使用另一種不同的命名服務。首先,你需要考慮是哪一類程序出了問題,如果是TCP/IP客戶端,如telnet 或ftp ,那么問題可能出在DNS 和HOSTS 文件上。如果是一個支持NetBIOS 命名的實用程序,如net (與在net use 中一樣)中,那么值得懷疑的還要包括Wins 和LMHOSTS 文件。其他也使用DNS 名稱或NetBIOS 名稱作為參數(shù)的客戶端(如ping )也會使用這些命名服務中的任意一種。接下來,再考慮Windows 使用這些命名服務的順序。在查找問題時,應按照此順序檢查各種服務。這些提示對你查出問題的癥結會有幫助,至少可幫你排除一個懷疑對象。
如果要檢查一個服務器的緩存區(qū),請單擊DNS 控制臺左窗格中該服務器名稱左邊的加號。你將看到一個名為Cached Lookups 的文件夾。單擊其左邊的加號或雙擊文件夾圖標或標簽以展開下一級。這樣可顯示出你的名稱服務器已為其緩存了數(shù)據(jù)的那些頂級域。繼續(xù)展開,直至看到你要查看的緩存數(shù)據(jù)所在的那一域名。如我們的名稱服務器已為microsoft.com 緩存了三條NS 記錄和一條A 記錄。如果依次雙擊net 和hp, 我們還會看到這些名稱服務器的緩存地址。如果想看緩存數(shù)據(jù)上的 TTL ,請雙擊右窗格中的一條記錄。若 DNS 控制臺處于高級查看模式(選擇查看 > 高級),則出現(xiàn)的窗口將顯示出該記錄的 TTL 。在檢查 TTL 之前,一定要用操作 > 刷新或用 F5 鍵刷新 DNS 控制臺,否則你看到的 TTL 可能會大于當前 TTL 。如果右鍵單擊該記錄,你可能會注意到有一個刪除記錄選項。
DNS 的一些常見的錯誤
1. 忘記增加序列號
在你未使用 DNS 控制臺而是用手動方式更改區(qū)域數(shù)據(jù)文件時,就會出現(xiàn)一些問題。DNS 控制臺在它每次更改區(qū)域數(shù)據(jù)時都會記著在 SOA 記錄中增加序列號,所以你不必為此操心。不過,這也意味著你可能不會養(yǎng)成更新序列號的習慣,所以在進行一次性手動修改時,你可能會忘記增加序列號。此問題的主要癥狀是,從屬名稱服務器不會獲得你在主服務器上對該區(qū)域做的任何更改。從屬服務器認為區(qū)域數(shù)據(jù)并未更改,因為它看到的序列號仍是原來的序列號。該怎樣檢查當時是否記著增加序列號呢?不幸的是,這就不是那么容易了。如果你不記得原序列號是什么,而現(xiàn)在的序列號不能表明它是什么時候更新的,則沒有直接的方
,法判斷它是否已更改。在啟動主服務器時,不管你是否更改了序列號,它都將加載更新后的區(qū)域數(shù)據(jù)文件。最好的辦法只能是使用 nslookup 來比較主服務器和從屬服務器返回的數(shù)據(jù)。如果它們返回不同的數(shù)據(jù),則表明你可能忘了增加序列號。如果你能想起最近作的一次更改,則可以查看此數(shù)據(jù)。如果記不起最近一次作的更改,則可以從一個主服務器和一個從屬服務器復制該區(qū)域,將結果排序并使用文件比較工具將它們加以比較。還有一個好消息,即,盡管確定該區(qū)域此前是否已復制比較難,但現(xiàn)在要確保該區(qū)域被復制卻非常簡單。只須在 DNS 控制臺中雙擊 SOA 記錄并手動編輯序列號字段,增加主服務器上此區(qū)域的副本中的序列號即可。從屬服務器將在刷新時間間隔內獲得此新的數(shù)據(jù),如果它們用了 NOTIF Y ,則會更快。
2. 以手動方式更改DNS 服務器
要記住 Microsoft DNS 服務器會定期更新其區(qū)域數(shù)據(jù)文件。每次用 DNS 控制臺對一個區(qū)域的數(shù)據(jù)進行更改時,就有一個寫操作掛起:在 DNS 服務器退出之前,它必須重寫該區(qū)域的數(shù)據(jù)文件,否則它就會丟失你所作的更改??梢詫⒋吮茸鲀却嬷幸粋€已更新的頁:操作系統(tǒng)在退出之前必須將它寫到磁盤上。如果你在一個寫操作掛起期間對一個區(qū)域數(shù)據(jù)文件作了手動更改,則在名稱服務器退出后你會莫名其妙地丟失所作的更改。比如你在服務器正在運行且有一個寫操作掛起時向一個名為microsoft.com 的新子域添加了委派。作完更改后,你必須將服務器停下并再次啟動,以讓它再次讀取該區(qū)域數(shù)據(jù)。但是在服務器退出時,它將重寫 microsoft.com 區(qū)域數(shù)據(jù)文件,你的委派于是就會丟掉。如果仔細觀察(平時就需要這樣)事件查看器,會在服務器停止事件之前看到這樣一條消息:The DNS server wrote version 37 of zone microsoft.com to file microsoft.com.dns. (DNS 服務器寫入?yún)^(qū)域 microsoft.com 的版本 37 到文件 microsoft.com.dns 。)如果你用操作 | 更新服務器數(shù)據(jù)文件來強制服務器重寫其區(qū)域數(shù)據(jù)文件,則服務器就會與區(qū)域數(shù)據(jù)文件同步,而不必在退出時重寫。所以,如果要對區(qū)域數(shù)據(jù)文件作手動更改,那么要么首先停止服務器(但這意味著在你作更改期間服務器將不響應任何查詢),要么使用 DNS 控制臺將服務器與區(qū)域數(shù)據(jù)文件同步,然后再進行更改。
3. 從屬服務器無法加載區(qū)域數(shù)據(jù)
如果一個從屬服務器無法從其主控服務器獲取某個區(qū)域的當前序列號,那么最初它是不會給你發(fā)警告消息的。然而,如果該問題一直存在而且從屬服務器在有效期時間內無法確定其數(shù)據(jù)是否是最新的,那么該區(qū)域就會過期。在一個 Microsoft DNS 服務器上,你將在事件查看器中看到與下文類似的一條消息:在獲得成功區(qū)域復制或從這個區(qū)域作為其源的主服務器獲得成功區(qū)域復制之前microsoft.com 區(qū)域就超時了,該區(qū)域已經被關閉。區(qū)域過期后,當你向名稱服務器查詢該區(qū)域中的數(shù)據(jù)時,就會收到 SERVFAIL 錯誤消息:
C:> nslookup robocop wormhole.microsoft.com .
Server: wormhole.microsoft.com
,Addresses: 207.46.230.219, 192.253.253.1
wormhole.microsoft.com can?t find robocop.microsoft.com : Server failed
出現(xiàn)此問題的原因主要有三個:由于網絡故障與主控服務器的連接斷開,為主控服務器配置的 IP 地址不正確,主控服務器上的區(qū)域數(shù)據(jù)文件中有語法錯誤。首先,應使用 DNS 控制臺檢查該從屬服務器在嘗試從中加載數(shù)據(jù)的那一(些)主控服務器的地址。右鍵單擊左窗格中該區(qū)域的域名,選擇屬性,然后查看常規(guī)選項卡,確認它是否真是主名稱服務器的 IP 地址。如果是,請檢查到此 IP 地址的連接:C:> ping 207.46.230.219
Pinging 207.46.230.219 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
如果無法連接到主控服務器,請確定該服務器的主機是否真的在運行(例如,已通電),或檢查網絡問題。你可能還需要檢查主控服務器對該區(qū)域中數(shù)據(jù)的查詢是否返回權威性響應。如果主控服務器的響應對于該區(qū)域不是權威性的,則從屬服務器就不從該主控服務器中復制此區(qū)域。可使用 nslookup 檢查主控服務器的對于區(qū)域的 SOA 記錄的權威性響應,命令格式如下:
C:> nslookup -norec -type=SOA microsoft.com . 207.46.230.219
此命令向位于地址 152.104.1.6 的名稱服務器發(fā)送一個非遞歸查詢,以查詢 microsoft.co m 的 SOA 記錄。我們必須發(fā)送非遞歸查詢,這樣位于 152.104.1.6 的名稱服務器就不會將該查詢轉發(fā)給另一個服務器。如果將此主控服務器配置正確,則對此查詢的響應就應是權威性的。(記住,除非 nslookup 返回了“非權威性”響應,否則響應就是權威性的。)非權威性的響應可能表明主控服務器在加載該區(qū)域時發(fā)生問題,通常是由于區(qū)域數(shù)據(jù)文件中存在語法錯誤。請與該主控服務器的管理員聯(lián)系,讓他檢查其事件查看器或系統(tǒng)日志的輸出中是否有表明出現(xiàn)語法錯誤的消息。我們從來還沒有見到過 Windows 2000 名稱服務器因為區(qū)域數(shù)據(jù)文件中有語法錯誤而對于此區(qū)域失去非權威性的情況,但舊的 BIND 名稱服務器確實會表現(xiàn)出這種現(xiàn)象。所以,如果你的名稱服務器是某一區(qū)域的從屬服務器,而此區(qū)域的主要主名稱服務器是 BIND 名稱服務器,該服務器現(xiàn)在對該區(qū)域不具有權威性,那么問題可能就是一個語法錯誤。如果對查詢的響應是權威性的但從屬服務器仍無法成功復制該區(qū)域,那么你可以使用nslookup 的ls 命令來手動復制該區(qū)域。如果看到類似于下面的錯誤消息,則很可能是主控服務器限制區(qū)域復制:
C:> nslookup - 152.104.1.6
Default Server: terminator.microsoft.com
Address: 152.104.1.6
> ls microsoft.com
,[terminator.microsoft.com ]
*** Can?t list domain microsoft.com : Query refused
請與該主控服務器的管理員聯(lián)系,問是否在對區(qū)域復制進行限制。請他檢查你正在嘗試復制的區(qū)域的屬性窗口的區(qū)域復制選項卡上的選項(如果他在運行 Microsoft DNS 服務器)。如果該遠程服務器在運行著 BIND ,則請問他是否在使用 xfrnets 或 allow-transfer 功能來對區(qū)域復制進行限制。在問題已被排除而且你的服務器能成功復制該區(qū)域后,你會在事件查看器中看到下面的消息:A more recent version, version 212 of zone microsoft.com w as
found at DNS server at 207.46.230.219. Zone transfer is in progress.
The DNS server wrote version 212 of zone microsoft.com to
file microsoft.com.dns. (在 207.46.230.219 的 DNS 服務器上找到區(qū)域microsoft.com 的更新的版本212。正在進行區(qū)域復制。DNS 服務器寫入?yún)^(qū)域 microsoft.com 的版本 212 到文件 microsoft.com.dns 。)
DNS 故障還有幾種情況,我們將在下期繼續(xù)討論。
4. 網絡連接斷開
雖然與原始的 ARPANET 時代相比,如今的 Internet 已可靠得多,但網絡中斷的現(xiàn)象仍很常見。這些故障往往看起來好像是性能問題:
C:> nslookup nisc.sri.com .
Server: terminator.microsoft.com
Address: 152.104.1.6
DNS request timed out.
……
*** Request to terminator.microsoft.com timed-out
使用 nslookup ,你可以查找你的名稱服務器要與之對話的那些名稱服務器的名稱和地址,以便解析該名稱:
C:> nslookup
Default Server: terminator.microsoft.com
Address: 152.104.1.6
> set type=ns
> sri.com .
Server: terminator.microsoft.com
,Address: 207.46.230.219
Non-authoritative answer:
……
NS.sri.com internet address = 128.18.30.66
NS.CSL.sri.com internet address = 130.107.4.94
NS.CSL.sri.com internet address = 192.12.33.94
TURTLE.MCC.COM internet address = 128.62.1.215
NS1.sri.com internet address = 128.18.30.65
> com.
Server: terminator.microsoft.com
Address: 207.46.230.219
Non-authoritative answer:
……
C.ROOT-SERVERS.NET internet address = 192.33.4.12
D.ROOT-SERVERS.NET internet address = 128.8.10.90
E.ROOT-SERVERS.NET internet address = 192.203.230.10
I.ROOT-SERVERS.NET internet address = 192.36.148.17
F.ROOT-SERVERS.NET internet address = 192.5.5.241
G.ROOT-SERVERS.NET internet address = 192.112.36.4
J.GTLD-SERVERS.INTERNIC.NET internet address = 198.41.0.21
A.ROOT-SERVERS.NET internet address = 198.41.0.4
H.ROOT-SERVERS.NET internet address = 128.63.2.53
B.ROOT-SERVERS.NET internet address = 128.9.0.107
然后你可以檢查你的主機與這些服務器的連接。但是,ping 也不會比你的名稱服務器幸運多少。如果ping 成功了,你就應該查一查這些遠程服務器是否真的在運行。
C:> ping 128.18.30.66 --ping 第一個 sri.com 名稱服務器
Pinging 128.18.30.66 with 32 bytes of data:
Request timed out.
……
C:> ping 130.107.4.94 --ping 第二個 sri.com 名稱服務器
Pinging 130.107.4.94 with 32 bytes of data:
Request timed out.
……
現(xiàn)在剩下要做的只是查找網絡中的故障。像tracert 這樣的實用工具可幫你確定問題是出在你的網絡上、在目標網絡上、還是在中間某個地方,在查找故障位置時也需要運用一些常識了。
,5. 缺少子域委派
盡管取得ICANN 認證的注冊員盡了最大努力以盡可能快地處理你的請求,但讓你的子域的委派出現(xiàn)在根名稱服務器中也可能需要一兩周的時間。你的父級不同(是取得ICANN 認證的注冊員還是其他區(qū)域管理員),你的等待時間也會不一樣。有的父級辦事速度快且有責任心;而有的父級則辦事拖拉。等到你的委派數(shù)據(jù)出現(xiàn)在父級區(qū)域的名稱服務器上后,你的名稱服務器就能夠在 Internet 域名稱空間查找數(shù)據(jù)了,但Internet 上(在你的域之外)沒有任何人會知道怎樣在你的 名稱空間查找數(shù)據(jù)。
這意味著,盡管你可以將郵件發(fā)送到你的域之外,但收件人卻不能回復你的郵件。而且,也沒有人能夠按名稱 telnet 到、ftp 到,甚至不能 ping 到你的主機。
要知道,你運行的任何 in-addr.arpa 子域都是這種情況。在父級將這些子域委派到你的服務器之前,Internet 上的名稱服務器不能夠逆映射你網絡上的地址。
如要確定你區(qū)域的委派是否已在你的父級區(qū)域的名稱服務器中,請向一個父級名稱服務器查詢你的區(qū)域的 NS 記錄。如果父級名稱服務器中有此數(shù)據(jù),則 Internet 上的任何名稱服務器都能找到它:
C:> nslookup
Default Server: terminator.microsoft.com
Address: 152.104.1.6
> server a.root-servers.net.--Query a root name server
Default Server: a.root-servers.net
Address: 198.41.0.4
> set norecurse --Instruct the server to answer out of
> set type=ns --its own data and to look for NS records
> 249.249.192.in-addr.arpa. --for 249.249.192.in-addr.arpa
Server: a.root-servers.net
Address: 198.41.0.4
*** a.root-servers.net can't find 249.249.192.in-addr.arpa.
: Non-existent domain
從這里可以清楚地看出尚未添加委派。你可以耐心地等待,如果在向父級區(qū)域請求委派后等待的時間太長,你可以與父級區(qū)域的管理員聯(lián)系,問他們是怎么回事。
6.子域委派不正確
,子域委派不正確是 Internet 上另一個常見的問題。讓委派保持最新需要人的參與 - 將你對你的一組權威性名稱服務器作的更改通知父級區(qū)域的管理員。因此,委派信息往往會由于管理員作更改時不將此情況通知他們的父級管理員而變得不準確。有相當多的管理員都認為,建立委派是一勞永逸的事:在建立他們的區(qū)域時,他們讓父級管理員知道哪些名稱服務器是權威性的,然后就再也不與父級管理員溝通此事了。他們甚至在母親節(jié)也不知道打個電話。一名管理員可能會添加一個新的名稱服務器,撤下另一個,又改變了某一個名稱服務器的 I P 地址,而這一切都可能不讓父級區(qū)域的管理員知道。久而久之,由父級區(qū)域正確委派的名稱服務器的數(shù)目就會變少。在這種情況下,最好的結局是名稱解析時間延長,因為進行查詢的名稱服務器要費盡周折去查找該區(qū)域的權威性名稱服務器。如果委派信息嚴重過時而最后一個權威性名稱服務器主機被停機維修,那么就無法訪問到該區(qū)域中的信息。如果你懷疑有委派錯誤,不管是從你的父級到你的區(qū)域,從你的區(qū)域到你的一個子級,還是從一個遠程區(qū)域到該區(qū)域的一個子級,你都可以用 nslookup 來檢查:
C:> nslookup
Default Server: terminator.microsoft.com
Address: 152.104.1.6
> server a.gtld-servers.net . --Set server to the parent name
--server you suspect has bad delegation
Default Server: a.gtld-servers.net
Address: 198.41.0.4
> set type=ns --Look for NS records
> microsoft.com . --for the zone in question
Server: a.gtld-servers.net
Address: 198.41.0.4
Non-authoritative answer:
……
RELAY.MICROSOFT.COM internet address = 15.255.152.2
HPLABS.HPL.MICROSOFT.COM internet address = 15.255.176.47
NNSC.NSF.NET internet address = 128.89.1.178
HPSDLO.SDD.MICROSOFT.COM internet address = 15.255.160.64
HPSDLO.SDD.MICROSOFT.COM internet address = 15.26.112.11
假如你懷疑到 hpsdlo.sdd.microsoft.com 的委派不正確,你可以在 hpsdlo 區(qū)域查詢 micr osoft.com 中的數(shù)據(jù),并檢查返回的結果:
> server hpsdlo.sdd.microsoft.com .
Default Server: hpsdlo.sdd.microsoft.com
Addresses: 15.255.160.64, 15.26.112.11
> set norecurse
,> set type=soa
> microsoft.com .
Server: hpsdlo.sdd.microsoft.com
Addresses: 15.255.160.64, 15.26.112.11
Non-authoritative answer:
……
expire = 604800 (7 days)
minimum ttl = 86400 (1 day)
Authoritative answers can be found from:
……
RELAY.MICROSOFT.COM internet address = 15.255.152.2
HPLABS.HPL.MICROSOFT.COM internet address = 15.255.176.47
NNSC.NSF.NET internet address = 128.89.1.178
如果hpsdlo 確實是權威性的,它就會返回一個權威性的響應。microsoft.com 區(qū)域的管理員能告訴你 hpsdlo 是否應是 microsoft.com 的一個權威性名稱服務器,所以你應與該管理員聯(lián)系。
域名解析需要時間才生效,并且,在各地方都不是同步的,一般需要幾個小時就可以了。
參考文獻:http://www.jhonet.com 使用winmydns 解析好,因為它具有雙重功能,電信和網通的都可以解析。主要有以下特性:
1,WinMyDNS 運行在windows 平臺上, 綠色免安裝軟件, 由于window 自帶DNS 服務實在難用, 性能又不好, 超過
1000個域名就跑不動了, 二次開發(fā)更是難上加難. 有了WinMyDNS 就可以輕松管理了.
2, 該軟件最大的優(yōu)點是首創(chuàng)DNS 雙線智能解析功能, 是目前解決網通、電信、鐵通及其他網絡的互通問題的
最有效方法, 同一個域名可以讓網通、電信及其他線路的客戶ping 出來的完全不同IP ,就近訪問站點。
3, 最方便的地方是DNS 配置信息全部保存在ACCESS 或MSSQL 數(shù)據(jù)庫中, 只要對數(shù)據(jù)庫的記錄增減修改就可
以進行DNS 自助解析
4, 最讓人放心的是超強性能. 不需要增加任何硬件設置, 即可在普通的機器上支持幾十萬個域名的解析.
,5, 官方網站是http://www.winiis.com, 在這里可以找到詳細的編程范例及最新版本. 免費下載:http://www.winiis.com/download/WinMyDNS_V1.35.rar
qq :529226441