Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7694170
  • 博文数量: 637
  • 博客积分: 10265
  • 博客等级: 上将
  • 技术积分: 6165
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-12 22:00
文章分类

全部博文(637)

文章存档

2011年(1)

2010年(1)

2009年(3)

2008年(12)

2007年(44)

2006年(156)

2005年(419)

2004年(1)

分类:

2005-10-20 11:23:21


named[2855]: dns_master_load: siyongc:26:
not at top of zone

 

許多許多問題﹐事實上您都可以在 /var/log/messages 中找到﹐當您發現這些錯誤信息之後﹐看看是關於什麼記錄的﹐然後順藤摸瓜﹐留心一下檔案內容﹐就比較容易找到錯誤的原因了。

有時候﹐您想簡化您的 DNS 設定工作﹐您可以使用 netconf 來做。不過﹐根據我的經驗是﹕netconf 未必能夠完全幫您正確的設定起來。當您重新啟動 named 之後﹐別忘了看一下 /var/log/messages ﹐確定沒有錯誤發生。如果您使用工具來設定 DNS 而碰到問題﹐這就需要您有手工設定的能力了。

 

設定 DNS Client

DNS 系統是一個典型的 Client/Server 架構﹐前面介紹的動作僅是確保 DNS 的 server 成功啟動起來而已﹐如果您要測試它﹐還必須設定好 client 端才行。

不知道您會不會設定 linux 的 dns client 呢﹖如果忘記了要打屁屁了哦~~~ 事實上我們在第一章的“網路設定”那裡就設定過了﹐也就是修改 /etc/resolv.conf 這個檔案﹐將您剛設定好的 DNS 主機 IP 放在檔案的前排位置﹐如﹕

nameserver192.168.100.23
nameserver168.95.1.1
nameserver139.175.10.20
domainsiyongc.domain
searchsiyongc.domain dmz.domain test.com

 

假如您的 client 和 server 在同一台機器上﹐那可以將第一個 name server 設定為 0.0.0.0 或 127.0.0.1 。

要是您使用 Windows ﹐但不是透過 DHCP 來指定 DNS 的話﹐那您或許需要手工設定了﹕控制台 --> 網路 --> TCP/IP (-> 網路卡) --> 內容 --> DNS 組態 ﹕

 

請注意﹕如果您修改了這裡的設定﹐就算您的 Windows 是透過 DHCP 取得 IP 設定的話﹐也會以這裡的設定為準。如果您想使用 DHCP 的設定﹐那就選擇“關閉 DNS”吧。

 

測試 DNS

要測試我們的設定是否生效﹐我們可以使用的方法有很多﹐其中最簡單的莫過於 ping 命令了。直接 ping 一下您所預期的 dns 名稱就知道結果了。

不過﹐ping 畢竟很有限﹐例如﹕您不能查詢 MX 和 NS 等記錄。實作上﹐我們最最常使用的 DNS 查詢工具是 nslookup 命令。關於 nslookup ﹐在“學習網路”的“DNS 協定”文章中有很詳細的例子﹐這裡不再重複。如果我們在測試中失敗﹐例如 nslookup 回應說﹕

*** rh71.siyongc.domain can't find XXX.XXXX.XXXX:
Non-existent host/domain

 

這通常是反解記錄沒設定好的緣故﹐請確定 DNS 主機本身的反解有設定起來﹐而且可以被 DNS 追查得到。如果反解沒有授權下來﹐那就請上游 ISP 幫忙設定。不過﹐我發現這個錯誤信息似乎在新版的 nslookup 中不會出現﹐anyway ﹐請您自己留意吧。

有時候 nslookup 會停在某處一動也不動﹐其實它不是當掉了﹐而是在查詢沒結果之後等 time out 而已。您可以按 Ctrl + C 終止查詢﹐再打 exit 跳出來。不過﹐如果您在按了 Ctrl + C 之後接著再輸入一個無結果的查詢﹐那就好可能將 nslookup 當掉。這樣您可能要登錄進另外一個 terminal ﹐然後用 kill 將 PID 殺掉。同上﹐新版的 nslookup 沒有這個困繞﹐但如果按 Ctrl + C 的話﹐則會直接跳離 nslookup 程式。

然而﹐nslookup 似乎在以後的版本中不再維護了﹐取而代之的﹐就是 dig 命令﹐所以﹐當您在 Redhat 7.1 上輸入 nslookup﹐您會看到如下這樣的信息﹕

Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.

 

這段文字不用解釋了吧﹖真的不知道說什麼就查字典吧~~ 這裡﹐我們不妨學習一下如何用 dig 來查詢和測試 DNS 服務。

基本上﹐dig 命令的語法如下﹕


dig [@server] domain [] [] [+]
[-] [%comment]

看起來蠻複雜的﹐恐怕要 man dig 才知道怎麼使用。不過﹐我們平時只用它來查詢 dns 資料的話﹐要使用到的選項也不會太多啦﹐如果您會得在 nslookup 中設定 type=XXX 的話﹐那您也可以用 dig 來查詢不同的記錄類別資料。例如﹕

# dig siyongc.domain mx

; <<>> DiG 9.1.0 <<>> siyongc.domain mx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8198
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;siyongc.domain. IN MX

;; ANSWER SECTION:
siyongc.domain. 864

阅读(2410) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~