前言
上文我們講解了DNS服務的原理及正反向解析配置,相信大家對DNS服務已經有了初步了解。接下來,讓我們進一步了解DNS服務的其它功能,本文將詳解主從復制、子域授權和轉發以及view的相關配置。
主從服務器配置
主從服務器關系
如果公司內DNS服務器負載過重或者為了實現冗余這一類功能就需要用到一個備份DNS服務器,備份服務器和主DNS服務器就形成了主從關系,如果主服務器的區域文件更新就會通知從服務器同步最新的區域文件,平時從服務器不提供解析服務,如果主服務器有故障從服務器就立刻激活提供域名解析服務。
主從復制工作過程
主從復制配置
①開始配置從服務器之前,請確保主從服務器時間同步
②從服務器bind版本可高于主服務器
實戰主從復制配置
案例要求:
實驗接上文,為主DNS服務器172.16.10.10添加從服務器172.16.10.100,要求只允許從服務器傳輸區域文件,其它主機一律禁止傳送。
添加從服務器
在主服務器正反向配置文件中添加從服務器
[root@lab named]# vim scholar.com.zone $TTL 3600 @ IN SOA dns.scholar.com. admin.scholar.com. ( 2015040801 #每次主服務器更新,必須更改版本號 2H 10M 7D 1D ) @ IN NS dns @ IN NS dns2 #添加從服務器NS記錄 @ IN MX 10 mail dns IN A 172.16.10.10 dns2 IN A 172.16.10.100 #添加從服務器地址 mail IN A 172.16.10.12 www IN A 172.16.10.10 pop IN CNAME mail ftp IN CNAME www
[root@lab named]# vim 172.16.10.zone $TTL 3600 @ IN SOA dns.scholar.com. admin.scholar.com. ( 2015040801 2H 10M 7D 1D ) @ IN NS dns.scholar.com. @ IN NS dns2.scholar.com. #添加從服務器NS記錄 10 IN PTR dns.scholar.com. 100 IN PTR dns2.scholar.com. #添加從服務器地址 12 IN PTR mail.scholar.com. 10 IN PTR www.scholar.com.
在主服務器添加區域傳送限制,只允許從服務器傳送
[root@lab named]# vim /etc/named.conf #區域定義在哪就修改那個配置文件 zone "scholar.com" IN { type master; allow-transfer { 172.16.10.100; }; #定義傳輸白名單,可多個IP用分號分隔 file "scholar.com.zone"; }; zone "10.16.172.in-addr.arpa" IN { type master; allow-transfer { 172.16.10.100; }; #定義反向區域傳輸白名單 file "172.16.10.zone"; };
檢查語法,重啟服務
定義從區域
在從服務器上定義與主服務器相同的正反向區域
[root@scholar ~]# vim /etc/named.conf #也可編輯/etc/named.rfc1912.zones zone "scholar.com" IN { type slave; #定義服務器類型為從服務器 masters { 172.16.10.10; }; #定義主服務器,可多個IP用分號分隔 file "slaves/scholar.com.zone"; }; zone "10.16.172.in-addr.arpa" IN { type slave; masters { 172.16.10.10; }; file "slaves/172.16.10.zone"; };
測試語法,啟動服務并設置開機自啟
查看53端口是否開啟
查看日志,是否傳輸成功
注意:此處報錯,請設置防火墻規則
看一下文件傳輸過來了沒
從服務器解析測試
到這里主從復制就配置完了,讓我們再看一下子域授權和轉發功能。
子域授權和轉發
子域授權概念
為了方便公司部門管理運營,每個部門需要獨立的域名服務器,這就要在父域下分配子域,比如,運維部的子域ops.scholar.com,而子域需要父域授權,所謂子域授權就是在父域的區域解析庫中添加膠水記錄(glue record)
膠水記錄包括:
授權的子區域域名稱
子區域的名稱服務器
子區域的名稱服務器IP地址
子域授權和轉發工作過程
子域授權和轉發配置
正向子域授權
只需要在父域的區域解析庫中添加“膠水記錄”
例如: ops IN NS dns.ops ops IN A 172.16.10.110
配置轉發器
轉發所有非本機負責的區域的請求至某指定的DNS服務器
options { ... forward only|first; forwarders { IP; }; } only/first: only:只使用forwarders DNS服務器做域名解析,如果查詢不到則返回查詢失敗。 first優先使用forwarders DNS服務器做域名解析,如果查詢不到再使用本地DNS 服務器做域名解析。
訪問控制: allow-transfer {}; #區域傳輸白名單 allow-query {}; #查詢白名單 allow-update {}; #更新白名單,一般為none 遞歸白名單: allow-recursion {}; recursion yes;
配置轉發區域
轉發本區域解析不到的請求至某指定的DNS服務器,而非根
zone "ZONE NAME" IN { type forward; foward only|first; forwarders { IP; }; }
bind acl
內置的acl:any (任何主機)、none(拒絕任何)、localhost(本機)、localnet(本機所在網絡)
自定義acl:
acl ACL_NAME { ip; ip; network; }; 例如: acl localnetwork { 172.16.0.0/16; 192.168.0.0/24; }; allow-recursion { localnetwork; } #通常定義于options之上
實戰子域授權和轉發
案例要求:
父域服務器為172.16.10.10,域名scholar.com,運維部需要一個子域ops.scholar.com,子域服務器為172.16.10.110,要求完成子域授權,確保子域可以使用,將子域解析不到的請求向父域轉發,只向父域查詢,父域解析不了,返回失敗。
在父域正向區域文件添加膠水記錄
[root@lab named]# vim scholar.com.zone ops IN NS dns.ops dns.ops IN A 172.16.10.110 #子域可在不同網段 #如有多個子域都需要一一添加
父域檢查語法,重新啟動服務
子域添加子域區域及轉發域
[root@scholar ~]# vim /etc/named.conf zone "ops.scholar.com" IN { #添加正向區域 type master; file "ops.scholar.com.zone"; }; zone "scholar.com" IN { #添加轉發域 type forward; #指定服務器類型為轉發 forwarders { 172.16.10.10; }; #轉發列表,可多個IP forward only; #定義轉發類型 }; include "/etc/named.rfc1912.zones"; //include "/etc/named.root.key"; #轉發需注釋此行
創建子域區域文件
[root@scholar named]# vim ops.scholar.com.zone $TTL 3600 @ IN SOA dns.ops.scholar.com. admin.ops.scholar.com. ( 2015040801 2H 10M 7D 1D ) @ IN NS dns.ops.scholar.com. @ IN MX 10 mail.ops.scholar.com. dns IN A 172.16.10.110 www IN A 172.16.10.110 mail IN A 172.16.10.123 ftp IN CNAME www pop IN CNAME mail
修改權限及屬組
檢查語法,啟動服務并設置開機自啟
測試子域能否解析
子域測試轉發
子域授權和轉發配置完成,解析通過,看一下最后一項view視圖。
view視圖
視圖定義
根據客戶端來源的不同,將同一個名稱解析至不同的值。
視圖工作過程
view配置
語法格式
acl telecom { }; acl unicom { }; view telecom { match-clients { telecom; }; zone "scholar.com" IN { type master; file "scholar.com.tel"; }; }; view unicom { match-clients { unicom; }; zone "scholar" IN { type master; file "scholar.com.uni"; }; };
使用view注意的事項:
①通常只為內網客戶端提供遞歸功能,提供根區域等;
②通常只為外網客戶端提供本機所負責的區域的解析;
實戰view配置
案例要求:
配置一個視圖,要求內網訪問(這里以172.16.0.0/16代表)返回一組解析結果,外網訪問(這里以192.168.1.0/24代表)返回另一組解析結果。
DNS服務器:172.16.10.10(centos6.6),兩個接口(172.16.10.10、192.168.1.100)
測試客戶端:172.16.10.110(centos6.6)、192.168.1.5(winxp)
修改配置文件,添加view
view internal { match-clients { 172.16.0.0/16; }; zone "." IN { type hint; 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.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; }; }; zone "scholar.com" IN { type master; allow-transfer { 172.16.10.100; }; file "scholar.com.int"; }; zone "10.16.172.in-addr.arpa" IN { type master; allow-transfer { 172.16.10.100; }; file "172.16.10.int"; }; }; view external { match-clients { any; }; zone "scholar.com" IN { type master; file "scholar.com.ext"; }; };
創建internal正向區域文件
$TTL 3600 @ IN SOA dns.scholar.com. admin.scholar.com. ( 2015040803 2H 10M 7D 1D ) @ IN NS dns @ IN MX 10 mail dns IN A 172.16.10.10 mail IN A 172.16.10.12 www IN A 172.16.10.10 pop IN CNAME mail ftp IN CNAME www
創建external正向區域文件
$TTL 3600 @ IN SOA dns.scholar.com. admin.scholar.com. ( 2015040803 2H 10M 7D 1D ) @ IN NS dns @ IN MX 10 mail dns IN A 172.16.10.10 mail IN A 11.1.1.2 www IN A 11.2.2.10
創建完別忘了,修改權限和屬組,我這里是直接修改以前的文件,就不需要再修改了
測試語法,重啟服務
測試不同客戶端返回解析
解析返回結果不同,看看是不是我們定義的結果呢,好了view就講到這里了。
The end
好了,到此為止Linux DNS服務系列的相關功能就講解完了,林林總總寫了這么多,希望可以對你有所幫助,以上僅為個人學習總結,如有錯漏,大神勿噴~~~
原創文章,作者:書生,如若轉載,請注明出處:http://www.www58058.com/2998