(DNS)

 

(一)DNS入門介紹css

先關selinux和firewalld(setenforce 0; systemctl stop firewalld.service )
前言:DNS(Domain Name System,域名系統),因特網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。經過主機名,最終獲得該主機名對應的IP地址的過程叫作域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號53。

  • socket 
    • C/S模式 
      • Clients:發起應用請求的程序
      • Server:相應請求(提供服務)的程序 
        • 服務器端的程序必須監聽在一個socket上(Socket=IP+Port),且套接字必須在客戶端和服務端都有
    • 傳輸層協議:TCP , UDP , SCTP 
      • TCP :transmission control protocol 面向鏈接的協議,雙方在互相通訊的時候,須要創建虛鏈路,虛鏈接
      • UDP:user datagram protocol 無鏈接的協議,雙方在互相通訊的時候,不須要創建虛鏈路,虛鏈接
  • DNS(domain name service)應用層協議 
    • 屬於C/S模式
    • 監聽的端口:53/udp, 53/tcp
    • www.baidu.com: FQDN( full qualified damain name )
    • top level domain 
      • 組織域:.com , .net , .org , gov , edu , mil
      • 國家域:.cn , hk , tw , .jp
    • DNS查詢類型 
      • 遞歸查詢:從客戶機到本地設置的DNS服務器
      • 迭代查詢:從根服務器到各個子服務器
  • 一般的DNS查詢過程
1)當用戶在瀏覽器輸入域名的時候,首先會在本地的hosts文件中查找,若是hosts文件中沒有對應域名的IP地址,那麼就會發起一個DNS協議的網絡請求,對DNS根服務器的53號端口發起一個UDP請求,根服務器在解析瀏覽器發送的DNS請求以後,會查找本地的DNS數據庫,在本地的數據庫查找完畢以後會經過網絡響應給客戶端。那麼,這個時候客戶端就拿到了域名對應的IP地址,就能夠訪問服務器了。
2)對於用戶第一次輸入一個域名的時候,先會查找本地的hosts文件,若是hosts文件沒有找到,那麼將會在本地的DNS緩存中查找,若是本地緩存中沒有找到,那麼就會去找DNS服務器了。那麼當DNS服務器返回解析到的IP地址給用戶的時候,將會先將域名對應的IP地址暫存至緩存
  • DNS的查詢分類 
    • 遞歸查詢和迭代查詢的區別 
      • (1)遞歸查詢 
        • 遞歸查詢是客戶端面向本地的DNS服務器的一種查詢方式,在該模式下運營商的DNS 服務器接收到客戶機請求,必須使用一個準確的查詢結果回覆客戶機。若是DNS 服務器本地沒有存儲查詢DNS 信息,那麼該服務器會詢問其餘服務器,並將返回的查詢結果提交給客戶機。
      • (2)迭代查詢 
        • 迭代查詢是運營商的DNS 服務器代理用戶的DNS請求,面向全球的DNS服務器進行的查詢。當客戶機發送查詢請求時是遞歸查詢,而運營商的DNS服務器會首先請求根DNS 服務器,而根DNS服務器並不直接回複查詢結果,而是告訴運營商DNS服務器另外一臺DNS 服務器地址,運營商DNS服務器再向這臺DNS 服務器提交請求,依次循環直到拿到查詢的結果爲止。
        • 示意圖說明

Alt text

  • DNS解析 
    • DNS名稱解析方式 
      • 名稱—>IP:正向解析
      • IP—>名稱:反向解析
      • 注意:兩者的名稱空間,非爲同一個空間,非同一顆樹,所以,也不是同一個解析庫
    • DNS服務器類型 
      • 負責解析至少一個域 
        • 主名稱服務器
        • 輔助名稱服務器
      • 不負責域解析:緩存名稱服務器
    • 一次完整的DNS查詢請求所通過的流程 
      • Client--->hosts文件--->DNS Local Cache--->服務商的DNS server (recursion) ---> DNS服務器 
        • 本身負責解析的域:直接查詢數據庫並返回答案
        • 不是本身負責的解析域:server cache —> iteration(迭代)
      • 解析答案 
        • 確定答案
        • 否認答案:不存在查詢的鍵,所以,不存在與其查詢鍵對應的值
        • 權威答案:由直接負責DNS服務器返回的答案
        • 非權威答案
其實咱們申請一個域名的時候,一個都是申請一個二級域,好比yhyblog.cn。這就是一個二級域。而一個二級域能夠申請多個域名,如:www.yhyblog.cn。若是有機會,但願能夠帶着你們在阿里雲上購買域名、服務器,搭建本身的博客站點

(二)DNS主從服務器配置說明java

前言:

  • DNS主服務器——輔助服務器 
    • 主DNS服務器:維護所負責解析的域數據庫的那臺服務器,讀寫操做都可進行
    • 從DNS服務器:從主DNS服務器那裏或其餘從DNS服務器那裏複製一份解析庫;但只能進行讀操做 
      • 複製操做的實施方式 
        • 序列號:serial,也就是數據庫的版本號,當主服務器的數據庫發生變化時,其版本號遞增
        • 刷新時間間隔:refresh,從服務器每隔多久到主服務器檢查更新狀況
        • 重試時間間隔:retry,從服務器從主服務器請求數據庫失敗,再次發起請求的時長
        • 過時時長:expire,從服務器始終練習不到主服務器,多久以後放棄從主服務器同步數據庫,中止提供服務
        • 否認答案的緩存時長
      • 主服務器通知從服務器更新數據
      • 數據區域傳送 
        • 全量傳送(axfr):將整個數據庫進行傳送
        • 增量傳送(ixfr):僅僅傳送變動的數據
      • 區域(zone)和域(domain) 
        • yhyblog.cn 域 
          • FQDN--->IP 
            • 正向解析庫 + 正向解析功能 == 正向解析區域
          • IP ---> FQDN 
            • 反向解析庫 + 方向解析功能 == 方向解析區域
      • 區域數據庫文件 
        • 資源記錄:resource record 
          • 記錄有其類型:A , AAAA , PTR, SOA , NS , CNAME , MX
          • 例如:IP和域名的對應關係、IP和郵件地址的對應關係
        • SOA:start of authority 起始受權記錄,一個區域解析庫有且只能有一個SOA記錄,必須放在第一條,表示受權一個解析區域
        • NS:name service 域名服務記錄,一個區域解析庫能夠有多個NS記錄,其中一個爲主的。一個NS記錄表示給一個區域進行解析
        • A:address,地址記錄,FQDN—>IPv4
        • AAAA:地址記錄。FQDN—>IPv6
        • CNAME:canonical name 別名記錄
        • PTR:pointer , IP—>FQDN
        • MX:mail exchanger 郵件交換器 
          • 優先級:0-99 數字越小優先級越高
      • 資源記錄的定義格式 (很是重要,必定要牢記) 
        • 語法:name(資源記錄名) [TTL值] IN RR_type(資源記錄類型) 值
  • SOA記錄詳解 
    • name : 當前區域的名字,例如 yhyblog.cn 或者2.3.4.in-addr.arpa
    • value:有多部分組成 
      • (1)當前區域的區域名稱(也可使用主DNS服務器名稱)
      • (2)當前區域管理員的郵箱地址,但地址中不能使用@符號,通常使用點號來替代
      • (3)(主從服務協調屬性的定義以及否認答案的TTL)
yhyblog.cn 86400 IN SOA yhyblog.cn. admin.yhyblog.cn. (

2017082101 ;serial
2H ; refresh
10M; retry
1W ; expire
1D ; negative answer ttl

)
  • NS記錄詳解 
    • name : 當前區域的區域名稱
    • value:當前區域的某DNS服務器的名字,例如 ns.yhyblog.cn 
      • 注意:一個區域有多個ns記錄
yhyblog.cn. 86400 IN NS www.yhyblog.cn
yhyblog.cn. 86400 IN NS bbs.yhyblog.cn
  • MX記錄 
    • name:當前區域的區域名稱
    • value:當前區域某個郵件交換器的主機名 
      • 注意:MX記錄能夠有多個,可是每一個記錄的value以前應該有一個數字表示其優先級
yhyblog.cn. IN MX 10 mx1.yhyblog.cn.
yhyblog.cn. IN MX 20 mx2.yhyblog.cn.
  • A記錄 
    • name:某FQDN, 例如:www.yhyblog.cn
    • value:某IPv4地址
www.yhyblog.cn IN A 1.1.1.1
www.yhyblog.cn IN A 1.1.1.2
bbs.yhyblog.cn IN A 1.1.1.1
  • AAAA記錄 
    • name:某FQDN, 例如:www.yhyblog.cn
    • value:某IPv6地址
  • PTR 
    • name :IP地址,有特定格式,IP反過來寫,並且有特定後綴,例如:1.2.3.4的記錄應該寫爲4.3.2.1.in-addr.arpa.;
    • value : FQND
4.3.2.1.in-addr.arpa. IN PTR www.yhyblog.cn
  • CNAME 
    • name:別名, FQDN格式的別名
    • value:FQDN的正式名稱
web.yhyblog.cn. IN CNAME www.yhyblog.cn
  • 區域數據庫書寫格式的注意點

1)TTL能夠從全局繼承
2)@表示當前區域的名稱
3)相鄰的兩條記錄其name相同時,後面的可省略
4)對於正向區域來講,各XM , NS等類型的記錄的value爲FQDN , 此FQDN應該有一個A記錄

(三)下午上課前簡要回顧和展望python

前言:上課先講清楚理論知識,下午進行實際操做
通過上午對DNS理論知識的講解,同窗們已經瞭解了對DNS服務的一個簡要的配置與DNS服務的一個應用場景。下午經過搭建DNS服務器讓你們熟悉DNS服務器的搭建過程,以及經過講解DNS服務器的主從複製,擴展到數據庫的主從複製

  • 資源記錄的類型:SOA NS MX A AAAA PTR CNAME
  • 區域傳送的類型:全量傳送 , 增量傳送
  • 資源記錄定義的格式 
    • 語法:資源記錄名 [TTL值] IN 資源記錄類型 值
  • 課外練習:在阿里雲的萬網上註冊一個域名,在購買一個虛擬主機

(四)DNS and bind實戰linux

前言:

  • BIND 的安裝配置 
    • BIND:Berkeley Internet name domain 。
(1)bind是dns協議的一種實現,也就是說,bind僅僅是實現DNS協議的一種應用程序
(2)bind運行後的進程名叫named,不叫bind
  • 程序包: 
    • bind-libs:被bind和bind-utils包中的程序共同用到的庫文件
    • bind-utils:bind客戶端程序集,例如:dig , host , nslookup等
    • bind:提供的dns server 程序、以及幾個經常使用的測試程序
    • bind-chroot:選裝,讓named運行在jail中
  • bind 
    • 服務的主配置文件在: /etc/named.conf 
      • 能夠經過include將其餘文件包含進來,如: 
        • /etc/named.iscdlv.key
        • /etc/named.rfc1912.zones
        • /etc/named.root.key
    • 解析庫文件(很是重要) 
      • /var/named/目錄下
      • 通常名字命名爲:區域名稱.zone
      • 注意:
      • (1)一臺DNS服務器能夠同時爲多個區域提供解析 
        • 例如:能夠爲yhyblog.cn、uplooking.com、baidu.com等區域提供解析服務
      • (2)必需要有根區域解析庫文件,告訴DNS服務器根節點服務器地址,named.ca
      • (3)還應該有兩個區域解析庫文件,localhost 和 127.0.0.1的正反向解析庫 
        • 正向解析庫叫:/var/named/named.localhost
        • 反向解析庫叫:/var/named/named.loopback
    • rndc:名稱服務器的遠程控制工具 
      • 默認工做在953/tcp , 監聽於127.0.0.1地址,所以僅僅是本地使用
    • bind程序安裝完成以後,默認便可做爲緩存名稱服務器使用,就像咱們常常在指定114.114.114.114.114同樣,若是沒有專門負責解析的區域。可直接啓動服務。可是先不啓動,先修改配置文件 
      • CentOS 6 : service named start
      • CentOS 7 : systemctl start named.service
    • bind的主配置文件(/etc/named.conf)格式詳解 
      • 全局配置段 
        • options{...}
      • 日誌配置段 
        • logging{...}
      • 區域配置段 
        • zone{...} 那些由本機負責解析的區域,或轉發的區域
        • 注意:對於DNS主機來講,每個配置語句必須以分號結尾
      • 做爲緩存名稱服務器的配置,修改配置文件/etc/named.conf 
        • 監聽能與外部主機通訊的地址,刪除127.0.0.1, 只保留listen-on port 53 { }; 若是想監聽特定的主機,listen-on port 53 { 192.168.23.3; }; 
          • 而且關閉 dnssec-enable no; dnssec-validation no; dnssec-lookaside no; 註釋 allow-query { localhost; };
        • 只要修改了配置文件,必須檢查配置文件的語法錯誤 
          • named-checkconf /etc/name.conf
        • 啓動服務 
          • systemctl start named.service
      • DNS服務既監聽TCP的53號端口用於傳送,又監聽UDP的53號端口用於解析
  • DNS緩存服務器的配置步驟(必須掌握)
1:yum 安裝bind

2:編輯主配置文件/etc/named.conf

3:修改全局配置段中
listen-on port 53 { 192.168.23.10; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;

4:檢查配置文件是否修改正確
named-checkconf /etc/named.conf

5:重啓named程序
systemctl start named.service

6:開啓另一臺主機,使用nmtui命令,設置其DNS爲192.168.23.10,且重啓網卡

7:再ping下百度,看看是否能夠正常解析
  • DNS測試工具的使用(瞭解) 
    • dig命令, host命令, nslookup命令,rndc命令
  • dig命令(直接測試DNS性能,不會查詢/etc/hosts文件) 
    • dig [-t RR_TYPE] name [@SERVER] [query options] 若是[@SERVER]不寫,那就使用本地指定的dns服務器,若是指定了就不會讀本地的dns服務器 
      • 其中 [query options]爲查詢選項,可使用 
        • +[no]trace :跟蹤解析過程 
          • dig -t A www.baidu.com +trace
        • +[no]recurse:進行遞歸解析 
          • dig -t A www.baidu.com +recurse
        • 用於測試dns系統,所以其不會查詢hosts文件 
          • 注意反向解析使用: dig -x ip 
            • dig -x 115.239.210.176
          • 模擬區域傳送 
            • dig -t axfr DOMAIN [@SERVER]
  • host命令:直接返回解析結果 
    • host [-t RR_TYPE] name SERVER_IP
    • host -t A www.baidu.com
    • host -t NS baidu.com
    • host -t MX baidu.com
  • nslookup命令 
    • nslookup [ -options ] [ name ] [server]
[root@nds1 etc]# nslookup
> server 192.168.23.10
Default server: 192.168.23.10
Address: 192.168.23.10#53
> set q=A
> www.sina.com
Server: 192.168.23.10
Address: 192.168.23.10#53

Non-authoritative answer:
www.sina.com canonical name = us.sina.com.cn.
us.sina.com.cn canonical name = spool.grid.sinaedge.com.
Name: spool.grid.sinaedge.com
Address: 222.76.214.60
  • rndc命令:用於named服務控制命令 
    • rndc status :查看狀態
    • rndc flush :清空緩存服務器緩存
如何搭建一個正向解析服務器
1:在阿里雲購買一個域名和服務器主機
2:在域名後臺修改域名的NS記錄指向服務器主機的IP地址
  • 配置解析一個正向區域 
    • 前提條件:(1)在互聯網註冊一個域名。(2)有一臺互聯網主機(雲服務主機)(3)在域名服務註冊的後臺設置指向這臺互聯網主機
    • 配置 正向區域的步驟
    • 以yhyblog.cn域爲例 
      • (1)定義解析區域 
        • 通常定義在/etc/named.rfc1912.zones裏面 
          • zone "ZONE_NAME" IN { 
            type { master | slave | hint | forward }; 
            file "ZONE_NAME.zone"; 
            };
          • 例如:在/etc/named.rfc1912.zones中添加這幾行 
            zone "yhyblog.cn" IN { 
            type master; 
            file "yhyblog.cn.zone"; (這裏的yhyblog.cn.zone中的yhyblog.cn是在互聯網上註冊的域名) 
            };
      • (2)創建區域數據文件(主要記錄爲A或者AAAA) 
        • 在/var/named目錄下創建區域數據文件 
          • 區域數據文件的文件名爲:/var/named/yhyblog.cn.zone
          • 文件內容爲:
$TTL 3600

$ORIGIN yhyblog.cn. ; 這裏會自動補全yhyblog.cn
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082101
1H
10M
3D
1D ) ; SOA記錄是受權一個yhyblog.cn解析域

IN NS ns1 ; NS記錄是用來指定解析yhyblog.cn域,ns1爲解析服務器的域名
IN MX 10 mx1 ; MX記錄是用來指定解析yhyblog.cn域,ns1爲解析服務器的郵件地址
IN MX 20 mx2
ns1 IN A 192.168.23.10 ;ns1域名也必須有一條A記錄
mx1 IN A 192.168.23.10 ;xm1域名也必須有一條A記錄
mx2 IN A 192.168.23.10 ;xm2域名也必須有一條A記錄
www IN A 192.168.23.3
web IN CNAME www
bbs IN A 192.168.23.7
bbs IN A 192.168.23.8
  • 修改yhyblog.cn.zone的權限和屬組 
    • chown .named /var/named/yhyblog.cn.zone
    • chmod o= /var/named/yhyblog.cn.zone
  • 檢查配置文件和區域解析庫文件的語法錯誤 
    • named-checkconf /etc/named.conf
    • named-checkconf /etc/named.rfc1912.zones
    • named-checkzoen yhyblog.cn /var/named/yhyblog.cn.zone
  • 重啓named服務讓服務器重載配置文件和區域數據文件 
    • rndc reload 或 systemctl reload named.service
  • 使用dig命令測試當前配置的解析區域ios

    • dig -t A www.yhyblog.cn @192.168.23.10
  • 總結如何配置一個正向解析區域的詳細步驟(必須掌握)web

1:定義解析區域, 編輯/etc/named.rfc1912.zones文件,添加
zone "yhyblog.cn" IN {
type master;
file "yhyblog.cn.zone";
};


2: 編輯/var/named/yhyblog.cn.zone,添加解析區域
$TTL 3600
; 這裏會自動補全yhyblog.cn
$ORIGIN yhyblog.cn.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082101
1H
10M
3D
1D )

IN NS ns1
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.23.10
mx1 IN A 192.168.23.10
mx2 IN A 192.168.23.10
www IN A 192.168.23.3
web IN CNAME www
bbs IN A 192.168.23.7
bbs IN A 192.168.23.8

3:修改yhyblog.cn.zone的權限和屬組
chown .named /var/named/yhyblog.cn.zone
chmod o= /var/named/yhyblog.cn.zone

4:檢查配置文件和區域解析庫文件的語法錯誤
named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones
named-checkzoen yhyblog.cn /var/named/yhyblog.cn.zone

5:重啓named服務讓服務器重載配置文件和區域數據文件
systemctl reload named.service 或 rndc reload

6:使用dig命令測試當前配置的解析區域
dig -t A www.yhyblog.cn @192.168.23.10

7: 在其餘的主機上,將DNS設置爲:192.168.23.10,再使用dig命令檢查
  • 配置解析一個反向解析區域 
    • (1)定義區域 
      • 在主配置文件中或在主配置文件的輔助配置文件中實現 
        • zone 「ZONE_NAME」 IN {
        • type { master | slave | hint | forward };
        • file 「ZONE_NAME.zone」;
        • };
      • 注意:
      • 1. 區域名字就是註冊的域名
      • 2. 方向區域的名字是這樣的 
        • 反寫的網段地址.in-addr.arpa 
          • 例如:10.168.192.in-addr.arpa
    • 定義區域解析庫文件(主要記錄爲PTR) 
      • 在/var/named目錄下創建區域數據文件 
        • 區域數據文件的文件名爲:/var/named/192.168.23.3.zone
        • 文件內容爲:
$TTL 3600
$ORIGIN 23.168.192.in-addr.arpa.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082101
1H
10M
3D
12H )
IN NS ns1.yhyblog.cn.
10 IN PTR ns1.yhyblog.cn.
10 IN PTR mx1.yhyblog.cn.
10 IN PTR mx2.yhyblog.cn.
3 IN PTR www.yhyblog.cn.
7 IN PTR bbs.yhyblog.cn.
8 IN PTR bbs.yhyblog.cn.
  • 而且修改yhyblog.cn.zone的權限和屬組 
    • chown .named /var/named/192.168.23.zone
    • chmod o= /var/named/192.168.23.zone
  • 檢查配置文件和區域解析庫文件的語法錯誤 
    • named-checkconf /etc/named.conf
    • named-checkconf /etc/named.rfc1912.zones
    • named-checkzone 10.168.192.in-addr.arpa /var/named/192.168.23.zone
  • (3)讓服務器重載配置文件和區域數據文件數據庫

    • rndc reload 或 systemctl reload named.service
  • 總結如何配置一個反向解析區域的詳細步驟(必須掌握)瀏覽器

1:編輯/etc/named.rfc1912.zones,添加
zone "23.168.192.in-addr.arpa" IN {
type master;
file "192.168.23.zone";
};

2: 在/var/named/下,建立一個192.168.23.zone文件
$TTL 3600
$ORIGIN 23.168.192.in-addr.arpa.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082101
1H
10M
3D
12H )
IN NS ns1.yhyblog.cn.
10 IN PTR ns1.yhyblog.cn.
10 IN PTR mx1.yhyblog.cn.
10 IN PTR mx2.yhyblog.cn.
3 IN PTR www.yhyblog.cn.
7 IN PTR bbs.yhyblog.cn.
8 IN PTR bbs.yhyblog.cn.

3:修改yhyblog.cn.zone的權限和屬組
chown .named /var/named/192.168.23.zone
chmod o= /var/named/192.168.23.zone

4:檢查配置文件和區域解析庫文件的語法錯誤
named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones
named-checkzone 23.168.192.in-addr.arpa /var/named/192.168.23.zone

5:重啓named服務讓服務器重載配置文件和區域數據文件
systemctl reload named.service 或 rndc reload

6:使用dig命令測試當前配置的反向解析區域
dig -x 192.168.23.10

7: 在其餘的主機上,將DNS設置爲:192.168.23.10,再使用dig命令檢查

(五)主從DNS服務器實戰緩存

前言:從服務器只是在區域級別進行的。也就是說,一臺從服務器只是主服務器的一個區域的副本,不是全部區域的副本。若是要配置成主服務器上全部的區域的副本,那麼須要配置全部的從服務器的區域。
所以,瞭解了主從複製是區域級別的主從複製以後,咱們就能夠部署兩臺服務器。第一臺服務器有一個主區域和一個從區域,次日服務器有一個第一臺服務器的從區域,和一個主區域
主從服務器還能夠繼續級聯,也就是說從從服務器能夠是其餘服務器的主服務器,但也是區域級別的複製
這裏主服務器的IP地址爲:192.168.23.10
這裏從服務器的IP地址爲:192.168.23.11

  • DNS服務器解析方案安全

    • (1)若是其餘linux客戶機在/etc/resolv.conf 文件中設置了指向個人DNS服務器的解析,個人DNS服務器是否給予解析? 
      • 答:不解析,由於這種遞歸解析會消耗個人DNS服務器的資源
    • (2)若是其餘linux客戶機經過本身的DNS服務器,從根服務器開始解析,一直解析到個人DNS服務器,而且請求的域就是個人DNS服務器負責的域,是否給予解析 
      • 答:給予解析。若是不解析,你對外提供的產品服務別人如何訪問
  • 主從服務器是區域級別的概念

    • 如何配置一個從區域 
      • 在Slave 服務器上(192.168.23.11) 
        • (1)定義區域 
          • 定義一個從區域
          • zone "ZONE_NAME" IN { 
            type slave ; 
            file "slaves/ZONE_NAME.zone"; 
            masters { MASTER_IP } 
            };
        • 例如:在/etc/named.rfc1912.zones文件中增長: 
          • zone "yhyblog.cn" IN { 
            type slave; 
            masters { 192.168.23.3; }; 
            file "slaves/yhyblog.cn.zone"; 
            }; 
            zone "10.168.192.in-addr.arpa" IN { 
            type slave; 
            file "slaves/192.168.23.zone"; 
            masters { 192.168.23.3; }; 
            };
          • 注意:這裏爲何要將從服務器的域寫在slaves目錄下?這是因爲named這個進程是以named的身份運行的,可是/etc/named/目錄的屬組是named,沒有寫權限,那麼主服務器將不可以以named的身份在/etc/named/目錄下寫入數據。那麼能夠在/etc/named/slaves目錄下寫,/etc/named/slaves目錄的權限爲:drwxrwx--- 2 named named 6 1月 17 20:00 slaves,能夠寫數據。那麼是否能夠將/etc/named/目錄改成named用戶組成員能夠寫呢?不行,若是這樣作的話,那麼若是named進程被劫持,將會有權利清空裏面的全部的數據,這樣就是爲何會有一個/etc/named/slaves目錄專門爲從DNS服務器寫域解析庫的緣由。
          • 配置文件語法檢查:named-checkconf
        • (2)重載配置 
          • rndc reload 或 systemctl reload named.service
      • 在Master服務器上(192.168.23.10) 
        • (1)確保區域數據文件中應該爲每個從DNS服務器配置NS記錄,而且在正向區域文件須要每一個從服務器的NS記錄的主機名配置一個A記錄,且此A記錄後面的地址爲真正的從服務器的IP地址
        • 例如:在/var/named/yhyblog.cn.zone文件裏修改:
$TTL 3600
$ORIGIN yhyblog.cn.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017010802
1H
10M
3D
1D )

IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.23.3
ns2 IN A 192.168.23.4
mx1 IN A 192.168.23.4
mx2 IN A 192.168.23.5
www IN A 192.168.23.3
web IN CNAME www
bbs IN A 192.168.23.7
bbs IN A 192.168.23.8
pop3 IN A 192.168.23.9
  • 例如:在/var/named/yhyblog.cn.zone文件裏修改
$TTL 3600
$ORIGIN 10.168.192.in-addr.arpa.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017010803
1H
10M
3D
12H )
IN NS ns1.yhyblog.cn.
IN NS ns2.yhyblog.cn.
3 IN PTR ns1.yhyblog.cn.
3 IN PTR ns2.yhyblog.cn.
4 IN PTR mx1.yhyblog.cn.
5 IN PTR mx2.yhyblog.cn.
3 IN PTR www.yhyblog.cn.
7 IN PTR bbs.yhyblog.cn.
8 IN PTR bbs.yhyblog.cn.
9 IN PTR pop3.yhyblog.cn.
  • 注意:若是要測試是否主從同步使用dig命令(在從服務器上) 
    • 例如:dig -t axfr yhyblog.cn @192.168.23.10
    • 例如:dig -t axfr 23.168.192.in-addr.arpa @192.168.23.10
    • 注意:時間要同步,主從服務器都使用ntpdate命令同步,寫在contab -e中

(六)子域受權

前言:若是咱們如今在公司的內網搭建一個內部的DNS服務,那麼如今對於yhyblog.cn來講,公司內部有不少部門。例如ops.yhyblog.cn,java.yhyblog.cn, python.yhyblog.cn。且每個部門有不少的服務器須要獲得解析,例如:www.ops.yhyblog.cn須要被公司內部的DNS服務器解析。那麼如何讓公司內網的DNS主機只解析二級域,不會解析三級域,那麼如何讓其餘的主機解析三級域呢?

  • 子域受權

    • 正向解析區域受權子域的方法 
      • ops.yhyblog.cn. IN NS ns1.ops.yhyblog.cn.
      • ops.yhyblog.cn. IN NS ns2.ops.yhyblog.cn.
      • ns1.ops.yhyblog.cn. IN A IP
      • ns2.ops.yhyblog.cn. IN A IP 
        • 例如:在主DNS服務器/var/named/yhyblog.cn.zone 中添加:
        • ops IN NS ns1.ops 
          ns1.ops IN A 192.168.23.12
        • 例如:子域服務器中,在/etc/named.rfc1912.zones中添加: 
          zone "ops.yhyblog.cn" IN { 
          type master; 
          file "ops.yhyblog.cn.zone"; 
          };
        • 例如:子域服務器中,在/var/named//var/named/ops.yhyblog.cn.zone中添加
        • $TTL 3600 
          $ORIGIN ops.yhyblog.cn. 
          @ IN SOA ns1.ops.yhyblog.cn. dnsadmin.ops.yhyblog.cn. ( 
          2017010802 
          1H 
          10M 
          3D 
          1D ) 
          IN NS ns1 
          ns1 IN A 192.168.23.12 
          www IN A 192.168.23.10 
    • 定義轉發(僅僅轉發對某個特定區域的解析請求) 
      • 注意:被轉發的服務器必須容許爲當前服務器作遞歸查詢,不然轉發無效 
        • 就是在被轉發的主DNS服務器中添加
        • acl mynet { 
          192.168.23.0/24; 
          127.0.0.0/8; 
          };
        • allow-recursion { mynet; }; 容許這個網段的服務器作遞歸查詢
      • (1)區域轉發:僅轉發對某特定區域的解析請求 
        • zone "ZONE_NAME" IN{ 
          type forward; 
          forward {first|only}; 
          forwarders { SERVER_IP; }; 
          注意:first:爲首先轉發,轉發器不響應時,自行去迭代查詢 
          only: 只轉發 
          }
        • 例如:在主DNS服務器/var/named/yhyblog.cn.zone 中添加:
        • ops IN NS ns1.ops 
          ns1.ops IN A 192.168.23.5
        • 例如:在主DNS服務器/etc/named.rfc1912.zones中添加:
        • zone "yhyblog.cn" IN { 
          type forward; 
          forward only; 
          forwarders { 192.168.23.3; 192.168.23.4; }; 
          };
      • (2)全局轉發:凡是本地沒有經過zone定義的區域查詢請求,統統轉給某轉發器(DNS服務器) 
        • options { 
          forward {only|first}; 
          forwarders {SERVER_IP}; 
          }
        • 例如:在子域服務器中的/etc/named.conf中
        • forward only; 
          forwarders { 192.168.23.3; };
    • 在bind中與安全相關的配置(瞭解) 
      • acl:訪問控制列表,把一個或多個地址歸併爲一個命名的集合,隨後經過此名稱便可對此集合命令的全部主機實現統一調用
      • acl acl_name { 
        ip; 
        net/mask 
        }
      • 例如: 
        • acl mynet { 
          192.168.23.0/24; 
          127.0.0.0/8; 
          };
      • bind有四個內置的acl 
        • none:沒有一個主機
        • any:任意主機
        • local:本機
        • localnet:本機所在的IP所屬的網絡
      • 訪問控制命令 
        • allow-query {}:容許查詢的主機,白名單
        • allow-transfer {}:容許向哪些主機作區域傳送,默認爲全部主機,應該配置爲僅容許從服務器
        • allow-recursion {}:容許哪一個主機向當前的DNS服務器發起遞歸請求,不容許遞歸的服務器不會轉發請求,所以,dns服務器只容許指定的服務器進行遞歸查詢
        • allow-update {}:DDNS , 容許動態更新區域數據庫文件中的內容
  • 配置主從服務器步驟(必須掌握)


1:yum 安裝bind

2:編輯主配置文件/etc/named.conf

3:修改全局配置段中
listen-on port 53 { 192.168.23.11; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;

4:檢查配置文件是否修改正確
named-checkconf /etc/named.conf

5:重啓named程序
systemctl start named.service

6:開啓另一臺主機,使用nmtui命令,設置其DNS爲192.168.23.11,且重啓網卡

7:再ping下百度,看看是否能夠正常解析

8:編輯/etc/named.rfc1912.zones文件
zone "yhyblog.cn" IN {
type slave;
file "slaves/yhyblog.cn";
masters { 192.168.23.10; };
};

9:檢查下從服務器的配置文件是否錯誤
named-checkconf /etc/named.rfc1912.zones

10:再回到主服務器,編輯/var/named/yhyblog.cn.zone文件(在主從複製中,每次修改主服務器配置文件都須要將序列號加1)
$TTL 3600
; 這裏會自動補全yhyblog.cn
$ORIGIN yhyblog.cn.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082102
1H
10M
3D
1D )

IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.23.10
ns2 IN A 192.168.23.11 ; 指定這個ns記錄的IP是從服務器的IP地址
mx1 IN A 192.168.23.10
mx2 IN A 192.168.23.10
www IN A 192.168.23.3
web IN CNAME www
bbs IN A 192.168.23.7
bbs IN A 192.168.23.8

11:檢查下主服務器的配置文件是否錯誤
named-checkzone yhyblog.cn yhyblog.cn.zone

12:重啓主服務器
systemctl reload named.service

13: 重啓從服務器
systemctl reload named.service

14:查看是否開始同步,是否同步成功
systemctl status named.service

15:在從服務器中自動生成了一個/var/named/slaves/yhyblog.cn文件

16:且在另一臺服務器上,dig測試一下,是否能夠解析

17: 若是如今給主服務器添加一條pop3的A記錄,且修改序列號
$TTL 3600
; 這裏會自動補全yhyblog.cn
$ORIGIN yhyblog.cn.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082102
1H
10M
3D
1D )

IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.23.10
ns2 IN A 192.168.23.11
mx1 IN A 192.168.23.10
mx2 IN A 192.168.23.10
www IN A 192.168.23.3
web IN CNAME www
bbs IN A 192.168.23.7
bbs IN A 192.168.23.8
pop3 IN A 192.168.23.9

18:重啓主服務器
systemctl reload named.service

此時已經實現了正向區域的主從同步,那麼還須要實現反向區域的主從同步

19:在從服務器再次編輯/etc/named.rfc1912.zones文件,添加一個反向區域的從設置
zone "23.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.23.zone";
masters { 192.168.23.10; };
};

20: 編輯主服務器的反向解析區域文件,添加一條NS記錄,且A記錄對於的地址指向192.168.23.11
$TTL 3600
$ORIGIN 23.168.192.in-addr.arpa.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082101
1H
10M
3D
12H )
IN NS ns1.yhyblog.cn.
IN NS ns2.yhyblog.cn.
10 IN PTR ns1.yhyblog.cn.
11 IN PTR ns2.yhyblog.cn.
10 IN PTR mx1.yhyblog.cn.
10 IN PTR mx2.yhyblog.cn.
3 IN PTR www.yhyblog.cn.
7 IN PTR bbs.yhyblog.cn.
8 IN PTR bbs.yhyblog.cn.

21: 建立下反向解析是否配置正確
named-checkzone 23.168.192.in-addr.arpa 192.168.23.zone

22: 主服務器從新reload
systemctl reload named.service

23: 從服務器從新reload
systemctl reload named.service

24:爲了測試反向解析是否配置成功,將主服務器的反向解析添加一條pop3的PTR記錄,且修改序列號
$TTL 3600
$ORIGIN 23.168.192.in-addr.arpa.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082102
1H
10M
3D
12H )
IN NS ns1.yhyblog.cn.
IN NS ns2.yhyblog.cn.
10 IN PTR ns1.yhyblog.cn.
11 IN PTR ns2.yhyblog.cn.
10 IN PTR mx1.yhyblog.cn.
10 IN PTR mx2.yhyblog.cn.
3 IN PTR www.yhyblog.cn.
7 IN PTR bbs.yhyblog.cn.
8 IN PTR bbs.yhyblog.cn.
9 IN PTR pop3.yhyblog.cn.

24:主服務器再次reload一下
systemctl reload named.service

25:在192.168.23.12主機上,設置DNS爲從服務器的地址,使用dig命令進行測試
dig -x 192.168.23.9
dig -t A pop3.yhyblog.cn
  • 配置子域受權(必須掌握)
  • 主機IP劃分:192.168.23.10(主),192.168.23.11(從),192.168.23.12(子域)
1:在主服務器上,編輯/var/named/yhyblog.cn,添加一條子域的NS記錄, 和子域的A記錄,且修改序列號
$ORIGIN yhyblog.cn.
@ IN SOA ns1.yhyblog.cn. dnsadmin.yhyblog.cn. (
2017082103
1H
10M
3D
1D )

IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.23.10
ns2 IN A 192.168.23.11
mx1 IN A 192.168.23.10
mx2 IN A 192.168.23.10
www IN A 192.168.23.3
web IN CNAME www
bbs IN A 192.168.23.7
bbs IN A 192.168.23.8
pop3 IN A 192.168.23.9


ops IN NS ns1.ops
ns1.ops IN A 192.168.23.12


2:主服務器從新reload
systemctl reload named.service

3:那麼如今在子域服務器上配置子域解析庫
yum install -y bind

4: 修改配置文件
listen-on port 53 { 192.168.23.12; };
//allow-query { localhost; };
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;

5:啓動服務
systemctl start named.service

6:編輯/etc/named.rfc1912.zones ,添加子域的正向解析區域
zone "ops.yhyblog.cn" IN {
type master;
file "ops.yhyblog.cn.zone";
};

7:編輯/var/named/ops.yhyblog.cn.zone文件,添加
$TTL 3600
$ORIGIN ops.yhyblog.cn.
@ IN SOA ns1.ops.yhyblog.cn. dnsadmin.ops.yhyblog.cn. (
2017082101
1H
10M
3D
1D )

IN NS ns1
ns1 IN A 192.168.23.12
www IN A 192.168.23.100

8:修改權限
chmod o= /var/named/ops.yhyblog.cn.zone
chown .named /var/named/ops.yhyblog.cn.zone

9:作語法檢查
named-checkzone /var/named/ops.yhyblog.cn.zone
named-checkzone ops.yhyblog.cn /var/named/ops.yhyblog.cn.zone

10:重啓reload
systemctl reload named.service

11:最後使用dig命令對www.ops.yhyblog.cn進行檢查
dig -t A www.ops.yhyblog.cn @192.168.23.10
dig -t A www.ops.yhyblog.cn @192.168.23.11
  • 在子域中定義區域轉發(必須掌握)
  • 將父域的解析轉發,這裏是將yhyblog.cn的解析轉發給父域進行解析

1:在192.168.23.12上編輯/etc/named.rfc1912.zones,添加
zone "yhyblog.cn" IN {
type forward;
forward only;
forwarders { 192.168.23.10; 192.168.23.11; };
};

2:檢查下配置文件
named-checkconf /etc/named.rfc1912.zones

3:從新reload一下
systemctl reload named.service

4:使用dig解析一下父域負責解析的地址
dig -t A bbs.yhyblog.cn @192.168.23.12

  • 在子域中定義全局轉發(必須掌握)
  • 任何解析都轉發給解析服務器進行解析
1:在192.168.23.12子域服務器中編輯/etc/named.conf ,在optios中添加
forward only;
forwarders { 192.168.23.10; };

2:重啓reload
systemctl reload named.service

3:使用全局轉發
dig -t A www.baidu.com @192.168.23.12
  • 傳送的安全控制機制(必須掌握)
  • 案例:父域的正向解析只能傳送給從服務器
1:編輯192.168.23.10的/etc/named.rfc1912.zones文件,在yhyblog.cn的正向解析中添加
zone "yhyblog.cn" IN {
type master;
file "yhyblog.cn.zone";
allow-transfer { slaves; }; // 指定傳送爲從服務器
};

2:在192.168.23.10的/etc/named.conf文件定義,slaves主機IP,寫在options之上
acl slaves {

192.168.23.11;

};
options{
...
...
}

3:在子域服務器192.168.23.12上,使用dig命令測試傳送
dig -t axfr yhyblog.cn @192.168.23.10
傳送失敗

3:在從服務器192.168.23.11上,使用dig命令測試傳送
傳送成功
  • 案例:指定容許遞歸查詢的主機,以主DNS服務器爲例(只有容許遞歸查詢的主機才能轉發)
1:編輯192.168.23.10中的/etc/named.conf文件,在options{}之上添加
acl recursive {
192.168.23.0/24;
127.0.0.0/8;
};

2:在options中修改
將recursion yes改成allow-recursion { recursive; };

3:重啓reload
systemctl reload named.service
    • 星期一做業: 
      • 正向解析區域
      • 反向解析區域
      • 主從複製
      • 定義子域解析
      • 基本的安全控制81
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息