[tool]BIND 9 配置語(yǔ)法簡(jiǎn)介
BIND 9 配置語(yǔ)法簡(jiǎn)介 /etc/bind/named.conf下面列出 /etc/bind/named.conf 中使用的常用配置語(yǔ)句。 named.conf 中使用的常用配置語(yǔ)句aclcon
BIND 9 配置語(yǔ)法簡(jiǎn)介 /etc/bind/named.conf
下面列出 /etc/bind/named.conf 中使用的常用配置語(yǔ)句。 named.conf 中使用的常用配置語(yǔ)句
acl
controls
include
key
logging
lwres
options 定義訪問控制列表,參考 定義 rndc 命令使用的控制通道,若省略此句,則只允許經(jīng)過 rndc.key 認(rèn)證的 127.0.0.1 的 rndc 控制,參考 將其他文件包含到本配置文件當(dāng)中 定義用于 TSIG 的授權(quán)密鑰 定義日志的記錄規(guī)范,參考 的 “BIND 日志部分” 將 named 同時(shí)配置成一個(gè)輕量級(jí)的解析器 定義全局配置選項(xiàng)
DNSSEC 加密密鑰 trusted-keys 為服務(wù)器定義
server
view
zone 設(shè)置每個(gè)服務(wù)器的特有的選項(xiàng) 定義域名空間的一個(gè)視圖,參考 BIND 9 的高級(jí)配置 的 “View 語(yǔ)句部分” 定義一個(gè)區(qū)聲明
? Ubuntu 將 options 語(yǔ)句分離放置于 /etc/bind/named.conf.options 文件中。 ? Ubuntu 將本機(jī)解析的權(quán)威區(qū)的聲明語(yǔ)句 zone 放置于 /etc/bind/named.conf.local 文件中。
此文件可以使用三種風(fēng)格的注釋:
? /* C 語(yǔ)言風(fēng)格的注釋 */
? // C 語(yǔ)言風(fēng)格的注釋
? # Shell 語(yǔ)言風(fēng)格的注釋
下面對(duì)常用的語(yǔ)句作進(jìn)一步的說明。
include
include 語(yǔ)句的功能為:將指定的文件引入 named.conf 主配置文件。語(yǔ)法為: include "path";
? 建議使用絕對(duì)路徑
,若使用相對(duì)路徑,則相對(duì)于 directory 選項(xiàng)指定的目錄
options
options 用于定義全局配置選項(xiàng),語(yǔ)法為:
options {
配置子句;
配置子句;
};
下面列出一些常用的全局配置子句。
子句
directo ry “path” 說明 定義服務(wù)器區(qū)數(shù)據(jù)庫(kù)文件的工作目錄,配置文件中所有使用的相對(duì)路徑,
指的都是在這里配置的目錄下。Ubuntu 默認(rèn)為 /var/cache/bind 若 named 是主服務(wù)器,當(dāng)區(qū)數(shù)據(jù)庫(kù)變化時(shí)將自動(dòng)通知相應(yīng)區(qū)的從服務(wù)器,默認(rèn)為 yes
是否使用遞歸式 DNS 服務(wù)器,默認(rèn)為 yes
設(shè)置從主服務(wù)器向從服務(wù)器復(fù)制數(shù)據(jù)的方式,使用在主域名服務(wù)器上,是否允許在一條消息中放入多條應(yīng)答信息,默認(rèn)值為 many-answer 設(shè)置全局轉(zhuǎn)發(fā)器,列出要用作轉(zhuǎn)發(fā)器的服務(wù)器 IP 地址
若值為 only ,則服務(wù)器緩存數(shù)據(jù)并查詢轉(zhuǎn)發(fā)器,但從不查詢其他的任何notify yes/no recursion yes/no transfer-format one-answer/many-anser forwarders {IPaddrs}
forward only/first 服務(wù)器,若轉(zhuǎn)發(fā)器不能響應(yīng)查詢則查詢失?。蝗糁禐?first ,則在轉(zhuǎn)發(fā)查
詢失敗或沒有查到結(jié)果時(shí),會(huì)在本地發(fā)起正常查詢。默認(rèn)為 first
zone
zone 區(qū)聲明是配置文件中最重要的部分。Zone 語(yǔ)句的格式為: zone “zone-name” IN {
type 子句;
file 子句;
其他子句;
};
下面列出一些常用的 zone 配置子句。
子句
type 說明 說明一個(gè)區(qū)的類型。master :說明一個(gè)區(qū)為主域名服務(wù)器;slave 說明master/slave/hint/forward 一個(gè)區(qū)為輔助域名服務(wù)器;hint :說明一個(gè)區(qū)為根服務(wù)器的線索;
,forward :說明一個(gè)區(qū)為轉(zhuǎn)發(fā)區(qū)
file “filename” 說明一個(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 字段說明資源記錄引用的對(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)說,在 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 字段用于說明 RR 的類型。常用的 RR 類型如下:
類型 說明
SOA 記錄標(biāo)示一個(gè)授權(quán)區(qū)定義的開始。SOA 記錄后的所有信息是控
制這個(gè)區(qū)的
標(biāo)識(shí)區(qū)的域名服務(wù)器以及授權(quán)子域
用于將主機(jī)名轉(zhuǎn)換為 IP 地址,任何一個(gè)主機(jī)都只能有一個(gè) A 記錄
將地址轉(zhuǎn)換為主機(jī)名 SOA (Start Of 區(qū)記錄 Authority) 基本記錄
安全記
錄
NS (Name Server) A (Address) PTR (PoinTeR) MX (Mail eXchanger) 郵件交換記錄??刂凄]件的路由 KEY (Public Key) NXT (Next) SIG (Signatrue) 儲(chǔ)存一個(gè)關(guān)于DNS 名稱的公鑰 與 DNSSEC 一起使用,用于指出一個(gè)特定名稱不在域中 指出帶簽名和身份認(rèn)證的區(qū)信息,細(xì)節(jié)見
給定主機(jī)的別名,主機(jī)的規(guī)范名在A 記錄中給出
指出知名網(wǎng)絡(luò)服務(wù)的信息
注釋或非關(guān)鍵的信息 可選記CNAME (Canonical 錄 NAME) SRV (Services) TXT (Text)
關(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ù)說明
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í)間
例如:
jamond.net. IN SOA ubuntu.jamond.net.
root.ubuntu.jamond.net. (
2006063000 ;序列號(hào)
3H ;3小時(shí)后刷新 15M ;15分鐘后重試 1W ;1星期后過期
1D ) ;否定緩存TTL 為1天
? 對(duì) Contact 來(lái)說,因?yàn)椤癅”在文件中有特殊含義,所以郵件地址 root@ubuntu.jamond.net 寫為 root.ubuntu.jamond.net.
? 對(duì) SerialNumber 來(lái)說,它可以是 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)值為
o R efresh — 1 到 6 小時(shí)
o R etry — 20 到 60 分鐘
o E xpire — 1 周 到 1 月
o M inimum — 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
例如:
jamond.net. IN NS ubuntu.jamond.net. ;指定 jamond.net. 的主服務(wù)器
jamond.net. IN NS dapper.jamond.net. ;指定 jamond.net. 的從服務(wù)器
osmond.jamond.net. IN NS ubuntu.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的主服務(wù)器
osmond.jamond.net. IN NS dapper.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的從服務(wù)器
若上面的記錄緊跟在 SOA 記錄后,也可以寫成如下的形式:
IN NS ubuntu.jamond.net. ;指定 jamond.net. 的主服務(wù)器
IN NS dapper.jamond.net. ;指定 jamond.net. 的從服務(wù)器
osmond IN NS ubuntu.osmond.jamond.net. ;指定委派域
osmond.jamond.net. 的主服務(wù)器
osmond IN NS dapper.osmond.jamond.net. ;指定委派域
osmond.jamond.net. 的從服務(wù)器
A 資源記錄
A RR 是 DNS 數(shù)據(jù)庫(kù)的核心,它提供了主機(jī)名到 IP 地址的映射。其格式為:
hostname [ttl] IN A IPAddress
對(duì)于 jamond.net 區(qū)來(lái)說, 例如:
ubuntu IN A 192.168.0.251
dapper IN A 192.168.0.252
ubuntu.osmond IN A 192.168.1.251
dapper.osmond IN A 192.168.1.252
也可以寫成如下的形式
,ubuntu.jamond.net. IN A 192.168.0.251
dapper.jamond.net. IN A 192.168.0.252
ubuntu.osmond.jamond.net. IN A 192.168.1.251
dapper.osmond.jamond.net. IN A 192.168.1.252
對(duì)于有多個(gè)網(wǎng)絡(luò)接口的計(jì)算機(jī)來(lái)說,可以使用多條 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ū)中,前面的 ubuntu.jamond.net. 和 dapper.jamond.net. 所對(duì)應(yīng)的 PTR 記錄為
251.0 IN PTR ubuntu.jamond.net.
252.0 IN PTR dapper.jamond.net.
而在 0.168.192.in-addr.arpa 區(qū)中,前面的 ubuntu.jamond.net. 和 dapper.jamond.net. 所對(duì)應(yīng)的 PTR 記錄為
251 IN PTR ubuntu.jamond.net.
252 IN PTR dapper.jamond.net.
在 1.168.192.in-addr.arpa 區(qū)中,前面的 ubuntu.osmond.jamond.net. 和
dapper.osmond.jamond.net. 所對(duì)應(yīng)的 PTR 記錄為
251 IN PTR ubuntu.osmond.jamond.net.
252 IN PTR dapper.osmond.jamond.net.
? 在 PTR RR 中 hostname 應(yīng)該使用全域名。例如 osmond.jamond.net 域的主機(jī) ubuntu 應(yīng)該寫為 ubuntu.osmond.jamond.net. 。而 ubuntu.osmond.jamond.net 將被解析為 ubuntu.osmond.jamond.net.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)郵件路由。有關(guān)電子郵件的更多介紹請(qǐng)參見 。 其格式為: zone [ttl] IN MX preference host
其中 preference 是優(yōu)先級(jí)字段,數(shù)值越小優(yōu)先級(jí)越高。
,例如:
jamond.net. IN MX 5 ubuntu.jamond.net. jamond.net. IN MX 10 ubuntu.jamond.net. CNAME 資源記錄
CNAME RR 用于設(shè)置主機(jī)的別名。 其格式為:
nikename [ttl] IN CNAME hostname
例如:
ubuntu IN A 192.168.0.251
www IN CNAME ubuntu
ftp IN CNAME ubuntu
文件內(nèi)必須有規(guī)范名字的 A RR。
分析器指令
在區(qū)文件中還可以使用分析器指令,分析器指令可以為 RR 的輸入提供方便。
? $ORIGIN — 設(shè)置默認(rèn)域(或初始域)
? $TTL — 為沒有定義精確的生存期的 RR 定義缺省的 TTL 值