DNS常見資源記錄型別詳解

youbingke發表於2022-08-03

網際網路訪問絕大多數都是基於域名的訪問,網際網路訪問的基礎是基於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

表示web.sfn.cn.是的別名

注意:

<1>TTL值可以從全域性繼承,不用每個記錄都單獨定義

<2>@可以用來表示當前的區域的名字

<3>相鄰的兩條記錄,其NAME相同時,後面那條記錄的NAME可以省略

<4>任何MX、NS等型別的記錄的value為一個FQDN,此FQDN應該有一個A記錄


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2908814/,如需轉載,請註明出處,否則將追究法律責任。

相關文章