互聯(lián)網(wǎng)訪問絕大多數(shù)都是基于域名的訪問,互聯(lián)網(wǎng)訪問的基礎(chǔ)是基于IP來(lái)實(shí)現(xiàn)的,因此,需要有一種將域名解析成IP的機(jī)制,讓用戶在利用域名訪問時(shí),自動(dòng)將域名轉(zhuǎn)換成為對(duì)應(yīng)的IP,這就是DNS的功能。

DNS的基礎(chǔ)概念
DNS:Domain Name Service,基于C/S模式的域名解析服務(wù),應(yīng)用層協(xié)議;監(jiān)聽在53/udp,53/tcp端口;TCP用來(lái)區(qū)域傳送; UDP用來(lái)解析。
區(qū)域(zone)和域(domain)
區(qū)域是物理概念,域是邏輯概念。
比如:sfn.cn.這個(gè)域
FQDN–>IP:
正向解析庫(kù)和正向解析的功能,就是一個(gè)正向解析區(qū)域。
IP–>FQDN:
反向解析庫(kù)和反向解析的功能,就是一個(gè)反向解析區(qū)域。
一般而言,一個(gè)域分為正向解析區(qū)域和反向解析區(qū)域,但是單純的域卻不一定比區(qū)域大,因?yàn)楦赣虻膮^(qū)域,可能就比子域的域要大。
區(qū)域數(shù)據(jù)庫(kù)文件
主要由資源記錄(RR,resource record)組成。
常見資源記錄類型:SOA、NS、MX、A、AAAA、PTR、CNAME。
SOA:start of authority,起始授權(quán)記錄,一個(gè)區(qū)域解析庫(kù)有且只能有一個(gè)SOA記錄,且必須放在所有資源記錄的第一條。
NS:name service,域名服務(wù)記錄,一個(gè)區(qū)域解析庫(kù)可以有多個(gè)NS記錄,一個(gè)NS記錄表示一臺(tái)DNS服務(wù)器,其中一個(gè)為主的,其余的為輔的。
MX:mail exchanger,郵件交換器,用于標(biāo)明域內(nèi)郵件服務(wù)器的地址的記錄,MX記錄可以有多個(gè),其MX記錄有優(yōu)先級(jí)的概念,優(yōu)先級(jí) 0-99,數(shù)字越小,優(yōu)先級(jí)越高。
A:address,地址記錄,也就是從FQDN–>IPv4
AAAA:address,地址記錄,從FQDN–>IPv6
PTR:pointer,主要用于實(shí)現(xiàn)IP–>FQDN
CNAME:別名記錄。
資源記錄的定義格式
語(yǔ)法:NAME [TTL] IN RR_TYPE VALUE
SOA記錄:
NAME:當(dāng)前區(qū)域的名字,例如:sfn.cn. 或者如果是反向區(qū)域,則 1.168.192.in-addr.arpa.
VALUE:有多部分組成
<1>當(dāng)前區(qū)域的區(qū)域名稱(也可以使用主DNS服務(wù)器名稱);
<2>當(dāng)前區(qū)域的管理員的郵箱地址,但地址中不能使用@符號(hào),一般用點(diǎn)號(hào).來(lái)替代;
<3>主從服務(wù)的協(xié)調(diào)屬性的定義以及否定答案的緩存時(shí)長(zhǎng),整個(gè)內(nèi)容要用()括號(hào)括起來(lái),每行內(nèi)容之后可以用;分號(hào)表示后面的都是注釋信息。
完整的SOA記錄定義示例:
sfn.cn. 86400 IN SOA sfn.cn. admin.sfn.cn (
2016091801 //代表序列號(hào),不能超過10位
2H //代表從服務(wù)器向主服務(wù)器同步數(shù)據(jù)的刷新時(shí)間間隔,此處表示2小時(shí)
10M //表示聯(lián)系不上主服務(wù)器時(shí),從服務(wù)器再次聯(lián)系主服務(wù)器時(shí)的間隔時(shí)間,10分鐘
1W //表示過期時(shí)間,也就是服務(wù)器始終聯(lián)系不上主服務(wù)器時(shí)的最長(zhǎng)等待時(shí)間,也就是此時(shí)間一過,就判定主服務(wù)器故障,然后從服務(wù)器也停止服務(wù),1周
1D //表示否定答案的緩存時(shí)長(zhǎng),1天
)
NS記錄:
可有多個(gè)NS記錄,一個(gè)NS記錄對(duì)應(yīng)一個(gè)DNS服務(wù)器,每個(gè)NS記錄應(yīng)該有一個(gè)對(duì)應(yīng)的A記錄。
NAME:當(dāng)前區(qū)域的區(qū)域名稱
VALUE:當(dāng)前區(qū)域的某DNS服務(wù)器的名字,例如ns1.sfn.cn
例如:
sfn.cn. 86400 IN NS ns1.sfn.cn.
sfn.cn. 86400 IN NS ns2.sfn.cn.
MX記錄:
MX記錄可以有多個(gè),一個(gè)MX記錄對(duì)應(yīng)一個(gè)郵件服務(wù)器,每個(gè)記錄的VALUE之前應(yīng)該有一個(gè)數(shù)字,用于表示其優(yōu)先級(jí),數(shù)字越小,優(yōu)先級(jí)越高。每個(gè)MX記錄應(yīng)該有一個(gè)對(duì)應(yīng)的A記錄。
NAME:當(dāng)前區(qū)域的區(qū)域名稱
VALUE:當(dāng)前區(qū)域某郵件服務(wù)器的主機(jī)名
例如:
sfn.cn. IN MX 5 mail1.sfn.cn.
sfn.cn. IN MX 20 mail2.sfn.cn.
A記錄:
FQDN–>IPv4
NAME:某FQDN,如:web.sfn.cn.
VALUE:某IPv4地址
例如:
web.sfn.cn. IN A 1.1.1.1
web.sfn.cn. IN A 1.1.1.2
bbs.sfn.cn. IN A 1.1.1.2
一個(gè)主機(jī)名額可以有多個(gè)IP,一個(gè)IP也可以有多個(gè)主機(jī)名
*.sfn.cn. IN A 10.1.32.1
表示將前面沒有單獨(dú)定義的都解析到10.1.32.1
sfn.cn. IN A 10.1.32.1
表示當(dāng)用戶訪問域名前不帶任何字符時(shí),也即是直接訪問sfn.cn.時(shí)解析到的地址是10.1.32.1
$GENERATE 1-254 server$ IN A 1.1.1.$
表示將server1.sfn.cn. 解析的地址為1.1.1.1
server2.sfn.cn. 解析的地址為1.1.1.2
server3.sfn.cn. 解析為1.1.1.3
….
server254.sfn.cn. 解析為1.1.1.254
同理:
$GENERATE 5-20 test$ IN A 1.1.1.2$
表示將test5.sfn.cn. 解析的地址為1.1.1.25
test6.sfn.cn. 解析的地址為1.1.1.26
test7.sfn.cn. 解析為1.1.1.27
….
test20.sfn.cn. 解析為1.1.1.220
AAAA記錄:
FQDN–>IPv6地址,定義方式與A記錄類似
PTR記錄:
反向解析記錄
NAME:IP地址,有特定格式,IP反過來(lái)寫,而且要加特定后綴,如:192.168.1.2的記錄應(yīng)該寫成2.1.168.192.in-addr.arpa。
VALUE:為FQDN
例如:
2.1.168.192.in-addr.arpa. IN PTR bbs.sfn.cn.
CNAME記錄:
別名記錄
FQDN格式的別名;
VALUE:FQDN格式的正式名稱
例如:
web.sfn.cn. IN CNAME www.sfn.cn.
表示web.sfn.cn.是www.sfn.cn.的別名
注意:
<1>TTL值可以從全局繼承,不用每個(gè)記錄都單獨(dú)定義
<2>@可以用來(lái)表示當(dāng)前的區(qū)域的名字
<3>相鄰的兩條記錄,其NAME相同時(shí),后面那條記錄的NAME可以省略
<4>任何MX、NS等類型的記錄的value為一個(gè)FQDN,此FQDN應(yīng)該有一個(gè)A記錄