一、創建DNS主服務器
1、安裝bind并配置主配置文件
主服務器為CentOS 7,主服務地址為172.16.11.55
安裝bind
[root@xinfeng ~]# yum install bind
安裝完成后查看是否存在/var/named/named.ca
這個文件包含了互聯網上根服務器對應的名字和地址
備份一下/etc/named.conf
配置主配置文件/etc/named.conf
[root@xinfeng named]# vim /etc/named.conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 172.16.11.55; 127.0.0.1; }; #這里要加入對外監聽53端口的主機地址 // listen-on-v6 port 53 { ::1; }; #注釋掉ipv6的設置 directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; #將這里改為any,表示服務器允許所有地址來查詢 /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion yes; #這里為yes表示允許遞歸查詢 // dnssec-enable yes; // dnssec-validation yes; /* Path to ISC DLV key */ // bindkeys-file "/etc/named.iscdlv.key"; // managed-keys-directory "/var/named/dynamic"; 從dnssec開始到此全部注釋掉 pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
改完之后重啟服務,查看53號端口是否對外監聽
[root@xinfeng named]# systemctl restart named.service [root@xinfeng named]# ss -tunl | grep 53 udp UNCONN 0 0 172.16.11.55:53 *:* udp UNCONN 0 0 127.0.0.1:53 *:* tcp LISTEN 0 10 172.16.11.55:53 *:* tcp LISTEN 0 10 127.0.0.1:53 *:* tcp LISTEN 0 128 127.0.0.1:953 *:* tcp LISTEN 0 128 ::1:953 :::* #可以看到已經監聽到53號端口上了
在主配置文件中定義區域,編輯/etc/named.rfc1912.zones
[root@xinfeng named]# vim /etc/named.rfc1912.zones // named.rfc1912.zones: // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. // zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; }; #在最后增加了一個區域叫xinfeng.com zone "xinfeng.com" IN { #type是服務器類型,master表示為主服務器 type master; #file是區域解析庫文件的名稱,這個文件放在/var/named/下 file "xinfeng.com.zone"; };
2、配置正向區域解析,并用dig測試
編輯完后保存,然后到/var/named/下面去創建一個xinfeng.com.zone的文件
[root@xinfeng named]# vim xinfeng.com.zone $TTL 86400 #TTL表示客戶端得到結果后的可緩存時長,單位是秒,這里是1天,可從全局繼承 $ORIGIN xinfeng.com. #ORIGIN定義為xinfeng.com.【注意最后有一個點】,這里定義之后,就可用后面@代替xinfeng.com. @ IN SOA ns1.xinfeng.com. admin.xinfeng.com ( #SOA表示起始授權紀錄,之后跟上當前區域主DNS的名稱,然后跟上當前主區域的管理員郵箱,郵箱中的@用.替換 2016041718 #2016041718表示序列號,編輯一次此文件就必須手動加1 1H #1H表示刷新時間為1消失 5M #5M表示重試時間為5分鐘 7D #7D表示過期時間為7天,也可以寫成1W 1D ) #1D表示否定答案的時間為1天 IN NS ns1 #NS專用于表示當前區域的DNS服務器,之后必須跟一個A紀錄 ns1 IN A 172.16.11.55 #A表示ipv4正向解析,ipv6為AAAA,這里解析ns1.xinfeng.com到172.16.11.55 www IN A 172.16.11.55 #這里解析www.xinfeng.com到172.16.11.55 ftp IN CNAME www #CNAME表示別名,這里解析ftp.xinfeng.com到www.xinfeng.com,最終解析到172.16.11.55
保存之后用named-check來檢查主配置文件和區域解析文件是否有語法錯誤
[root@xinfeng named]# named-checkconf [root@xinfeng named]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone zone xinfeng.com/IN: loaded serial 2016041718 OK
OK表示沒有語法錯誤
之后一定要記得改變文件/var/named/xinfeng.com.zone的屬組為named,并改變權限為640
[root@xinfeng named]# ll -rw-r--r--. 1 root root 190 4月 14 02:42 xinfeng.com.zone [root@xinfeng named]# chown :named xinfeng.com.zone [root@xinfeng named]# chmod 640 xinfeng.com.zone [root@xinfeng named]# ll -rw-r-----. 1 root named 190 4月 14 02:42 xinfeng.com.zone
然后重啟named服務
[root@xinfeng named]# systemctl restart named.service
安裝dig測試,dig在bind-utils包內
[root@xinfeng named]# yum install bind-utils [root@xinfeng named]# dig -t A xinfeng.com @172.16.11.55 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A xinfeng.com @172.16.11.55 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7034 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;xinfeng.com. IN A ;; AUTHORITY SECTION: xinfeng.com. 86400 IN SOA ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400 ;; Query time: 0 msec ;; SERVER: 172.16.11.55#53(172.16.11.55) ;; WHEN: 四 4月 14 04:24:15 CST 2016 ;; MSG SIZE rcvd: 98 [root@xinfeng named]# dig -t A www.xinfeng.com @172.16.11.55 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xinfeng.com @172.16.11.55 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36364 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.xinfeng.com. IN A ;; ANSWER SECTION: www.xinfeng.com. 86400 IN A 172.16.11.55 ;; AUTHORITY SECTION: xinfeng.com. 86400 IN NS ns1.xinfeng.com. ;; ADDITIONAL SECTION: ns1.xinfeng.com. 86400 IN A 172.16.11.55 ;; Query time: 1 msec ;; SERVER: 172.16.11.55#53(172.16.11.55) ;; WHEN: 四 4月 14 04:24:56 CST 2016 ;; MSG SIZE rcvd: 94
可以看到測試能成功解析
3、配置反向區域解析
依然要在主配置文件定義區域,編輯/etc/named.rfc1912.zone
[root@xinfeng named]# vim /etc/named.rfc1912.zones zone "xinfeng.com" IN { type master; file "xinfeng.com.zone"; }; #在剛才的正向解析之后加入下面的內容,注意網絡地址要反寫 zone "11.16.172.in-addr.arpa" IN { type master; file "172.16.11.zone"; };
保存之后在/var/named/中增加172.16.11.zone的區域解析庫文件
[root@xinfeng named]# vim 172.16.11.zone $TTL 86400 $ORIGIN 11.16.172.in-addr.arpa. @ IN SOA ns1.xinfeng.com. admin.xinfeng.com. ( 2016041720 1H 5M 7D 1D ) IN NS ns1.xinfeng.com. 55 IN PTR ns1.xinfeng.com. 55 IN PTR www.xinfeng.com. #這里的不能有A或者AAAA紀錄,PTR就是反向解析的意思,注意地址反寫,其他的和正向解析沒有區別
保存之后記得改屬組和權限,并檢查語法
[root@xinfeng named]# chmod 640 172.16.11.zone [root@xinfeng named]# chown :named 172.16.11.zone [root@xinfeng named]# named-checkzone "11.16.172.in-addr.arpa" /var/named/172.16.11.zone zone 11.16.172.in-addr.arpa/IN: loaded serial 2016041720 OK [root@xinfeng named]# named-checkconf
顯示OK語法檢測OK,重啟服務,并用dig測試
[root@xinfeng named]# systemctl restart named.service [root@xinfeng named]# dig -x 172.16.11.55 @172.16.11.55 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x 172.16.11.55 @172.16.11.55 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50285 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;55.11.16.172.in-addr.arpa. IN PTR ;; ANSWER SECTION: 55.11.16.172.in-addr.arpa. 86400 IN PTR www.xinfeng.com. 55.11.16.172.in-addr.arpa. 86400 IN PTR ns1.xinfeng.com. ;; AUTHORITY SECTION: 11.16.172.in-addr.arpa. 86400 IN NS ns1.xinfeng.com. ;; ADDITIONAL SECTION: ns1.xinfeng.com. 86400 IN A 172.16.11.55 ;; Query time: 0 msec ;; SERVER: 172.16.11.55#53(172.16.11.55) ;; WHEN: 四 4月 14 04:09:54 CST 2016 ;; MSG SIZE rcvd: 131
可以看到測試正常
4、配置泛域名解析
編輯正向區域解析文件/var/nemad/xinfeng.com.zone,在其中加入*的A紀錄,并且序列號加1
[root@xinfeng named]# vim /var/named/xinfeng.com.zone $TTL 86400 $ORIGIN xinfeng.com. @ IN SOA ns1.xinfeng.com. admin.xinfeng.com ( 2016041719 1H 5M 7D 1D ) IN NS ns1 ns1 IN A 172.16.11.55 www IN A 172.16.11.55 ftp IN CNAME www * IN A 172.16.11.55
檢查語法錯誤
[root@xinfeng named]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone zone xinfeng.com/IN: loaded serial 2016041719 OK
重載文件并用dig測試
[root@xinfeng named]# rndc reload server reload successful [root@xinfeng named]# dig -t A nfs.xinfeng.com @172.16.11.55 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A nfs.xinfeng.com @172.16.11.55 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37887 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;nfs.xinfeng.com. IN A ;; ANSWER SECTION: nfs.xinfeng.com. 86400 IN A 172.16.11.55 ;; AUTHORITY SECTION: xinfeng.com. 86400 IN NS ns1.xinfeng.com. ;; ADDITIONAL SECTION: ns1.xinfeng.com. 86400 IN A 172.16.11.55 ;; Query time: 0 msec ;; SERVER: 172.16.11.55#53(172.16.11.55) ;; WHEN: 四 4月 14 04:21:13 CST 2016 ;; MSG SIZE rcvd: 94
測試正常
二、配置從服務器進行主從復制
新建一臺從服務器,服務器系統為CentOS 6,地址為172.16.11.57
1、安裝bind和bind-utils,并用dig測試看是否能解析到剛才我們配置的主服務
[root@xinfeng2 ~]# yum install bind [root@xinfeng2 ~]# yum install bind-utils [root@xinfeng2 ~]# service named start [root@xinfeng2 ~]# ss -tunl | grep 53 udp UNCONN 0 0 127.0.0.1:53 *:* tcp LISTEN 0 3 127.0.0.1:53 *:* tcp LISTEN 0 128 ::1:953 :::* tcp LISTEN 0 128 127.0.0.1:953 *:* [root@xinfeng2 ~]# dig -t axfr xinfeng.com @172.16.11.55 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> -t axfr xinfeng.com @172.16.11.55 ;; global options: +cmd xinfeng.com. 86400 IN SOA ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400 xinfeng.com. 86400 IN NS ns1.xinfeng.com. ftp.xinfeng.com. 86400 IN CNAME www.xinfeng.com. ns1.xinfeng.com. 86400 IN A 172.16.11.55 www.xinfeng.com. 86400 IN A 172.16.11.55 xinfeng.com. 86400 IN SOA ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400 ;; Query time: 1 msec ;; SERVER: 172.16.11.55#53(172.16.11.55) ;; WHEN: Thu Apr 14 12:31:13 2016 ;; XFR size: 6 records (messages 1, bytes 191) dig -t axfr xinfeng.com @172.16.11.55
測試結果是正常的
2、配置從服務器的主配置文件
在/etc/named.conf中按照主服務配置一樣修改,對外監聽端口換成本機的也就是172.16.11.57
[root@xinfeng2 ~]# vim /etc/named.conf // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 172.16.11.57; 127.0.0.1; }; // listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; // dnssec-enable yes; // dnssec-validation yes; // dnssec-lookaside auto; /* Path to ISC DLV key */ // bindkeys-file "/etc/named.iscdlv.key"; // managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; "/etc/named.conf" 43L, 1027C
編輯/etc/named.rfc1912.zone文件,在最后加入
[root@xinfeng2 ~]# vim /etc/named.rfc1912.zones zone "xinfeng.com" IN { type slave; masters { 172.16.11.55; }; file "slaves/xinfeng.com.zone"; };
也就是說他的區域解析庫文件放置在/var/named/slaves/下叫xinfeng.com.zone,這里我們不需要去創建編輯這個區域解析庫文件,因為之后主從同步之后,會自動獲得這個文件,重啟服務
[root@xinfeng2 ~]# service named restart Stopping named: . [ OK ] Starting named: [ OK ]
3、在主服務器上定義從服務器的正向解析庫文件
編輯主DNS服務器的/var/named/xinfeng.com.zone文件在其中加入從服務器的A紀錄和NS紀錄,這里是ns2
[root@xinfeng named]# vim /var/named/xinfeng.com.zone $TTL 86400 $ORIGIN xinfeng.com. @ IN SOA ns1.xinfeng.com. admin.xinfeng.com ( 2016041720 1H 5M 7D 1D ) IN NS ns1 IN NS ns2 ns1 IN A 172.16.11.55 ns2 IN A 172.16.11.57 www IN A 172.16.11.55 ftp IN CNAME www
主服務器重載服務
[root@xinfeng named]# rndc reload server reload successful
到從服務器也就是172.16.11.57下查看區域解析庫文件是否同步
[root@xinfeng2 ~]# cd /var/named/slaves/ [root@xinfeng2 slaves]# ls xinfeng.com.zone
可以看到區域解析庫文件已同步成功
4、在從服務器上定義主配置文件,定義反向解析庫文件位置
編輯主服務器也就是172.16.11.55的反向解析文件,加入ns2的A紀錄和NS紀錄,然后重載服務
[root@xinfeng named]# vim /var/named/172.16.11.zone $TTL 86400 $ORIGIN 11.16.172.in-addr.arpa. @ IN SOA ns1.xinfeng.com. admin.xinfeng.com. ( 2016041720 1H 5M 7D 1D ) IN NS ns1.xinfeng.com. IN NS ns2.xinfeng.com. 55 IN PTR ns1.xinfeng.com. 57 IN PTR ns2.xinfeng.com. 55 IN PTR www.xinfeng.com. [root@xinfeng named]# rndc reload server reload successful
在從服務器上也就是172.16.11.57上編輯/etc/named.rfc1912.zone文件,在最后加入
[root@xinfeng2 ~]# vim /etc/named.rfc1912.zones zone "11.16.172.in-addr.arpa" IN { type slave; masters { 172.16.11.55; }; file "slaves/172.16.11.zone"; };
完成后重載從服務器,就會同步主服務器上的反向解析庫文件
[root@xinfeng2 ~]# rndc reload server reload successful [root@xinfeng2 ~]# cd /var/named/slaves/ [root@xinfeng2 slaves]# ls 172.16.11.zone xinfeng.com.zone [root@xinfeng2 slaves]# cat 172.16.11.zone $ORIGIN . $TTL 86400 ; 1 day 11.16.172.in-addr.arpa IN SOA ns1.xinfeng.com. admin.xinfeng.com. ( 2016041720 ; serial 3600 ; refresh (1 hour) 300 ; retry (5 minutes) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns1.xinfeng.com. $ORIGIN 11.16.172.in-addr.arpa. 55 PTR ns1.xinfeng.com. PTR www.xinfeng.com.
區域解析庫文件同步成功
需要注意的是,主從服務器的bind版本需要一致,而且一定不要更改從服務器的區域解析庫文件,只需要改主服務器的區域解析庫文件。
三、子域授權
父域為172.16.11.55,子域為172.16.9.9
1、定義父域
進入父域服務器172.16.11.55,編輯/var/named/xinfeng.com.zone也就是父域的正向解析庫文件,在其中加入子域的NS紀錄和A紀錄
[root@xinfeng ~]# vim /var/named/xinfeng.com.zone $TTL 86400 $ORIGIN xinfeng.com. @ IN SOA ns1.xinfeng.com. admin.xinfeng.com ( 2016041720 1H 5M 7D 1D ) IN NS ns1 IN NS ns2 ns1 IN A 172.16.11.55 ns2 IN A 172.16.11.57 www IN A 172.16.11.55 ftp IN CNAME www tv IN NS ns1.ops ns1.ops IN A 172.16.9.9 [root@xinfeng ~]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone zone xinfeng.com/IN: loaded serial 2016041720 OK [root@xinfeng ~]# rndc reload server reload successful
檢查語法正確,并重載后,
2、定義子域
進入子域服務器172.16.9.9
新服務器重新編輯/etc/named.conf,之后開起服務
[root@tv.xinfeng.com ~]# vim /etc/named.conf [root@tv.xinfeng.com ~]# systemctl start named.service [root@tv.xinfeng.com ~]# ss -tunl | grep 53 udp UNCONN 0 0 172.16.9.9:53 *:* udp UNCONN 0 0 127.0.0.1:53 *:* tcp LISTEN 0 10 172.16.9.9:53 *:* tcp LISTEN 0 10 127.0.0.1:53 *:* tcp LISTEN 0 128 127.0.0.1:953 *:* tcp LISTEN 0 128 ::1:953 :::*
編輯子域172.16.9.9的/etc/named.rfc1912.zones ,在后面加入
[root@tv.xinfeng.com ~]# vim /etc/named.rfc1912.zones zone "tv.xinfeng.com" IN { type master; file "tv.xinfeng.com.zone"; }; [root@tv.xinfeng.com ~]# rndc reload server reload successful
編輯子域172.16.9.9的/var/named/tv.xinfeng.com.zone
[root@tv.xinfeng.com ~]# vim /var/named/tv.xinfeng.com.zone $TTL 1d $ORIGIN tv.xinfeng.com. @ IN SOA ns1.tv.xinfeng.com. admin.tv.xinfeng.com. ( 2016041722 1H 10M 3D 1D ) IN NS ns1 ns1 IN A 172.16.9.9 www IN A 172.16.9.9 [root@tv.xinfeng.com]# chown :named tv.xinfeng.com.zone [root@tv.xinfeng.com]# chmod 640 tv.xinfeng.com.zone [root@tv.xinfeng.com ~]# rndc reload server reload successful
3、測試解析
測試子域能否解析自己范圍的
[root@tv.xinfeng.com]# dig -t A ns1.tv.xinfeng.com @172.16.9.9 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A ns1.tv.xinfeng.com @172.16.9.9 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56031 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ns1.tv.xinfeng.com.INA ;; ANSWER SECTION: ns1.tv.xinfeng.com. 86400 IN A 172.16.9.9 ;; AUTHORITY SECTION: tv.xinfeng.com. 86400 IN NS ns1.tv.xinfeng.com. ;; Query time: 0 msec ;; SERVER: 172.16.9.9#53(172.16.9.9) ;; WHEN: 一 3月 21 07:58:01 CST 2016 ;; MSG SIZE rcvd: 77
測試成功,測試父域能否解析子域的
[root@xinfeng ~]# dig -t A www.tv.xinfeng.com @172.16.11.55 ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.tv.xinfeng.com @172.16.11.55 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 61635 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.tv.xinfeng.com. IN A ;; Query time: 2 msec ;; SERVER: 172.16.11.55#53(172.16.11.55) ;; WHEN: 四 4月 14 06:38:48 CST 2016 ;; MSG SIZE rcvd: 47
測試成功
四、區域轉發
1、父域定義全部轉發
在父域服務器172.16.11.55編輯/etc/named.conf主配置文件
[root@xinfeng ~]# vim /etc/named.conf #在options中注釋掉 // allow-query { any; }; #在options中增加 forward first; forwarders { 114.114.114.114; }; [root@xinfeng ~]# rndc reload server reload successful
2、子域定義區域轉發
在子域服務器172.16.9.9編輯/etc/named.rfc1912.zones文件,在最后添加zone
[root@tv.xinfeng.com]# vim /etc/named.rfc1912.zones zone "xinfeng.com" IN { type forward; forward only; forwarders { 172.16.11.55; }; }; [root@localhost named]# rndc reload server reload successful
【注意】:若全部轉發和區域轉發在一臺服務器上同時啟用,則能精確匹配區域轉發的則區域轉發,其他的由全部轉發負責
五、view
1、編輯DNS服務器的主配置文件/etc/named.conf,將其中的默認zone剪切到/etc/named.rfc1912.zone中
[root@xinfeng ~]# vim /etc/named.conf #將以下刪除 zone "." IN { type hint; file "named.ca"; }; [root@xinfeng ~]# vim /etc/named.rfc1912.zones #放在此文件最頂端
2、編輯/etc/named.conf,在頂端定義幾個acl
[root@xinfeng ~]# vim /etc/named.conf acl mynet { 172.16.0.0/16; 127.0.0.0/8; };
3、編輯/etc/named.rfc1912.zone
[root@xinfeng ~]# vim /etc/named.rfc1912.zones view internal { match-clients { mynet; }; allow-recursion { mynet; }; zone { ...}; zone { ...}; zone{ ...}; }; #用view來控制所有zone [root@xinfeng ~]# named-checkconf [root@xinfeng ~]# systemctl restart named.service
把能和172.16.11.55的主機地址加入/etc/named.rfc1912.zone的match-clients,然后用dig測試,再刪除測試
4、注意事項
一個bind服務器可定義多個view,每個view中可定義一個或多個zone
每個view用一來匹配一組客戶端
多個view內可能需要對同一個區域進行解析,但使用不同的區域解析庫文件
一旦啟用了view,所有的zone都只能定義在view中
僅有必要在匹配到允許遞歸請求的客戶所在view中定義根區域
客戶端請求到達時,是自上而下檢查每個view所服務的客戶端列表
六、總結
配置一個DNS服務器的過程:
1、配置DNS主配置文件:/etc/named.conf
2、定義區域文件:/etc/named.rfc1912.zone
3、配置區域文件中對應的區域解析庫文件:/var/named/ZONE_NAME.zone
4、重載服務:rndc reload
5、測試:dig
原創文章,作者:N17_信風,如若轉載,請注明出處:http://www.www58058.com/14695