[tool]BIND 9 配置語法簡介
BIND 9 配置語法簡介 /etc/bind/named.conf下面列出 /etc/bind/named.conf 中使用的常用配置語句。 named.conf 中使用的常用配置語句aclcon
BIND 9 配置語法簡介 /etc/bind/named.conf
下面列出 /etc/bind/named.conf 中使用的常用配置語句。 named.conf 中使用的常用配置語句
acl
controls
include
key
logging
lwres
options 定義訪問控制列表,參考 定義 rndc 命令使用的控制通道,若省略此句,則只允許經過 rndc.key 認證的 127.0.0.1 的 rndc 控制,參考 將其他文件包含到本配置文件當中 定義用于 TSIG 的授權密鑰 定義日志的記錄規(guī)范,參考 的 “BIND 日志部分” 將 named 同時配置成一個輕量級的解析器 定義全局配置選項
DNSSEC 加密密鑰 trusted-keys 為服務器定義
server
view
zone 設置每個服務器的特有的選項 定義域名空間的一個視圖,參考 BIND 9 的高級配置 的 “View 語句部分” 定義一個區(qū)聲明
? Ubuntu 將 options 語句分離放置于 /etc/bind/named.conf.options 文件中。 ? Ubuntu 將本機解析的權威區(qū)的聲明語句 zone 放置于 /etc/bind/named.conf.local 文件中。
此文件可以使用三種風格的注釋:
? /* C 語言風格的注釋 */
? // C 語言風格的注釋
? # Shell 語言風格的注釋
下面對常用的語句作進一步的說明。
include
include 語句的功能為:將指定的文件引入 named.conf 主配置文件。語法為: include "path";
? 建議使用絕對路徑
,若使用相對路徑,則相對于 directory 選項指定的目錄
options
options 用于定義全局配置選項,語法為:
options {
配置子句;
配置子句;
};
下面列出一些常用的全局配置子句。
子句
directo ry “path” 說明 定義服務器區(qū)數據庫文件的工作目錄,配置文件中所有使用的相對路徑,
指的都是在這里配置的目錄下。Ubuntu 默認為 /var/cache/bind 若 named 是主服務器,當區(qū)數據庫變化時將自動通知相應區(qū)的從服務器,默認為 yes
是否使用遞歸式 DNS 服務器,默認為 yes
設置從主服務器向從服務器復制數據的方式,使用在主域名服務器上,是否允許在一條消息中放入多條應答信息,默認值為 many-answer 設置全局轉發(fā)器,列出要用作轉發(fā)器的服務器 IP 地址
若值為 only ,則服務器緩存數據并查詢轉發(fā)器,但從不查詢其他的任何notify yes/no recursion yes/no transfer-format one-answer/many-anser forwarders {IPaddrs}
forward only/first 服務器,若轉發(fā)器不能響應查詢則查詢失??;若值為 first ,則在轉發(fā)查
詢失敗或沒有查到結果時,會在本地發(fā)起正常查詢。默認為 first
zone
zone 區(qū)聲明是配置文件中最重要的部分。Zone 語句的格式為: zone “zone-name” IN {
type 子句;
file 子句;
其他子句;
};
下面列出一些常用的 zone 配置子句。
子句
type 說明 說明一個區(qū)的類型。master :說明一個區(qū)為主域名服務器;slave 說明master/slave/hint/forward 一個區(qū)為輔助域名服務器;hint :說明一個區(qū)為根服務器的線索;
,forward :說明一個區(qū)為轉發(fā)區(qū)
file “filename” 說明一個區(qū)的域信息源數據庫信息文件名
DNS 數據庫
一個域的 DNS 數據庫是由這個域的主域名服務器的管理員所維護的文本文件的集合。這些文件經常被稱為區(qū)文件,區(qū)文件定義了一個區(qū)的域名信息。Ubuntu 默認將區(qū)文件存放在 /var/cache/bind 目錄下。
每個區(qū)文件都是由若干個資源記錄(RR ,resource records)和分析器指令所組成。
資源記錄簡介
標準資源記錄的基本格式是:
[name] [ttl] [class] type data 各個字段之間由空格或制表符分隔,字段可以包含如下的特殊字符:
? ; — 引出注釋
? @ — 表示當前域
? () — 允許數據跨行,通常用于 SOA 記錄
? * — 僅用于 name 字段的通配符
name 字段
name 字段說明資源記錄引用的對象名,可以是一臺單獨的主機也可以是個域名。
? 對象名可以是相對域名或全域名,全域名應該以“.”結束
? 若幾條連續(xù)的 RR 記錄涉及同一個對象名,則第一條 RR 記錄后的 RR 記錄可以省略對象名 ? 若出現字段名字段,則必須出現在第一個字段
關于相對域名和全域名:
舉例來說,在 ubuntu.org.cn 域中,相對域名 osmond 與全域名 osmond.ubuntu.org.cn . 等效;而 osmond.ubuntu.org.cn 由于沒有以“. ”結尾,被認為是一個相對域名,與其等效的全域名為 osmond.ubuntu.org.cn.ubuntu.org.cn . 。因此在書寫對象名時要特別小心。
ttl 字段
ttl(time to live) 字段是一個壽命字段。它以秒為單位定義該資源記錄中的信息存放在高速緩存中的時間長度。通常省略該字段,而使用位于文件開始處的 $TTL 語句所指定值。
,class 字段
class 字段用于指定網絡類型,可選的值有:IN 、CH 和 HS ,其中 IN (Internet )是廣泛使用的一種。雖然 IN 是該字段的默認值,但通常我們會顯示地指出。
type 字段
type 字段用于說明 RR 的類型。常用的 RR 類型如下:
類型 說明
SOA 記錄標示一個授權區(qū)定義的開始。SOA 記錄后的所有信息是控
制這個區(qū)的
標識區(qū)的域名服務器以及授權子域
用于將主機名轉換為 IP 地址,任何一個主機都只能有一個 A 記錄
將地址轉換為主機名 SOA (Start Of 區(qū)記錄 Authority) 基本記錄
安全記
錄
NS (Name Server) A (Address) PTR (PoinTeR) MX (Mail eXchanger) 郵件交換記錄。控制郵件的路由 KEY (Public Key) NXT (Next) SIG (Signatrue) 儲存一個關于DNS 名稱的公鑰 與 DNSSEC 一起使用,用于指出一個特定名稱不在域中 指出帶簽名和身份認證的區(qū)信息,細節(jié)見
給定主機的別名,主機的規(guī)范名在A 記錄中給出
指出知名網絡服務的信息
注釋或非關鍵的信息 可選記CNAME (Canonical 錄 NAME) SRV (Services) TXT (Text)
關于RR 的書寫順序
? SOA RR 應該放在最前面
? 通常 NS RR 緊跟在 SOA RR 之后
? 其他記錄的順序無關緊要
data 字段
data 字段的內容取決于 RR 的類型字段。
常用的資源記錄
SOA 資源記錄
SOA RR 用于標示一個區(qū)的開始,其格式如下:
,zone IN SOA Hostname Contact (
SerialNumber
Refresh
Retry
Expire
Minimum )
SOA 記錄的數據說明
Hostname
存放本 Zone 的域名服務器的主機名
Contact
管理域的管理員的郵件地址
SerialNumber
本區(qū)配置數據的序列號,用于從服務器判斷何時獲取最新的區(qū)數據
Refresh
輔助域名服務器多長時間更新數據庫
Retry
若輔助域名服務器更新數據失敗,多長時間再試
Expire
若輔助域名服務器無法從主服務器上更新數據,原有的數據何時失效
Minimum
設置被緩存的否定回答的存活時間
例如:
jamond.net. IN SOA ubuntu.jamond.net.
root.ubuntu.jamond.net. (
2006063000 ;序列號
3H ;3小時后刷新 15M ;15分鐘后重試 1W ;1星期后過期
1D ) ;否定緩存TTL 為1天
? 對 Contact 來說,因為“@”在文件中有特殊含義,所以郵件地址 root@ubuntu.jamond.net 寫為 root.ubuntu.jamond.net.
? 對 SerialNumber 來說,它可以是 32 位的任何整數,每當更新區(qū)文件時都應該增加此序列號的值,否則 named 將不會把區(qū)的更新數據傳送到從服務器
? 緩存時間字段 Refresh 、Retry 、Expire 、Minimum 可以使用時間單位字符 m 、h 、d 、w 分別表示分鐘、小時、天、星期。
? 各個緩存時間字段的經驗值為
o R efresh — 1 到 6 小時
o R etry — 20 到 60 分鐘
o E xpire — 1 周 到 1 月
o M inimum — 1 到 3 小時
,Minimum 設置被緩存的否定回答的存活時間,而肯定回答(即真實記錄)的默認值是在區(qū)文件
開始處用 $TTL 語句設置的。
NS 資源記錄
NS RR 用于標識一個區(qū)的權威服務器(包括主服務器和從服務器),并將子域授權賦予其他服務器,其格式如下:
zone [ttl] IN NS hostname
例如:
jamond.net. IN NS ubuntu.jamond.net. ;指定 jamond.net. 的主服務器
jamond.net. IN NS dapper.jamond.net. ;指定 jamond.net. 的從服務器
osmond.jamond.net. IN NS ubuntu.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的主服務器
osmond.jamond.net. IN NS dapper.osmond.jamond.net. ;指定委派域 osmond.jamond.net. 的從服務器
若上面的記錄緊跟在 SOA 記錄后,也可以寫成如下的形式:
IN NS ubuntu.jamond.net. ;指定 jamond.net. 的主服務器
IN NS dapper.jamond.net. ;指定 jamond.net. 的從服務器
osmond IN NS ubuntu.osmond.jamond.net. ;指定委派域
osmond.jamond.net. 的主服務器
osmond IN NS dapper.osmond.jamond.net. ;指定委派域
osmond.jamond.net. 的從服務器
A 資源記錄
A RR 是 DNS 數據庫的核心,它提供了主機名到 IP 地址的映射。其格式為:
hostname [ttl] IN A IPAddress
對于 jamond.net 區(qū)來說, 例如:
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
對于有多個網絡接口的計算機來說,可以使用多條 A RR 分別設置每個網絡接口上的主機名與 IP 地址的映射。當然多個 IP 地址也可以關聯(lián)同一個主機名。類似地,也可以使用多條 PTR RR 分別設置每個網絡接口上的 IP 地址與主機名的映射。
PTR 資源記錄
PTR RR 提供了 IP 地址到主機名的映射。其格式為:
IPAddress [ttl] IN PTR hostname
例如: 在 168.192.in-addr.arpa 區(qū)中,前面的 ubuntu.jamond.net. 和 dapper.jamond.net. 所對應的 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. 所對應的 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. 所對應的 PTR 記錄為
251 IN PTR ubuntu.osmond.jamond.net.
252 IN PTR dapper.osmond.jamond.net.
? 在 PTR RR 中 hostname 應該使用全域名。例如 osmond.jamond.net 域的主機 ubuntu 應該寫為 ubuntu.osmond.jamond.net. 。而 ubuntu.osmond.jamond.net 將被解析為 ubuntu.osmond.jamond.net.1.168.192.in-addr.arpa. 。
? PTR RR 所提供的反向解析能夠為任何對進入網絡的請求進行認證的程序所使用,這些程序包括:sshd 、tcpd 、sendmail 、syslogd 等。
MX 資源記錄
MX RR 用于郵件系統(tǒng)實現郵件路由。有關電子郵件的更多介紹請參見 。 其格式為: zone [ttl] IN MX preference host
其中 preference 是優(yōu)先級字段,數值越小優(yōu)先級越高。
,例如:
jamond.net. IN MX 5 ubuntu.jamond.net. jamond.net. IN MX 10 ubuntu.jamond.net. CNAME 資源記錄
CNAME RR 用于設置主機的別名。 其格式為:
nikename [ttl] IN CNAME hostname
例如:
ubuntu IN A 192.168.0.251
www IN CNAME ubuntu
ftp IN CNAME ubuntu
文件內必須有規(guī)范名字的 A RR。
分析器指令
在區(qū)文件中還可以使用分析器指令,分析器指令可以為 RR 的輸入提供方便。
? $ORIGIN — 設置默認域(或初始域)
? $TTL — 為沒有定義精確的生存期的 RR 定義缺省的 TTL 值