這篇文章主要介紹了Solaris下怎么用Bind安裝和配置DNS,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計制作、成都做網(wǎng)站、天等網(wǎng)絡(luò)推廣、成都小程序開發(fā)、天等網(wǎng)絡(luò)營銷、天等企業(yè)策劃、天等品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供天等建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
一、DNS基礎(chǔ)
DNS:Domain Name System,域名解析服務(wù)器,它在互聯(lián)網(wǎng)的作用是把域名轉(zhuǎn)換成為網(wǎng)絡(luò)可以識別的ip地址。
BIND:Berkeley Internet Name Domain,是unix中DNS協(xié)議用的最多的一個實現(xiàn)。
如blog.sina.com.cn,blog是一四級域名,sina是三級域名,com是二級域名,cn是頂級域名。一完整域名最多可以是256個字符,各級別域名最多63個字符。
DNS使用in.named進程,如果/etc/named.conf存在,系統(tǒng)啟動時會開啟in.named進程并讀取/etc/named.conf文件,in.named其實就是/usr/sbin/named的一個鏈接。
名字到地址的查找稱為正向映射;地址到名字的查找稱為反向映射。
二、DNS服務(wù)器安裝配置
以下都為Solaris平臺下用root用戶操作,不論你使用哪個發(fā)行版本的unix,DNS的設(shè)置與unix的關(guān)系并沒有太大的關(guān)系。
1、安裝BIND,當(dāng)前Release版本是bind-9.4.2.tar.gz
為了方便用于其他操作系統(tǒng),我們還是從源代碼包方式安裝。首先從ISC公司的主頁( 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)整通過--prefix參數(shù)設(shè)置,本例不用IPv6,啟動文件最后會安裝在/usr/local/sbin里:
# cd bind-9.4.2
# ./configure --prefix=/usr/local --sysconfdir=/etc --disable-ipv6
# make
# make install
安裝的時間會比較久,安裝完后看一看現(xiàn)版本是多少:
# /usr/local/sbin/named -v
到此Bind已經(jīng)安裝完成了。
2、生成RNDC(用于控制DNS服務(wù)器,Bind9有)配置文件/etc/rndc.conf
Bind9規(guī)定,如果要使用rndc來控制dns,必須先生成驗證文件 rndc.conf 和密鎖。rndc.conf文件的內(nèi)容,可用rndc-confgen命令生成所需內(nèi)容。
# /usr/local/sbin/rndc-confgen > /etc/rndc.conf
如果機器上沒有random產(chǎn)生器,這種情況下系統(tǒng)應(yīng)該讓你輸入一些無關(guān)字母來替代/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的時候要把“# 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)用安全選項;
定義日志規(guī)范;
可為一組區(qū)域應(yīng)用選項。
named.conf編寫規(guī)范:
陳述語句以;號結(jié)束;
每個陳述語句還可以包括一段{}括起來的陳述;
多行注釋為/* */;單行注釋#或//開始。
陳述語句可定義:
acl:定義一命名的IP地址匹配列表
options:控制全局服務(wù)器配置選項
zone:定義區(qū)域
先建立區(qū)域文件目錄/etc/named:
# mkdir /etc/named
配置named.conf示例:
# vi /etc/named.conf
------------------------------------------
options {
//定義區(qū)域文件目錄,表示以下各項配置中的文件默認在此目錄中
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ū)的一個名字服務(wù)器
其他記錄
有關(guān)該區(qū)中主機的數(shù)據(jù)
A 名字到地址的映射
PTR 地址到名字的映射
CNAME 別名
注釋:
使用分號(;)開頭的到行尾處結(jié)束。
設(shè)定區(qū)默認的TTL值:
名字服務(wù)器在查詢響應(yīng)中提供這個TTL值,允許其他服務(wù)器將數(shù)據(jù)在緩存中存放TTL所指定的時間。
允許的單位是: w=星期 d=天 h=小時 m=分鐘 s=秒
資源記錄格式:
[name] [ttl] [class] [type] [data]
name:域名
ttl:緩存生存時間,通常是86400(1天),也可表示成1d
class:網(wǎng)絡(luò)類別,通常IN表示互聯(lián)網(wǎng)
type:該域名的資源記錄類型
data:數(shù)據(jù),如主機名、ip、郵件地址等
資源記錄類型介紹:
; 注釋開頭
$TTL:Time To Live,緩存生存時間
SOA:Start of Authority,標(biāo)志主名城服務(wù)器、聯(lián)系信息等
NS:Name Server,名稱服務(wù)器
A:Address,指定一主機的IP
PTR:Pointer,指定一IP的主機名,用來反向解析(即把IP解析成主機名)
CNAME:Canonical Name,主機別名(如www可代替一主機名)
AAAA:quad-A,指定一主機的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ù)器上開啟in.named服務(wù)進程
# /usr/local/sbin/named 或 # /usr/local/sbin/named -c /etc/named.conf (針對named.conf沒放在默認位置/etc下的情況)
查看開啟的進程:
# ps -ef | grep named | grep -v grep
測試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。如果沒有顯示上面的信息,請檢查你的/usr/local/etc/named.conf文件里面是否配置了/usr/local/etc/rndc.conf里面的key。
查看是否有錯誤日志信息:
# 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,程序為in.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的啟動定義:只有/etc下有named.conf文件,系統(tǒng)啟動時就會將in.named啟動起來。
------------------------------------------
...
if [ -f /usr/sbin/in.named -a -f /etc/named.conf ]; then
echo 'starting internet domain name server.'
/usr/sbin/in.named &
fi
...
------------------------------------------
而我們安裝自己的bind時,往往(默認是這樣的)會將named.conf文件放到/etc下的!這就造成了我們配置好我們的bind,一啟動server,solaris預(yù)裝的bind就啟動了,我們再去啟動我們的bind就會報錯:53端口已經(jīng)被占用了。解決的辦法是修改/etc/rc2.d/S72inetsvc,將相關(guān)in.named的全部注釋掉,將我們的named增加進去。這樣,我們的dns就會在系統(tǒng)啟動時自動運行了。
另外,系統(tǒng)自帶了一個nslookup是在 /usr/sbin/ 下,安裝Bind9后帶的nslookup是在 /usr/local/bin 下的。這樣,我們系統(tǒng)里就有了兩個nslookup了。而環(huán)境變量里的PATH變量中,/usr/sbin一般是在排名比較靠前,肯定是在/usr/local/bin之前的。這樣造成了我們鍵入nslookup時,運行的是老版本的nslookup。這樣我們可能會得到報錯信息。解決的辦法是將新的nslookup覆蓋掉老的文件,或者是將環(huán)境變量調(diào)整一下,將 /usr/local/bin 放到最前面。
三、DNS客戶端的配置
1、創(chuàng)建/etc/resolv.conf文件,記錄DNS服務(wù)器的地址和域名。
一個示例的resolv.conf文件如下:
# vi /etc/resolv.conf
------------------------------------------
domain encle.com #默認的domain
nameserver 172.19.111.37 #DNS server ip
------------------------------------------
第一行是“domain 你申請的域名”,第二行是名稱服務(wù)器,其格式為“nameserver IP地址”,如果IP是127.0.0.1表示本機就是DNS服務(wù)器,該段可以是DNS的主域名稱服務(wù)器、備份域名稱服務(wù)器或緩沖名稱服務(wù)器,但是書寫時不可以超過3個服務(wù)器。
2、修改/etc/nsswitch.conf,是客戶機能夠使用DNS服務(wù),該文件記錄主機名的搜索順序等信息。
SUN客戶機缺省使用files作為服務(wù)器名字的解析,為了使用DNS名稱解析服務(wù)器,必須在 /etc/nsswitch.conf 指明使用DNS服務(wù)。
# vi /etc/nsswitch.conf
------------------------------------------
...
group: files
hosts: files dns
ipnodes: files
...
------------------------------------------
如上例,只要在hosts一項添加dns項就可以。
3、用nslookup查詢DNS服務(wù)器,驗證客戶端的設(shè)置,下載DNS數(shù)據(jù)庫。
啟動時,nslookup缺省地以本地服務(wù)器為目標(biāo)。響應(yīng)中包括目標(biāo)服務(wù)器的名字和地址。>是提示符,這意味著可以開始發(fā)送名字服務(wù)詢問或配置。
# nslookup
> ...
> exit
4、BIND相關(guān)的一些工具介紹
dig 查詢DNS服務(wù)器。
host 一個DNS查找工具。
rndc 控制BIND的操作。
rndc-confgen 生成rndc.conf文件
named-checkconf 檢查named.conf文件的語法。
named-checkzone 檢查區(qū)域文件的合法性。
lwresd 是為本地進程提供的只有緩存的名字服務(wù)器。
named 是名字服務(wù)器守護進程。
dnssec-signzone 生成帶有簽名的區(qū)域文件。
dnssec-signkey 為區(qū)域文件密鑰集生成簽名。
dnssec-keygen 是DNS密鑰生成器。
dnssec-makekeyset 利用dnssec-keygen生成的一個或多個密鑰創(chuàng)建密鑰集。
nsupdate 用于提交DNS更新請求。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Solaris下怎么用Bind安裝和配置DNS”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!