Linux DNS服務系列之主從復制、子域授權和轉發、view配置詳解

前言

上文我們講解了DNS服務的原理及正反向解析配置,相信大家對DNS服務已經有了初步了解。接下來,讓我們進一步了解DNS服務的其它功能,本文將詳解主從復制、子域授權和轉發以及view的相關配置。

主從服務器配置

主從服務器關系

如果公司內DNS服務器負載過重或者為了實現冗余這一類功能就需要用到一個備份DNS服務器,備份服務器和主DNS服務器就形成了主從關系,如果主服務器的區域文件更新就會通知從服務器同步最新的區域文件,平時從服務器不提供解析服務,如果主服務器有故障從服務器就立刻激活提供域名解析服務。

主從復制工作過程

1.jpg

主從復制配置

①開始配置從服務器之前,請確保主從服務器時間同步

②從服務器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";
};

檢查語法,重啟服務

2.jpg

定義從區域

在從服務器上定義與主服務器相同的正反向區域

[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";
};

測試語法,啟動服務并設置開機自啟

3.jpg

查看53端口是否開啟

4.jpg

查看日志,是否傳輸成功

5.jpg

注意:此處報錯,請設置防火墻規則

看一下文件傳輸過來了沒

6.jpg

從服務器解析測試

7.jpg

到這里主從復制就配置完了,讓我們再看一下子域授權和轉發功能。

子域授權和轉發

子域授權概念

為了方便公司部門管理運營,每個部門需要獨立的域名服務器,這就要在父域下分配子域,比如,運維部的子域ops.scholar.com,而子域需要父域授權,所謂子域授權就是在父域的區域解析庫中添加膠水記錄(glue record)

膠水記錄包括:

授權的子區域域名稱

子區域的名稱服務器

子區域的名稱服務器IP地址 

子域授權和轉發工作過程

8.jpg

子域授權和轉發配置

正向子域授權

只需要在父域的區域解析庫中添加“膠水記錄”

例如:
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   #子域可在不同網段
 
#如有多個子域都需要一一添加

父域檢查語法,重新啟動服務

9.jpg

子域添加子域區域及轉發域

[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

修改權限及屬組

10.jpg

檢查語法,啟動服務并設置開機自啟

11.jpg

測試子域能否解析

12.jpg

子域測試轉發

13.jpg

子域授權和轉發配置完成,解析通過,看一下最后一項view視圖。

view視圖

視圖定義

根據客戶端來源的不同,將同一個名稱解析至不同的值。

視圖工作過程

14.jpg

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

創建完別忘了,修改權限和屬組,我這里是直接修改以前的文件,就不需要再修改了

測試語法,重啟服務

15.jpg

測試不同客戶端返回解析

16.jpg

17.jpg

解析返回結果不同,看看是不是我們定義的結果呢,好了view就講到這里了。

The end

好了,到此為止Linux DNS服務系列的相關功能就講解完了,林林總總寫了這么多,希望可以對你有所幫助,以上僅為個人學習總結,如有錯漏,大神勿噴~~~

原創文章,作者:書生,如若轉載,請注明出處:http://www.www58058.com/2998

(0)
書生書生
上一篇 2015-04-13
下一篇 2015-04-13

相關推薦

  • 優云Monitor:大規模Docker平臺自動化監控之路

    本文介紹了通過優云Monitor,如何實現大規模容器運維平臺的自動化監控需求。 盡管Docker技術目前還處于不穩定的發展與標準制定階段,但這門技術已經呈現了極其火熱的增長狀態,卻已經是不爭的實事。到底有多火熱?讓我們先來看一張來自國外監控公司DataDog 2016年最新調查報告: 從圖中可以看出,自2015年5月后,采用容器技術的應用呈現了30%的大幅增…

    2016-08-05
  • 7.28_Linux_ext數據結構inode的原理淺析、軟硬鏈接的區別

    inode表結構淺析 下圖以ext文件系統為參考,以4k塊大小分區,簡單描述一下ext文件系統的數據結構原理,如果有任何錯誤,煩請各位指出 inode 索引節點 硬盤上的每個磁道被等分為若干個弧段,這些弧段便是磁盤的扇區。硬盤的讀寫以扇區為基本單位。 扇區的大小,是2的N次方倍。分區的大小可以有多樣,1k、2k、4k…以4k塊大小來說明。4k塊大…

    Linux干貨 2016-08-03
  • Linux軟件包管理器—rpm

    rpm 最開始是Red Hat Package Manager 之意,原用在Red Hat Linux一款軟件包管理器,先在已被許多其他Linux 發行商使用,成為主流包管理器,rpm包的文件格式也寫進Linux標準庫中,所以rpm 現在遞歸意為RPM Package Manager。rpm的誕生使得在Linux上管理軟件包變得方便許多,rpm功能強大,可完成構建、安裝、查詢、校驗、升級和卸載軟件包。

    Linux干貨 2016-08-26
  • 文件處理工具系列(二):行編輯器sed

    1、sed介紹     sed(Stream EDitor),是一種行編輯工具,它一次處理一行內容。處理時,把當前匹配到的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令對這些數據做出相應的增刪改查操作,處理完成后,默認輸出至屏幕,而未被匹配到的行也將默認輸出至屏幕。而原來的文件內容并沒有發生改變,除…

    Linux干貨 2016-08-11
  • 權限管理與ACL

    一、文件屬性 1.文件屬性:    文件屬性操作     chown : change owner  ,設置文件所有者     chgrp : change group  ,設置文件的屬組    文件屬主修改: chow…

    Linux干貨 2016-08-05
  • Linux用戶和組管理整理

    本節介紹Linux用戶和組相關的配置文件,用戶賬號管理、查詢用戶信息以及切換用戶的相關命令,將會讓我們更了解各配置文件中各個字段的含義,以及各相關命令的使用方法,方便Linux運維人員管理Linux系統中的用戶和組。 背景: Linux是個多用戶、多任務的系統,考慮到每個人的隱私權、每個人喜好的工作環境以及每個用戶所使用的權限等方面的不同,所以設定了“用戶”…

    Linux干貨 2015-06-15
欧美性久久久久