網際網路通路絕大多數都是基于域名的通路,網際網路通路的基礎是基于IP來實作的,是以,需要有一種将域名解析成IP的機制,讓使用者在利用域名通路時,自動将域名轉換成為對應的IP,這就是DNS的功能。
DNS的基礎概念
DNS:Domain Name Service,基于C/S模式的域名解析服務,應用層協定;監聽在53/udp,53/tcp端口;TCP用來區域傳送; UDP用來解析。
區域(zone)和域(domain)
區域是實體概念,域是邏輯概念。
比如:sfn.cn.這個域
FQDN–>IP:
正向解析庫和正向解析的功能,就是一個正向解析區域。
IP–>FQDN:
反向解析庫和反向解析的功能,就是一個反向解析區域。
一般而言,一個域分為正向解析區域和反向解析區域,但是單純的域卻不一定比區域大,因為父域的區域,可能就比子域的域要大。
區域資料庫檔案
主要由資源記錄(RR,resource record)組成。
常見資源記錄類型:SOA、NS、MX、A、AAAA、PTR、CNAME。
SOA:start of authority,起始授權記錄,一個區域解析庫有且隻能有一個SOA記錄,且必須放在所有資源記錄的第一條。
NS:name service,域名服務記錄,一個區域解析庫可以有多個NS記錄,一個NS記錄表示一台DNS伺服器,其中一個為主的,其餘的為輔的。
MX:mail exchanger,郵件交換器,用于标明域内郵件伺服器的位址的記錄,MX記錄可以有多個,其MX記錄有優先級的概念,優先級 0-99,數字越小,優先級越高。
A:address,位址記錄,也就是從FQDN–>IPv4
AAAA:address,位址記錄,從FQDN–>IPv6
PTR:pointer,主要用于實作IP–>FQDN
CNAME:别名記錄。
資源記錄的定義格式
文法:NAME [TTL] IN RR_TYPE VALUE
SOA記錄:
NAME:目前區域的名字,例如:sfn.cn. 或者如果是反向區域,則 1.168.192.in-addr.arpa.
VALUE:有多部分組成
<1>目前區域的區域名稱(也可以使用主DNS伺服器名稱);
<2>目前區域的管理者的郵箱位址,但位址中不能使用@符号,一般用點号.來替代;
<3>主從服務的協調屬性的定義以及否定答案的緩存時長,整個内容要用()括号括起來,每行内容之後可以用;分号表示後面的都是注釋資訊。
完整的SOA記錄定義示例:
sfn.cn. 86400 IN SOA sfn.cn. admin.sfn.cn (
2016091801 //代表序列号,不能超過10位
2H //代表從伺服器向主伺服器同步資料的重新整理時間間隔,此處表示2小時
10M //表示聯系不上主伺服器時,從伺服器再次聯系主伺服器時的間隔時間,10分鐘
1W //表示過期時間,也就是伺服器始終聯系不上主伺服器時的最長等待時間,也就是此時間一過,就判定主伺服器故障,然後從伺服器也停止服務,1周
1D //表示否定答案的緩存時長,1天
)
NS記錄:
可有多個NS記錄,一個NS記錄對應一個DNS伺服器,每個NS記錄應該有一個對應的A記錄。
NAME:目前區域的區域名稱
VALUE:目前區域的某DNS伺服器的名字,例如ns1.sfn.cn
例如:
sfn.cn. 86400 IN NS ns1.sfn.cn.
sfn.cn. 86400 IN NS ns2.sfn.cn.
MX記錄:
MX記錄可以有多個,一個MX記錄對應一個郵件伺服器,每個記錄的VALUE之前應該有一個數字,用于表示其優先級,數字越小,優先級越高。每個MX記錄應該有一個對應的A記錄。
NAME:目前區域的區域名稱
VALUE:目前區域某郵件伺服器的主機名
例如:
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
一個主機名額可以有多個IP,一個IP也可以有多個主機名
*.sfn.cn. IN A 10.1.32.1
表示将前面沒有單獨定義的都解析到10.1.32.1
sfn.cn. IN A 10.1.32.1
表示當使用者通路域名前不帶任何字元時,也即是直接通路sfn.cn.時解析到的位址是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反過來寫,而且要加特定字尾,如:192.168.1.2的記錄應該寫成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值可以從全局繼承,不用每個記錄都單獨定義