DNS
DNS:Domain Name Service 應(yīng)用層協(xié)議(C/S,53/udp, 53/tcp)
域名
分類:最多可以有127級域名
- 根域
- 一級域名:Top Level Domain(tld)頂級域
- 組織域:.com,。gov,.edu,.mil,.net
- 國家域:.cn,.jp
- 反向域:arpa
- 二級域名
- 三級域名

解析
查詢類型:
- 遞歸查詢:DNS 服務(wù)器接收到客戶機請求,必須使用一個準(zhǔn)確的查詢結(jié)果回復(fù)客戶機。如果DNS 服務(wù)器本地沒有存儲查詢DNS 信息,那么該服務(wù)器會詢問其他服務(wù)器,并將返回的查詢結(jié)果提交給客戶機。
- 迭代查詢:DNS 服務(wù)器接收到客戶機請求,會向客戶機提供其他能夠解析查詢請求的DNS 服務(wù)器地址,當(dāng)客戶機發(fā)送查詢請求時,DNS 服務(wù)器并不直接回復(fù)查詢結(jié)果,而是告訴客戶機另一臺DNS 服務(wù)器地址,客戶機再向這臺DNS 服務(wù)器提交請求,依次循環(huán)直到返回查詢的結(jié)果為止
FQDN:Fully Qualified Domain Name,完全合格域名
解析類型:
- 正向解析:FQDN --> IP
- 反向解析:IP --> FQDN
類型
- 主DNS服務(wù)器:管理和維護(hù)所負(fù)責(zé)解析的域內(nèi)解析庫的服務(wù)器
- 從DNS服務(wù)器:從主服務(wù)器或其他的從服務(wù)器“復(fù)制”(區(qū)域傳送)解析庫副本
- 緩存DNS服務(wù)器
- 轉(zhuǎn)發(fā)服務(wù)器
區(qū)域傳送
利用“通知”機制,來保證主從服務(wù)器能及時同步
通知機制:主服務(wù)器解析庫發(fā)生變化時,會主動通知從服務(wù)器
同步時一些必要參數(shù):
- 序列號:解析庫版本號,主服務(wù)器解析庫變化時,其序列遞增
- 刷新時間間隔:從服務(wù)器從主服務(wù)器請求同步解析的時間間隔
- 重試時間間隔:從服務(wù)器請求同步失敗時,再次嘗試時間間隔
- 過期時長:從服務(wù)器聯(lián)系不到主服務(wù)器時,多久后停止服務(wù)
類型
- 主區(qū)域:master
- 主區(qū)域:master
- 提示區(qū)域:hint 定義根域的位置
- 轉(zhuǎn)發(fā)區(qū)域:forward 例如:直接告訴.com的位置
資源記錄
resource record,簡稱RR
格式
name [TTL] IN rr_type value
-
TTL可從全局繼承
TTL(Time-To-Live),簡單的說它表示一條域名解析記錄在DNS服務(wù)器上緩存時間.當(dāng)各地的DNS服務(wù)器接受到解析請求時,就會向域名指定的DNS服務(wù)器發(fā)出解析請求從而獲得解析記錄;在獲得這個記錄之后,記錄會在DNS服務(wù)器中保存一段時間,這段時間內(nèi)如果再接到這個域名的解析請求,DNS服務(wù)器將不再向DNS服務(wù)器發(fā)出請求,而是直接返回剛才獲得的記錄;而這個記錄在DNS服務(wù)器上保留的時間,就是TTL值。
@可用于引用當(dāng)前區(qū)域的名字
同一個名字可以通過多條記錄定義多個不同的值;此時DNS服務(wù)器會以輪詢方式響應(yīng)
同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進(jìn)行定義;此僅表示通過多個不同的名字可以找到同一個主機
SOA
Start Of Authority,起始授權(quán)記錄,表明一個區(qū)域內(nèi)部,主從DNS服務(wù)是如何同步數(shù)據(jù)以及起始授權(quán)對象是誰
注意:一個區(qū)域解析庫有且僅能有一個SOA記錄,必須位于解析庫的第一條記錄
name:當(dāng)前區(qū)域的名字,例如“magedu.com.”
value:有多部分組成
- 當(dāng)前區(qū)域的主DNS服務(wù)器的FQDN,也可以使用當(dāng)前區(qū)域的名字;
- 當(dāng)前區(qū)域管理員的郵箱地址;但地址中不能使用@符號,一般用.替換,例如:admin.magedu.com
- 主從服務(wù)區(qū)域傳輸相關(guān)定義以及否定的答案的統(tǒng)一的TTL
magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (
2015042201 ;序列號,serail number
2H ;刷新時間,refresh
10M ;重試時間,retry
1W ;過期時間,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.
注意:
- 相鄰的兩個資源記錄的name相同時,后續(xù)的可省略
- 對NS記錄而言,任何一個ns記錄后面的服務(wù)器名字,都應(yīng)該在后續(xù)有一個A記錄
A
internet Address,F(xiàn)QDN-->IP IPV4
name: 某主機的FQDN,例如www.magedu.com.
value: 主機名對應(yīng)主機的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.$ # 主機名和ip地址同名的時候可以這樣操作,避免重復(fù)操作
*.magedu.com. IN A 5.5.5.5 # 避免用戶寫錯名稱時給錯誤答案,可通過泛域名解析進(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ù)器)的主機名
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
注意:
- 一個區(qū)域內(nèi),MX記錄可有多個;但每個記錄的value之前應(yīng)該有一個數(shù)字(0-99),表示此服務(wù)器的優(yōu)先級;數(shù)字越小優(yōu)先級越高
- 對MX記錄而言,任何一個MX記錄后面的服務(wù)器名字,都應(yīng)該在后續(xù)有一個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地址反過來寫,1.2.3.4,要寫作4.3.2.1;而有特定后綴:in-addr.arpa.,所以完整寫法為: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ò)地址,可簡寫成:
4 IN PTR www.magedu.com.
注意:網(wǎng)絡(luò)地址及后綴可省略;主機地址依然需要反著寫
子域授權(quán)
網(wǎng)絡(luò)地址及后綴可省略;主機地址依然需要反著寫
類似根域授權(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ù)器上,解析庫中添加資源記錄
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 # 專門的zone配置文件
/etc/rndc.conf # rdnc配置文件
/etc/rndc.key # 用來遠(yuǎn)程控制DNS服務(wù)的密鑰文件
/usr/sbin/named # 二進(jìn)制程序
/usr/sbin/named-checkconf # 檢查配置文件語法
/usr/sbin/named-checkzone # 檢查zone文件語法
/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)聽端口及監(jiān)聽的主機列表
listen-on-v6 port 53 { ::1; }; # IPv6地址監(jiān)聽端口及監(jiān)聽的主機列表
directory "/var/named"; # 服務(wù)器的工作目錄
dump-file "/var/named/data/cache_dump.db"; # 當(dāng)執(zhí)行rndc dumpdb時服務(wù)器dump文件的路徑
statistics-file "/var/named/data/named_stats.txt"; # 執(zhí)行rndc stats將服務(wù)器的統(tǒng)計信息寫入文件,默認(rèn)為named.stats
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 默認(rèn)為named.memestats,當(dāng)退出的服務(wù)的時候?qū)⒎?wù)器的統(tǒng)計信息寫到文件中
allow-query { localhost; }; # 允許查詢的主機列表,表示可以對主機列表里的主機提供服務(wù)
allow-transfer { any;}; # 指定哪些主機可以從服務(wù)器上接收區(qū)域傳輸,未指定將允許傳輸?shù)剿械闹鳈C,默認(rèn)是any,極其不安全,通常修改為指定主機或none
recursion yes; # 是否開啟遞歸查詢請求,設(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
把一個或多個地址歸并為一個集合,并通過一個統(tǒng)一的名稱調(diào)用
四個內(nèi)置acl:
- none:沒有一個主機
- any:任意主機
- localhost:本機
- localnet:本機的IP同掩碼運算后得到的網(wǎng)絡(luò)地址,即本機ip所在的網(wǎng)段
注意:只能先定義,后使用;因此一般定義在配置文件中,處于options的前面
訪問控制的指令:
- allow-query {}:允許查詢的主機;白名單
- allow-transfer {}:允許區(qū)域傳送的主機;白名單
- allow-recursion {}:允許遞歸的主機,建議全局使用
- allow-update {}:允許更新區(qū)域數(shù)據(jù)庫中的內(nèi)容
測試工具
dig
dig [-t type] name [@SERVER][query options]
注意:dig只用于測試dns系統(tǒng),不會查詢hosts文件進(jìn)行解析
查詢選項:
- 跟蹤解析過程:dig +trace magedu.com
- 進(jìn)行遞歸解析:dig +recurse magedu.com
- 測試反向解析:dig -x IP
- 模擬區(qū)域傳送:
- dig -t axfr ZONE_NAME @SERVER:查看指定SERVER的ZONE的數(shù)據(jù)庫信息
- dig -t axfr magedu.com @10.10.10.11
- dig –t axfr 100.1.10.in-addr.arpa @172.16.1.1
- dig -t NS . @114.114.114.114
- dig -t NS . @a.root-servers.net
[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:表示對查詢的回復(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安裝在同一主機,且只能通過127.0.0.1連接named進(jìn)程
提供輔助性的管理功能;953/tcp
rndc COMMAND:
- reload:重載主配置文件和區(qū)域解析庫文件
- reload zonename:重載區(qū)域解析庫文件
- retransfer zonename:手動啟動區(qū)域傳送,而不管序列號是否增加
- notify zonename:重新對區(qū)域傳送發(fā)通知
- reconfig:重載主配置文件
- querylog:開啟或關(guān)閉查詢?nèi)罩疚募?var/log/message,排錯時可臨時開啟,長時間開啟無端增加了磁盤IO,因此一般不要開啟
- trace:遞增debug一個級別
- trace LEVEL:指定使用的級別
- notrace:將調(diào)試級別設(shè)置為 0
- flush:清空DNS服務(wù)器的所有緩存記錄
CDN
Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò)
CDN的基本原理是廣泛采用各種緩存服務(wù)器,將這些緩存服務(wù)器分布到用戶訪問相對集中的地區(qū)或網(wǎng)絡(luò)中,在用戶訪問網(wǎng)站時,利用全局負(fù)載技術(shù)將用戶的訪問指向距離最近的工作正常的緩存服務(wù)器上,由緩存服務(wù)器直接響應(yīng)用戶請求

view
用于實現(xiàn)智能DNS
- 一個bind服務(wù)器可定義多個view,每個view中可定義一個或多個zone
- 每個view用來匹配一組客戶端
- 多個view內(nèi)可能需要對同一個區(qū)域進(jìn)行解析,但使用不同的區(qū)域解析庫文件
注意:
- 一旦啟用了view,所有的zone都只能定義在view中
- 僅在允許遞歸請求的客戶端所在view中定義根區(qū)域
- 客戶端請求到達(dá)時,是自上而下檢查每個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排錯
# 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對應(yīng)的A記錄不存在導(dǎo)致)
- REFUSED:The nameserver refused the client's DNS request due to policy restrictions.(可能是DNS策略導(dǎo)致)
- NOERROR不代表沒有問題,也可以是過時的記錄
- 查看是否為權(quán)威記錄,flags:aa標(biāo)記判斷
- 被刪除的記錄仍能返回結(jié)果,可能是因為*記錄存在
實現(xiàn)只緩存DNS服務(wù)
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機提供服務(wù) named-checkconf:主配置文件語法檢查
rndc reload
實現(xiàn)正向主DNS服務(wù)
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機提供服務(wù) -
vim /etc/named.rfc1912.zones
zone "magedu.com" IN { type master; file "magedu.com.zone"; }; named-checkconf
-
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.$ named-checkzone magedu.com magedu.com.zone:如當(dāng)前工作目錄不是/var/named/,需要使用絕對路徑
rndc reload
實現(xiàn)反向主DNS服務(wù)
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機提供服務(wù) -
vim /etc/named.rfc1912.zones
zone "39.168.192.in-addr.arpa" IN { type master; file "39.168.192.in-addr.arpa.zone"; }; named-checkconf
-
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é)果最好一致 named-checkzone 39.168.192.in-addr.arpa 39.168.192.in-addr.arpa.zone:如當(dāng)前工作目錄不是/var/named/,需要使用絕對路徑
rndc reload
實現(xiàn)遠(yuǎn)程動態(tài)更新DNS服務(wù)
-
vim /etc/named.rfc1912.zones:在指定zone語句塊中添加
Allow-update {any;}; # 為了安全最好僅允許指定主機 chmod 770 /var/named:動態(tài)更新實質(zhì)上就是named用戶將指定資源記錄寫到生成的/var/named/{指定zone}.jnl文件中,隨后再同步到指定的zone文件中,因此需要再目錄下有w權(quán)限
-
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
實現(xiàn)主從DNS服務(wù)
主DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機提供服務(wù) allow-transfer { 192.168.39.72; }; # 允許從服務(wù)器拉取數(shù)據(jù),注意中花括號前后均有空格 named-checkconf
-
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.$ named-checkzone magedu.com. magedu.com.zone
從DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機提供服務(wù) allow-transfer { none; }; # 為了安全禁止任何主機拉取 -
vim /etc/named.rfc1912.zones
zone "magedu.com" IN { type slave; masters { 192.168.39.71; }; file "slaves/magedu.com.slave.zone"; }; named-checkconf
ls /var/named/slave/:查看是否拉取成功
實現(xiàn)子域委派
父域DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機提供服務(wù) dnssec-enable no; # 關(guān)閉加密 dnssec-validation no; -
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 # 主機少的情況下,可以直接在父域直接定義子域中的主機 www A 1.1.1.1 rndc reload
子域DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機提供服務(wù) -
vim /etc/named.rfc1912.zones
zone "shanghai.magedu.com" IN { type master; file "shanghai.magedu.com.zone"; }; -
scp 192.168.39.71:/var/named/magedu.com.zone shanghai.magedu.com.zone:由于scp默認(rèn)root身份執(zhí)行,導(dǎo)致文件權(quán)限出錯,一定要注意文件權(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 rndc reload
實現(xiàn)轉(zhuǎn)發(fā)DNS服務(wù)
forward first/only:表示如果 forwarders list 為非空,默認(rèn)為first值,服務(wù)器首先請求 forwarders list ,如果 forwarders list 中的DNS主機不應(yīng)答,該主機將自己去找應(yīng)答,如果設(shè)置值為only,服務(wù)器將只會請求 forwarders中的DNS主機
forwarders:指定用來 forwarding的ip地址. 默認(rèn)為空列(即不轉(zhuǎn)發(fā))
全局轉(zhuǎn)發(fā)
對非本機所負(fù)責(zé)解析區(qū)域的請求,全轉(zhuǎn)發(fā)給指定的服務(wù)器
vim /etc/named.conf
Options {
forward first|only;
forwarders { ip;};
};
特定區(qū)域轉(zhuǎn)發(fā)
僅轉(zhuǎn)發(fā)對特定的區(qū)域的請求,比全局轉(zhuǎn)發(fā)優(yōu)先級高
vim /etc/named.rfc1912.zones
zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
實現(xiàn)智能DNS服務(wù)
-
vim /etc/named.conf:acl必須在option前添加,而且注意遷移zone,因為一旦啟用view,所有的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中 ...... -
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"; }; -
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.1vim /var/named/magedu.com.zone.sh
...... www A 2.2.2.2vim /var/named/magedu.com.zone.other
...... www A 3.3.3.3
實現(xiàn)互聯(lián)網(wǎng)架構(gòu)DNS服務(wù)

注意:
- 從后往前搭建,好測試
- 測試時注意rndc flush,因為有緩存時優(yōu)先使用緩存
-
配置www主機:
yum install -y httpd
-
vim /var/www/html/index.html
Welcome to magedu! systemctl start httpd
-
配置主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
-
-
配置從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
-
-
配置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
-
-
配置根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
-
-
配置局域網(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
-
-
配置client:
-
vim /etc/resolv.conf
nameserver 192.168.39.71
-
編譯安裝BIND
-
下載bind
- isc.org
-
編譯安裝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
-
環(huán)境變量
-
vim /etc/profile.d/named.sh
export PATH=/usr/local/bind9/bin: /usr/local/bind9/sbin/:$PATH
-
-
庫和頭文件
-
vim /etc/ld.so.conf.d/named.conf
/usr/local/bind9/lib ldconfig –v
ls -sv /usr/local/bind9/include /usr/include/named
-
-
man幫助
-
vim /etc/man.config | /etc/man_db.conf
MANPATH /usr/local/bind9/share/man man named.conf
-
-
主配置文件
-
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;}; };
-
-
區(qū)域數(shù)據(jù)庫
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.
-
設(shè)置權(quán)限
- chmod 640 /var/named/*
- chmod 640 /etc/named/named.conf
- chgrp -R named /var/named/
- chgrp named /etc/named/named.conf
-
啟動服務(wù)和測試
- man named
- named -u named -f -g -d 3 前端級別3方式運行
- named -u named 后臺運行
- killall named
- ss -tuln
- tail /var/log/message
- named -u named