需要兩種類型的區域檔案。一個會指派 IP 位址給主機名稱,另一個的作用恰恰相反︰為 IP 位址提供主機名稱。
![]() | 在區域檔案中使用點符號 |
---|---|
每則訊息前的 |
第一個要考慮的情況是負責領域 world.cosmos
的區域檔案 world.zone
,如 範例 33.6 「檔案 /var/lib/named/world.zone」 中所示。
範例 33.6. 檔案 /var/lib/named/world.zone
$TTL 2D world.cosmos. IN SOA gateway root.world.cosmos. ( 2003072441 ; serial 1D ; refresh 2H ; retry 1W ; expiry 2D ) ; minimum IN NS gateway IN MX 10 sun gateway IN A 192.168.0.1 IN A 192.168.1.1 sun IN A 192.168.0.2 moon IN A 192.168.0.3 earth IN A 192.168.1.2 mars IN A 192.168.1.3 www IN CNAME moon
$TTL
定義應該套用到此檔案中所有項目的預設有效時間。在此範例中,項目的有效時間是兩天 (2 D
)。
這是 SOA (授權開始) 控制記錄開始的地方:
首位上的 world.cosmos
為要管理的網域名稱。名稱以 .
結尾,以免第二次附加區域。或者,可以在此輸入 @
,這樣會從 /etc/named.conf
中的對應項目擷取區域。
在 IN SOA
之後是名稱伺服器的名稱,做為此區域的主伺服器。名稱會從 gateway
擴展為 gateway.world.cosmos
,因為它沒有用 .
結尾。
後面跟著此名稱伺服器之負責人的電子郵件地址。因為 @
符號已經具有特殊意義,所以在此輸入 .
來代替。對於 root@world.cosmos
,項目必須寫成 root.world.cosmos.
。每則訊息前的 .
,以防止新增區域。
(
將所有到 )
的行都包含在 SOA 記錄中。
serial number
是任意號碼,每次此檔案變更時就會增加。通知次要名稱伺服器 (從屬伺服器) 發生變更,這是必要的。對於這種情形,十個數字的日期及執行號碼,寫法是 YYYYMMDDNN,已成為習慣格式。
refresh rate
指定次要名稱伺服器確認區域 serial number
的時間間隔。在此例中,是一天。
retry rate
指定在發生錯誤時次要名稱伺服器嘗試再次聯絡主要伺服器的時間間隔。在此例中,是兩小時。
expiration time
指定次要名稱伺服器無法重新取得與主要伺服器的聯絡時,在此時間範圍後丟棄快取資料。在此例中,是一週。
SOA 記錄中的最後一個項目,指定 negative caching TTL
— 亦即可在此時間內快取其他伺服器無法解析之 DNS 查詢的結果。
IN NS
指定負責此網域的名稱伺服器。gateway
會擴充為 gateway.world.cosmos
,因為它沒有以 .
結尾。可能會有數行與此類似 — 主要名稱伺服器佔用一行,每部次要名稱伺服器也各自佔用一行。如果 /etc/named.conf
中的 notify
不是設定為 no
,此處列出的所有名稱伺服器會收到區域資料變更的通知。
MX 記錄指定為網域 world.cosmos
接收、處理和轉遞電子郵件的郵件伺服器。在此範例中,郵件伺服器為主機 sun.world.cosmos
。主機名稱前的號碼是偏好設定值。如果有多個 MX 項目,會先優先使用具有最小值的郵件伺服器,而如果郵件無法送到此伺服器,就會嘗試使用下一個較高的值。
這些是指派給主機名稱的一或多個 IP 位址的實際位址記錄。此處列出的名稱不含 .
,因為它們不包含其網域,所以會將 world.cosmos
新增到所有名稱。兩個 IP 位址指派給主機 gateway
,因為它有兩張網路卡。如果主機位址是傳統位址 (IPv4),記錄會使用 AAAA
標示。如果位址是 IPv6 位址,項目會使用 AAAA 0
標示。IPv6 位址之前的記號只包括 AAAA
,現在已廢除不用。
![]() | IPv6 語法 |
---|---|
IPv6 記錄與 IPv4 的語法稍有不同。因為可以分段,所以必須在位址前提供有關遺漏位元的資訊。即使您要使用完全未分段的位址,也必須提供此資訊。對於使用如下語法的 IPv4 記錄 pluto IN AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 pluto IN AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 您在 IPv6 格式中必須新增有關遺漏位元的資訊。因為上述範例是完整的 (未遺漏任何位元),所以此記錄的 IPv6 格式為: pluto IN AAAA 0 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 pluto IN AAAA 0 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 請勿搭配使用 IPv4 位址與 IPv6 對應。 |
別名 www
可以用來定址 mond
(CNAME
表示 canonical name (標準名稱))。
虛擬網域 in-addr.arpa
用來反向查詢 IP 位址到主機名稱。它會以反向標記法附加到位址的網路部分。因此 192.168.1
會解析為 1.168.192.in-addr.arpa
。請參閱範例 33.7 「反向查詢」。
範例 33.7. 反向查詢
$TTL 2D 1.168.192.in-addr.arpa. IN SOA gateway.world.cosmos. root.world.cosmos. ( 2003072441 ; serial 1D ; refresh 2H ; retry 1W ; expiry 2D ) ; minimum IN NS gateway.world.cosmos. 1 IN PTR gateway.world.cosmos. 2 IN PTR earth.world.cosmos. 3 IN PTR mars.world.cosmos.
$TTL 定義套用到此處所有項目的標準 TTL。
組態檔應該為網路 192.168.1.0
啟用反向查詢。假設區域稱為 1.168.192.in-addr.arpa
,則不應該新增到主機名稱。因此輸入的主機名稱都使用完整格式 — 附帶網域並以 .
做為結尾。其餘的項目與之前 world.cosmos
範例中所述的項目相同。
請參閱之前的 world.cosmos
範例。
同樣地,此行指定負責此區域的名稱伺服器。不過,這一次,以完整格式輸入名稱,亦即包含網域以及結尾的 。
這些是相關主機上 IP 位址的指標記錄提示。行的開頭僅輸入了 IP 位址的最後一部分,結尾無 .
。對此附加區域 (不加上 .in-addr.arpa
) 會造成完整 IP 位址變成反向順序。