檔案

原始碼

file 允許從 RFC 1035 格式的主檔案提供區域資料。

說明

file 外掛程式用於「舊式」DNS 伺服器。它從磁碟上預先載入的檔案提供服務,該檔案包含 RFC 1035 格式的資料。如果區域檔案包含簽章 (即使用 DNSSEC 簽署),則會傳回正確的 DNSSEC 回應。僅支援 NSEC!如果您使用此設定,則您有責任重新簽署區域檔案。

語法

file DBFILE [ZONES...]
  • DBFILE 要讀取和解析的資料庫檔案。如果路徑是相對路徑,則會將 root 外掛程式的路徑前置於該路徑。
  • ZONES 它應該是授權的區域。如果為空,則使用組態區塊中的區域。

如果您想要循環配置 A 和 AAAA 回應,請查看 loadbalance 外掛程式。

file DBFILE [ZONES... ] {
    reload DURATION
}
  • reload 間隔,如果 SOA 版本變更,則執行區域重新載入。預設為一分鐘。值為 0 表示不掃描變更且不重新載入。例如,30s 每 30 秒檢查一次區域檔案,並在序號變更時重新載入區域。

如果您需要外送區域傳輸,請查看 transfer 外掛程式。

範例

db.example.org 載入 example.org 區域,並允許傳輸到網際網路,但將通知傳送至 10.240.1.1

example.org {
    file db.example.org
    transfer {
        to * 10.240.1.1
    }
}

其中 db.example.org 將包含 RFC 1035 中 (文字) 呈現格式的 RRSets (https://tools.ietf.org/html/rfc7719#section-4)

$ORIGIN example.org.
@	3600 IN	SOA sns.dns.icann.org. noc.dns.icann.org. 2017042745 7200 3600 1209600 3600
	3600 IN NS a.iana-servers.net.
	3600 IN NS b.iana-servers.net.

www     IN A     127.0.0.1
        IN AAAA  ::1

或為多個區域使用單一區域檔案

. {
    file example.org.signed example.org example.net
    transfer example.org example.net {
        to * 10.240.1.1
    }
}

請注意,如果您有如下的組態,您可能會遇到原點無法正確辨識的問題

. {
    file db.example.org
}

我們省略了檔案 db.example.org 的原點,因此這會參考伺服器區塊中的區域,在此案例中,它是根區域。然後,db.example.org 的任何內容都會以設定的原點讀取;這可能不會執行您想要的操作。最好在此處明確指定正確的原點。這可以用兩種方式完成

. {
    file db.example.org example.org
}

example.org {
    file db.example.org
}

另請參閱

如果您需要簡單的記錄混洗,請參閱 loadbalance 外掛程式。如需區域傳輸,請參閱 transfer 外掛程式。最後,root 外掛程式可以協助您指定區域檔案的位置。

如需有關如何建構區域檔案的更多資訊,請參閱 RFC 1035