十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要介紹了Solaris下怎么用Bind安裝和配置DNS,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、天等網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、天等網(wǎng)絡(luò)營(yíng)銷、天等企業(yè)策劃、天等品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供天等建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
一、DNS基礎(chǔ)
DNS:Domain Name System,域名解析服務(wù)器,它在互聯(lián)網(wǎng)的作用是把域名轉(zhuǎn)換成為網(wǎng)絡(luò)可以識(shí)別的ip地址。
BIND:Berkeley Internet Name Domain,是unix中DNS協(xié)議用的最多的一個(gè)實(shí)現(xiàn)。
如blog.sina.com.cn,blog是一四級(jí)域名,sina是三級(jí)域名,com是二級(jí)域名,cn是頂級(jí)域名。一完整域名最多可以是256個(gè)字符,各級(jí)別域名最多63個(gè)字符。
DNS使用in.named進(jìn)程,如果/etc/named.conf存在,系統(tǒng)啟動(dòng)時(shí)會(huì)開(kāi)啟in.named進(jìn)程并讀取/etc/named.conf文件,in.named其實(shí)就是/usr/sbin/named的一個(gè)鏈接。
名字到地址的查找稱為正向映射;地址到名字的查找稱為反向映射。
二、DNS服務(wù)器安裝配置
以下都為Solaris平臺(tái)下用root用戶操作,不論你使用哪個(gè)發(fā)行版本的unix,DNS的設(shè)置與unix的關(guān)系并沒(méi)有太大的關(guān)系。
1、安裝BIND,當(dāng)前Release版本是bind-9.4.2.tar.gz
為了方便用于其他操作系統(tǒng),我們還是從源代碼包方式安裝。首先從ISC公司的主頁(yè)( http://www.isc.org/index.pl?/sw/bind/index.php )下軟件包。
解壓:
# pwd
/opt/wacos/encle
# gunzip bind-9.4.2.tar.gz
# tar -xvf bind-9.4.2.tar
配置編譯并安裝,BIND正常安裝在/usr/local目錄下,但可以調(diào)整通過(guò)--prefix參數(shù)設(shè)置,本例不用IPv6,啟動(dòng)文件最后會(huì)安裝在/usr/local/sbin里:
# cd bind-9.4.2
# ./configure --prefix=/usr/local --sysconfdir=/etc --disable-ipv6
# make
# make install
安裝的時(shí)間會(huì)比較久,安裝完后看一看現(xiàn)版本是多少:
# /usr/local/sbin/named -v
到此Bind已經(jīng)安裝完成了。
2、生成RNDC(用于控制DNS服務(wù)器,Bind9有)配置文件/etc/rndc.conf
Bind9規(guī)定,如果要使用rndc來(lái)控制dns,必須先生成驗(yàn)證文件 rndc.conf 和密鎖。rndc.conf文件的內(nèi)容,可用rndc-confgen命令生成所需內(nèi)容。
# /usr/local/sbin/rndc-confgen > /etc/rndc.conf
如果機(jī)器上沒(méi)有random產(chǎn)生器,這種情況下系統(tǒng)應(yīng)該讓你輸入一些無(wú)關(guān)字母來(lái)替代/dev/random的功能。
------------------------------------------
You must use the keyboard to create entropy, since your system is lacking
/dev/random (or equivalent)
start typing:
...............................
...........................
...........................
...........................
...........................
...........................
...........................
...........................
stop typing.
# Start of rndc.conf
...
# End of named.conf
------------------------------------------
生成的rndc.conf大致如下:
# cat /etc/rndc.conf
------------------------------------------
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "ZdAFUwS0QMr95427P7Xq+w==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "ZdAFUwS0QMr95427P7Xq+w==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
#
------------------------------------------
后面配置/etc/named.conf的時(shí)候要把“# Use with the following in named.conf, adjusting the allow list as needed:”這行下的所有復(fù)制到named.conf 文件里。
3、配置DNS服務(wù)器的引導(dǎo)文件/etc/named.conf
named.conf文件包含的內(nèi)容:
指出包含根服務(wù)器的文件位置;
建立首要服務(wù)器、輔助服務(wù)器、僅緩存服務(wù)器;
指出服務(wù)器的權(quán)威區(qū)域;
指出服務(wù)器的數(shù)據(jù)文件的位置;
為特定區(qū)域應(yīng)用安全選項(xiàng);
定義日志規(guī)范;
可為一組區(qū)域應(yīng)用選項(xiàng)。
named.conf編寫(xiě)規(guī)范:
陳述語(yǔ)句以;號(hào)結(jié)束;
每個(gè)陳述語(yǔ)句還可以包括一段{}括起來(lái)的陳述;
多行注釋為/* */;單行注釋#或//開(kāi)始。
陳述語(yǔ)句可定義:
acl:定義一命名的IP地址匹配列表
options:控制全局服務(wù)器配置選項(xiàng)
zone:定義區(qū)域
先建立區(qū)域文件目錄/etc/named:
# mkdir /etc/named
配置named.conf示例:
# vi /etc/named.conf
------------------------------------------
options {
//定義區(qū)域文件目錄,表示以下各項(xiàng)配置中的文件默認(rèn)在此目錄中
directory "/etc/named";
};
//指定根DNS服務(wù)器的配置文件/etc/named/named.root,此文件可從網(wǎng)絡(luò)下載
zone "." in {
type hint;
file "named.root";
};
//指定正向解析配置文件/etc/named/encle.zone
zone "encle.com" in {
type master;
file "encle.zone";
};
//指定反向解析配置文件/etc/named/encle.rzone,“111.19.172.”這里是根據(jù)網(wǎng)絡(luò)IP分配情況而定,是反向IP前三段
zone "111.19.172.in-addr.arpa" in {
type master;
file "encle.rzone";
};
//指定環(huán)回反向解析配置文件/etc/named/named.local
zone "0.0.127.in-addr.arpa" in {
type master;
file "named.local";
};
// 把上面生成的/etc/rndc.conf的Key和Controls段內(nèi)容拷到這里
key "rndc-key" {
algorithm hmac-md5;
secret "ZdAFUwS0QMr95427P7Xq+w==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
------------------------------------------
4、配置區(qū)域文件
區(qū)數(shù)據(jù)文件的大部分條目被稱為DNS資源記錄(resource record)。
數(shù)據(jù)文件中資源記錄的順序如下:
SOA記錄
指示該區(qū)的權(quán)威
NS記錄
該區(qū)的一個(gè)名字服務(wù)器
其他記錄
有關(guān)該區(qū)中主機(jī)的數(shù)據(jù)
A 名字到地址的映射
PTR 地址到名字的映射
CNAME 別名
注釋:
使用分號(hào)(;)開(kāi)頭的到行尾處結(jié)束。
設(shè)定區(qū)默認(rèn)的TTL值:
名字服務(wù)器在查詢響應(yīng)中提供這個(gè)TTL值,允許其他服務(wù)器將數(shù)據(jù)在緩存中存放TTL所指定的時(shí)間。
允許的單位是: w=星期 d=天 h=小時(shí) m=分鐘 s=秒
資源記錄格式:
[name] [ttl] [class] [type] [data]
name:域名
ttl:緩存生存時(shí)間,通常是86400(1天),也可表示成1d
class:網(wǎng)絡(luò)類別,通常IN表示互聯(lián)網(wǎng)
type:該域名的資源記錄類型
data:數(shù)據(jù),如主機(jī)名、ip、郵件地址等
資源記錄類型介紹:
; 注釋開(kāi)頭
$TTL:Time To Live,緩存生存時(shí)間
SOA:Start of Authority,標(biāo)志主名城服務(wù)器、聯(lián)系信息等
NS:Name Server,名稱服務(wù)器
A:Address,指定一主機(jī)的IP
PTR:Pointer,指定一IP的主機(jī)名,用來(lái)反向解析(即把IP解析成主機(jī)名)
CNAME:Canonical Name,主機(jī)別名(如www可代替一主機(jī)名)
AAAA:quad-A,指定一主機(jī)的IPv6地址
a) /etc/named/named.root
This file is used when you are connected to internet.
可從 http://www.internic.net/zones/named.root 獲得該文件的最新版本。
c) /etc/named/encle.zone
# vi /etc/named/encle.zone
------------------------------------------
; This file resolves hostnames to IP addresses in the encle.com. domain.
$ORIGIN encle.com.
$TTL 1d
encle.com. IN SOA dns.encle.com. wangnc.gmail.com. (
20080201 ; serial number
1h ; refresh
15m ; retry
1w ; expire
1d ) ; ttl
encle.com. IN NS dns.encle.com.
dns IN A 172.19.111.37
www IN A 172.19.111.40
test IN A 172.19.111.42
------------------------------------------
c) /etc/named/encle.rzone
# vi /etc/named/encle.rzone
------------------------------------------
; This file resolves IP addresses to hostnames in the encle.com. domain.
$ORIGIN 1.168.192.IN-ADDR.ARPA.
$TTL 1d
111.19.172.IN-ADDR.ARPA. IN SOA dns.encle.com. wangnc.gmail.com. (
20080201 ; serial number
3h ; refresh
1h ; retry
1w ; expire
1d ) ; ttl
111.19.172.IN-ADDR.ARPA. IN NS dns.encle.com.
37 IN PTR dns.encle.com.
40 IN PTR www.encle.com.
42 IN PTR test.encle.com.
------------------------------------------
d) /etc/named/named.local
# vi /etc/named/named.local
------------------------------------------
$ORIGIN 0.0.127.IN-ADDR.ARPA.
$TTL 1d
0.0.127.IN-ADDR.ARPA. IN SOA dns.encle.com. wangnc.gmail.com. (
20080201 ; version number
3h ; refresh
1h ; retry
1w ; expire
1d ) ; ttl
0.0.127.IN-ADDR.ARPA. IN NS dns.encle.com.
1 IN PTR localhost.encle.com.
------------------------------------------
5、檢查配置文件
# /usr/local/sbin/named-checkconf /etc/named.conf
# /usr/local/sbin/named-checkzone encle.com /etc/named/encle.zone
6、在主DNS服務(wù)器上開(kāi)啟in.named服務(wù)進(jìn)程
# /usr/local/sbin/named 或 # /usr/local/sbin/named -c /etc/named.conf (針對(duì)named.conf沒(méi)放在默認(rèn)位置/etc下的情況)
查看開(kāi)啟的進(jìn)程:
# ps -ef | grep named | grep -v grep
測(cè)試rndc是否成功:
# /usr/local/sbin/rndc status
number of zones: 14
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
表示rndc已經(jīng)成功控制Bind9。如果沒(méi)有顯示上面的信息,請(qǐng)檢查你的/usr/local/etc/named.conf文件里面是否配置了/usr/local/etc/rndc.conf里面的key。
查看是否有錯(cuò)誤日志信息:
# tail -f /var/adm/messages
Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.notice] starting BIND 9.4.2
Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.error] binding TCP socket: address in use
Jan 30 14:26:54 fsdb37 last message repeated 1 time
Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.notice] command channel listening on 127.0.0.1#953
Jan 30 14:26:54 fsdb37 named[15667]: [ID 873579 daemon.notice] running
注意:
solaris8&9版本中預(yù)裝的有bind,目錄在/usr/sbin,程序?yàn)閕n.named,也有自己的nslookup等程序,可以看它的版本:
# /usr/sbin/in.named -v
in.named BIND 8.2.4 Fri May 19 04:41:53 PDT 2006
Generic Patch-5.8-May 2006
而且在/etc/rc2.d/S72inetsvc中有in.named的啟動(dòng)定義:只有/etc下有named.conf文件,系統(tǒng)啟動(dòng)時(shí)就會(huì)將in.named啟動(dòng)起來(lái)。
------------------------------------------
...
if [ -f /usr/sbin/in.named -a -f /etc/named.conf ]; then
echo 'starting internet domain name server.'
/usr/sbin/in.named &
fi
...
------------------------------------------
而我們安裝自己的bind時(shí),往往(默認(rèn)是這樣的)會(huì)將named.conf文件放到/etc下的!這就造成了我們配置好我們的bind,一啟動(dòng)server,solaris預(yù)裝的bind就啟動(dòng)了,我們?cè)偃?dòng)我們的bind就會(huì)報(bào)錯(cuò):53端口已經(jīng)被占用了。解決的辦法是修改/etc/rc2.d/S72inetsvc,將相關(guān)in.named的全部注釋掉,將我們的named增加進(jìn)去。這樣,我們的dns就會(huì)在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行了。
另外,系統(tǒng)自帶了一個(gè)nslookup是在 /usr/sbin/ 下,安裝Bind9后帶的nslookup是在 /usr/local/bin 下的。這樣,我們系統(tǒng)里就有了兩個(gè)nslookup了。而環(huán)境變量里的PATH變量中,/usr/sbin一般是在排名比較靠前,肯定是在/usr/local/bin之前的。這樣造成了我們鍵入nslookup時(shí),運(yùn)行的是老版本的nslookup。這樣我們可能會(huì)得到報(bào)錯(cuò)信息。解決的辦法是將新的nslookup覆蓋掉老的文件,或者是將環(huán)境變量調(diào)整一下,將 /usr/local/bin 放到最前面。
三、DNS客戶端的配置
1、創(chuàng)建/etc/resolv.conf文件,記錄DNS服務(wù)器的地址和域名。
一個(gè)示例的resolv.conf文件如下:
# vi /etc/resolv.conf
------------------------------------------
domain encle.com #默認(rèn)的domain
nameserver 172.19.111.37 #DNS server ip
------------------------------------------
第一行是“domain 你申請(qǐng)的域名”,第二行是名稱服務(wù)器,其格式為“nameserver IP地址”,如果IP是127.0.0.1表示本機(jī)就是DNS服務(wù)器,該段可以是DNS的主域名稱服務(wù)器、備份域名稱服務(wù)器或緩沖名稱服務(wù)器,但是書(shū)寫(xiě)時(shí)不可以超過(guò)3個(gè)服務(wù)器。
2、修改/etc/nsswitch.conf,是客戶機(jī)能夠使用DNS服務(wù),該文件記錄主機(jī)名的搜索順序等信息。
SUN客戶機(jī)缺省使用files作為服務(wù)器名字的解析,為了使用DNS名稱解析服務(wù)器,必須在 /etc/nsswitch.conf 指明使用DNS服務(wù)。
# vi /etc/nsswitch.conf
------------------------------------------
...
group: files
hosts: files dns
ipnodes: files
...
------------------------------------------
如上例,只要在hosts一項(xiàng)添加dns項(xiàng)就可以。
3、用nslookup查詢DNS服務(wù)器,驗(yàn)證客戶端的設(shè)置,下載DNS數(shù)據(jù)庫(kù)。
啟動(dòng)時(shí),nslookup缺省地以本地服務(wù)器為目標(biāo)。響應(yīng)中包括目標(biāo)服務(wù)器的名字和地址。>是提示符,這意味著可以開(kāi)始發(fā)送名字服務(wù)詢問(wèn)或配置。
# nslookup
> ...
> exit
4、BIND相關(guān)的一些工具介紹
dig 查詢DNS服務(wù)器。
host 一個(gè)DNS查找工具。
rndc 控制BIND的操作。
rndc-confgen 生成rndc.conf文件
named-checkconf 檢查named.conf文件的語(yǔ)法。
named-checkzone 檢查區(qū)域文件的合法性。
lwresd 是為本地進(jìn)程提供的只有緩存的名字服務(wù)器。
named 是名字服務(wù)器守護(hù)進(jìn)程。
dnssec-signzone 生成帶有簽名的區(qū)域文件。
dnssec-signkey 為區(qū)域文件密鑰集生成簽名。
dnssec-keygen 是DNS密鑰生成器。
dnssec-makekeyset 利用dnssec-keygen生成的一個(gè)或多個(gè)密鑰創(chuàng)建密鑰集。
nsupdate 用于提交DNS更新請(qǐng)求。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Solaris下怎么用Bind安裝和配置DNS”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!