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í)域名
解析
查詢類型:
- 遞歸查詢: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ū)域傳送:
- dig -t axfr ZONE_NAME @SERVER:查看指定SERVER的ZONE的數(shù)據(jù)庫(kù)信息
- 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:表示對(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)求
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ù)
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機(jī)提供服務(wù)
named-checkconf:主配置文件語(yǔ)法檢查
rndc reload
實(shí)現(xiàn)正向主DNS服務(wù)
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機(jī)提供服務(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/,需要使用絕對(duì)路徑
rndc reload
實(shí)現(xiàn)反向主DNS服務(wù)
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機(jī)提供服務(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/,需要使用絕對(duì)路徑
rndc reload
實(shí)現(xiàn)遠(yuǎn)程動(dòng)態(tài)更新DNS服務(wù)
-
vim /etc/named.rfc1912.zones:在指定zone語(yǔ)句塊中添加
Allow-update {any;}; # 為了安全最好僅允許指定主機(jī)
chmod 770 /var/named:動(dòng)態(tài)更新實(shí)質(zhì)上就是named用戶將指定資源記錄寫(xiě)到生成的/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
實(shí)現(xiàn)主從DNS服務(wù)
主DNS:
-
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)前后均有空格
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; }; # 修改本機(jī)所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機(jī)提供服務(wù) allow-transfer { none; }; # 為了安全禁止任何主機(jī)拉取
-
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/:查看是否拉取成功
實(shí)現(xiàn)子域委派
父域DNS:
-
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;
-
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
rndc reload
子域DNS:
-
vim /etc/named.conf
listen-on port 53 { localhost; }; # 修改本機(jī)所有ip綁定53端口 allow-query { any; }; # 修修改可以以為任何主機(jī)提供服務(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)限出錯(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
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ù)
-
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中 ......
-
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.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ù)
注意:
- 從后往前搭建,好測(cè)試
- 測(cè)試時(shí)注意rndc flush逊移,因?yàn)橛芯彺鏁r(shí)優(yōu)先使用緩存
-
配置www主機(jī):
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
-
-
庫(kù)和頭文件
-
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ù)庫(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.
-
設(shè)置權(quán)限
- chmod 640 /var/named/*
- chmod 640 /etc/named/named.conf
- chgrp -R named /var/named/
- chgrp named /etc/named/named.conf
-
啟動(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