DNS和BIND

DNS

DNS:Domain Name Service 應(yīng)用層協(xié)議(C/S,53/udp, 53/tcp)

域名

分類:最多可以有127級(jí)域名

  • 根域
  • 一級(jí)域名:Top Level Domain(tld)頂級(jí)域
    • 組織域:.com文兢,。gov沙热,.edu强经,.mil分别,.net
    • 國(guó)家域:.cn遮精,.jp
    • 反向域:arpa
  • 二級(jí)域名
  • 三級(jí)域名
域名.jpg

解析

查詢類型:

  • 遞歸查詢:DNS 服務(wù)器接收到客戶機(jī)請(qǐng)求啰扛,必須使用一個(gè)準(zhǔn)確的查詢結(jié)果回復(fù)客戶機(jī)疙描。如果DNS 服務(wù)器本地沒(méi)有存儲(chǔ)查詢DNS 信息璧坟,那么該服務(wù)器會(huì)詢問(wèn)其他服務(wù)器既穆,并將返回的查詢結(jié)果提交給客戶機(jī)。
  • 迭代查詢:DNS 服務(wù)器接收到客戶機(jī)請(qǐng)求雀鹃,會(huì)向客戶機(jī)提供其他能夠解析查詢請(qǐng)求的DNS 服務(wù)器地址幻工,當(dāng)客戶機(jī)發(fā)送查詢請(qǐng)求時(shí),DNS 服務(wù)器并不直接回復(fù)查詢結(jié)果褐澎,而是告訴客戶機(jī)另一臺(tái)DNS 服務(wù)器地址会钝,客戶機(jī)再向這臺(tái)DNS 服務(wù)器提交請(qǐng)求,依次循環(huán)直到返回查詢的結(jié)果為止

FQDN:Fully Qualified Domain Name工三,完全合格域名

解析類型:

  • 正向解析:FQDN --> IP
  • 反向解析:IP --> FQDN

類型

  • 主DNS服務(wù)器:管理和維護(hù)所負(fù)責(zé)解析的域內(nèi)解析庫(kù)的服務(wù)器
  • 從DNS服務(wù)器:從主服務(wù)器或其他的從服務(wù)器“復(fù)制”(區(qū)域傳送)解析庫(kù)副本
  • 緩存DNS服務(wù)器
  • 轉(zhuǎn)發(fā)服務(wù)器

區(qū)域傳送

利用“通知”機(jī)制迁酸,來(lái)保證主從服務(wù)器能及時(shí)同步

通知機(jī)制:主服務(wù)器解析庫(kù)發(fā)生變化時(shí),會(huì)主動(dòng)通知從服務(wù)器

同步時(shí)一些必要參數(shù):

  • 序列號(hào):解析庫(kù)版本號(hào)俭正,主服務(wù)器解析庫(kù)變化時(shí)奸鬓,其序列遞增
  • 刷新時(shí)間間隔:從服務(wù)器從主服務(wù)器請(qǐng)求同步解析的時(shí)間間隔
  • 重試時(shí)間間隔:從服務(wù)器請(qǐng)求同步失敗時(shí),再次嘗試時(shí)間間隔
  • 過(guò)期時(shí)長(zhǎng):從服務(wù)器聯(lián)系不到主服務(wù)器時(shí)掸读,多久后停止服務(wù)

類型

  • 主區(qū)域:master
  • 主區(qū)域:master
  • 提示區(qū)域:hint 定義根域的位置
  • 轉(zhuǎn)發(fā)區(qū)域:forward 例如:直接告訴.com的位置

資源記錄

resource record串远,簡(jiǎn)稱RR

格式

name [TTL] IN rr_type value

  • TTL可從全局繼承

    TTL(Time-To-Live)宏多,簡(jiǎn)單的說(shuō)它表示一條域名解析記錄在DNS服務(wù)器上緩存時(shí)間.當(dāng)各地的DNS服務(wù)器接受到解析請(qǐng)求時(shí),就會(huì)向域名指定的DNS服務(wù)器發(fā)出解析請(qǐng)求從而獲得解析記錄澡罚;在獲得這個(gè)記錄之后伸但,記錄會(huì)在DNS服務(wù)器中保存一段時(shí)間,這段時(shí)間內(nèi)如果再接到這個(gè)域名的解析請(qǐng)求留搔,DNS服務(wù)器將不再向DNS服務(wù)器發(fā)出請(qǐng)求更胖,而是直接返回剛才獲得的記錄;而這個(gè)記錄在DNS服務(wù)器上保留的時(shí)間隔显,就是TTL值却妨。

  • @可用于引用當(dāng)前區(qū)域的名字

  • 同一個(gè)名字可以通過(guò)多條記錄定義多個(gè)不同的值;此時(shí)DNS服務(wù)器會(huì)以輪詢方式響應(yīng)

  • 同一個(gè)值也可能有多個(gè)不同的定義名字括眠;通過(guò)多個(gè)不同的名字指向同一個(gè)值進(jìn)行定義彪标;此僅表示通過(guò)多個(gè)不同的名字可以找到同一個(gè)主機(jī)

SOA

Start Of Authority,起始授權(quán)記錄掷豺,表明一個(gè)區(qū)域內(nèi)部捞烟,主從DNS服務(wù)是如何同步數(shù)據(jù)以及起始授權(quán)對(duì)象是誰(shuí)

注意:一個(gè)區(qū)域解析庫(kù)有且僅能有一個(gè)SOA記錄,必須位于解析庫(kù)的第一條記錄

name:當(dāng)前區(qū)域的名字萌业,例如“magedu.com.”

value:有多部分組成

  • 當(dāng)前區(qū)域的主DNS服務(wù)器的FQDN坷襟,也可以使用當(dāng)前區(qū)域的名字奸柬;
  • 當(dāng)前區(qū)域管理員的郵箱地址生年;但地址中不能使用@符號(hào),一般用.替換廓奕,例如:admin.magedu.com
  • 主從服務(wù)區(qū)域傳輸相關(guān)定義以及否定的答案的統(tǒng)一的TTL
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (
    2015042201      ;序列號(hào),serail number
    2H              ;刷新時(shí)間,refresh
    10M             ;重試時(shí)間,retry
    1W              ;過(guò)期時(shí)間,expire
    1D              ;否定答案的TTL值,nigative answer TTL
)

NS

Name Server抱婉,專用于標(biāo)明當(dāng)前區(qū)域的DNS服務(wù)器

name:當(dāng)前區(qū)域的名字

value: 當(dāng)前區(qū)域的某DNS服務(wù)器的名字,例如ns.magedu.com.

magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.

注意:

  • 相鄰的兩個(gè)資源記錄的name相同時(shí)桌粉,后續(xù)的可省略
  • 對(duì)NS記錄而言蒸绩,任何一個(gè)ns記錄后面的服務(wù)器名字,都應(yīng)該在后續(xù)有一個(gè)A記錄

A

internet Address铃肯,F(xiàn)QDN-->IP IPV4

name: 某主機(jī)的FQDN患亿,例如www.magedu.com.

value: 主機(jī)名對(duì)應(yīng)主機(jī)的IP地址

www.magedu.com.         IN A 1.1.1.1
www.magedu.com.         IN A 2.2.2.2
mx1.magedu.com.         IN A 3.3.3.3
mx2.magedu.com.         IN A 4.4.4.4
$GENERATE 1-254 HOST$       A 1.2.3.$       # 主機(jī)名和ip地址同名的時(shí)候可以這樣操作,避免重復(fù)操作
*.magedu.com.           IN A 5.5.5.5        # 避免用戶寫(xiě)錯(cuò)名稱時(shí)給錯(cuò)誤答案押逼,可通過(guò)泛域名解析進(jìn)行解析至某特定地址
magedu.com.             IN A 6.6.6.6

AAAA

FQDN --> IPv6

name:FQDN

value:IPv6

MX

Mail eXchanger步藕,郵件交換器

name:當(dāng)前區(qū)域的名字

value:當(dāng)前區(qū)域的某郵件服務(wù)器(smtp服務(wù)器)的主機(jī)名

magedu.com. IN MX 10 mx1.magedu.com.
            IN MX 20 mx2.magedu.com.

注意:

  • 一個(gè)區(qū)域內(nèi),MX記錄可有多個(gè)挑格;但每個(gè)記錄的value之前應(yīng)該有一個(gè)數(shù)字(0-99)咙冗,表示此服務(wù)器的優(yōu)先級(jí);數(shù)字越小優(yōu)先級(jí)越高
  • 對(duì)MX記錄而言漂彤,任何一個(gè)MX記錄后面的服務(wù)器名字雾消,都應(yīng)該在后續(xù)有一個(gè)A記錄
  • MX記錄只能定義在正向區(qū)域文件中灾搏,不能定義到反向區(qū)域文件中

CNAME

Canonical Name,別名記錄

name:別名的FQDN

value:真正名字的FQDN

www.magedu.com. IN CNAME websrv.magedu.com.

PTR

PoinTeR立润,IP --> FQDN

name:IP狂窑,有特定格式,把IP地址反過(guò)來(lái)寫(xiě)桑腮,1.2.3.4蕾域,要寫(xiě)作4.3.2.1;而有特定后綴:in-addr.arpa.到旦,所以完整寫(xiě)法為:4.3.2.1.in-addr.arpa.

value: FQDN

4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
# 如1.2.3為網(wǎng)絡(luò)地址,可簡(jiǎn)寫(xiě)成:
4                   IN PTR www.magedu.com.

注意:網(wǎng)絡(luò)地址及后綴可省略添忘;主機(jī)地址依然需要反著寫(xiě)

子域授權(quán)

網(wǎng)絡(luò)地址及后綴可省略;主機(jī)地址依然需要反著寫(xiě)

類似根域授權(quán)tld:

.com.    IN NS ns1.com.
.com.    IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2

magedu.com. 在.com的名稱服務(wù)器上仲器,解析庫(kù)中添加資源記錄

magedu.com.     IN NS ns1.magedu.com.
magedu.com.     IN NS ns2.magedu.com.
magedu.com.     IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3

glue record:粘合記錄辆沦,父域授權(quán)子域的記錄

BIND

BIND:Bekerley Internat Name Domain

/etc/named.conf # 主配置文件

/etc/named.rfc1912.zones # 專門(mén)的zone配置文件

/etc/rndc.conf # rdnc配置文件
/etc/rndc.key # 用來(lái)遠(yuǎn)程控制DNS服務(wù)的密鑰文件

/usr/sbin/named # 二進(jìn)制程序
/usr/sbin/named-checkconf # 檢查配置文件語(yǔ)法
/usr/sbin/named-checkzone # 檢查zone文件語(yǔ)法
/usr/sbin/named-compilezone
/usr/sbin/named-journalprint # 查看jnl文件

/usr/sbin/rndc

/var/log/named.log # 日志文件
/var/named
/var/named/data
/var/named/dynamic
/var/named/named.ca # 用于存放根服務(wù)器的地址信息
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
/var/named/slaves

/etc/named.conf

[root@centos7 ~]# cat /etc/named.conf

options {
    listen-on port 53 { 127.0.0.1; }; # IPv4地址監(jiān)聽(tīng)端口及監(jiān)聽(tīng)的主機(jī)列表
    listen-on-v6 port 53 { ::1; }; # IPv6地址監(jiān)聽(tīng)端口及監(jiān)聽(tīng)的主機(jī)列表
    directory   "/var/named"; # 服務(wù)器的工作目錄
    dump-file   "/var/named/data/cache_dump.db"; # 當(dāng)執(zhí)行rndc dumpdb時(shí)服務(wù)器dump文件的路徑
    statistics-file "/var/named/data/named_stats.txt"; # 執(zhí)行rndc stats將服務(wù)器的統(tǒng)計(jì)信息寫(xiě)入文件,默認(rèn)為named.stats
    memstatistics-file "/var/named/data/named_mem_stats.txt"; # 默認(rèn)為named.memestats,當(dāng)退出的服務(wù)的時(shí)候?qū)⒎?wù)器的統(tǒng)計(jì)信息寫(xiě)到文件中
    allow-query     { localhost; }; # 允許查詢的主機(jī)列表昼捍,表示可以對(duì)主機(jī)列表里的主機(jī)提供服務(wù)
    allow-transfer { any;}肢扯; # 指定哪些主機(jī)可以從服務(wù)器上接收區(qū)域傳輸,未指定將允許傳輸?shù)剿械闹鳈C(jī)妒茬,默認(rèn)是any,極其不安全蔚晨,通常修改為指定主機(jī)或none

    recursion yes; # 是否開(kāi)啟遞歸查詢請(qǐng)求乍钻,設(shè)置為no的話,不去找根

    dnssec-enable yes; # dns安全策略铭腕,建議關(guān)閉
    dnssec-validation yes; # dns安全策略银择,建議關(guān)閉

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";

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

ACL

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

四個(gè)內(nèi)置acl:

  • none:沒(méi)有一個(gè)主機(jī)
  • any:任意主機(jī)
  • localhost:本機(jī)
  • localnet:本機(jī)的IP同掩碼運(yùn)算后得到的網(wǎng)絡(luò)地址谨履,即本機(jī)ip所在的網(wǎng)段

注意:只能先定義欢摄,后使用;因此一般定義在配置文件中笋粟,處于options的前面

訪問(wèn)控制的指令:

  • allow-query {}:允許查詢的主機(jī)怀挠;白名單
  • allow-transfer {}:允許區(qū)域傳送的主機(jī)析蝴;白名單
  • allow-recursion {}:允許遞歸的主機(jī),建議全局使用
  • allow-update {}:允許更新區(qū)域數(shù)據(jù)庫(kù)中的內(nèi)容

測(cè)試工具

dig

dig [-t type] name [@SERVER][query options]

注意:dig只用于測(cè)試dns系統(tǒng),不會(huì)查詢hosts文件進(jìn)行解析

查詢選項(xiàng):

  • 跟蹤解析過(guò)程:dig +trace magedu.com
  • 進(jìn)行遞歸解析:dig +recurse magedu.com
  • 測(cè)試反向解析:dig -x IP
  • 模擬區(qū)域傳送:
[root@xuexi ~]# dig -t a www.longshuai.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> -t a www.longshuai.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8670
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.longshuai.com.             IN      A

;; ANSWER SECTION:
www.longshuai.com.      21600   IN      A       172.16.10.16

;; AUTHORITY SECTION:
longshuai.com.          21600   IN      NS      dnsserver.longshuai.com.

;; ADDITIONAL SECTION:
dnsserver.longshuai.com. 21600  IN      A       172.16.10.15

;; Query time: 0 msec
;; SERVER: 172.16.10.15#53(172.16.10.15)
;; WHEN: Sat Aug 12 23:38:17 CST 2017
;; MSG SIZE  rcvd: 102

在結(jié)果中:

  • QUESTION SECTION:表示所發(fā)起的查詢
  • ANSWER SECTION:表示對(duì)查詢的回復(fù)
  • AUTHORITY SECTION:表示該查詢是權(quán)威服務(wù)器給的答案绿淋,并給出了權(quán)威服務(wù)器的ns記錄
  • ADDITIONAL SECTION:表示額外的回復(fù)闷畸,回復(fù)的內(nèi)容是權(quán)威服務(wù)器的A記錄。

host

host [-t type] name [SERVER]

nslookup

nslookup [-option][name | -][server]

也可使用交互式

rndc

remote name domain controller吞滞,默認(rèn)與bind安裝在同一主機(jī)佑菩,且只能通過(guò)127.0.0.1連接named進(jìn)程

提供輔助性的管理功能;953/tcp

rndc COMMAND:

  • reload:重載主配置文件和區(qū)域解析庫(kù)文件
  • reload zonename:重載區(qū)域解析庫(kù)文件
  • retransfer zonename:手動(dòng)啟動(dòng)區(qū)域傳送裁赠,而不管序列號(hào)是否增加
  • notify zonename:重新對(duì)區(qū)域傳送發(fā)通知
  • reconfig:重載主配置文件
  • querylog:開(kāi)啟或關(guān)閉查詢?nèi)罩疚募?var/log/message殿漠,排錯(cuò)時(shí)可臨時(shí)開(kāi)啟,長(zhǎng)時(shí)間開(kāi)啟無(wú)端增加了磁盤(pán)IO佩捞,因此一般不要開(kāi)啟
  • trace:遞增debug一個(gè)級(jí)別
  • trace LEVEL:指定使用的級(jí)別
  • notrace:將調(diào)試級(jí)別設(shè)置為 0
  • flush:清空DNS服務(wù)器的所有緩存記錄

CDN

Content Delivery Network绞幌,內(nèi)容分發(fā)網(wǎng)絡(luò)

CDN的基本原理是廣泛采用各種緩存服務(wù)器,將這些緩存服務(wù)器分布到用戶訪問(wèn)相對(duì)集中的地區(qū)或網(wǎng)絡(luò)中一忱,在用戶訪問(wèn)網(wǎng)站時(shí)莲蜘,利用全局負(fù)載技術(shù)將用戶的訪問(wèn)指向距離最近的工作正常的緩存服務(wù)器上,由緩存服務(wù)器直接響應(yīng)用戶請(qǐng)求

CDN.jpeg

view

用于實(shí)現(xiàn)智能DNS

  • 一個(gè)bind服務(wù)器可定義多個(gè)view帘营,每個(gè)view中可定義一個(gè)或多個(gè)zone
  • 每個(gè)view用來(lái)匹配一組客戶端
  • 多個(gè)view內(nèi)可能需要對(duì)同一個(gè)區(qū)域進(jìn)行解析票渠,但使用不同的區(qū)域解析庫(kù)文件

注意:

  • 一旦啟用了view,所有的zone都只能定義在view中
  • 僅在允許遞歸請(qǐng)求的客戶端所在view中定義根區(qū)域
  • 客戶端請(qǐng)求到達(dá)時(shí)芬迄,是自上而下檢查每個(gè)view所服務(wù)的客戶端列表问顷,因此特別注意順序

格式:

view VIEW_NAME {
    match-clients { testacl; };
    zone “magedu.com” {
        type master;
        file “magedu.com.zone”; };
        include “/etc/named.rfc1912.zones”;
};

view VIEW_NAME {
    match-clients { testacl; };
    include “/etc/named.rfc1912.zones.VIEW_NAME”;
};

DNS排錯(cuò)

# dig A example.com
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> A example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30523
...
SERVFAIL:The nameserver encountered a problem while processing the query.
  • NXDOMAIN:The queried name does not exist in the zone.(可能是CNAME對(duì)應(yīng)的A記錄不存在導(dǎo)致)
  • REFUSED:The nameserver refused the client's DNS request due to policy restrictions.(可能是DNS策略導(dǎo)致)
  • NOERROR不代表沒(méi)有問(wèn)題,也可以是過(guò)時(shí)的記錄
  • 查看是否為權(quán)威記錄薯鼠,flags:aa標(biāo)記判斷
  • 被刪除的記錄仍能返回結(jié)果择诈,可能是因?yàn)?記錄存在

實(shí)現(xiàn)只緩存DNS服務(wù)

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口
    allow-query     { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
    
  2. named-checkconf:主配置文件語(yǔ)法檢查

  3. rndc reload

實(shí)現(xiàn)正向主DNS服務(wù)

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口
    allow-query     { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
    
  2. vim /etc/named.rfc1912.zones

    zone "magedu.com" IN {
            type master;
            file "magedu.com.zone";
    };
    
  3. named-checkconf

  4. cp -a named.localhost magedu.com.zone:為了保證權(quán)限,也可以自己創(chuàng)建出皇,記得修改權(quán)限

    vim magedu.com.zone

    $TTL 1D
    @       IN SOA  dns1 admin.magedu.com (
                                            2018072201      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
                   NS       dns1
    dns1           A       192.168.31.71
    web-nginx01    A       1.1.1.1
    web-nginx02    A       1.1.1.2
    app-tomcat01   A       2.2.2.2
    www           CNAME   web-nginx01
    *              A       192.168.31.71 # 泛域名解析
    @              A       192.168.31.71 # 直接解析本域
    $GENERATE 1-100 web-nginx0$ A 1.1.1.$
    
  5. named-checkzone magedu.com magedu.com.zone:如當(dāng)前工作目錄不是/var/named/,需要使用絕對(duì)路徑

  6. rndc reload

實(shí)現(xiàn)反向主DNS服務(wù)

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口
    allow-query     { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
    
  2. vim /etc/named.rfc1912.zones

    zone "39.168.192.in-addr.arpa" IN {
            type master;
            file "39.168.192.in-addr.arpa.zone";
    };
    
  3. named-checkconf

  4. cp -a named.localhost 39.168.192.in-addr.arpa.zone:為了保證權(quán)限哗戈,也可以自己創(chuàng)建郊艘,記得修改權(quán)限

    vim 39.168.192.in-addr.arpa.zone

    $TTL 86400
    @       IN SOA  dns1.magedu.com. admin.magedu.com. (
                                            2018072201      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
                   NS      dns1.magedu.com.
    71             PTR     dns1.magedu.com.
    100            PTR     www.qq.com. # 正反向解析結(jié)果最好一致
    
  5. named-checkzone 39.168.192.in-addr.arpa 39.168.192.in-addr.arpa.zone:如當(dāng)前工作目錄不是/var/named/,需要使用絕對(duì)路徑

  6. rndc reload

實(shí)現(xiàn)遠(yuǎn)程動(dòng)態(tài)更新DNS服務(wù)

  1. vim /etc/named.rfc1912.zones:在指定zone語(yǔ)句塊中添加

    Allow-update {any;}; # 為了安全最好僅允許指定主機(jī)
    
  2. chmod 770 /var/named:動(dòng)態(tài)更新實(shí)質(zhì)上就是named用戶將指定資源記錄寫(xiě)到生成的/var/named/{指定zone}.jnl文件中唯咬,隨后再同步到指定的zone文件中纱注,因此需要再目錄下有w權(quán)限

  3. nsupdate

    ?>server 192.168.39.71
    ?>zone magedu.com
    ?>update add ftp.magedu.com 86400 IN A 8.8.8.8 # 這里的TTL不能省略
    ?>send
    ?>update delete www.magedu.com A
    ?>send
    

實(shí)現(xiàn)主從DNS服務(wù)

主DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口
    allow-query     { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
    
    allow-transfer { 192.168.39.72; }; # 允許從服務(wù)器拉取數(shù)據(jù),注意中花括號(hào)前后均有空格
    
  2. named-checkconf

  3. vim /var/named/magedu.com.zone:將從服務(wù)器信息添加到指定zone文件中

    $TTL 1D
    @    IN SOA  dns1 admin.magedu.com (
                     2018072201  ; serial
                     1D  ; refresh
                     1H  ; retry
                     1W  ; expire
                     3H )    ; minimum
            NS      dns1
                   NS      dns2
    dns1           A       192.168.39.71
    dns2           A       192.168.39.72
    web-nginx01    A       1.1.1.1
    web-nginx02    A       1.1.1.2
    app-tomcat01   A       2.2.2.2
    www           CNAME   web-nginx01
    *              A       192.168.39.71
    @              A       192.168.39.71
    $GENERATE 1-100 web-nginx0$ A 1.1.1.$
    
  4. named-checkzone magedu.com. magedu.com.zone

從DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口
    allow-query     { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
    
    allow-transfer { none; }; # 為了安全禁止任何主機(jī)拉取
    
  2. vim /etc/named.rfc1912.zones

    zone "magedu.com" IN {
            type slave;
            masters { 192.168.39.71; };
            file "slaves/magedu.com.slave.zone";
    };
    
  3. named-checkconf

  4. ls /var/named/slave/:查看是否拉取成功

實(shí)現(xiàn)子域委派

父域DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口
    allow-query     { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
    
    dnssec-enable no; # 關(guān)閉加密
    dnssec-validation no;
    
  2. vim /var/named/magedu.com.zone

    $TTL 1D
    @       IN SOA  dns1 admin (
                                            2018072209      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
                   NS      dns1
    shanghai       NS      dns2 # 添加shanghai子域信息
    dns1           A       192.168.39.71
    dns2           A       192.168.39.72
    www.beijing    A       3.3.3.3 # 主機(jī)少的情況下胆胰,可以直接在父域直接定義子域中的主機(jī)
    www            A       1.1.1.1
    
  3. rndc reload

子域DNS:

  1. vim /etc/named.conf

    listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口
    allow-query     { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
    
  2. vim /etc/named.rfc1912.zones

    zone "shanghai.magedu.com" IN {
            type master;
            file "shanghai.magedu.com.zone";
    };
    
  3. scp 192.168.39.71:/var/named/magedu.com.zone shanghai.magedu.com.zone:由于scp默認(rèn)root身份執(zhí)行狞贱,導(dǎo)致文件權(quán)限出錯(cuò),一定要注意文件權(quán)限

    vim /var/named/shanghai.magedu.com.zone

    $TTL 1D
    @       IN SOA  dns1 admin (
                                            2018072201      ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
                   NS      dns1
    dns1           A       192.168.39.72
    www            A       2.2.2.2
    
  4. rndc reload

實(shí)現(xiàn)轉(zhuǎn)發(fā)DNS服務(wù)

forward first/only:表示如果 forwarders list 為非空蜀涨,默認(rèn)為first值瞎嬉,服務(wù)器首先請(qǐng)求 forwarders list 蝎毡,如果 forwarders list 中的DNS主機(jī)不應(yīng)答,該主機(jī)將自己去找應(yīng)答氧枣,如果設(shè)置值為only沐兵,服務(wù)器將只會(huì)請(qǐng)求 forwarders中的DNS主機(jī)

forwarders:指定用來(lái) forwarding的ip地址. 默認(rèn)為空列(即不轉(zhuǎn)發(fā))

全局轉(zhuǎn)發(fā)

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

vim /etc/named.conf

Options {
    forward first|only;
    forwarders { ip;};
};

特定區(qū)域轉(zhuǎn)發(fā)

僅轉(zhuǎn)發(fā)對(duì)特定的區(qū)域的請(qǐng)求便监,比全局轉(zhuǎn)發(fā)優(yōu)先級(jí)高

vim /etc/named.rfc1912.zones

zone "ZONE_NAME" IN {
    type forward;
    forward first|only;
    forwarders { ip;};
};

實(shí)現(xiàn)智能DNS服務(wù)

  1. vim /etc/named.conf:acl必須在option前添加扎谎,而且注意遷移zone,因?yàn)橐坏﹩⒂胿iew烧董,所有的zone都必須定義裝載view中

    acl beijingnet {
            192.168.31.0/24;
            10.0.0.0/8;
    };
    acl shanghainet {
            172.18.0.0/16;
    
    };
    acl othernet {
            any;
    };
    options {
     ......
    };
    logging {
     ......  
    };
    
    view  beijingview {
            match-clients {beijingnet;};
            include "/etc/named.rfc1912.zones.bj";
    }; 
    view shanghaiview {
            match-clients {shanghainet;};
            include "/etc/named.rfc1912.zones.sh";
    };
    view otherview {
             match-clients {othernet;};
             include "/etc/named.rfc1912.zones.other";
    };
    
    include "/etc/named.rfc1912.zones"; # 刪除此行毁靶,所有的zone都將定義在view中
    ......
    
  2. vim /etc/named.rfc1912.zones.bj

    zone "magedu.com" IN {
            type master;
            file "magedu.com.zone.bj";
    };
    

    vim /etc/named.rfc1912.zones.sh

    zone "magedu.com" IN {
            type master;
            file "magedu.com.zone.sh";
    };
    

    vim /etc/named.rfc1912.zones.other

    zone "magedu.com" IN {
            type master;
            file "magedu.com.zone.other";
    };
    
  3. vim /var/named/magedu.com.zone.bj

    $TTL 1D
    @    IN SOA  dns1 admin (
                     2018072209  ; serial
                     1D  ; refresh
                     1H  ; retry
                     1W  ; expire
                     3H )    ; minimum
            NS      dns1
    dns1           A       192.168.39.71
    www            A       1.1.1.1
    

    vim /var/named/magedu.com.zone.sh

    ......
    www             A       2.2.2.2
    

    vim /var/named/magedu.com.zone.other

    ......
    www             A       3.3.3.3
    

實(shí)現(xiàn)互聯(lián)網(wǎng)架構(gòu)DNS服務(wù)

DNS架構(gòu).png

注意:

  • 從后往前搭建,好測(cè)試
  • 測(cè)試時(shí)注意rndc flush逊移,因?yàn)橛芯彺鏁r(shí)優(yōu)先使用緩存
  1. 配置www主機(jī):

    • yum install -y httpd

    • vim /var/www/html/index.html

      Welcome to magedu!
      
    • systemctl start httpd

  2. 配置主DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query     { any; };
      allow-transfer   { 192.168.39.75; };
      dnssec-enable no;
      dnssec-validation no;
      
    • vim /etc/named.rfc1912.zones

      zone "magedu.com" IN {
              type master;
              file "magedu.com.zone";
      };
      
    • named-checkconf

    • vim /var/named/magedu.com.zone

      $TTL 1D
      @              IN  SOA  dns1  admin ( 
                              2018072401
                              1D
                              2H
                              3D
                              1D )
              NS   dns1
              NS   dns2
      dns1    A    192.168.39.74
      dns2    A    192.168.31.75
      www     A    192.168.31.76
      
    • chmod 640 magedu.com.zone

    • chown :named magedu.com.zone

    • named-checkzone magedu.com. magedu.com.zone

    • systemctl start named

  3. 配置從DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query     { any; };
      allow-transfer   { 192.168.39.75; };
      dnssec-enable no;
      dnssec-validation no;
      
    • vim /etc/named.rfc1912.zones

      zone "magedu.com" IN {
              type slave;
              masters { 192.168.39.74; };
              file "slaves/magedu.com.slave.zone";
      };
      
    • named-checkconf

    • systemctl start named

  4. 配置comDNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query     { any; };
      dnssec-enable no;
      dnssec-validation no;
      
    • vim /etc/named.rfc1912.zones

      zone "com" IN {
              type master;
              file "com.zone";
      };
      
    • named-checkconf

    • vim /var/named/com.zone

      $TTL 1D
      @              IN  SOA  dns1  admin ( 
                              2018072401
                              1D
                              2H
                              3D
                              1D )
              NS   dns1
      magedu  NS   dns2
      magedu  NS   dns3
      dns1    A    192.168.39.73
      dns2    A    192.168.39.74
      dns3    A    192.168.39.75
      
    • chmod 640 com.zone

    • chown :named com.zone

    • named-checkzone com. com.zone

    • systemctl start named

  5. 配置根DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query     { any; };
      dnssec-enable no;
      dnssec-validation no;
      
      zone "." IN {
              type master;
              file "root.zone";
      };
      
    • named-checkconf

    • vim /var/named/root.zone

      $TTL 1D
      @              IN  SOA  dns1  admin ( 
                              2018072401
                              1D
                              2H
                              3D
                              1D )
              NS   dns1
      com     NS   dns2
      dns1    A    192.168.39.72
      dns2    A    192.168.39.73
      
    • chmod 640 root.zone

    • chown :named root.zone

    • named-checkzone . root.zone

    • systemctl start named

  6. 配置局域網(wǎng)DNS:

    • vim /etc/named.conf

      listen-on port 53 { localhost; };
      allow-query     { any; };
      dnssec-enable no;
      dnssec-validation no;
      
    • vim /var/named/named.ca

      .         86400       IN   NS  dns1
      dns1      86400            A   192.168.39.72
      
    • systemctl start named

  7. 配置client:

    • vim /etc/resolv.conf

      nameserver 192.168.39.71
      

編譯安裝BIND

  1. 下載bind

    • isc.org
  2. 編譯安裝bind

    • tar xvf bind-9.11.0a3.tar.gz
    • cd bind-9.11.0a3/
    • groupadd -r -g 53 named
    • useradd -r -u 53 -g 53 named
    • ./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --without-openssl --disable-ipv6 --disable-chroot --enable-threads
    • make
    • make install
  3. 環(huán)境變量

    • vim /etc/profile.d/named.sh

      export PATH=/usr/local/bind9/bin:
      /usr/local/bind9/sbin/:$PATH
      
  4. 庫(kù)和頭文件

    • vim /etc/ld.so.conf.d/named.conf

      /usr/local/bind9/lib
      
    • ldconfig –v

    • ls -sv /usr/local/bind9/include /usr/include/named

  5. man幫助

    • vim /etc/man.config | /etc/man_db.conf

      MANPATH /usr/local/bind9/share/man
      
    • man named.conf

  6. 主配置文件

    • vim /etc/named/named.conf

      options {
         directory "/var/named/"
      };
      zone "." IN {
         type hint;
         file "named.ca";
      };
      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;};
      };
      
  7. 區(qū)域數(shù)據(jù)庫(kù)

    • mkdir /var/named

    • named-checkconf

    • dig +norec @a.root-servers.net > /var/named/named.ca

    • vim /var/named/named.localhost

      $TTL 1d
      @ IN SOA localhost. admin.localhost. (
                         2016061801
                         1h
                         5m
                         7d
                         1d)
      IN NS localhost.
      localhost. IN A 127.0.0.1
      
    • vim /var/named/named.loopback

      $TTL 1d
      @ IN SOA localhost. admin.localhost. (
                         2016061801
                         1h
                         5m
                         7d
                         1d)
         NS @
         A 127.0.0.1
         PTR localhost.
      
  8. 設(shè)置權(quán)限

    • chmod 640 /var/named/*
    • chmod 640 /etc/named/named.conf
    • chgrp -R named /var/named/
    • chgrp named /etc/named/named.conf
  9. 啟動(dòng)服務(wù)和測(cè)試

    • man named
    • named -u named -f -g -d 3 前端級(jí)別3方式運(yùn)行
    • named -u named 后臺(tái)運(yùn)行
    • killall named
    • ss -tuln
    • tail /var/log/message
    • named -u named
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末老充,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子螟左,更是在濱河造成了極大的恐慌啡浊,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胶背,死亡現(xiàn)場(chǎng)離奇詭異巷嚣,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)钳吟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)廷粒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人红且,你說(shuō)我怎么就攤上這事坝茎。” “怎么了暇番?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵嗤放,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我壁酬,道長(zhǎng)次酌,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任舆乔,我火速辦了婚禮岳服,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘希俩。我一直安慰自己吊宋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布颜武。 她就那樣靜靜地躺著璃搜,像睡著了一般拖吼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腺劣,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天绿贞,我揣著相機(jī)與錄音,去河邊找鬼橘原。 笑死籍铁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的趾断。 我是一名探鬼主播拒名,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼芋酌!你這毒婦竟也來(lái)了增显?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤脐帝,失蹤者是張志新(化名)和其女友劉穎同云,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體堵腹,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡炸站,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疚顷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旱易。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖腿堤,靈堂內(nèi)的尸體忽然破棺而出阀坏,到底是詐尸還是另有隱情,我是刑警寧澤笆檀,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布忌堂,位于F島的核電站,受9級(jí)特大地震影響误债,放射性物質(zhì)發(fā)生泄漏浸船。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一寝蹈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧登淘,春花似錦箫老、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阔籽。三九已至,卻和暖如春牲蜀,著一層夾襖步出監(jiān)牢的瞬間笆制,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工涣达, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留在辆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓度苔,卻偏偏與公主長(zhǎng)得像匆篓,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寇窑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對(duì)應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 2,897評(píng)論 0 7
  • 一鸦概、實(shí)現(xiàn)從根,com,rj.com 模擬互聯(lián)網(wǎng)的DNS架構(gòu) DNS(Domain Name System甩骏,域名系統(tǒng)...
    ssjinyao閱讀 1,435評(píng)論 0 7
  • DNS簡(jiǎn)介DNS解析關(guān)鍵概念BIND 一窗市、DNS簡(jiǎn)介: (一)DNS服務(wù) DNS:Domain Name Serv...
    哈嘍別樣閱讀 1,800評(píng)論 0 2
  • 一、BIND是什么 BIND是互聯(lián)網(wǎng)應(yīng)用最為廣泛的DNS軟件饮笛。 二咨察、BIND的安裝與使用 以下內(nèi)容轉(zhuǎn)自 http:...
    0_0啊閱讀 3,093評(píng)論 0 0
  • 人生就像不停在用的鉛筆,開(kāi)始很尖缎浇,但慢慢的就磨的圓滑了握础。不過(guò)症概,太過(guò)圓滑了,就差不多又該挨削了。 ? ????
    浪漫自由人閱讀 222評(píng)論 3 0