在 debian 上配置 BIND DNS
我正在嘗試配置配置 BIND 以在我的本地 Debian 機器上使用,我將使用它作為開發和測試環境。
首先,我使用的是 Debian 6.x
$$ Squeeze $$和 BIND 9. BIND 伺服器是在 Debian 安裝過程中自動設置的。 對於這個問題,假設我想創建一個名為example.com的域,我將能夠從執行 BIND 的同一台機器和我的本地網路訪問該域。
這是我到目前為止所做的:
在 /etc/bind named.conf.local(包含在 name.conf 中)中,我輸入以下內容:
zone "cms1.com" { type master; file "/etc/bind/db.example.com"; };
在 /etc/bind/db.example.com 我放了以下內容:
$TTL 3600 @ IN SOA example.com. admin.example.com. ( 2011101601 ; Serial 3600 ; Refresh 1h 60 ; Retry 1m 86400 ; Expire 1d 600 ) ; Negative Cache TTL 1h ; @ IN NS localhost. ; example.com. IN CNAME localhost. example.com. IN A 127.0.0.1
請注意,我將名稱伺服器設置為 localhost。我不知道這是對還是錯。
然後我將適當的虛擬主機指令添加到 Apache 並使用命令重新啟動 BIND
/etc/init.d/bind9 restart
。但是,當我 ping 或瀏覽到 example.com 時,我訪問的是 Internet 上的 example.com,而不是我機器上的那個。
我究竟做錯了什麼?
為了聽取 AlexD 的建議,我
nameserver 127.0.0.1
在此處顯示的 /etc/resolv.conf 中的所有其他指令之前添加了:# Generated by NetworkManager nameserver 127.0.0.1 domain cm.flowja.com search cm.flowja.com nameserver 65.183.0.76 nameserver 65.183.0.86
其他指令由 Debian 自動生成。
這是我編輯 resolve.conf 並重新啟動 BIND 後的響應。
; <<>> DiG 9.7.3 <<>> example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 60115 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;example.com. IN A ;; Query time: 3 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Oct 16 16:06:29 2011 ;; MSG SIZE rcvd: 29
現在看來,將
nameserver 127.0.0.1
指令添加到 resolv.conf 實際上導致 example.com 解析到我的 BIND 伺服器,但仍然出現問題。想法?
您的原始配置:
$TTL 3600 @ IN SOA example.com. admin.example.com. ( 2011101601 ; Serial 3600 ; Refresh 1h 60 ; Retry 1m 86400 ; Expire 1d 600 ) ; Negative Cache TTL 1h ; @ IN NS localhost. ; example.com. IN CNAME localhost. example.com. IN A 127.0.0.1
應該改成這樣:
$TTL 3600 @ IN SOA example.com. admin.example.com. ( 2011101801 ; Serial 3600 ; Refresh 1h 60 ; Retry 1m 86400 ; Expire 1d 600 ) ; Negative Cache TTL 1h ; @ IN NS ns1.example.com. ; example.com. IN A 127.0.0.1 ns1.example.com. IN A 127.0.0.1 www.example.com. IN CNAME example.com.
(您是否注意到我也更改了序列號?對於您對配置所做的每一次更改,您都需要更改序列號。它的格式是 YEARMMDD 和一個從 01 開始的兩位數 ID,每次進行更改時都需要 +1 . 例如,如果您今天對配置進行了第二次更改,則應將其更改為 2011101802,第三次更改應為 2011101803,或者如果您明天進行更改,則應為 2011101901 等等。這非常重要! )
還要確保在您的網路伺服器上,您有一個配置為 example.com 的虛擬主機
檢查您的 /etc/resolv.conf 是否指向您的本地 BIND 並且首先具有 nameserver 127.0.0.1 條目。如果您在 Gnome 中使用 debian,則網路管理器可能會覆蓋 resolv.conf。一種解決方案是通過 GUI 將名稱伺服器添加到網路管理器,但要確保它在列表中的第一位。