日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

DNS之BIND使用小结(Forward转发)

發(fā)布時(shí)間:2023/12/13 综合教程 41 生活家
生活随笔 收集整理的這篇文章主要介紹了 DNS之BIND使用小结(Forward转发) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

之前詳細(xì)介紹了DNS及其在linux下的部署過程,今天再說(shuō)下DNS的BIND高級(jí)特性-forwarder轉(zhuǎn)發(fā)功能。比如下面一個(gè)案例:
1)已經(jīng)在測(cè)試環(huán)境下部署了兩臺(tái)內(nèi)網(wǎng)DNS環(huán)境,DNS的zone域名為kevin.cn:http://www.cnblogs.com/kevingrace/p/5570312.html
2)測(cè)試機(jī)器的DNS地址已經(jīng)調(diào)整為這兩臺(tái)DNS地址,所以測(cè)試機(jī)訪問kevin.cn域名是沒有問題的。
由于業(yè)務(wù)需求,需要測(cè)試機(jī)器能訪問grace.cn域名(grace.cn域名是使用別的DNS地址解析的),這就用到了DNS的BIND中的forwarder轉(zhuǎn)發(fā)功能了。
通過BIND的forwarder轉(zhuǎn)發(fā)功能,將測(cè)試機(jī)訪問的非kevin.cn的域名都轉(zhuǎn)向forwarder指定的DNS地址上。

forwarder轉(zhuǎn)發(fā)功能只需要在named.conf中配置即可:
[root@uatdns01 ~]# cat /etc/named/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
forward first;
forwarders { #即訪問非kevin.cn域名時(shí)將解析轉(zhuǎn)發(fā)到這幾個(gè)DNS地址(分別為阿里的DNS、google的DNS)上進(jìn)行解析。
223.5.5.5; #注意這里轉(zhuǎn)發(fā)的是DNS地址,沒有指定DNS轉(zhuǎn)發(fā)域名。
223.6.6.6;
8.8.8.8;
8.8.4.4;
};
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." {
type hint;
file "named.ca";
};

zone "kevin.cn" {
type master;
file "kevin.cn_zone";
};
zone "51.168.192.in-addr.arpa" {
type master;
file "192.168.51.zone";
};

zone "50.168.192.in-addr.arpa" {
type master;
file "192.168.50.zone";
};

zone "104.168.192.in-addr.arpa" {
type master;
file "192.168.104.zone";
};
zone "grace.cn" { #訪問grace.cn域名時(shí),將解析請(qǐng)求轉(zhuǎn)到192.168.51.39(即grace.cn域名的DNS地址),注意這個(gè)不能寫在上面的forwarder處,否則轉(zhuǎn)發(fā)無(wú)效!
type forward; #注意這里轉(zhuǎn)發(fā)配置中制定了轉(zhuǎn)發(fā)的域名,即forwad轉(zhuǎn)發(fā)區(qū)(forward zone)設(shè)置,這是bind9之后的新特性。
forwarders { 192.168.51.39; };
};

========================================================================
嘗試了下,無(wú)法在一個(gè)named.conf里同時(shí)配置兩個(gè)或多個(gè)域的zone(即正向解析的zone),配置好并重啟named服務(wù)器后,多出的那個(gè)域名解析無(wú)效。
比如內(nèi)網(wǎng)有兩個(gè)域名:kevin.cn和grace.cn,要做這兩個(gè)域名的DNS解析環(huán)境,實(shí)現(xiàn)方案如下:

1)分別針對(duì)kevin.cn和grace.cn部署兩套DNS環(huán)境
2)在其中一個(gè)域名的DNS環(huán)境中使用forwadr轉(zhuǎn)發(fā),比如在kevin.cn域名的named.conf配置中添加:
     zone "grace.cn" {                       
              type forward;                
              forwarders { 192.168.51.39; };           # 該ip為grace.cn域名的DNS服務(wù)器地址
     };
3)將客戶機(jī)的DNS(/etc/resolv.conf)配置成kevin.cn域名的DNS地址,這樣該客戶機(jī)對(duì)于kevin.cn和grace.cn域名都可以解析。

===========================BIND之forwarder轉(zhuǎn)發(fā)功能小結(jié)======================
forward first | only;
forward指令用于設(shè)置DNS轉(zhuǎn)發(fā)的工作方式:
1)forward first設(shè)置優(yōu)先使用forwarders DNS服務(wù)器做域名解析,如果查詢不到再使用本地DNS服務(wù)器做域名解析。
2)forward only設(shè)置只使用forwarders DNS服務(wù)器做域名解析,如果查詢不到則返回DNS客戶端查詢失敗。

最新版的BIND提供了很多非常好的DNS新特性,其中一個(gè)就是Forwarder轉(zhuǎn)發(fā)功能:

總所周知,某些網(wǎng)絡(luò)連接是不鼓勵(lì)向本地以外發(fā)送很大的數(shù)據(jù)流量的,因?yàn)榫W(wǎng)絡(luò)連接是按流量計(jì)費(fèi)的,并且網(wǎng)絡(luò)連接本身是帶寬不足。在這樣的情況下,如果想將發(fā)往外部的DNS流量限制到盡可能的小,就需要使用BIND的轉(zhuǎn)發(fā)機(jī)制。或者網(wǎng)絡(luò)中只有一臺(tái)機(jī)器能連接到Internet ,而在這臺(tái)機(jī)器上運(yùn)行了 BIND ,那么可以將這臺(tái)BIND作為內(nèi)部網(wǎng)絡(luò)中的其他BIND的轉(zhuǎn)發(fā)器,使得其他DNS也能查找Internet域名。
BIND的forward轉(zhuǎn)發(fā)機(jī)制的這樣的:
當(dāng)設(shè)置了forwarders轉(zhuǎn)發(fā)器后,所有非本域的和在緩存中無(wú)法找到的域名查詢都將轉(zhuǎn)發(fā)到設(shè)置的DNS轉(zhuǎn)發(fā)器上,由這臺(tái)DNS來(lái)完成解析工作并做緩存,因此這臺(tái)轉(zhuǎn)發(fā)器的緩存中記錄了豐富的域名信息。因而對(duì)非本域的查詢,很可能轉(zhuǎn)發(fā)器就可以在緩存中找到答案,避免了再次向外部發(fā)送查詢,減少了流量。

轉(zhuǎn)發(fā)器的配置格式是:
options {
forwarders { 192.168.10.35; 192.168.10.36; };
};

這里需要注意的是:
轉(zhuǎn)發(fā)器本身不用做任何設(shè)置,而是對(duì)需要轉(zhuǎn)發(fā)器的其他DNS server做以上配置。還有,如果該DNS Server無(wú)法聯(lián)系到轉(zhuǎn)發(fā)器,那么BIND會(huì)自己嘗試解析。

如果要禁止BIND在無(wú)法聯(lián)系到轉(zhuǎn)發(fā)器時(shí)不做任何操作,那么還可以使用forward only命令,這樣BIND只能使用區(qū)的權(quán)威數(shù)據(jù)和緩存來(lái)響應(yīng)查詢了(在連接不到轉(zhuǎn)發(fā)器的情況下)。
options {
forwarders { 192.168.10.35; 192.168.10.36; };
forward only;
};

=======================================================================
在BIND8.2以后引入了一個(gè)新的特性:轉(zhuǎn)發(fā)區(qū)(forward zone),它允許把DNS配置成只有查找特定域名的時(shí)候才使用轉(zhuǎn)發(fā)器。( BIND 9從9.1.0才開始有轉(zhuǎn)發(fā)區(qū)功能 )例如,你可以使你的服務(wù)器將所有對(duì) kevin.cn 結(jié)尾的域名查詢都轉(zhuǎn)發(fā)給 kevin.cn 的兩臺(tái)名字服務(wù)器:
zone "kevin.cn" {
type forward;
forwarders { 110.50.80.208; 110.50.80.209; };
};

這樣的功能有什么用呢?
假設(shè)kevin.cn和你的網(wǎng)絡(luò)有一個(gè)私有的連接,而kevin.cn又沒有連接上Internet ,那么你從Internet 是無(wú)法查到 kevin.cn 后綴的域名的,這時(shí)你就要使用轉(zhuǎn)發(fā)區(qū)的功能了。

還有一種轉(zhuǎn)發(fā)區(qū)設(shè)置和剛才的設(shè)置剛好相反,它允許設(shè)置什么樣的查詢將不被轉(zhuǎn)發(fā),當(dāng)然這只適用于在options語(yǔ)句中指定了轉(zhuǎn)發(fā)器的DNS 。配置如下:
options {
directory "/var/named";
forwarders { 192.168.10.35; 192.168.10.36; };
};

zone "kevin.cn" {
type master;
file "zone.kevin.cn";
forwarders {};
};

這樣寫有人可能會(huì)問為什么要在自己的權(quán)威區(qū)里禁止轉(zhuǎn)發(fā)?難道不是自己回答查詢而不使用轉(zhuǎn)發(fā)器嗎?
這是因?yàn)橛羞@樣一種情況:在 kevin.cn這個(gè)區(qū)中,你授權(quán)了幾個(gè)子域,例如:zx.kevin.cn、lab.kevin.cn 等,那么在kevin.cn的權(quán)威服務(wù)器上設(shè)置轉(zhuǎn)發(fā)后,因?yàn)閷?duì) zx.kevin.cn、lab.kevin.cn 這幾個(gè)子域不是權(quán)威,那么如果有對(duì)www.zx.kevin.cn這樣的子域的域名查詢,服務(wù)器也將轉(zhuǎn)發(fā)。這完全是沒有必要的,因?yàn)榉?wù)器上就有zx.kevin.cn 子域的NS記錄,何須再轉(zhuǎn)發(fā)。

假設(shè)我的DNS服務(wù)器 192.168.1.10,在BIND中有這么一個(gè)配置
forward only;
forwarders {
192.168.1.12;
};

這里的192.168.1.10解析不了的,就會(huì)被轉(zhuǎn)發(fā)到192.168.1.12這就是DNS轉(zhuǎn)發(fā)器。
說(shuō)到這里就不得不說(shuō)下BIND的遞歸功能了。

=====================BIND遞歸查詢功能小結(jié)====================
默認(rèn) Resolver 發(fā)出的是遞歸查詢,而且默認(rèn) BIND name server 也處理所有的遞歸請(qǐng)求。

遞歸查詢的工作方式
遞歸查詢是最常見的查詢方式,域名服務(wù)器將代替提出請(qǐng)求的客戶機(jī)(下級(jí)DNS服務(wù)器)進(jìn)行域名查詢,若域名服務(wù)器不能直接回答,則域名服務(wù)器會(huì)在域各樹中的各分支的上下進(jìn)行遞歸查詢,最終將返回查詢結(jié)果給客戶機(jī),在域名服務(wù)器查詢期間,客戶機(jī)將完全處于等待狀態(tài)。
示例: (紅色為查詢,藍(lán)色為迭代查詢返回的提示信息,棕色為遞歸查詢返回的IP信息)

示例說(shuō)明:
A向B發(fā)送遞歸查詢請(qǐng)求,B向C發(fā)送迭代查詢請(qǐng)求,得到C給出的提示后,B向D發(fā)送迭代查詢請(qǐng)求,得到D給出的提示后,B向E發(fā)出迭代請(qǐng)求,得到E給出的提示后,B向F發(fā)出迭代查詢請(qǐng)求,得到F給出的提示后,B得到了F返回G的IP地址,B向A返回G的IP地址,整個(gè)查詢結(jié)束。

迭代查詢的工作方式
迭代查詢又稱重指引,當(dāng)服務(wù)器使用迭代查詢時(shí)能夠使其他服務(wù)器返回一個(gè)最佳的查詢點(diǎn)提示或主機(jī)地址,若此最佳的查詢點(diǎn)中包含需要查詢的主機(jī)地址,則返回主機(jī)地址信息,若此時(shí)服務(wù)器不能夠直接查詢到主機(jī)地址,則是按照提示的指引依次查詢,直到服務(wù)器給出的提示中包含所需要查詢的主機(jī)地址為止,一般的,每次指引都會(huì)更靠近根服務(wù)器(向上),查尋到根域名服務(wù)器后,則會(huì)再次根據(jù)提示向下查找。從上節(jié)的圖中可以知道,B訪問C、D、E、F、G,都是迭代查詢,首先B訪問C,得到了提示訪問D的提示信息后,開始訪問D,這時(shí)因?yàn)槭堑樵?,D又返回給B提示信息,告訴B應(yīng)該訪問E,依次類推。

說(shuō)明:假設(shè)你要尋找一家你從未去過的公司,你會(huì)有2種解決方案:
1)找一個(gè)人替你問路,那可能是你的助手
2)自己?jiǎn)柭罚孔哌^一個(gè)路口,就問一個(gè)人,這就好比遞歸查詢和迭代查詢,遞歸查詢?cè)谶@里代表你的第1種解決方案,而迭代則是第2種解決方案。

但某些情況下,服務(wù)器應(yīng)該被配置為不接受遞歸請(qǐng)求,例如根域服務(wù)器。根域服務(wù)器不接受遞歸請(qǐng)求的原因 :
1)因?yàn)楦蚍?wù)器太忙了,它們沒有精力來(lái)回答遞歸查詢。
2)接受遞歸請(qǐng)求將會(huì)建立緩存,如此根域服務(wù)器的緩存將會(huì)變得十分巨大

關(guān)于遞歸/非遞歸方面的配置語(yǔ)句有recursion no和 allow-recursion 語(yǔ)句,兩者都只能放在options或者view語(yǔ)句中;
recursion no只對(duì)外部域名有效,如果查詢的是本地zone域名(僅限于該 name server 上所定義的 zone,不包括下級(jí)子域)則可以回答。因?yàn)榻馕鐾獠坑蛎枰樵兺獠?name server ,這才是 recursion no 控制和關(guān)心的部分,如果查詢的是本地 zone 的數(shù)據(jù),當(dāng)然不需要擔(dān)心本地 name server 被誘導(dǎo),可以直接返回答案。

需要注意以下幾點(diǎn);
1)保證該非遞歸服務(wù)器不出現(xiàn)在客戶機(jī)的 /etc/resolv.conf 的
2)證該非遞歸服務(wù)器不被其他 name server 當(dāng)成轉(zhuǎn)發(fā)器 (forwarder)
3)推薦使用 allow-recursion 而不是 recursion
4)該非遞歸服務(wù)器可以出現(xiàn)在 zone data file 的 NS 記錄中。它可以正常的接收其他 name server 發(fā)來(lái)的查詢
5)外部 name server 是通過上級(jí)域的 Referral 消息找到該非遞歸服務(wù)器的
6)外部 name server 在得到上級(jí)域的 Referral 消息后,向該非遞歸服務(wù)器發(fā)送的查詢是 iterative query ,而不是 recusive query ,所以該非遞歸服務(wù)器仍然可以回答那些它所權(quán)威的 zone 的查詢。但不能用于查詢外部域名了。

============================BIND配置語(yǔ)法小結(jié)============================
下面羅列出/etc/named/named.conf 中使用的常用配置語(yǔ)句。named.conf 中使用的常用配置語(yǔ)句:

acl 定義訪問控制列表,參考 acl
controls 定義 rndc 命令使用的控制通道,若省略此句,則只允許經(jīng)過 rndc.key 認(rèn)證的 127.0.0.1 的 rndc 控制,參考 rndc
include 將其他文件包含到本配置文件當(dāng)中
key 定義用于 TSIG 的授權(quán)密鑰
logging 定義日志的記錄規(guī)范,參考 BIND 9 的高級(jí)配置 的 “BIND 日志部分”
lwres 將 named 同時(shí)配置成一個(gè)輕量級(jí)的解析器
options 定義全局配置選項(xiàng)
trusted-keys 為服務(wù)器定義 DNSSEC 加密密鑰
server 設(shè)置每個(gè)服務(wù)器的特有的選項(xiàng)
view 定義域名空間的一個(gè)視圖,參考 BIND 9 的高級(jí)配置 的 “View 語(yǔ)句部分”
zone 定義一個(gè)區(qū)聲明

下面對(duì)named.conf中常用的語(yǔ)句作進(jìn)一步的說(shuō)明。

include
include 語(yǔ)句的功能為:將指定的文件引入 named.conf 主配置文件。語(yǔ)法為:

include "path";
建議使用絕對(duì)路徑
若使用相對(duì)路徑,則相對(duì)于 directory 選項(xiàng)指定的目錄
options
options 用于定義全局配置選項(xiàng),語(yǔ)法為:

options {
配置子句;
配置子句;
};

下面列出一些常用的全局配置子句。

子句 說(shuō)明
directory “path” 定義服務(wù)器區(qū)數(shù)據(jù)庫(kù)文件的工作目錄,配置文件中所有使用的相對(duì)路徑,指的都是在這里配置的目錄下。Ubuntu 默認(rèn)為 /var/cache/bind
notify yes/no 若 named 是主服務(wù)器,當(dāng)區(qū)數(shù)據(jù)庫(kù)變化時(shí)將自動(dòng)通知相應(yīng)區(qū)的從服務(wù)器,默認(rèn)為 yes
recursion yes/no 是否使用遞歸式DNS服務(wù)器,默認(rèn)為 yes
transfer-format one-answer/many-anser 設(shè)置從主服務(wù)器向從服務(wù)器復(fù)制數(shù)據(jù)的方式,使用在主域名服務(wù)器上,是否允許在一條消息中放入多條應(yīng)答信息,默認(rèn)值為 many-answer
forwarders {IPaddrs} 設(shè)置全局轉(zhuǎn)發(fā)器,列出要用作轉(zhuǎn)發(fā)器的服務(wù)器 IP 地址
forward only/first 若值為 only,則服務(wù)器緩存數(shù)據(jù)并查詢轉(zhuǎn)發(fā)器,但從不查詢其他的任何服務(wù)器,若轉(zhuǎn)發(fā)器不能響應(yīng)查詢則查詢失?。蝗糁禐?first,則在轉(zhuǎn)發(fā)查詢失敗或沒有查到結(jié)果時(shí),會(huì)在本地發(fā)起正常查詢。默認(rèn)為 first

zone 區(qū)聲明是配置文件中最重要的部分。Zone 語(yǔ)句的格式為:
zone "zone-name" IN {
type 子句;
file 子句;
其他子句;
};

下面列出一些常用的 zone 配置子句。

子句 說(shuō)明
type master/slave/hint/forward 說(shuō)明一個(gè)區(qū)的類型。master:說(shuō)明一個(gè)區(qū)為主域名服務(wù)器;slave說(shuō)明一個(gè)區(qū)為輔助域名服務(wù)器;hint:說(shuō)明一個(gè)區(qū)為根服務(wù)器的線索;forward:說(shuō)明一個(gè)區(qū)為轉(zhuǎn)發(fā)區(qū)
file “filename” 說(shuō)明一個(gè)區(qū)的域信息源數(shù)據(jù)庫(kù)信息文件名

DNS 數(shù)據(jù)庫(kù)
一個(gè)域的 DNS 數(shù)據(jù)庫(kù)是由這個(gè)域的主域名服務(wù)器的管理員所維護(hù)的文本文件的集合。這些文件經(jīng)常被稱為區(qū)文件,區(qū)文件定義了一個(gè)區(qū)的域名信息。Ubuntu 默認(rèn)將區(qū)文件存放在 /var/cache/bind 目錄下。

每個(gè)區(qū)文件都是由若干個(gè)資源記錄(RR,resource records)和分析器指令所組成。

資源記錄簡(jiǎn)介
標(biāo)準(zhǔn)資源記錄的基本格式是:
[name] [ttl] [class] type data

各個(gè)字段之間由空格或制表符分隔,字段可以包含如下的特殊字符:
; — 引出注釋
@ — 表示當(dāng)前域
() — 允許數(shù)據(jù)跨行,通常用于 SOA 記錄
* — 僅用于 name 字段的通配符

name 字段
name 字段說(shuō)明資源記錄引用的對(duì)象名,可以是一臺(tái)單獨(dú)的主機(jī)也可以是個(gè)域名。
對(duì)象名可以是相對(duì)域名或全域名,全域名應(yīng)該以“.”結(jié)束
若幾條連續(xù)的 RR 記錄涉及同一個(gè)對(duì)象名,則第一條 RR 記錄后的 RR 記錄可以省略對(duì)象名
若出現(xiàn)字段名字段,則必須出現(xiàn)在第一個(gè)字段
關(guān)于相對(duì)域名和全域名:舉例來(lái)說(shuō),在 ubuntu.org.cn 域中,相對(duì)域名 osmond 與全域名 osmond.ubuntu.org.cn. 等效;而 osmond.ubuntu.org.cn 由于沒有以“.”結(jié)尾,被認(rèn)為是一個(gè)相對(duì)域名,與其等效的全域名為 osmond.ubuntu.org.cn.ubuntu.org.cn.。因此在書寫對(duì)象名時(shí)要特別小心。

ttl 字段
ttl(time to live) 字段是一個(gè)壽命字段。它以秒為單位定義該資源記錄中的信息存放在高速緩存中的時(shí)間長(zhǎng)度。通常省略該字段,而使用位于文件開始處的 $TTL 語(yǔ)句所指定值。

class 字段
class 字段用于指定網(wǎng)絡(luò)類型,可選的值有:IN、CH 和 HS,其中 IN (Internet)是廣泛使用的一種。雖然 IN 是該字段的默認(rèn)值,但通常我們會(huì)顯示地指出。

type 字段
type 字段用于說(shuō)明 RR 的類型。常用的 RR 類型如下:

關(guān)于RR 的書寫順序
SOA RR 應(yīng)該放在最前面
通常 NS RR 緊跟在 SOA RR 之后
其他記錄的順序無(wú)關(guān)緊要

data 字段
data 字段的內(nèi)容取決于 RR 的類型字段。

常用的資源記錄
SOA 資源記錄
SOA RR 用于標(biāo)示一個(gè)區(qū)的開始,其格式如下:

zone IN SOA Hostname Contact (
SerialNumber
Refresh
Retry
Expire
Minimum )

SOA 記錄的數(shù)據(jù)說(shuō)明
Hostname
存放本 Zone 的域名服務(wù)器的主機(jī)名
Contact
管理域的管理員的郵件地址
SerialNumber
本區(qū)配置數(shù)據(jù)的序列號(hào),用于從服務(wù)器判斷何時(shí)獲取最新的區(qū)數(shù)據(jù)
Refresh
輔助域名服務(wù)器多長(zhǎng)時(shí)間更新數(shù)據(jù)庫(kù)
Retry
若輔助域名服務(wù)器更新數(shù)據(jù)失敗,多長(zhǎng)時(shí)間再試
Expire
若輔助域名服務(wù)器無(wú)法從主服務(wù)器上更新數(shù)據(jù),原有的數(shù)據(jù)何時(shí)失效
Minimum
設(shè)置被緩存的否定回答的存活時(shí)間

如下示例:

kevin.cn.     IN      SOA   wang.kevin.cn.  root.wang.kevin.cn. (
                              2006063000       ;序列號(hào)
                              3H               ;3小時(shí)后刷新
                              15M              ;15分鐘后重試
                              1W               ;1星期后過期
                              1D )             ;否定緩存TTL為1天

對(duì) Contact 來(lái)說(shuō),因?yàn)?ldquo;@”在文件中有特殊含義,所以郵件地址 root@wang.kevin.cn 寫為 root.wang.kevin.cn.
對(duì) SerialNumber 來(lái)說(shuō),它可以是 32 位的任何整數(shù),每當(dāng)更新區(qū)文件時(shí)都應(yīng)該增加此序列號(hào)的值,否則 named 將不會(huì)把區(qū)的更新數(shù)據(jù)傳送到從服務(wù)器
緩存時(shí)間字段 Refresh、Retry、Expire、Minimum 可以使用時(shí)間單位字符 m、h、d、w 分別表示分鐘、小時(shí)、天、星期。
各個(gè)緩存時(shí)間字段的經(jīng)驗(yàn)值為:
Refresh — 1 到 6 小時(shí)
Retry — 20 到 60 分鐘
Expire — 1 周 到 1 月
Minimum — 1 到 3 小時(shí)
Minimum 設(shè)置被緩存的否定回答的存活時(shí)間,而肯定回答(即真實(shí)記錄)的默認(rèn)值是在區(qū)文件開始處用 $TTL 語(yǔ)句設(shè)置的。

NS 資源記錄
NS RR 用于標(biāo)識(shí)一個(gè)區(qū)的權(quán)威服務(wù)器(包括主服務(wù)器和從服務(wù)器),并將子域授權(quán)賦予其他服務(wù)器,其格式如下:
zone [ttl] IN NS hostname

示例如下:

kevin.cn.          IN    NS    wang.kevin.cn.             #指定 kevin.cn. 的主服務(wù)器
kevin.cn.          IN    NS    dapper.kevin.cn.           #指定 kevin.cn. 的從服務(wù)器
osmond.kevin.cn.   IN    NS    ubuntu.osmond.kevin.cn.    #指定委派域 osmond.kevin.cn. 的主服務(wù)器
osmond.kevin.cn.   IN    NS    dapper.osmond.kevin.cn.    #指定委派域 osmond.kevin.cn. 的從服務(wù)器

若上面的記錄緊跟在 SOA 記錄后,也可以寫成如下的形式:

IN    NS    wang.kevin.cn.                    #指定 kevin.cn. 的主服務(wù)器
          IN    NS    dapper.kevin.cn.        #指定 kevin.cn. 的從服務(wù)器
osmond    IN    NS    ubuntu.osmond.kevin.cn. #指定委派域 osmond.kevin.cn. 的主服務(wù)器
osmond    IN    NS    dapper.osmond.kevin.cn. #指定委派域 osmond.kevin.cn. 的從服務(wù)器

A 資源記錄
A RR 是 DNS 數(shù)據(jù)庫(kù)的核心,它提供了主機(jī)名到 IP 地址的映射。其格式為:
hostname [ttl] IN A IPAddress

對(duì)于 kevin.cn 區(qū)來(lái)說(shuō), 如下示例:

wang            IN    A      192.168.0.251
dapper          IN    A      192.168.0.252
wang.osmond     IN    A      192.168.1.251
dapper.osmond   IN    A      192.168.1.252

也可以寫成如下的形式

wang.kevin.cn.            IN    A      192.168.0.251
dapper.kevin.cn.          IN    A      192.168.0.252
wang.osmond.kevin.cn.     IN    A      192.168.1.251
dapper.osmond.kevin.cn.   IN    A      192.168.1.252

對(duì)于有多個(gè)網(wǎng)絡(luò)接口的計(jì)算機(jī)來(lái)說(shuō),可以使用多條 A RR 分別設(shè)置每個(gè)網(wǎng)絡(luò)接口上的主機(jī)名與 IP 地址的映射。當(dāng)然多個(gè) IP 地址也可以關(guān)聯(lián)同一個(gè)主機(jī)名。類似地,也可以使用多條 PTR RR 分別設(shè)置每個(gè)網(wǎng)絡(luò)接口上的 IP 地址與主機(jī)名的映射。

PTR 資源記錄
PTR RR 提供了 IP 地址到主機(jī)名的映射。其格式為:
IPAddress [ttl] IN PTR hostname

例如: 在 168.192.in-addr.arpa 區(qū)中,前面的 wang.kevin.cn. 和 dapper.kevin.cn. 所對(duì)應(yīng)的 PTR 記錄為:

251.0          IN    PTR      wang.kevin.cn.
252.0          IN    PTR      dapper.kevin.cn.

而在 0.168.192.in-addr.arpa 區(qū)中,前面的 wang.kevin.cn. 和 dapper.kevin.cn. 所對(duì)應(yīng)的 PTR 記錄為:

251          IN    PTR      wang.kevin.cn.
252          IN    PTR      dapper.kevin.cn.

在 1.168.192.in-addr.arpa 區(qū)中,前面的 wang.osmond.kevin.cn. 和 dapper.osmond.kevin.cn. 所對(duì)應(yīng)的 PTR 記錄為:

251          IN    PTR      wang.osmond.kevin.cn.
252          IN    PTR      dapper.osmond.kevin.cn.

在 PTR RR 中 hostname 應(yīng)該使用全域名。例如 osmond.kevin.cn 域的主機(jī) wang 應(yīng)該寫為 wang.osmond.kevin.cn. 。而 wang.osmond.kevin.cn 將被解析為 wang.osmond.kevin.cn.1.168.192.in-addr.arpa. 。
PTR RR 所提供的反向解析能夠?yàn)槿魏螌?duì)進(jìn)入網(wǎng)絡(luò)的請(qǐng)求進(jìn)行認(rèn)證的程序所使用,這些程序包括:sshd、tcpd、sendmail、syslogd 等。

MX 資源記錄
MX RR 用于郵件系統(tǒng)實(shí)現(xiàn)郵件路由 。 其格式為:
zone [ttl] IN MX preference host

其中 preference 是優(yōu)先級(jí)字段,數(shù)值越小優(yōu)先級(jí)越高。
示例如下:

kevin.cn.          IN    MX     5     wang.kevin.cn.
kevin.cn.          IN    MX     10    wang.kevin.cn.

CNAME 資源記錄
CNAME RR 用于設(shè)置主機(jī)的別名。 其格式為:
nikename [ttl] IN CNAME hostname

示例如下:

wang            IN    A      192.168.0.251
www             IN    CNAME  wang
ftp             IN    CNAME  wang

文件內(nèi)必須有規(guī)范名字的 A RR。

分析器指令
在區(qū)文件中還可以使用分析器指令,分析器指令可以為 RR 的輸入提供方便。

$ORIGIN — 設(shè)置默認(rèn)域(或初始域)
$TTL — 為沒有定義精確的生存期的 RR 定義缺省的 TTL 值

遇到過一個(gè)DNS的forwarders轉(zhuǎn)發(fā)設(shè)置的問題

IDC機(jī)房服務(wù)器上部署了內(nèi)網(wǎng)DNS環(huán)境, 線上各服務(wù)器的/etc/resolv.conf文件里均配置了該DNS地址. 后來(lái)在其中過的一臺(tái)服務(wù)器上去wget下載一個(gè)客戶方的地址, 有時(shí)好有時(shí)壞, 由于該客戶方的這個(gè)url里的域名采用了CDN加速, 所以在機(jī)房的這臺(tái)服務(wù)器上"nslookup 該域名" 解析這個(gè)客戶方的域名的ip是隨時(shí)變的 (即解析到的都是CDN那邊的地址池里的地址), 有時(shí)會(huì)解析不到這個(gè)域名的地址. 這是為什么呢?

發(fā)現(xiàn)是因?yàn)樵摍C(jī)房DNS配置 (/etc/named/named.conf)里的forwarders轉(zhuǎn)發(fā)到的NS服務(wù)器地址問題導(dǎo)致的. 因?yàn)橹芭渲玫膄orwarders是:

      forwarders {
            223.5.5.5;
            223.6.6.6;
            8.8.8.8;
            8.8.4.4;
          };

即之前通過forwarders轉(zhuǎn)發(fā)的NS地址是阿里云和谷歌的DNS地址. 后來(lái)又加上聯(lián)通的DNS地址并放在了前面 (這幾個(gè)DNS地址在forwarders轉(zhuǎn)發(fā)時(shí)是輪詢關(guān)系)就解決了上面問題:

      forwarders {
            114.114.114.114;
            202.106.0.20;
            223.5.5.5;
            223.6.6.6;
            8.8.8.8;
            8.8.4.4;
          };

如上添加后, 在機(jī)房的那臺(tái)服務(wù)器上通過"nslookup 客戶域名" 解析出來(lái)的ip地址相比于之前更多了.

總結(jié)

以上是生活随笔為你收集整理的DNS之BIND使用小结(Forward转发)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。