1.DNS域名
為什么會(huì)有域名系統(tǒng)呢危号?
那是因?yàn)槲覀內(nèi)祟?lèi)對(duì)數(shù)字的記憶不是那么好争占,比如說(shuō)我們?cè)L問(wèn)淘寶或者百度等網(wǎng)站趁怔,不需要我們一個(gè)個(gè)記住他們的IP地址,只需要我們記住名字就可以了犀斋,我們記住名字還是比較容易噠。
但是計(jì)算機(jī)只認(rèn)識(shí)二進(jìn)制情连,這就需要我們把名稱(chēng)和IP一一對(duì)應(yīng)起來(lái)叽粹,這就是域名系統(tǒng)DNS。當(dāng)然我們計(jì)算機(jī)自帶的/etc/hosts也可以解析名稱(chēng)却舀,用法是“IP地址 主機(jī)別名一 主機(jī)別名二”虫几,
但是它不能自動(dòng)更新,隨著計(jì)算機(jī)的日益增多挽拔,就出現(xiàn)了DNS辆脸。
? . (最上方的是小數(shù)點(diǎn))根域
? 一級(jí)域名:Top Level Domain: TLD
com, edu, mil, gov, net, org, int,arpa
三類(lèi):組織域、國(guó)家域(.cn, .ca, .hk, .tw)螃诅、反向域
? 二級(jí)域名
? 三級(jí)域名
? 最多127級(jí)域名
DNS域名結(jié)構(gòu)
2.DNS查詢(xún)
我按照鳥(niǎo)哥的例子畫(huà)了一個(gè)DNS系統(tǒng)查詢(xún)主機(jī)名解析的流程
當(dāng)你在瀏覽器中輸入http://www.zzu.edu.cn啡氢,計(jì)算機(jī)會(huì)依據(jù)相關(guān)設(shè)置就會(huì)向DNS Server詢(xún)問(wèn)
1)收到用戶(hù)的查詢(xún)要求,先看本地有沒(méi)有記錄术裸,若無(wú)則向.(root)查詢(xún)
DNS是階層式的架構(gòu)倘是,每臺(tái)主機(jī)都會(huì)管理自己轄下的主機(jī)名解析,因?yàn)镈NS Server沒(méi)有權(quán)利管理鄭州大學(xué)教育網(wǎng)袭艺,就無(wú)法直接回報(bào)給客戶(hù)端辨绊,所以直接向根.(root)服務(wù)器查詢(xún)相關(guān)IP信息
2)向最頂層.(root)查詢(xún)
DNS Server會(huì)主動(dòng)向.(root)查詢(xún),但是.(root)只記錄了與.cn相關(guān)的信息匹表,所以.(root)會(huì)告知“我不知道這部主機(jī)的IP门坷,不過(guò)你應(yīng)該去向.cn查詢(xún)”
3)向第二層.cn服務(wù)器查詢(xún)
DNS Server又向.cn查詢(xún),但是.cn告訴他“你要去管理.edu.cn這個(gè)區(qū)域的主機(jī)查詢(xún)袍镀,我這里有他的IP”
4)向第三層.edu.cn查詢(xún)
DNS Server接著又到.edu.cn這個(gè)服務(wù)器查詢(xún)默蚌,這里只知道.zzu.edu.cn這個(gè)服務(wù)器的IP
5)向第四層.zzu.edu.cn服務(wù)期查詢(xún)
.zzu.edu.cn告訴你www.zzu.edu.cn這個(gè)服務(wù)器的IP
6)記錄緩存并回報(bào)用戶(hù)
查到正確的IP后,DNS server會(huì)先在自己的緩存中把結(jié)果先記錄一份苇羡,一邊方便響應(yīng)下一次的相同要求绸吸。
這樣分層的好處是什么呢?
(1)主機(jī)名修改僅需更改自己的DNS即可设江,不需通知其他人
(2)每次查詢(xún)的結(jié)果都會(huì)存儲(chǔ)在DNS服務(wù)器的高速緩存中锦茁,以便下次有相同需求的解析時(shí),能夠快速響應(yīng)叉存。如果查詢(xún)
結(jié)果被緩存了码俩,原始的DNS主機(jī)名與IP對(duì)應(yīng)卻修改了,此時(shí)若有人在查詢(xún)歼捏,系統(tǒng)可能會(huì)回報(bào)舊的IP稿存。所以DNS服務(wù)器
對(duì)主機(jī)名解析結(jié)果的緩存有時(shí)間性笨篷。
(3)可持續(xù)向下授權(quán)
(4)每個(gè)上級(jí)域都記錄了下級(jí)域的IP
(5)下級(jí)域需要上級(jí)域的授權(quán)
●DNS解析
一次完整的查詢(xún)請(qǐng)求經(jīng)過(guò)的流程:
Client -->hosts文件 -->DNS Service Local Cache
--> DNS Server (recursion) --> Server Cache -->
iteration(迭代) --> 根--> 頂級(jí)域名DNS-->二級(jí)域名DNS
? 解析答案:
肯定答案:
否定答案:請(qǐng)求的條目不存在等原因?qū)е聼o(wú)法返回結(jié)果
權(quán)威答案:
非權(quán)威答案:
3.DNS一些專(zhuān)業(yè)術(shù)語(yǔ)
●名稱(chēng)服務(wù)器:域內(nèi)負(fù)責(zé)解析本域內(nèi)的名稱(chēng)的主機(jī)
●根服務(wù)器:世界上一共13組服務(wù)器
●遞歸查詢(xún):服務(wù)器與服務(wù)器之間的查詢(xún)
●迭代查詢(xún):主機(jī)和服務(wù)器之間的查詢(xún)
●完整主機(jī)名:FQDN(Fully Qualified Domain Name)
正向:FQDN --> IP
反向: IP --> FQDN
正向解析和反向解析不是一個(gè)樹(shù)
比如說(shuō)我們有些同學(xué)同名同姓,我們?cè)趺磪^(qū)分他們呢瓣履?比如說(shuō)一年級(jí)張偉率翅,二年級(jí)張偉,如果兩個(gè)人同年級(jí)袖迎,都是二年級(jí)冕臭,就說(shuō)一班張偉,二班張偉燕锥,以此類(lèi)推辜贵,我們經(jīng)常看到主機(jī)名都是www的網(wǎng)站脯宿,eg:www.google.com,www.zzu.edu.cn泉粉,我們?cè)趺粗肋@些www名稱(chēng)主機(jī)在哪里呢连霉?所以就需要區(qū)區(qū)域名了
注意:并不是以小點(diǎn)(.)區(qū)分domain與hostname
4.DNS使用的port number 53
通常DNS是以UDP這個(gè)較快速的數(shù)據(jù)傳輸協(xié)議來(lái)查詢(xún)的,但是萬(wàn)一沒(méi)有辦法查詢(xún)到完整的信息時(shí)嗡靡,就會(huì)再次以TCP這個(gè)協(xié)議來(lái)重新查詢(xún)跺撼,所以啟動(dòng)DNS服務(wù)室,會(huì)同時(shí)啟動(dòng)TCP及UDP的53端口讨彼。
Paste_Image.png
5.DNS所需要的軟件(服務(wù)器端)
我們現(xiàn)在用的一般是BIND包
yum -y install bind
/etc/named.conf <======主配置文件
注釋數(shù)據(jù)是放置在“//”后面接的數(shù)據(jù)
每個(gè)段落之后都需要以“歉井;”來(lái)作為結(jié)尾
因?yàn)锽IDN是伯克利大學(xué)來(lái)發(fā)出來(lái)的,所以叫這個(gè)名字哈误,但是它的服務(wù)是named
以下是幾個(gè)重要的配置:
options {
listen-on port 53 { 127.0.0.1; }; <======監(jiān)聽(tīng)在這臺(tái)主機(jī)系統(tǒng)上面的哪個(gè)網(wǎng)絡(luò)接口哩至。一個(gè)服務(wù)器會(huì)有多個(gè)網(wǎng)絡(luò)網(wǎng)卡,多個(gè)IP蜜自。比如說(shuō)我的機(jī)器有一個(gè)eth0和eth1菩貌,我可以只開(kāi)放eth0上面某一個(gè)IP去監(jiān)聽(tīng)DNS服務(wù),any表示所有重荠,這里的localhost和any沒(méi)有太大差別箭阶。
directory "/var/named"; <======數(shù)據(jù)庫(kù)默認(rèn)放置位置
dump-file "/var/named/data/cache_dump.db";<======一些統(tǒng)計(jì)信息
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; <======這是針對(duì)客戶(hù)端的設(shè)置,表示誰(shuí)可以對(duì)我的DNS提出查詢(xún)請(qǐng)求戈鲁,any表示所有仇参,也可以添加網(wǎng)段,eg:172.16.0.0/16或者單獨(dú)的IP
recursion yes; <======是否允許遞歸查詢(xún)
...
zone "." IN { <======記錄記錄根的Zone
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones"; <======包含其他區(qū)域數(shù)據(jù)庫(kù)婆殿,單獨(dú)的域文件诈乒,添加自己的域最好在這個(gè)文件里
include "/etc/named.root.key";
};
6.資源記錄:Resource Record, RR
區(qū)域解析庫(kù):由眾多RR組成:
記錄類(lèi)型:A, AAAA, PTR, SOA, NS, CNAME, MX
語(yǔ)法:name [TTL] IN rr_type rr_value
● SOA:Start Of Authority婆芦,起始授權(quán)記錄抓谴;一個(gè)區(qū)域解析庫(kù)有且僅能有一個(gè)SOA記錄暮蹂,必須位于解析庫(kù)的第一條記錄
? 注意:
(1) TTL可從全局繼承
(2) @可用于引用當(dāng)前區(qū)域的名字
(3) 同一個(gè)名字可以通過(guò)多條記錄定義多個(gè)不同的值;此 時(shí)DNS服務(wù)器會(huì)以輪詢(xún)方式響應(yīng)
(4) 同一個(gè)值也可能有多個(gè)不同的定義名字癌压;通過(guò)多個(gè)不同的名字指向同一個(gè)值進(jìn)行定義仰泻;此僅表示通過(guò)多個(gè)不同名字可以找到同一個(gè)主機(jī)
? name: 當(dāng)前區(qū)域的名字,例如“magedu.com.”
? value: 有多部分組成
(1) 當(dāng)前區(qū)域的主DNS服務(wù)器的FQDN滩届,也可以使用當(dāng)前區(qū)域的名字集侯;
(2) 當(dāng)前區(qū)域管理員的郵箱地址;但地址中不能使用@符號(hào)帜消,一般用.替換棠枉,例如linuxedu@magedu.com要寫(xiě)成linuxedu.mage.com
(3) 主從服務(wù)區(qū)域傳輸相關(guān)定義以及否定的答案的統(tǒng)一的TTL
例如:
magedu.com. 86400 IN SOA ns.magedu.com.
nsadmin.magedu.com. (
2015042201 ;序列號(hào)
2H ;刷新時(shí)間
10M ;重試時(shí)間
1W ;過(guò)期時(shí)間
1D ;否定答案的TTL值
)
●NS記錄
? name: 當(dāng)前區(qū)域的名字
? value: 當(dāng)前區(qū)域的某DNS服務(wù)器的名字,例如ns.magedu.com.
? 注意:一個(gè)區(qū)域可以有多個(gè)NS記錄
eg:
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
? 注意:
(1) 相鄰的兩個(gè)資源記錄的name相同時(shí)泡挺,后續(xù)的可省略
(2) 對(duì)NS記錄而言辈讶,任何一個(gè)ns記錄后面的服務(wù)器名字
,都應(yīng)該在后續(xù)有一個(gè)A記錄
●MX記錄
? name: 當(dāng)前區(qū)域的名字
? value: 當(dāng)前區(qū)域的某郵件服務(wù)器(smtp服務(wù)器)的主機(jī)名
? 一個(gè)區(qū)域內(nèi)娄猫,MX記錄可有多個(gè)贱除;但每個(gè)記錄的value之前應(yīng)該有一個(gè)數(shù)字(0-99),表示此服務(wù)器的優(yōu)先級(jí)媳溺;數(shù)字越小優(yōu)先級(jí)越高
eg:
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
? 注意:
(1) 對(duì)MX記錄而言月幌,任何一個(gè)MX記錄后面的服務(wù)器名字
,都應(yīng)該在后續(xù)有一個(gè)A記錄
●A記錄
? name: 某主機(jī)的FQDN悬蔽,例如www.magedu.com.
? value: 主機(jī)名對(duì)應(yīng)主機(jī)的IP地址
eg:
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.$
*.magedu.com. IN A 5.5.5.5
magedu.com. IN A 6.6.6.6
? 避免用戶(hù)寫(xiě)錯(cuò)名稱(chēng)時(shí)給錯(cuò)誤答案扯躺,可通過(guò)泛域名解析進(jìn)行解析至某特定地址
●AAAA:
name: FQDN
value: IPv6
● PTR:
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ě)
●CNAME:
別名記錄
name: 別名的FQDN
value: 真正名字的FQDN
? 例如:
www.magedu.com. IN CNAME websrv.magedu.com.
7.子域
子域授權(quán):每個(gè)域的名稱(chēng)服務(wù)器失暂,都是通過(guò)其上級(jí)名稱(chēng)服務(wù)器在解析庫(kù)進(jìn)行授權(quán)
? 類(lèi)似根域授權(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的名稱(chēng)服務(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
8. DNS服務(wù)器的類(lèi)型:
主DNS服務(wù)器
從DNS服務(wù)器
緩存DNS服務(wù)器(轉(zhuǎn)發(fā)器)
●主DNS服務(wù)器:管理和維護(hù)所負(fù)責(zé)解析的域內(nèi)解析庫(kù)的服務(wù)器
●從DNS服務(wù)器:從主服務(wù)器或從服務(wù)器“復(fù)制”(區(qū)域傳輸)解析
庫(kù)副本(主要是序列號(hào))
SOA
序列號(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ù)
? “通知”機(jī)制:主服務(wù)器解析庫(kù)發(fā)生變化時(shí)决记,會(huì)主動(dòng)通知從服務(wù)器
區(qū)域傳輸
? 區(qū)域傳輸:
完全傳輸:傳送整個(gè)解析庫(kù)
增量傳輸:傳遞解析庫(kù)變化的那部分內(nèi)容
8.BIND安裝
(1)BIND的安裝配置:
dns服務(wù)程序包:bind,unbound
程序名:named倍踪,unbound
程序包:yum list all bind*
bind:服務(wù)器
bind-libs:相關(guān)庫(kù)
bind-utils:客戶(hù)端
bind-chroot: /var/named/chroot/
(2)bind服務(wù)器
? 服務(wù)腳本和名稱(chēng):/etc/rc.d/init.d/named
/usr/lib/systemd/system/named.service
? 主配置文件:/etc/named.conf,
/etc/named.rfc1912.zones,
/etc/rndc.key
? 解析庫(kù)文件:/var/named/ZONE_NAME.ZONE
? 注意:
(1) 一臺(tái)物理服務(wù)器可同時(shí)為多個(gè)區(qū)域提供解析
(2) 必須要有根區(qū)域文件系宫;named.ca
(3) 應(yīng)該有兩個(gè)(如果包括ipv6的索昂,應(yīng)該更多)實(shí)現(xiàn)localhost和本地回環(huán)地址的解析庫(kù)
? rndc: remote name domain controller,
默認(rèn)與bind安裝在同一主機(jī)扩借,且只能通過(guò)127.0.0.1連接named進(jìn)程
提供輔助性的管理功能椒惨;953/tcp
(3)配置文件部分含義
? 主配置文件:
全局配置:options {};
日志子系統(tǒng)配置:logging {};
區(qū)域定義:本機(jī)能夠?yàn)槟男﹝one進(jìn)行解析,就要定義哪些zone
zone "ZONE_NAME" IN {};
? 注意:任何服務(wù)程序如果期望其能夠通過(guò)網(wǎng)絡(luò)被其它主機(jī)訪問(wèn)潮罪,至少應(yīng)該監(jiān)聽(tīng)在一個(gè)能與外部主機(jī)通信的IP地址上
? 緩存名稱(chēng)服務(wù)器的配置:
監(jiān)聽(tīng)外部地址即可
dnssec: 建議關(guān)閉dnssec康谆,設(shè)為no
(4)配置主DNS服務(wù)器
? 主DNS名稱(chēng)服務(wù)器:
(1) 在主配置文件中定義區(qū)域
zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};
(2) 定義區(qū)域解析庫(kù)文件
出現(xiàn)的內(nèi)容
宏定義
資源記錄
(5)配置文件語(yǔ)法檢查:
? 主配置文件語(yǔ)法檢查:
named-checkconf
? 解析庫(kù)文件語(yǔ)法檢查:
named-checkzone "magedu.com" /var/named/magedu.com.zone
rndc status|reload ;service named reload
(6)主區(qū)域示例
$TTL 86400
$ORIGIN magedu.com.
@ IN SOA ns1.magedu.com. admin.magedu.com (
2015042201
1H
5M
7D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.100.11
ns2 IN A 172.16.100.12
mx1 IN A 172.16.100.13
mx2 IN A 172.16.100.14
websrv IN A 172.16.100.11
websrv IN A 172.16.100.12
www IN CNAME websr
9.測(cè)試命令dig
dig [-t type] name [@SERVER] [query options]
dig只用于測(cè)試dns系統(tǒng),不會(huì)查詢(xún)hosts文件進(jìn)行解析
? 查詢(xún)選項(xiàng):
+[no]trace:跟蹤解析過(guò)程 : dig +trace magedu.com
+[no]recurse:進(jìn)行遞歸解析
測(cè)試反向解析:
dig -x IP = dig –t ptr reverseip.in-addr.arpa
模擬區(qū)域傳送:
dig -t axfr ZONE_NAME @SERVER
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
10.測(cè)試命令host
? host [-t type] name [SERVER]
host –t NS magedu.com 172.16.0.1
host –t soa magedu.com
host –t mx magedu.com
host –t axfr magedu.com
host 1.2.3.4
11.nslookup命令:
nslookup [-option] [name | -] [server]
? 交互式模式:
nslookup>
server IP: 指明使用哪個(gè)DNS server進(jìn)行查詢(xún)
set q=RR_TYPE: 指明查詢(xún)的資源記錄類(lèi)型
NAME: 要查詢(xún)的名稱(chēng)
12.反向區(qū)域
區(qū)域名稱(chēng):網(wǎng)絡(luò)地址反寫(xiě).in-addr.arpa.
172.16.100. --> 100.16.172.in-addr.arpa.
(1) 定義區(qū)域
zone "ZONE_NAME" IN {
type {master|slave|forward}嫉到;
file "網(wǎng)絡(luò)地址.zone"
};
(2) 定義區(qū)域解析庫(kù)文件
注意:不需要MX,以PTR記錄為主
反向區(qū)域示例
$TTL 86400
$ORIGIN 100.16.172.in-addr.arpa.
@ IN SOA ns1.magedu.com. admin.magedu.com. (
2015042201
1H
5M
7D
1D )
IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
11 IN PTR ns1.magedu.com.
11 IN PTR www.magedu.com.
12 IN PTR mx1.magedu.com.
12 IN PTR www.magedu.com.
13 IN PTR mx2.magedu.com.
13.允許動(dòng)態(tài)更新
? 指定的zone語(yǔ)句塊中:Allow-update {any;};
? chmod 770 /var/named
? setsebool -P named_write_master_zones on
? nsupdate
? >server 127.0.0.1
? >zone magedu.com
? >update add ftp.magedu.com 88888 IN A 8.8.8.8
? >send
? >update delete www.magedu.com A
? >send
? 測(cè)試:dig ftp.magedu.com @127.0.0.1
ll /var/named/magedu.com.zone.jnl
cat /var/named/magedu.com.zone
14.從服務(wù)器
1沃暗、應(yīng)該為一臺(tái)獨(dú)立的名稱(chēng)服務(wù)器
2、主服務(wù)器的區(qū)域解析庫(kù)文件中必須有一條NS記錄指向從服務(wù)器
3何恶、從服務(wù)器只需要定義區(qū)域孽锥,而無(wú)須提供解析庫(kù)文件;解析庫(kù)文件應(yīng)該放置于/var/named/slaves/目錄中
4细层、主服務(wù)器得允許從服務(wù)器作區(qū)域傳送
5惜辑、主從服務(wù)器時(shí)間應(yīng)該同步,可通過(guò)ntp進(jìn)行今艺;
6韵丑、bind程序的版本應(yīng)該保持一致爵卒;否則虚缎,應(yīng)該從高,主低
定義從區(qū)域的方法:
zone "ZONE_NAME" IN {
type slave;
masters { MASTER_IP; };
file "slaves/ZONE_NAME.zone";
};
15.rndc命令
? rndc:
rndc --> rndc (953/tcp)
rndc COMMAND
? 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)閉查詢(xún)?nèi)罩疚募?var/log/message
trace: 遞增debug一個(gè)級(jí)別
trace LEVEL: 指定使用的級(jí)別
notrace:將調(diào)試級(jí)別設(shè)置為 0
flush:清空DNS服務(wù)器的所有緩存記錄
16.子域
子域授權(quán):分布式數(shù)據(jù)庫(kù)
正向解析區(qū)域子域方法
? 定義一個(gè)子區(qū)域:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NS ns2.ops.magedu.com.
ns1.ops.magedu.com. IN A 1.1.1.1
ns2.ops.magedu.com. IN A 1.1.1.2
fin.magedu.com. IN NS ns1.fin.magedu.com.
fin.magedu.com. IN NS ns2.fin.magedu.com.
ns1.fin.magedu.com. IN A 3.1.1.1
ns2.fin.magedu.com. IN A 3.1.1.2
? 注意:關(guān)閉dnssec功能:
dnssec-enable no;
dnssec-validation no;
17.轉(zhuǎn)發(fā)服務(wù)器
注意:被轉(zhuǎn)發(fā)的服務(wù)器需要能夠?yàn)檎?qǐng)求者做遞歸实牡,否則轉(zhuǎn)發(fā)請(qǐng)求不予進(jìn)行
(1) 全局轉(zhuǎn)發(fā): 對(duì)非本機(jī)所負(fù)責(zé)解析區(qū)域的請(qǐng)求,全轉(zhuǎn)發(fā)給指定的服務(wù)器
Options {
forward first|only;
forwarders { ip;};
};
(2) 特定區(qū)域轉(zhuǎn)發(fā):僅轉(zhuǎn)發(fā)對(duì)特定的區(qū)域的請(qǐng)求轴合,比全局轉(zhuǎn)發(fā)優(yōu)先級(jí)高
zone "ZONE_NAME" IN {
type forward;
forward first|only;
forwarders { ip;};
};
注意:關(guān)閉dnssec功能:
dnssec-enable no;
dnssec-validation no;
18.bind中ACL
? bind中基礎(chǔ)的安全相關(guān)的配置:
acl: 把一個(gè)或多個(gè)地址歸并為一個(gè)集合创坞,并通過(guò)一個(gè)統(tǒng)一的名稱(chēng)調(diào)用
格式:
acl acl_name {
ip;
net/prelen;
……
};
? 示例:
acl mynet {
172.16.0.0/16;
10.10.10.10;
};
? bind有四個(gè)內(nèi)置的acl:
none: 沒(méi)有一個(gè)主機(jī)
any: 任意主機(jī)
localhost: 本機(jī)
localnet: 本機(jī)的IP同掩碼運(yùn)算后得到的網(wǎng)絡(luò)地址
? 注意:只能先定義,后使用受葛;因此一般定義在配置文件中题涨,處于options的前面
訪問(wèn)控制
? 訪問(wèn)控制的指令:
allow-query {}: 允許查詢(xún)的主機(jī);白名單
allow-transfer {}:允許區(qū)域傳送的主機(jī)总滩;白名單
allow-recursion {}: 允許遞歸的主機(jī),建議全局使用
allow-update {}: 允許更新區(qū)域數(shù)據(jù)庫(kù)中的內(nèi)容
19.智能DNS
如果想要特定的DNS解析纲堵,可以采用View,這既是智能DNS
bind view
? view:視圖,一個(gè)bind服務(wù)器可定義多個(gè)view闰渔,每個(gè)view中可 定義一個(gè)或多個(gè)zone
? 每個(gè)view用來(lái)匹配一組客戶(hù)端
? 多個(gè)view內(nèi)可能需要對(duì)同一個(gè)區(qū)域進(jìn)行解析席函,但使用不同的 區(qū)域解析庫(kù)文件
? 格式:
view VIEW_NAME {
match-clients { testacl; };
zone “magedu.com” {
type master;
file “magedu.com.zone”; };
include “/etc/named.rfc1912.zones”;
};
? 注意:
(1) 一旦啟用了view,所有的zone都只能定義在view中
(2) 僅在允許遞歸請(qǐng)求的客戶(hù)端所在view中定義根區(qū)域
(3) 客戶(hù)端請(qǐng)求到達(dá)時(shí)冈涧,是自上而下檢查每個(gè)view所服務(wù)
的客戶(hù)端列表
? CDN: Content Delivery Network
服務(wù)商:藍(lán)汛茂附,網(wǎng)宿正蛙,帝聯(lián)等
? 智能DNS:
dnspod
dns.la
20.編譯安裝bind
(1)下載bind-9.11.0a3.tar.gz我這里用的版本
(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
(8) 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.
(9)設(shè)置權(quán)限
? chmod 640 /var/named/*
? chmod 640 /etc/named/named.conf
? chgrp -R named /var/named/
? chgrp named /etc/named/named.conf
(10)啟動(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
(11)支持rndc
? rndc reload 觀察錯(cuò)誤提示
? rndc-confgen -r /dev/urandom > /etc/named/rndc.conf 生成key
? tail /etc/named/rndc.conf >> /etc/named/named.conf
? killall -SIGHUP named
? rndc status
(12)壓力測(cè)試
? /root/bind-xxx/contrib/scripts
? 編譯壓力測(cè)試工具
? cd /root/bind-xxx/contrib/queryperf
? ./configure
? make
? cp queryperf /usr/local/bind9/bin
? queryperf -h
? vim test.txt
www.magedu.com A
magedu.com NS
magedu.com MX
pop3.magedu.com A
web.magedu.com A
? queryperf -d test.txt -s 127.0.0.1
(13)打開(kāi)日志功能
? rndc querylog
? rndc status
? queryperf -d test.txt -s 127.0.0.1
? wc -l /var/log/message 5151
? #dig A example.com
21.DNS排錯(cuò)
(1)可使用dig +trace排錯(cuò),可能是網(wǎng)絡(luò)和防火墻導(dǎo)致
? ; <<>> 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.
(2)NXDOMAIN:The queried name does not exist in the zone.
可能是CNAME對(duì)應(yīng)的A記錄不存在導(dǎo)致
(3)REFUSED:The nameserver refused the client's DNS request due to policy restrictions.
可能是DNS策略導(dǎo)致
(4)NOERROR不代表沒(méi)有問(wèn)題营曼,也可以是過(guò)時(shí)的記錄
(5)查看是否為權(quán)威記錄乒验,flags:aa標(biāo)記判斷
(6)被刪除的記錄仍能返回結(jié)果,可能是因?yàn)?記錄存在
? 如:*.example.com. IN A 172.25.254.254
? 注意“.”的使用
(7)避免CNAME指向CNAME記錄溶推,可能產(chǎn)生回環(huán)
test.example.com. IN CNAME lab.example.com.
lab.example.com. IN CNAME test.example.com.