CentOS7系統安裝DNS服務linux
DNS ( Domain Name System )是「域名系統」的英文縮寫,簡單來講就是一個數據庫,用於存儲網絡中IP地址與主機名的對應關係;簡單的說DNS的做用就是把主機名解析爲IP地址;以下圖:web
域名系統做爲一個層次結構和分佈式數據庫,包含各類類型的數據,包括主機和域名。DNS數據庫中的名稱造成一個分層的樹狀結構;域名在拼裝時,是沿着這顆樹的最下面往樹根上走的;例如:www.baidu.com,其實改餘名的完整寫法應該是:www.baidu.com. 注意域名最後面有一個 ".";數據庫
假設咱們第一次經過瀏覽器訪問www.baidu.com這個域名。DNS如何查找到www.baidu.com這臺主機呢?以下vim
負責至少解析一個域centos
主名稱服務器瀏覽器
輔助名稱服務器緩存
不負責域解析安全
緩存名稱服務器服務器
資源記錄(Resource Record):簡稱rr;經常使用的資源記錄類型有:A, AAAA, PTR, SOA, MX, CNAME, NS;網絡
語法格式
name [TTL] IN RR_TYPE VALUE # RR_TYPE:替換爲指定的資源記錄類型;
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
name:當前區域的區域名稱;
value:當前區域的某DNS服務器的名字;例如:ns1.enzhi.com.;
注意:一個區域能夠有多個NS記錄;
例如:
enzhi.com. 86400 IN NA ns1.enzhi.com. enzhi.com. 86400 IN NA ns2.enzhi.com.
name:當前區域的名稱;
value:當前區域某郵件交換器的主機名;
注意:MX記錄能夠有多個,但每一個記錄的value以前應該有一個數字表示其優先級;
例如:
enzhi.com 86400 IN MX 10 mail.enzhi.com.
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
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.
name:FQDN格式的別名;
value:FQDN格式的正式名字;
例如:
web.enzhi.com. 86400 IN CNAME www.enzhi.com.
注意:
一、TTL的值能夠從全局繼承;只要在第一行加$TTL 86400下面全部的資源記錄均可以繼承; 二、@符號表示當前區域的名稱; 三、相鄰的兩條記錄其name相同時後面的能夠省略; 四、MX,NS等類型的記錄的value爲一個FQDN,此FQDN應該有一個A記錄;
Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server;bind是dns協議的一種實現;其運行後的程序名爲named;
注意:本文演示環境爲centos7.2系統環境;
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{...}
注意:每一個配置語句必須以分號結尾;不然爲語法錯誤;
安裝完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
dig , host, nslookup;若是當前系統上沒有此三個命令,須要安裝bind-utils軟件包;
功用:用於測試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
使用格式
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
使用格式
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
功用:named服務控制命令
rndc status rndc flush
演示環境
操做系統版本 | DNS服務器IP地址 | 演示域 | 內核版本 |
---|---|---|---|
CentOS Linux release 7.2.1511 (Core) | 192.168.1.141 | enzhi.com | 3.10.0-327.el7.x86_64 |
注意:以enzhi.com爲列;
在主配置文件中實現或主配置文件輔助配置文件中實現:/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"; };
注意:區域名字即爲域名;
主要記錄爲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
[root@Bj-1-141 ~]# rndc reload server reload successful # 或者執行 [root@Bj-1-141 ~]# systemctl reload named.service
一、解析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
演示環境
操做系統版本 | DNS服務器IP地址 | 演示域 | 內核版本 |
---|---|---|---|
CentOS Linux release 7.2.1511 (Core) | 192.168.1.141 | enzhi.com | 3.10.0-327.el7.x86_64 |
在主配置文件中實現或主配置文件輔助配置文件中實現:/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"; };
一、建立反向解析區域文件;
[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
[root@Bj-1-141 ~]# rndc reload server reload successful # 或者執行 [root@Bj-1-141 ~]# systemctl reload named.service
一、反向解析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
主服務器的安裝和配置這裏不在演示根據上面配置正向解析和反向解析後在配置從便可;
注意:從服務器時區域級別的概念;每次修改主服務器區域配置文件序列號要加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 |
一、安裝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
一、確保區域數據文件中爲每一個從服務器配置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
一、在從服務器上解析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
注意:若是從不服務器不能解析,使用手動測試區域傳送看看可否同步,在從服務器上;
在從服務器上測試,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)
演示環境
操做系統版本 | 主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 |
一、在主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
一、安裝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命令測試可否解析父域,測試父域可否解析子域
注意:被轉發的服務器必須容許爲當前服務器作遞歸;要在子域服務器上作轉發解析父域
僅轉發對某特定區域的解析請求;
格式
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
針對凡是本地沒有經過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