CentOS7系統安裝DNS服務

CentOS7系統安裝DNS服務linux

30.一、DNS是什麼?

DNS ( Domain Name System )是「域名系統」的英文縮寫,簡單來講就是一個數據庫,用於存儲網絡中IP地址與主機名的對應關係;簡單的說DNS的做用就是把主機名解析爲IP地址;以下圖:web

30.1.一、DNS層級結構

域名系統做爲一個層次結構和分佈式數據庫,包含各類類型的數據,包括主機和域名。DNS數據庫中的名稱造成一個分層的樹狀結構;域名在拼裝時,是沿着這顆樹的最下面往樹根上走的;例如:www.baidu.com,其實改餘名的完整寫法應該是:www.baidu.com. 注意域名最後面有一個 ".";數據庫

30.二、DNS查詢過程

假設咱們第一次經過瀏覽器訪問www.baidu.com這個域名。DNS如何查找到www.baidu.com這臺主機呢?以下vim

  • 第一步:當咱們在瀏覽器中輸入www.baidu.com後咱們的我的電腦首先在本機查找hosts文件中是否有www.baidu.com的指向,若是有則直接訪問www.baidu.com所對應的主機;若是沒有在查找本DNS緩存中是否有以前的查詢記錄。若是都沒有則將請求交給本地首先DNS指向的本地DNS服務器爲咱們查詢。進入第二步;
  • 第二步:本地DNS接收到查詢請求後首先看www.baidu.com是不是本身負責解析的域,若是是則將結果返回給用戶主機,若是不是本身負責的區域,則查看DNS服務器數據庫緩存中是否有以前的解析記錄;若是有則將查詢結果返回給用戶主機;若是沒有則由本地DNS服務器向根DNS服務器查詢;進入第三步;
  • 第三步:本地DNS服務器向 「.」 根DNS服務器查詢www.baidu.com域名,根收到請求後查看該域名由哪一個頂級域負責受權,根自己不負責,因而將.com所在服務器的IP地址返回一個給本地DNS服務器;說你去找.com吧這個事它負責;進入第四步;
  • 第四步:本地DNS服務器拿到.com域的地址後就去找.com,.com收到請求後發現它也不知道www.baidu.com在哪,可是它知道baidu.com;因而.com將baidu.com這個域所在服務器的地址返回給本地DNS服務器,說你去找baidu.com吧,這個事它負責;進入第五步;
  • 第五步:本地DNS拿到地址後,向baidu.com發起請求,baidu.com收到請求後發現正是本身負責的區域,因而將www.baidu.com所在服務器的地址返回給本地DNS服務器;進入第6步;
  • 第六步:本地DNS收到返回的請求後,將結果返回給用戶主機而且緩存到本地一份;因而本地用戶主機就拿着地址找到了www.baidu.com;

30.2.一、DNS查詢類型

  • 遞歸查詢:本地主機向本地DNS服務器查詢的階段;第一步到第二步屬於遞歸查詢;
  • 迭代查詢:本地DNS服務器向根域、頂級域、二級域查詢的階段,第三步到第五步就屬於迭代查詢;

30.三、DNS服務器類型

負責至少解析一個域centos

主名稱服務器瀏覽器

輔助名稱服務器緩存

不負責域解析安全

緩存名稱服務器服務器

30.四、主-輔DNS服務器

  • 主DNS:維護所負責解析的域數據庫的那臺服務器;讀寫操做都可執行;
  • 從DNS:從主DNS服務器那裏或其它的從DNS那裏複製一份解析庫;但只能進行讀操做;

30.4.一、複製操做的實施方式

  1. 序列號:serial,也便是數據庫的版本號,主服務器數據內容發生變化時,其版本號要遞增;
  2. 刷新時間間隔:refresh,從服務器每隔多久向主服務器檢查序列號更新狀況;
  3. 重試時間間隔:retry,從服務器從主服務器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔;應小於刷新時間間隔;
  4. 過時時長:expire,從服務器始終聯繫不到主服務器時,多久以後放棄從主服務器同步數據;中止提供服務;
  5. 否認答案的緩存時長;minimum

30.4.二、區域傳送

  • 全量傳送:axfr,傳送整個數據庫;
  • 增量傳送:lxfr,僅傳送變化的數據;

30.4.三、區域(zone)和域(domain)

  • 正向解析庫:FQDN —> IP
  • 反向解析庫:IP —> FQDN

30.五、資源記錄

資源記錄(Resource Record):簡稱rr;經常使用的資源記錄類型有:A, AAAA, PTR, SOA, MX, CNAME, NS;網絡

  • SOA:起始受權記錄;一個區域解析庫有且只能有一個SOA記錄,並且必須放在第一條;
  • NS:域名服務記錄;一個區域解析庫能夠有多個NS記錄;其中一個爲主的;
  • A:地址記錄,FQDN —> IP
  • AAAA:地址記錄,FQDN —> IPv6
  • MX:郵件交換器;優先級0-99,數字越小優先級越高;
  • CNAME:別名記錄;
  • PTR:地址記錄,IP —> FQDN;

30.5.一、定義資源記錄的格式

語法格式

name    [TTL]       IN      RR_TYPE     VALUE

# RR_TYPE:替換爲指定的資源記錄類型;
  • SOA記錄定義格式

name:當前區域的名字;例如:「enzhi.com.」,或者 "1.168.192.in-addr.arpa";

value:由多部分組成

​ 1.當前區域的區域名稱(也可使用主DNS服務器名稱);

​ 2.當前區域的管理員的郵箱地址;但地址中不能使用@符號,通常使用"."來替代;

​ 3.(主從服務協調屬性的定義以及否認答案的TTL)

例如:

enzhi.com.  86400   IN      SOA     enzhi.com.  admin.enzhi.com.(
            2017011901  ;serial
            2H          ;refresh
            10M         ;retry
            3D          ; expire
            1D)         ;minimum
  • NS記錄定義格式

name:當前區域的區域名稱;

value:當前區域的某DNS服務器的名字;例如:ns1.enzhi.com.;

注意:一個區域能夠有多個NS記錄;

例如:

enzhi.com.  86400   IN  NA  ns1.enzhi.com.
enzhi.com.  86400   IN  NA  ns2.enzhi.com.
  • MX記錄定義格式

name:當前區域的名稱;

value:當前區域某郵件交換器的主機名;

注意:MX記錄能夠有多個,但每一個記錄的value以前應該有一個數字表示其優先級;

例如:

enzhi.com   86400   IN  MX  10  mail.enzhi.com.
  • A記錄定義格式

name:某FQDN,例如:www.enzhi.com.;

value:某IPv4地址;

例如:

www.enzhi.com.  86400   IN  A   192.168.1.141
www.enzhi.com.  86400   IN  A   192.168.1.142
bbs.enzhi.com.  86400   IN  A   192.168.1.143
  • PTR記錄定義格式

name:IP地址,有特定格式,IP反過來寫,並且加特定後綴;例如:192.168.1.141的記錄應該寫爲141.1.168.192.in-addr.arpa;

vlaue:FQDN

例如:

141.1.168.192.in-addr.arpa.     86400   IN  PTR     www.enzhi.com.
  • CNAME記錄定義格式

name:FQDN格式的別名;

value:FQDN格式的正式名字;

例如:

web.enzhi.com.      86400   IN  CNAME   www.enzhi.com.

注意:

一、TTL的值能夠從全局繼承;只要在第一行加$TTL 86400下面全部的資源記錄均可以繼承;
二、@符號表示當前區域的名稱;
三、相鄰的兩條記錄其name相同時後面的能夠省略;
四、MX,NS等類型的記錄的value爲一個FQDN,此FQDN應該有一個A記錄;

30.六、安裝bind並提供域名解析服務

Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server;bind是dns協議的一種實現;其運行後的程序名爲named;

注意:本文演示環境爲centos7.2系統環境;

30.6.一、bind的程序包

  • bind-libs:被bind和bind-utils包中的程序共同用到的庫文件;
  • bind-utils:bind客戶端程序集;提供了,dig , host, nslookup等相關工具;
  • bind:提供 dns server程序,以及幾個經常使用的測試程序;
  • bind-chroot:選裝;提供了一種安全機制;一般公司內部使用不須要安裝;

30.6.二、安裝bind

yum -y install bind

bind服務的主配置文件:/etc/named.conf

​ 或包含進來的其它文件:

​ /etc/named.iscdlv.key

​ /etc/named.rfc1912.zones

​ /etc/named.root.key

解析庫文件:/var/named/目錄下;通常名字爲:ZONE_NAME.zone

注意:

一、一臺DNS服務器可同時爲多個區域提供解析;

二、必需要有根區域解析庫文件:named.ca;

三、還應該有兩個區域解析庫文件:localhost和127.0.0.1的正反向解析庫;

​ 正向:named.localhost

​ 方向:named.loopback

rndc命令

默認監聽在127.0.0.1的tcp/953端口,所以僅容許本地使用;

注意:bind程序安裝完成後,默認便可做爲緩存服務器使用;若是沒有專門負責解析的區域,直接可啓動服務;

啓動服務方法

CentOS6:service named start
CentOS7:systemctl start named.service

主配置文件的格式

# 全局配置段
options{...}
# 日誌配置段
logging{...}
# 區域配置段
zone{...}

注意:每一個配置語句必須以分號結尾;不然爲語法錯誤;

30.6.三、緩存服務器的配置

安裝完bind之後默認啓動就是緩存服務器;僅須要關閉部分不須要的功能便可;

一、配置監聽能與外部主機通訊的IP地址;

# 在全局配置段中修改
[root@Bj-1-141 ~]# vim /etc/named.conf
    listen-on port 53 { 127.0.0.1; 192.168.1.141; };

二、學習時建議關閉部分功能

# 關閉dnssec部分
//dnssec-enable yes;
//dnssec-validation yes;
# 關閉僅容許本地查
//allow-query     { localhost; };

注意://表示註釋符號

三、檢查配置文件是否有語法錯誤

named-checkconf [/etc/named.conf]

四、啓動named服務

[root@Bj-1-141 ~]# systemctl start named.service

五、測試

[root@Bj-1-141 ~]# dig -t A www.baidu.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.baidu.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57431
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.         IN  A

;; ANSWER SECTION:
www.baidu.com.      1200    IN  CNAME   www.a.shifen.com.
www.a.shifen.com.   300 IN  A   119.75.218.70
www.a.shifen.com.   300 IN  A   119.75.217.109

;; AUTHORITY SECTION:
a.shifen.com.       1200    IN  NS  ns2.a.shifen.com.
a.shifen.com.       1200    IN  NS  ns1.a.shifen.com.
a.shifen.com.       1200    IN  NS  ns5.a.shifen.com.
a.shifen.com.       1200    IN  NS  ns4.a.shifen.com.
a.shifen.com.       1200    IN  NS  ns3.a.shifen.com.

;; ADDITIONAL SECTION:
ns2.a.shifen.com.   1200    IN  A   180.149.133.241
ns3.a.shifen.com.   1200    IN  A   61.135.162.215
ns5.a.shifen.com.   1200    IN  A   119.75.222.17
ns1.a.shifen.com.   1200    IN  A   61.135.165.224
ns4.a.shifen.com.   1200    IN  A   115.239.210.176

;; Query time: 277 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 18:08:58 CST 2017
;; MSG SIZE  rcvd: 271

30.七、測試工具

dig , host, nslookup;若是當前系統上沒有此三個命令,須要安裝bind-utils軟件包;

30.7.一、dig命令

功用:用於測試dns系統,所以其不會查詢hosts文件;

使用格式

dig [-t RR_TYPE] name   [@server]   [query options]

查詢選項

+[no]trace:跟蹤解析過程;
+[no]recurse:進行遞歸解析;

反向解析

dig -x IPADDR

模擬徹底區域傳送

dig -t axfr DOMAIN  [@server]

示例

# 查詢baidu.com的NS記錄
[root@Bj-1-141 ~]# dig -t NS baidu.com
# 跟蹤解析www.baidu.com的過程
[root@Bj-1-141 ~]# dig +trace www.baidu.com
# 解析www.baidu.com的A記錄
[root@Bj-1-141 ~]# dig -t A www.baidu.com

30.7.二、host命令

使用格式

host [-t RR_TYPE] name SERVER_IP

示例

# 解析www.jd.com的A記錄
[root@Bj-1-141 ~]# host -t A www.jd.com
www.jd.com is an alias for www.jdcdn.com.
www.jdcdn.com has address 59.108.139.1

30.7.三、nslookup命令

使用格式

nslookup [-opthions] [name] [server]

交互式模式下使用方式

# 命令行下直接輸入nslookup
nslookup>
    server ip:server爲關鍵字,以指定的IP爲dns服務器進行查詢;
    set q=RR_TYPE:set q= 爲關鍵字,RR_TYPE爲要查詢的資源類型;
    name:要查詢的域名;

示例

[root@Bj-1-141 ~]# nslookup
> server 192.168.1.1
Default server: 192.168.1.1
Address: 192.168.1.1#53
> set q=A
> www.baidu.com
Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 119.75.218.70
Name:   www.a.shifen.com
Address: 119.75.217.109

30.7.四、rndc命令

功用:named服務控制命令

rndc    status
rndc    flush

30.八、配置解析一個正向區域

演示環境

操做系統版本 DNS服務器IP地址 演示域 內核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64

注意:以enzhi.com爲列;

30.8.一、定義區域

在主配置文件中實現或主配置文件輔助配置文件中實現:/etc/named.conf或者/etc/named.rfc1912.zones

格式

zone "ZONE_NAME" IN {
  type {master|slave|hint|forward};
  file "ZONE_NAME.zone";
};

示例

[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones
# 在對下面添加
zone "enzhi.com." IN {
    type master;
    file "enzhi.com.zone";
};

注意:區域名字即爲域名;

30.8.二、創建區域數據文件

主要記錄爲A或 AAAA;在/var/named/目錄下創建區域數據文件;

一、建立正向區域文件

[root@Bj-1-141 ~]# cd /var/named/
[root@Bj-1-141 named]# vim enzhi.com.zone
$TTL 3600
$ORIGIN enzhi.com.
@       IN      SOA     enzhi.com.  admin.enzhi.com. (
                2017011901
                1H
                10M
                3D
                1D)

        IN      NS      ns1.enzhi.com.
        IN      MX  10  mail.enzhi.com.
ns1     IN      A       192.168.1.141
mail    IN      A       192.168.1.142
www     IN      A       192.168.1.143
bbs     IN      A       192.168.1.144
bbs     IN      A       192.168.1.145

注意:

$TTL 3600:表示定義默認TTL值,因此在下面的全部資源記錄都不用在寫TTL值;
$ORIGIN enzhi.com.:做用是在資源記錄中像"ns1.enzhi.com."就能夠簡寫爲ns1,會繼承$ORIGIN後面定義的域名;

二、修改區域文件的權限及屬組

# 修改區域文件的屬組爲named用戶
[root@Bj-1-141 named]# chown :named enzhi.com.zone
# 修改區域文件的權限爲640
[root@Bj-1-141 named]# chmod 640 enzhi.com.zone

三、檢查配置文件和區域文件是否有語法錯誤

[root@Bj-1-141 named]# named-checkconf
[root@Bj-1-141 named]# named-checkzone enzhi.com. /var/named/enzhi.com.zone
zone enzhi.com/IN: loaded serial 2017011901
OK

30.8.三、讓服務器重載配置文件和區域文件

[root@Bj-1-141 ~]# rndc reload
server reload successful
# 或者執行
[root@Bj-1-141 ~]# systemctl reload  named.service

30.8.四、測試

一、解析www.enzhi.com的A記錄;

[root@Bj-1-141 ~]# dig -t A www.enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40269
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.enzhi.com.         IN  A

;; ANSWER SECTION:
www.enzhi.com.      3600    IN  A   192.168.1.143

;; AUTHORITY SECTION:
enzhi.com.      3600    IN  NS  ns1.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141

;; Query time: 0 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:06:12 CST 2017
;; MSG SIZE  rcvd: 92

二、解析enzhi.com的NS記錄;

[root@Bj-1-141 ~]# dig -t NS enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27289
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;enzhi.com.         IN  NS

;; ANSWER SECTION:
enzhi.com.      3600    IN  NS  ns1.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141

;; Query time: 34 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:08:53 CST 2017
;; MSG SIZE  rcvd: 72

30.九、配置解析一個反向區域

演示環境

操做系統版本 DNS服務器IP地址 演示域 內核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64

30.9.一、定義區域

在主配置文件中實現或主配置文件輔助配置文件中實現:/etc/named.conf或者/etc/named.rfc1912.zones

格式

zone "ZONE_NAME" IN {
    type {master|slave|hint|forward};
    file "ZONE_NAME.zone";
};

注意:反向區域的名字,爲反寫的網斷地址.in-addr.arpa;例如:1.168.192.in-addr.arpa;

示例

[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones
# 在最下面添加
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.zone";
};

30.9.二、創建區域解析庫文件(主要記錄爲PTR)

一、建立反向解析區域文件;

[root@Bj-1-141 ~]# cd /var/named/
[root@Bj-1-141 named]# vim 192.168.1.zone
$TTL 3600
$ORIGIN 1.168.192.in-addr.arpa.
@       IN      SOA     enzhi.com.  admin.enzhi.com. (
                2017011901
                1H
                10M
                3D
                1D)
        IN      NS      ns1.enzhi.com.
141     IN      PTR     ns1.enzhi.com.
142     IN      PTR     mail.enzhi.com.
143     IN      PTR     www.enzhi.com.
144     IN      PTR     bbs.enzhi.com.
145     IN      PTR     bbs.enzhi.com.

二、修改區域文件屬組及權限

[root@Bj-1-141 named]# chmod 640 192.168.1.zone

[root@Bj-1-141 named]# chown :named 192.168.1.zone

三、檢查配置文件及反向區域文件配置語法

[root@Bj-1-141 ~]# named-checkconf
[root@Bj-1-141 ~]# named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.zone
zone 1.168.192.in-addr.arpa/IN: loaded serial 2017011901
OK

30.9.三、重載配置文件和區域文件

[root@Bj-1-141 ~]# rndc reload
server reload successful
# 或者執行
[root@Bj-1-141 ~]# systemctl reload  named.service

30.9.四、測試

一、反向解析www.enzhi.com域名的IP地址

[root@Bj-1-141 ~]# dig -x 192.168.1.143 @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -x 192.168.1.143
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57138
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;143.1.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
143.1.168.192.in-addr.arpa. 3600 IN PTR www.enzhi.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 3600    IN  NS  ns1.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141

;; Query time: 0 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:27:39 CST 2017
;; MSG SIZE  rcvd: 116

二、反向解析mail.enzhi.com的IP地址;

[root@Bj-1-141 ~]# dig -x 192.168.1.142 @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -x 192.168.1.142 @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51427
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;142.1.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
142.1.168.192.in-addr.arpa. 3600 IN PTR mail.enzhi.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 3600    IN  NS  ns1.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141

;; Query time: 0 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:28:57 CST 2017
;; MSG SIZE  rcvd: 117

30.十、配置主從服務器

主服務器的安裝和配置這裏不在演示根據上面配置正向解析和反向解析後在配置從便可;

注意:從服務器時區域級別的概念;每次修改主服務器區域配置文件序列號要加1;兩臺服務器要作時間同步

演示環境

操做系統版本 主DNS服務器IP地址 演示域 內核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64
操做系統版本 從DNS服務器IP地址 演示域 內核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.142 enzhi.com 3.10.0-327.el7.x86_64

30.10.一、安裝配置從服務器

一、安裝bind軟件包

[root@BJ-1-142 ~]# yum -y install bind bind-utils

二、修改主配置文件

[root@BJ-1-142 ~]# vim /etc/named.conf
# 修改options全局配置段
listen-on port 53 { 127.0.0.1; 192.168.1.142; };
# 關閉容許查詢
//allow-query     { localhost; };
# 關閉dnssec部分功能
//dnssec-enable yes;
//dnssec-validation yes;

三、定義區域

格式:

zone "ZONE_NAME" IN {
    type slave;
    file "slaves/ZONE_NAME.zone";
    masters { MASTER_IP; };
};

示例:

[root@BJ-1-142 ~]# vim /etc/named.rfc1912.zones
zone "enzhi.com" IN {
    type slave;
    file "slaves/enzhi.com.zone";
    masters { 192.168.1.141; };
};

zone "1.168.192.in-addr.arpa" IN {
    type slave;
    file "slaves/192.168.1.zone";
    masters { 192.168.1.141; };
};

四、配置文件語法檢查

[root@BJ-1-142 ~]# named-checkconf

五、啓動named服務

[root@BJ-1-142 ~]# systemctl start named.service
[root@BJ-1-142 ~]# rndc status
version: 9.9.4-RedHat-9.9.4-38.el7_3.1 <id:8f9657aa>
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 103
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

30.10.二、修改主dns服務器區域數據文件

一、確保區域數據文件中爲每一個從服務器配置NS記錄;而且在正向區域文件中,須要爲每一個從服務器的NS記錄的主機名配置一個A記錄,且此A記錄後面的地址爲真正的從服務器的IP地址;

[root@Bj-1-141 named]# vim enzhi.com.zone
$TTL 3600
$ORIGIN enzhi.com.
@       IN      SOA     enzhi.com.  admin.enzhi.com. (
                2017011902      ;#修改區域文件序列號要自增長1;
                1H
                10M
                3D
                1D)

        IN      NS      ns1.enzhi.com.
        IN      NS      ns2.enzhi.com.  ;#添加一條從服務器的NS記錄
        IN      MX  10  mail.enzhi.com.
ns1     IN      A       192.168.1.141
ns2     IN      A       192.168.1.142   ;#添加一條從服務器的A記錄
mail    IN      A       192.168.1.142
www    IN      A       192.168.1.143
bbs    IN      A       192.168.1.144
bbs    IN      A       192.168.1.145

二、反向區域文件中也要增長NS記錄

[root@Bj-1-141 named]# vim 192.168.1.zone
$TTL 3600
$ORIGIN 1.168.192.in-addr.arpa.
@       IN      SOA     enzhi.com.  admin.enzhi.com. (
                2017011902  ;#修改區域文件序列號要自增長1
                1H
                10M
                3D
                1D)
        IN      NS      ns1.enzhi.com.
        IN      NS      ns2.enzhi.com.  ;#添加一條從服務器的NS記錄
141     IN      PTR     ns1.enzhi.com.
142     IN      PTR     ns2.enzhi.com.  ;#添加一條從服務器的PTR記錄
142     IN      PTR     mail.enzhi.com.
143     IN      PTR     www.enzhi.com.
144     IN      PTR     bbs.enzhi.com.
145     IN      PTR     bbs.enzhi.com.

三、檢查配置文件及區域文件是否存在語法錯誤

[root@Bj-1-141 named]# named-checkconf
[root@Bj-1-141 named]# named-checkzone enzhi.com. enzhi.com.zone
zone enzhi.com/IN: loaded serial 2017011902
OK
[root@Bj-1-141 named]# named-checkzone 1.168.192.in-addr.arpa 192.168.1.zone
zone 1.168.192.in-addr.arpa/IN: loaded serial 2017011902
OK

四、重載主服務器配置文件

[root@Bj-1-141 named]# rndc reload
server reload successful
[root@Bj-1-141 named]# systemctl status named.service

30.10.三、測試

一、在從服務器上解析enzhi.com的NS記錄;

[root@BJ-1-142 ~]# dig -t NS enzhi.com  @192.168.1.142

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5598
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;enzhi.com.         IN  NS

;; ANSWER SECTION:
enzhi.com.      3600    IN  NS  ns1.enzhi.com.
enzhi.com.      3600    IN  NS  ns2.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141
ns2.enzhi.com.      3600    IN  A   192.168.1.142

;; Query time: 1 msec
;; SERVER: 192.168.1.142#53(192.168.1.142)
;; WHEN: 四 1月 19 20:16:24 CST 2017
;; MSG SIZE  rcvd: 106

二、在從服務器上解析www.enzhi.com的A記錄;

[root@BJ-1-142 ~]# dig -t A www.enzhi.com @192.168.1.142

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36363
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.enzhi.com.         IN  A

;; ANSWER SECTION:
www.enzhi.com.      3600    IN  A   192.168.1.143

;; AUTHORITY SECTION:
enzhi.com.      3600    IN  NS  ns1.enzhi.com.
enzhi.com.      3600    IN  NS  ns2.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141
ns2.enzhi.com.      3600    IN  A   192.168.1.142

;; Query time: 1 msec
;; SERVER: 192.168.1.142#53(192.168.1.142)
;; WHEN: 四 1月 19 20:16:08 CST 2017
;; MSG SIZE  rcvd: 126

注意:若是從不服務器不能解析,使用手動測試區域傳送看看可否同步,在從服務器上;

30.10.四、手動測試區域傳送

在從服務器上測試,DNS服務器指向主服務器的IP地址;若是資源記錄顯示都能同步則配置沒有問題;若是從服務器手動測試沒問題,可是沒法解析出從服務器的NS記錄,解決方法,查看防火牆,selinux,或者從新修改主服務器序列號後重載主服務器配置文件;

[root@BJ-1-142 ~]# dig -t axfr enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t axfr enzhi.com @192.168.1.141
;; global options: +cmd
enzhi.com.      3600    IN  SOA enzhi.com. admin.enzhi.com. 2017011903 3600 600 259200 86400
enzhi.com.      3600    IN  NS  ns1.enzhi.com.
enzhi.com.      3600    IN  NS  ns2.enzhi.com.
enzhi.com.      3600    IN  MX  10 mail.enzhi.com.
bbs.enzhi.com.      3600    IN  A   192.168.1.144
bbs.enzhi.com.      3600    IN  A   192.168.1.145
bbs.enzhi.com.      3600    IN  A   192.168.1.146
mail.enzhi.com.     3600    IN  A   192.168.1.142
ns1.enzhi.com.      3600    IN  A   192.168.1.141
ns2.enzhi.com.      3600    IN  A   192.168.1.142
www.enzhi.com.      3600    IN  A   192.168.1.143
enzhi.com.      3600    IN  SOA enzhi.com. admin.enzhi.com. 2017011903 3600 600 259200 86400
;; Query time: 1 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 20:21:59 CST 2017
;; XFR size: 12 records (messages 1, bytes 282)

30.十一、子域受權

演示環境

操做系統版本 主DNS服務器IP地址 演示域 內核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64
操做系統版本 從DNS服務器IP地址 演示域 內核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.142 enzhi.com 3.10.0-327.el7.x86_64
操做系統版本 子域DNS IP地址 演示域 內核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.143 ops.enzhi.com 3.10.0-327.el7.x86_64

30.11.一、配置主DNS服務器

一、在主DNS服務器正向解析庫文件中添加;

[root@Bj-1-141 named]# vim enzhi.com.zone
ops         IN      NS  ns1.ops
ns1.ops     IN      A   192.168.1.143
# 注意要修改了配置序列號要加1;

二、重載服務

[root@Bj-1-141 named]# rndc reload
server reload successful

30.11.二、配置子域服務器

一、安裝bind服務

[root@BJ-1-143 ~]# yum -y install bind bind-utils

二、修改監聽地址關閉部分功能

[root@BJ-1-143 ~]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; 192.168.1.143; };
# 關閉部分功能前面加上註釋便可;
//allow-query     { localhost; };
//dnssec-enable yes;
//dnssec-validation yes;

三、添加一個正向區域

[root@BJ-1-143 ~]# vim /etc/named.rfc1912.zones
# 在最下面添加
zone "ops.enzhi.com" IN {
    type master;
    file "ops.enzhi.com.zone";
};

四、建立子域,區域數據庫文件;

[root@BJ-1-143 named]# cd /var/named
[root@BJ-1-143 named]# vim ops.enzhi.com.zone
$TTL 3600
$ORIGIN ops.enzhi.com.
@       IN      SOA     ops.enzhi.com.  admin.ops.enzhi.com. (
                2017011901
                1H
                10M
                3D
                1D)
        IN      NS      ns1
ns1     IN      A       192.168.1.143
www     IN      A       192.168.1.150

# 修改區域文件權限及屬組
[root@BJ-1-143 named]# chown :named ops.enzhi.com.zone
[root@BJ-1-143 named]# chmod 640 ops.enzhi.com.zone

五、檢查配置文件語法並重載配置文件

[root@BJ-1-143 named]# named-checkconf
[root@BJ-1-143 named]# named-checkzone ops.enzhi.com. ops.enzhi.com.zone
zone ops.enzhi.com/IN: loaded serial 2017011901
OK

# 重載配置
[root@BJ-1-143 named]# systemctl start named.service

六、dig命令測試可否解析父域,測試父域可否解析子域

30.十二、定義轉發

注意:被轉發的服務器必須容許爲當前服務器作遞歸;要在子域服務器上作轉發解析父域

30.12.一、區域轉發

僅轉發對某特定區域的解析請求;

格式

zone "ZONE_NAME" IN {
    type forward;
    forward {first|only};
    forwarders { SERVER_IP; };
};

first:首先轉發,轉發器不響應時;

SERVER_IP:爲父域的主從服務器地址;

示例

[root@BJ-1-143 named]# vim /etc/named.rfc1912.zones
# 僅對enzhi.com這個域作轉發
zone "enzhi.com" IN {
    type forward;
    forward only;
    forwarders { 192.168.1.141; 192.168.1.142; };
};

重載配置文件

[root@BJ-1-143 named]# rndc reload
server reload successful

測試

解析父域的www.enzhi.com測試可否解析

[root@BJ-1-143 named]# dig -t A www.enzhi.com @192.168.1.143

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.143
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5835
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.enzhi.com.         IN  A

;; ANSWER SECTION:
www.enzhi.com.      3076    IN  A   192.168.1.144   《====能夠解析

;; AUTHORITY SECTION:
enzhi.com.      171964  IN  NS  ns2.4.cn.
enzhi.com.      171964  IN  NS  ns1.4.cn.

;; Query time: 0 msec
;; SERVER: 192.168.1.143#53(192.168.1.143)
;; WHEN: 四 1月 19 22:15:04 CST 2017
;; MSG SIZE  rcvd: 98

30.12.二、全局轉發

針對凡是本地沒有經過zone定義的區域查詢請求,統統轉發給某轉發器;

示例:在子域服務器修改主配置文件定義全局轉發

[root@BJ-1-143 ~]# vim /etc/named.conf
# 在options全局段中添加,全局轉發給父域主服務器
forward only;
forwarders { 192.168.1.141; };

重載配置文件

[root@BJ-1-143 ~]# rndc reload
server reload successful
相關文章
相關標籤/搜索