1、配置解析一個正向區域:web
以bucktan.com域爲例:數據庫
1.1 定義區域安全
在主配置文件中(/etc/named.conf)或主配置文件輔助配置文件(/etc/named.rfc1912.zones)中實現;服務器
zone "ZONE_NAME" IN {網絡
type {master|slave|hint(根服務器)|forward(轉發)};ide
file "ZONE_NAME.zone"; 學習
};spa
注意:區域名字即爲域名;日誌
eg:zone "bucktan.com" IN {遞歸
type master;
file "bucktan.com.zone";
};
1.2創建區域數據文件(主要記錄爲A或AAAA記錄)
在/var/named目錄下創建區域數據文件;
文件爲:/var/named/bucktan.com.zone
eg:$TTL 3600
$ORIGIN bucktan.com.
@ IN SOA ns1.bucktan.com. nsadmin.bucktan.com. (
2018010109
1H
10M
1W
1D )
@ IN NS ns1
ns1 IN A 172.18.26.7
www IN A 172.18.26.7
web IN CNAME www
權限及屬組修改:
# chgrp named /var/named/bucktan.com.zone
# chmod o= /var/named/bucktan.com.zone
eg:-rw-r-----. 1 root named 362 Apr 16 18:11 bucktan.com.zone
檢查語法錯誤:
# named-checkzone ZONE_NAME ZONE_FILE
# named-checkconf
1.3讓服務器重載配置文件和區域數據文件
# rndc reload 或
# systemctl reload named.service
注:一、在解析時注意修改區域數據文件的權限,由於在解析時是由named用戶去解析的且權限最好爲640
二、在上述操做徹底正常的狀況下若是不能正常解析,能夠查看配置文件(/etc/named.conf)中監聽是否正確,在這裏注意若是隻監聽(通訊)某一個主機,則可添加它的ip地址,若是要監聽全部的(即與全部的主機通訊),則能夠將其註釋掉。
三、在學習中,建議關閉dnssec
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
與別的主機通訊時,注意要註釋掉//allow-query { localhost; };
四、若是自身是不能解析,就檢查dns配置文件(/etc/resolv.conf)設置爲本身的主機,在實際中設置爲可用的dns服務便可
2、配置解析一個反向區域
2.1定義區域
在主配置文件中或主配置文件輔助配置文件中實現;
zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};
eg:zone "26.18.172.in-addr.arpa" IN {
type master;
file "172.18.26.7.zone";
};
注意:反向區域的名字
反寫的網段地址.in-addr.arpa
如:100.16.172.in-addr.arpa
2.2定義區域解析庫文件(主要記錄爲PTR)
示例,區域名稱爲26.18.172.in-addr.arpa;
eg:$TTL 3600
$ORIGIN 26.18.172.in-addr.arpa.
@ IN SOA ns1.bucktan.com nsadmin.bucktan.com. (
2018010203
1H
10M
1W
12H )
IN NS ns1.bucktan.com.
7 IN PTR ns1.bucktan.com.
8 IN PTR ns2.bucktan.com.
9 IN PTR new.bucktan.com.
10 IN PTR bbs.bucktan.com.
權限及屬組修改:
# chgrp named /var/named/172.16.100.zone
# chmod o= /var/named/172.16.100.zone
eg:-rw-r-----. 1 root named 408 Apr 16 18:38 172.18.26.7.zone
檢查語法錯誤:
# named-checkzone ZONE_NAME ZONE_FILE
# named-checkconf
2.3讓服務器重載配置文件和區域數據文件
# rndc reload 或
# systemctl reload named.service
注:反向區域解析跟正向的同樣要注意
3、主從服務器:
注意:從服務器是區域級別的概念;主從結構當中,它只是區域級別的概念,若是一臺主服務器上面有三個區域,
他們都是主的,若是配置一臺服務器作他的從服務器時,是相對於它的某個區域配置的,而不是相對於整臺服務器配置的,因此,它若是是第一個區域的從,那麼在從服務器上它只有第一個區域的副本,若是想成爲三個區域的從,那麼三臺都要配置。
若是一臺服務器它既是正向的主,又是反向的主,它既提供了正向區域的解析又提供了反向區域的解析,那麼這個時候從服務器若是隻配置了正向區域的從,那麼反向區域跟他是沒有關係的,就不能解析反向區域,因此,若是要讓一臺服務器既是正向的也是反向的解析,那麼它們就要分別配置。
複製還能夠級聯,就是第二臺服務器能夠去主服務器複製,第三臺也可做爲第二臺的從服務器,從而複製
配置一個從區域:(換一臺主機)
On Slave
(1) 定義區域
定義一個從區域;
zone "ZONE_NAME" IN {
type slave;
file "slaves/ZONE_NAME.zone";
masters { MASTER_IP; };
};
配置文件語法檢查:named-checkconf
eg:zone "bucktan.com" IN {
type slave;
file "slaves/bucktan.com.zone";
masters { 172.18.26.7; };
};
(2) 重載配置
rndc reload
systemctl reload named.service
注:/var/named/slaves:此目錄專用於從服務器從主服務器那裏同步的文件,須要自動的建立文件時使用的。
On Master
(1) 確保區域數據文件中爲每一個從服務器配置NS記錄,而且在正向區域文件須要每一個從服務器的NS記錄的主機名配置一個A記錄,且此A後面的地址爲真正的從服務器的IP地址;
注意:時間要同步;
ntpdate命令;
eg:$TTL 3600
$ORIGIN bucktan.com.
@ IN SOA ns1.bucktan.com. nsadmin.bucktan.com. (
2018010109
1H
10M
1W
1D )
@ IN NS ns1
@ IN NS ns2##此處添加了一個NS記錄
ns1 IN A 172.18.26.7
ns2 IN A 172.18.26.8##此處添加了一個A記錄
www IN A 172.18.26.7
web IN CNAME www
只要有主從,那麼每更改一次都要改序列號
主從服務中應該注意的事項,和遇到問題時的解決辦法:
1.只要有主從,那麼每更改一次都要改序列號
二、在學習中,若是不能傳送文件時,能夠檢查防火牆是否關閉,同時也能夠經過日誌文件(/var/log/messages)查看情況
三、其它的注意的就跟正向區域解析中注意的事項同樣
四、在通訊鏈接成功以後要注意時間要同步,可用ntpdate命令。
4、子域受權:
正向解析區域受權子域的方法:定義一個子域
ops.bucktan.com. IN NS ns1.ops.bucktan.com.
ops.bucktan.com. IN NS ns2.ops.bucktan.com.
ns1.ops.magedu.com. IN A IP.AD.DR.ESS
ns2.ops.magedu.com. IN A IP.AD.DR.ESS
eg:@ IN NS ns2
ops IN NS ns3.ops.bucktan.com. ##此爲添加的三級域域名
ns1 IN A 172.18.26.7
ns2 IN A 172.18.26.8 ###此爲三級域ip
ns3.ops IN A 172.18.26.20
注:一、在父域裏添加一個NS記錄以及A記錄,如上
二、子域要用另外一個主機(ip),定義一個子域方法跟定義一個正向解析區域同樣,
eg:定義區域
zone "ops.bucktan.com" IN {
type master;
file "ops.bucktan.com.zone";
};
定義區域解析庫文件(文件在/var/named/目錄下且名字爲ops.bucktan.com.zone)
$TTL 3600
$ORIGIN ops.bucktan.com.
@ IN SOA ns.ops.bucktan.com. nsadmin.ops.bucktan.com. (
2018010301
1H
10M
1W
10H )
IN NS ns1
ns1 IN A 172.18.26.20
www IN A 172.18.26.20
web IN CNAME www
5、定義轉發:
注意:被轉發的服務器必須容許爲當前服務作遞歸;
5.1 區域轉發:僅轉發對某特定區域的解析請求;
定義方式:
zone "ZONE_NAME" IN {
type forward;
forward {first|only};
forwarders { SERVER_IP(轉發器); };
};
first:本身解析不了就首先轉發;轉發器不響應時,自行去迭代查詢;
only:只轉發;
對於子域而言,它不知道父域在哪裏就能夠定義一個區域轉發
eg:zone "bucktan.com" IN {
type forward;
forward only;
forwarders { 172.18.26.7; 172.18.26.8; };
};(注:這是在子域的主機172.18.26.20中配置文件定義的)
注:一、父域能解析子域,子域也能解析父域。
子域不能上網的狀況下要解析外網就不行,但若是父域主機能上網,這時子域的請求就會轉發給父域達到能解析的要求
5.2全局轉發:針對凡本地沒有經過zone定義的區域查詢請求,統統轉給某轉發器;
在配置文件中編輯/etc/named.conf
在options中加以下內容:
options {
... ...
forward {only|first};
forwarders { SERVER_IP; };
.. ...
};
6、bind中的安全相關的配置:
acl(訪問控制列表);把一個或多個地址歸併一個命名的集合,隨後經過此名稱便可對此集合內的全部主機實現統一調用;
acl acl_name {
ip;
net/prelen(掩碼);
};
注:也是將此加在配置文件/etc/named.conf中
示例:
acl mynet {
172.18.0.0/16;
127.0.0.0/8;
};
bind有四個內置的acl
none:沒有一個主機;
any:任意主機;
local:本機;
localnet:本機所在的IP所屬的網絡;
訪問控制指令:
allow-query {}; 容許查詢的主機;白名單;
注:這是容許那些主機能夠來查詢本身
allow-transfer {}; 容許向哪些主機作區域傳送;默認爲向全部主機;應該配置爲僅容許從服務器(爲了安全)
注:以上兩個能夠寫在全局和區域中,只是做用範圍不一樣而已
allow-recursion {}; 容許哪些主機向當前DNS服務器發起遞歸查詢請求;
通常只容許本地的作遞歸查詢
allow-update {}; DDNS,容許動態更新區域數據庫文件中內容;
通常爲none
eg:allow-recursion { mynet }