20170919 DNS服務(wù)(一)

  • DNS簡(jiǎn)介
  • DNS解析關(guān)鍵概念
  • BIND

一、DNS簡(jiǎn)介:

(一)DNS服務(wù)

  • DNS:Domain Name Service,域名解析服務(wù),服務(wù)于應(yīng)用層的協(xié)議
  • 端口:TCP的53端口和UDP的53端口
  • 主流軟件實(shí)現(xiàn):BIND(Berkeley Internet Name Domain)
  • 域名解析方式:
    • 本地解析:hosts文件,每一行格式IP地址 域名
    • 網(wǎng)絡(luò)分層解析:DNS服務(wù)
    • 域名解析時(shí)先查詢本機(jī)hosts文件,匹配則直接使用文件中的域名;若無匹配項(xiàng),再使用DNS服務(wù)

(二)DNS域名

  • 分層設(shè)計(jì),自上而下分為:根域、一級(jí)域名、二級(jí)域名、三級(jí)域名......,最多127級(jí)
  • 一級(jí)域名:
    • 組織域名:com, edu, mil, gov, net, org
    • 國(guó)家地區(qū)域名:cn, uk, hk
    • 反向域名:arpa

(三)DNS解析

  • 按查詢類型分為:遞歸解析和迭代解析

    • 遞歸解析:客戶端向所在網(wǎng)絡(luò)DNS服務(wù)器發(fā)起請(qǐng)求,DNS服務(wù)器發(fā)回解析結(jié)果的過程
    • 迭代解析:當(dāng)某個(gè)DNS服務(wù)器無法解析客戶端的請(qǐng)求時(shí),從根域名服務(wù)器開始,向每層DNS服務(wù)器發(fā)出請(qǐng)求,并接收每層DNS服務(wù)器的查詢結(jié)果,直至找到權(quán)威DNS服務(wù)器(存儲(chǔ)主機(jī)準(zhǔn)確IP地址的服務(wù)器)的過程
  • 一次完整的查詢請(qǐng)求經(jīng)過的流程:
    Client -->hosts文件-->DNS Service Local Cache(本地DNS緩存,Windows有,Linux沒有)--> DNS Server (recursion, 遞歸) --> Server Cache --> iteration(迭代) --> 根--> 頂級(jí)域名DNS-->二級(jí)域名DNS…

  • 按解析方向解析:

    • FQDN(Fully Qualified Domain Name):完全合格域名,主機(jī)+全域名路徑,邏輯上能夠準(zhǔn)確表達(dá)主機(jī)的位置
    • 正向解析:FQDN解析為IP
    • 反向解析:IP解析為FQDN
    • 正向解析和反向解析是兩個(gè)不同的名稱空間,兩個(gè)不同的解析樹

(四)DNS服務(wù)器類型

  • 主服務(wù)器:管理和維護(hù)所在域的解析服務(wù)

  • 從服務(wù)器:主服務(wù)器解析庫的鏡像,復(fù)制和更新的過程稱為區(qū)域傳輸,涉及的概念有:

    • 序列號(hào)(serial):解析庫版本號(hào),主服務(wù)器解析庫變化時(shí),其序列遞增,從服務(wù)器從序列號(hào)判斷主服務(wù)器的解析庫是否發(fā)生變化,最長(zhǎng)10位數(shù)字
    • 刷新時(shí)間間隔(refresh):從服務(wù)器從主服務(wù)器請(qǐng)求同步解析的時(shí)間間隔
    • 重試時(shí)間間隔(retry):從服務(wù)器請(qǐng)求同步失敗時(shí),再次嘗試時(shí)間間隔
    • 過期時(shí)長(zhǎng)(expire):從服務(wù)器聯(lián)系不到主服務(wù)器時(shí),多久后停止服務(wù)
  • 緩存服務(wù)器:轉(zhuǎn)發(fā)器

  • 主從服務(wù)器解析庫更新機(jī)制:Push和Pull

    • Push:推送,主服務(wù)器解析庫發(fā)生變化時(shí),主動(dòng)通知從服務(wù)器更新
    • Pull:拉取,從服務(wù)器按照設(shè)置每隔一定時(shí)間主動(dòng)同步主服務(wù)器的解析庫

二、DNS解析關(guān)鍵概念:

(一)資源記錄(RR, Resource Record)

  • 每個(gè)DNS服務(wù)器的解析庫由各類RR組成

  • 資源記錄的類型:

    • SOA:Start Of Authority,起始授權(quán)記錄;一個(gè)區(qū)域解析庫有且僅能有一個(gè)SOA記錄,必須位于解析庫的第一條記錄
    • A:Internet Address,F(xiàn)QDN --> IP
    • AAAA:FQDN --> IPv6
    • PTR:PoinTeR,IP --> FQDN
    • NS:Name Server,專用于標(biāo)明當(dāng)前區(qū)域的DNS服務(wù)器
    • CNAME:別名記錄
    • MX:Mail eXchanger,郵件交換器
  • 資源記錄定義的格式:

    • 語法:name [TTL] IN rr_type value
    • 注意:
      (1) TTL(緩存的生命期)可從全局繼承,如:$TTL 1d
      (2) @可用于引用當(dāng)前域的名字
      (3) 同一個(gè)名字可以通過多條記錄定義多個(gè)不同的IP,此時(shí)DNS服務(wù)器會(huì)以輪詢方式響應(yīng),這種方式實(shí)現(xiàn)了簡(jiǎn)單的平衡負(fù)載
      (4) 同一個(gè)值也可能有多個(gè)不同的定義名字;通過多個(gè)不同的名字指向同一個(gè)值進(jìn)行定義,此僅表示通過多個(gè)不同的名字可以找到同一個(gè)主機(jī)
      (5) 相鄰資源記錄的name相同時(shí),后續(xù)的name可以省略

(二)SOA記錄

  • name:當(dāng)前域名,可用"@"代替

  • value:包含多部分內(nèi)容
    (1) 當(dāng)前區(qū)域的主DNS服務(wù)器的FQDN(無命名要求,只要和相應(yīng)的A記錄匹配即可)
    (2) 當(dāng)前區(qū)域管理員的郵箱地址;但地址中不能使用"@"符號(hào),一般用"."替換,例如linuxedu.hellopeiyang.com.
    (3) 主從服務(wù)器區(qū)域傳輸相關(guān)定義,否定結(jié)果緩存統(tǒng)一的TTL

(三)NS記錄

  • name:當(dāng)前域名,可用"@"代替,常省略
  • value:當(dāng)前域DNS服務(wù)器的主機(jī)名
  • 一個(gè)域可以有多條NS記錄,每條記錄都應(yīng)該匹配一條A記錄

(四)MX記錄

  • name:當(dāng)前域名,可用"@"代替,常省略
  • value:當(dāng)前域的郵件服務(wù)器的主機(jī)名,格式:## mail_server_addr
    ##表示數(shù)字(1-99),數(shù)字越小優(yōu)先級(jí)越高
  • 一個(gè)域可以有多條MX記錄,每條記錄都應(yīng)該匹配一條A記錄

(五)A記錄和AAAA記錄

  • name:主機(jī)的FQDN
  • value:主機(jī)的IP地址
  • 特殊寫法:
    $GENERATE 1-254 HOST$ A 1.2.3.$:按照序號(hào)排列規(guī)律的FQDN與IP的對(duì)應(yīng)關(guān)系
    *.magedu.com. IN A 5.5.5.5:泛域名解析,當(dāng)用戶輸錯(cuò)地址時(shí),統(tǒng)一解析至某個(gè)地址
    magedu.com. IN A 6.6.6.6:當(dāng)用戶沒有輸入www主機(jī)名時(shí)解析至地址
  • AAAA記錄與A記錄相似,只是IP地址為IPv6地址

(六)CNAME記錄

  • name:別名QFDN
  • value:真實(shí)名QFDN

(七)PTR記錄

  • name:特定格式IP+特定后綴
    IP地址反過來寫:如1.2.3.4寫作4.3.2.1
    特定后綴:in-addr.arpa.
    完整寫法:4.3.2.1.in-addr.arpa.
  • value:FQDN

三、BIND:

(一)BIND的安裝

  • 安裝:yum install BIND
  • 列出BIND有關(guān)程序包名:yum list all BIND*
    bind:服務(wù)器
    bind-libs:相關(guān)庫
    bind-utils:客戶端
    bind-chroot:遷移BIND目錄至深層目錄,減少BIND被黑客攻破對(duì)系統(tǒng)的影響
  • 程序名:named
  • 服務(wù)腳本:
    /etc/rc.d/init.d/named CentOS 6
    /usr/lib/systemd/system/named.service CentOS 7
  • 主要配置文件:
    /etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
  • 解析庫文件
    /var/named/ZONE_NAME.ZONE

(二)BIND的配置

(1)配置主配置文件:/etc/named.conf
  • 全局配置:options {};
  • 日志子系統(tǒng)配置:logging {};
  • 區(qū)域定義:zone "ZONE_NAME" IN {};
  • 定義本機(jī)能夠提供解析的zone
  • dnssec:dns的安全選項(xiàng),建議關(guān)閉dnssec,設(shè)為no
(2)配置解析庫文件:按照資源記錄的格式定義
(3)格式檢查:
  • 主配置文件語法檢查:named-checkconf
  • 解析庫文件語法檢查:named-checkzone zone_name PATH_TO_ZONE_NAME
(4)重載配置:

rndc reloadservice named reload

(5)實(shí)驗(yàn):配置基本的DNS服務(wù),DNS正向解析

將192.168.136.230配置為"hellopeiyang.com"域的DNS服務(wù)器,本區(qū)域主機(jī)"websrv"的IP地址為192.168.136.229,"www"是"websrv"的別名,郵件服務(wù)器"mailsrv1"的IP地址為192.168.136.100,郵件服務(wù)器"mailsrv2"的IP地址為192.168.136.101,mailsrv1的優(yōu)先級(jí)更高

  • 第1步,配置主配置文件/etc/named.conf,修改options字段,修改部分如下:
vim /etc/named.conf

options {
        listen-on port 53 { localhost; };
        //修改監(jiān)聽主機(jī)IP為localhost,這樣網(wǎng)絡(luò)上的其他主機(jī)可以連接本機(jī)的DNS服務(wù)
        //也可以通過注釋本條語句達(dá)到相同效果
        allow-query     { any; };
        //修改允許查詢的客戶端網(wǎng)段,any表示任意客戶端可以向本機(jī)發(fā)起DNS請(qǐng)求,并得到查詢結(jié)果
};
  • 第2步,修改獨(dú)立區(qū)域配置文件,添加區(qū)域配置信息:
vim /etc/named.rfc1912.zones

zone "hellopeiyang.com" IN {
        type master;                      //類型為主服務(wù)器
        file "hellopeiyang.com.zone";     //必須與/var/named下的文件名相同
};
  • 第3步,配置解析庫文件
    解析庫文件可以手動(dòng)編輯,也可以復(fù)制類似文件修改,這里將/var/named目錄下的named.localhost文件復(fù)制并重命名為hellopeiyang.com.zone文件,并作出相應(yīng)修改
cp -p /var/named/named.localhost /var/named/hellopeiyang.com.zone  //復(fù)制時(shí)保留所屬組權(quán)限
vim /var/named/hellopeiyang.com.zone

$TTL 1D     //DNS緩存生命期的全局設(shè)置
@       IN SOA  dns1 admin.hellopeiyang.com. (    
//dns1:主DNS服務(wù)器域名
//本配置文件中凡是域名處若末尾不加"."系統(tǒng)識(shí)別時(shí)自動(dòng)認(rèn)為其后增加當(dāng)前域名,
如這里"dns1"視作"dns1.hellopeiyang.com."
                                        100     ; serial     //序列號(hào),不多于10位
                                        1D      ; refresh    //從DNS服務(wù)器更新時(shí)間
                                        1H      ; retry      //從DNS服務(wù)器重試時(shí)間
                                        1W      ; expire     //從DNS服務(wù)器失效時(shí)間
                                        3H )    ; minimum    //錯(cuò)誤的DNS緩存生命期
        NS      dns1             //DNS服務(wù)器主機(jī)名
dns1    A       192.168.136.230  //DNS服務(wù)器的IP地址
websrv  A       192.168.136.229  //本域下的主機(jī)websrv的IP地址
www     CNAME   websrv           //主機(jī)websrv的別名
@       MX      10 mailsrv1      //郵件服務(wù)器mailsrv1.hellopeiyang.com
@       MX      20 mailsrv2      //郵件服務(wù)器mailsrv2.hellopeiyang.com
mailsrv1  A     192.168.136.100  //郵件服務(wù)器mailsrv1.hellopeiyang.com的IP
mailsrv2  A     192.168.136.101  //郵件服務(wù)器mailsrv2.hellopeiyang.com的IP
  • 第4步,格式檢查:
    檢查主配置文件:named-checkconf
    檢查解析庫文件:named-checkzone hellopeiyang.com hellopeiyang.com.zone
  • 第5步,重新載入配置:
    rndc reload 或者 systemctl reload named

  • 第6步,測(cè)試:
    dig www.hellopeiyang.com @192.168.136.230
    測(cè)試成功,返回結(jié)果中NS、A、CNAME記錄與設(shè)置相同,同時(shí)aa標(biāo)簽表明指定的DNS服務(wù)器192.168.136.230是www.hellopeiyang.com網(wǎng)路主機(jī)的權(quán)威服務(wù)器

(6)只允許DNS返回本機(jī)存在的DNS記錄(適用于企業(yè)內(nèi)網(wǎng))

修改/etc/named.conf文件options字段recursion選項(xiàng),修改如下:
recursion no;
此時(shí),請(qǐng)求一個(gè)DNS服務(wù)器不知道的域名,服務(wù)器直接拒絕

(三)測(cè)試命令

(1)dig命令
  • 語法:dig [-t type] name [@SERVER]
    dig只用于測(cè)試dns系統(tǒng),不會(huì)查詢hosts文件進(jìn)行解析
  • 查詢選項(xiàng):
    +[no]trace:跟蹤解析過程
    +[no]recurse:進(jìn)行遞歸解析
  • 測(cè)試反向解析:dig -x IP
dig -t ns . @114.114.114.114     //查詢根DNS服務(wù)器域名
dig -t mx hellopeiyang.com @192.168.136.230     //查詢hellopeiyang.com域的郵件服務(wù)器
(2)host命令
  • 語法:host [-t type] name [SERVER]
host -t ns . 114.114.114.114     //查詢根DNS服務(wù)器域名
dig -t mx hellopeiyang.com 192.168.136.230     //查詢hellopeiyang.com域的郵件服務(wù)器
(3)nslookup命令
  • 交互式命令:
    • server IP:指定DNS服務(wù)器地址
    • 域名:查找域名的A記錄
    • set type=TYPE_NAME:設(shè)置之后查詢信息的記錄類型

(四)反向區(qū)域解析

  • 反向區(qū)域解析與正向區(qū)域解析類似,同樣需要修改/etc/named.rfc1912.zones和建立/var/named目錄下的解析庫文件

  • 第1步,修改獨(dú)立區(qū)域配置文件,添加區(qū)域配置信息:

vim /etc/named.rfc1912.zones

zone "136.168.192.in-addr.arpa"{     //反向解析域,IP需要倒寫
        type master;
        file "192.168.136.zone";
};
  • 第2步,配置解析庫文件:
vim /var/named/192.168.136.zone

$TTL 1d
@  IN  SOA dns1.hellopeiyang.com. admin.hellopeiyang.com. (100 3h 1h 12h 1d )
       NS  dns1.hellopeiyang.com.
230    PTR dns1.hellopeiyang.com.
229    PTR websrv.hellopeiyang.com.
100    PTR mailsrv1.hellopeiyang.com.
101    PTR mailsrv2.hellopeiyang.com.

注意:NS和PTR記錄的域名應(yīng)該寫全并以"."結(jié)束,以防止系統(tǒng)自動(dòng)視作在其后添加反向解析域

  • 第3步,格式檢查:
    named-checkconf
    named-checkzone 192.168.136.zone /var/named/192.168.136.zone

  • 第4步,重新載入配置:
    rndc reload

  • 第5步,測(cè)試:
    dig -x 192.168.136.229 @192.168.136.230 或者下條命令
    dig -t ptr 229.136.168.192.in-addr.arpa @192.168.136.230

(五)bind-chroot程序包

  • 功能:將DNS服務(wù)的相關(guān)文件移至更深的目錄中,減少DNS被攻破時(shí)對(duì)系統(tǒng)的影響

  • 安裝并啟動(dòng)服務(wù):
    yum install bind-chroot
    systemctl start named-chroot

  • 發(fā)現(xiàn)/var/named/chroot目錄下有很多與named服務(wù)相關(guān)文件,并且文件的inode相同而硬連接數(shù)都只是1

  • 這種情況只能是文件目錄掛載所形成的,執(zhí)行mount命令發(fā)現(xiàn)大量相關(guān)文件的掛載記錄,證明bind-chroot程序?qū)崿F(xiàn)遷移文件至更深目錄的實(shí)質(zhì)是將文件掛載至更深的目錄下

(六)允許動(dòng)態(tài)更新

  • 功能:允許客戶端通過命令更新解析庫資源記錄信息
  • 準(zhǔn)備工作:
    • 指定的zone語句塊中修改allown-update選項(xiàng)
      例如:allow-update {192.168.136.229;};:只允許192.168.136.229主機(jī)能夠動(dòng)態(tài)更新本機(jī)DNS解析庫指定zone的資源記錄
    • chmod770 /var/named:增加寫權(quán)限
  • 動(dòng)態(tài)更新命令:nsupdate
nsupdate
>server 192.168.136.230
>zone hellopeiyang.com
>update add ftp.hellopeiyang.com 86400 IN A 192.168.136.150
>send
>update delete ftp.hellopeiyang.com A
>send

(七)從服務(wù)器

  • 從DNS服務(wù)器從主DNS服務(wù)器拷貝解析庫文件,共同提供DNS服務(wù),提升DNS服務(wù)的可靠性

  • 第1步,從服務(wù)器:配置主配置文件,修改options字段的如下內(nèi)容:

options {
    listen-on port 53 { localhost; };
    allow-query     { any; };
};
  • 第2步,從服務(wù)器:修改獨(dú)立區(qū)域配置文件,添加區(qū)域配置信息
zone "hellopeiyang.com" IN {
    type slave;
    masters {192.168.136.230;};
    file "slaves/hellopeiyang.com.slave.zone";
};
  • 第3步,主服務(wù)器:添加解析庫文件NS記錄,修改后如下
vim /var/named/hellopeiyang.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial     //只要解析庫更新,一定要更新序列號(hào)
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2                //增加的NS記錄
dns1    A       192.168.136.230
dns2    A       192.168.136.130     //增加的A記錄
websrv A        192.168.136.229
www     CNAME   websrv
@       MX      10 mailsrv1
@       MX      20 mailsrv2
mailsrv1  A 192.168.136.100
mailsrv2  A 192.168.136.101
  • 第4步,主服務(wù)器、從服務(wù)器:設(shè)置防止黑客窺視DNS信息

    • 為了防止黑客通過建立從服務(wù)器,獲得主服務(wù)器的解析庫信息,需要在主服務(wù)器和從服務(wù)器的主配置文件/etc/named.conf中options條目中增加"allow-transfer"選項(xiàng)

    • 主服務(wù)器增加內(nèi)容:allow-transfer {192.168.136.130;};:只允許從服務(wù)器IP復(fù)制解析庫文件

    • 從服務(wù)器增加內(nèi)容:allow-transfer {none;};:不允許任何IP復(fù)制解析庫文件

  • 第5步,主服務(wù)器、從服務(wù)器:格式檢查
    分別在主服務(wù)器和從服務(wù)器上執(zhí)行named-checkconf命令
    在主服務(wù)器上執(zhí)行named-checkzone hellopeiyang.com /var/named/hellopeiyang.com.zone

  • 第6步,主服務(wù)器、從服務(wù)器:重新載入配置
    rndc reload

  • 第7步,測(cè)試
    dig www.hellopeiyang.com @192.168.136.130

  • 注意:客戶端查詢過程通過UDP的53端口進(jìn)行,主、從服務(wù)器之間的解析庫同步操作需要通過TCP和UDP的53端口聯(lián)合進(jìn)行。

(八)子域

(1)子域與父域在一臺(tái)主機(jī)上(適用于子域的流量比較小時(shí))
  • 第1步,修改獨(dú)立區(qū)域配置文件,添加子域配置信息,增加的信息如下:
zone "zhengzhou.hellopeiyang.com" IN {
    type master;
    file "zhengzhou.hellopeiyang.com.zone";
};
  • 第2步,添加子域解析庫文件,內(nèi)容如下:
cp -p /var/named/hellopeiyang.com.zone /var/named/zhengzhou.hellopeiyang.com.zone
復(fù)制一份父域的解析庫文件,在其上做修改
vim /var/named/zhengzhou.hellopeiyang.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.230
websrv  A       192.168.136.160
www     CNAME   websrv
@       MX      10 mailsrv1
mailsrv1  A     192.168.136.170
  • 第3步,檢查語法
    named-checkconf
    named-checkzone zhengzhou.hellopeiyang.com /var/named/zhengzhou.hellopeiyang.com.zone

  • 第4步,重新載入配置
    rndc reload

  • 第5步,測(cè)試
    dig www.zhengzhou.hellopeiyang.com @192.168.136.230

(2)子域與父域不在一臺(tái)主機(jī)上(適用于子域的流量比較大時(shí))

又稱作:父域DNS服務(wù)器將DNS管理權(quán)委派給子域DNS服務(wù)器

  • 第1步,父域DNS:在解析庫文件中增加子域的NS記錄
vim /var/named/hellopeiyang.com.zone

$TTL 1D
@   IN SOA  dns1 admin.hellopeiyang.com. (
                    101 ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  dns1
henan   NS  dns2
dns1    A   192.168.136.230
dns2    A   192.168.136.130
websrv A    192.168.136.229
www CNAME   websrv
@   MX  10 mailsrv1
@   MX  20 mailsrv2
mailsrv1  A 192.168.136.100
mailsrv2  A 192.168.136.101

named-checkzone hellopeiyang.com /var/named/hellopeiyang.com.zone     //檢查語法
rndc reload     //重新載入配置
  • 第2步,子域DNS:創(chuàng)建子域shanghai.hellopeiyang.com
//步驟1:修改主配置文件
vim /etc/named.conf     //修改的內(nèi)容如下

options {
        listen-on port 53 { localhost; };
        allow-query     { any; };
};

//步驟2:修改獨(dú)立區(qū)域配置文件
vim /etc/named.rfc1912.zones     //增加的內(nèi)容如下

zone "henan.hellopeiyang.com" IN {
        type master;
        file "henan.hellopeiyang.com.zone";
};

//步驟3:創(chuàng)建解析庫文件
vim /var/named/henan.hellopeiyang.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.130
websrv  A       192.168.136.133
www     CNAME   websrv

chgrp named /var/named/henan.hellopeiyang.com.zone     //更改所屬組

//步驟4:檢查語法
named-checkconf 
named-checkzone henan.hellopeiyang.com /var/named/henan.hellopeiyang.com.zone

//步驟5:重新載入配置
rndc roload
  • 第3步,測(cè)試
    dig www.henan.hellopeiyang.com @192.168.136.230

(九)轉(zhuǎn)發(fā)服務(wù)器

(1) 全局轉(zhuǎn)發(fā): 對(duì)非本機(jī)所負(fù)責(zé)解析區(qū)域的請(qǐng)求,全轉(zhuǎn)發(fā)給指定的服務(wù)器

實(shí)現(xiàn):修改/etc/named.conf文件

options {
forward first|only;    
//first:轉(zhuǎn)發(fā)到達(dá)的DNS服務(wù)器若解析失敗,則自身直接發(fā)起DNS解析請(qǐng)求
//only:轉(zhuǎn)發(fā)到達(dá)的DNS服務(wù)器若解析失敗,則自身不再發(fā)起請(qǐng)求,本次DNS解析結(jié)果為失敗
forwarders { ip;};
};
(2) 特定區(qū)域轉(zhuǎn)發(fā):僅轉(zhuǎn)發(fā)對(duì)特定的區(qū)域的請(qǐng)求,比全局轉(zhuǎn)發(fā)優(yōu)先級(jí)高

實(shí)現(xiàn):修改/etc/named.rfc1912.zones文件

zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
(3)實(shí)驗(yàn)一:實(shí)現(xiàn)全局轉(zhuǎn)發(fā)
  • 第1步,轉(zhuǎn)發(fā)服務(wù)器的設(shè)置:
vim /etc/named.conf
options{
  forward first;
  forwarders {192.168.136.139;};     //凡是不在本區(qū)域DNS服務(wù)器中的請(qǐng)求一律轉(zhuǎn)發(fā)給192.168.136.139
  dnssec-enable no;
  dnssec-validation no;
};
named-checkconf
rndc reload
  • 第2步,被轉(zhuǎn)發(fā)服務(wù)器:設(shè)置DNS服務(wù)
//步驟1:修改主配置文件
vim /etc/named.conf 

options {
  listen-on port 53 { localhost;};
  allow-query     { any; };
};

//步驟2:修改獨(dú)立區(qū)域配置文件
vim /etc/named.rfc1912.zones

zone "byebye.com" IN {
  type master;
  file "byebye.com.zone";
};

//步驟3:創(chuàng)建解析庫文件
vim /var/named/byebye.com.zone

$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                         101     ; serial
                                         1D      ; refresh
                                         1H      ; retry
                                         1W      ; expire
                                         3H )    ; minimum
         NS      dns1
 dns1    A       192.168.136.139
 websrv A        192.168.136.66
 www     CNAME   websrv

chgrp named /var/named/beijing.hellopeiyang.com.zone     //更改所屬組

//步驟4:檢查語法
named-checkconf
named-checkzone byebye.com /var/named/byebye.com.zone

//步驟5:重新載入配置
rndc reload
  • 第3步,測(cè)試
    dig www.byebye.com @192.168.136.230
(4)實(shí)驗(yàn)二:實(shí)現(xiàn)特定區(qū)域轉(zhuǎn)發(fā)
  • 第1步,轉(zhuǎn)發(fā)服務(wù)器的設(shè)置:
vim /etc/named.rfc1912.zones

zone "byebye.com" IN {
        type forward;
        forward first;
        forwarders {192.168.136.139;}; 
        //僅當(dāng)請(qǐng)求解析beijing.hellopeiyang.com區(qū)域時(shí),轉(zhuǎn)發(fā)給192.168.136.224 
};
named-checkconf
rndc reload
  • 第2步,被轉(zhuǎn)發(fā)服務(wù)器:設(shè)置DNS服務(wù),與實(shí)驗(yàn)一:實(shí)現(xiàn)全局轉(zhuǎn)發(fā)過程完全相同

  • 第3步,測(cè)試
    dig www.byebye.com @192.168.136.230

(十)bind中的acl

  • acl:把一個(gè)或多個(gè)地址歸并為一個(gè)集合,并通過一個(gè)統(tǒng)一的名稱調(diào)用

  • 語法:

acl acl_name{
  ip;
  net/prelen;
  ……
};
  • acl只能先定義后使用,因此一般定義在/etc/named.conf文件中options前面

  • bind的內(nèi)置acl

    • none:沒有一個(gè)主機(jī)
    • any:任意主機(jī)
    • localhost:本機(jī)
    • localnet:本機(jī)的IP同掩碼運(yùn)算后得到的網(wǎng)絡(luò)地址
  • 訪問控制的指令

    • allow-query {}:允許查詢的主機(jī);白名單
    • allow-transfer {}:允許區(qū)域傳送的主機(jī);白名單
    • allow-recursion {}:允許遞歸的主機(jī),建議全局使用
    • allow-update {}:允許更新區(qū)域數(shù)據(jù)庫中的內(nèi)容
  • 實(shí)驗(yàn):使用acl功能只允許192.168.136.0網(wǎng)段的主機(jī)查詢DNS服務(wù)
    編輯/etc/named.conf文件,添加acl設(shè)置,并且在allow-query字段中添加acl

vim /etc/named.conf

acl lan {
        192.168.136.0/24;
};

options {
        listen-on port 53 { localhost; };
        allow-query     { lan;localhost; };     //添加名為lan的acl
};

named-checkconf
rndc reload

此時(shí),只有192.168.136.0/24的網(wǎng)段可以查詢DNS其他網(wǎng)段的請(qǐng)求會(huì)被服務(wù)器拒絕

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容