我想将 opendkim default.txt 从区域文件中分离出来,并将其包含在 named.conf 中。我有点困惑我应该使用哪种方法以及哪种方法是正确的。
正常做法:
命名配置文件
zone "mydomain.com" IN {
type master;
file "/var/named/data/mydomain.com.zone";
};
我的域名.com.zone
; zone file for mydomain.com
$ORIGIN mydomain.com.
$TTL 86400
mydomain.com. 86400 IN SOA mydomain.com. soa.mydomain.com. (
2012010101 ; Serial
86400 ; Refresh
7200 ; Retry
86400 ; Expire
86400 ) ; TTL
;
mydomain.com. 86400 IN NS ns1.mydnsdomain.com.
mydomain.com. 86400 IN NS ns2.mydnsdomain.com.
mydomain.com. 86400 IN A 1.2.3.4
mydomain.com. 86400 IN MX 0 mydomain.com.
mydomain.com. 86400 IN TXT "v=spf1 a mx ?all"
www 86400 IN CNAME mydomain.com.
ns1 86400 IN A 1.2.3.4
ns2 86400 IN A 1.2.3.4
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2VtDlIkIZXHbt5f6fFlwB2bVfYkFI44WvIx+Xx0/oqlxCAaKCkHmlYrLkqamuI/Flm51U/Yht5z1CEbQs/YdVXXkryROGuN4+5G5TR89x4zd7RX+SqODYqeYlrG5V1fQM1WFS42ei9zlDmslK7JJrlOQrs8jYbvQoV39cQuIUNwIDAQAB" ) ; ----- DKIM key default for mydomain.com
第一种方法:
命名配置文件
zone "mydomain.com" IN {
type master;
file "/var/named/data/mydomain.com.zone";
file "/etc/opendkim/keys/mydomain.com/default.txt";
};
我的域名.com.zone
; zone file for mydomain.com
$ORIGIN mydomain.com.
$TTL 86400
mydomain.com. 86400 IN SOA mydomain.com. soa.mydomain.com. (
2012010101 ; Serial
86400 ; Refresh
7200 ; Retry
86400 ; Expire
86400 ) ; TTL
;
mydomain.com. 86400 IN NS ns1.mydnsdomain.com.
mydomain.com. 86400 IN NS ns2.mydnsdomain.com.
mydomain.com. 86400 IN A 1.2.3.4
mydomain.com. 86400 IN MX 0 mydomain.com.
mydomain.com. 86400 IN TXT "v=spf1 a mx ?all"
www 86400 IN CNAME mydomain.com.
ns1 86400 IN A 1.2.3.4
ns2 86400 IN A 1.2.3.4
默认值.txt
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2VtDlIkIZXHbt5f6fFlwB2bVfYkFI44WvIx+Xx0/oqlxCAaKCkHmlYrLkqamuI/Flm51U/Yht5z1CEbQs/YdVXXkryROGuN4+5G5TR89x4zd7RX+SqODYqeYlrG5V1fQM1WFS42ei9zlDmslK7JJrlOQrs8jYbvQoV39cQuIUNwIDAQAB" ) ; ----- DKIM key default for mydomain.com
第二种方法:
命名配置文件
zone "mydomain.com" IN {
type master;
file "/var/named/data/mydomain.com.zone";
};
我的域名.com.zone
; zone file for mydomain.com
$ORIGIN mydomain.com.
$INCLUDE "/etc/opendkim/keys/mydomain.com/default.txt" <-- guessing
$TTL 86400
mydomain.com. 86400 IN SOA mydomain.com. soa.mydomain.com. (
2012010101 ; Serial
86400 ; Refresh
7200 ; Retry
86400 ; Expire
86400 ) ; TTL
;
mydomain.com. 86400 IN NS ns1.mydnsdomain.com.
mydomain.com. 86400 IN NS ns2.mydnsdomain.com.
mydomain.com. 86400 IN A 1.2.3.4
mydomain.com. 86400 IN MX 0 mydomain.com.
mydomain.com. 86400 IN TXT "v=spf1 a mx ?all"
www 86400 IN CNAME mydomain.com.
ns1 86400 IN A 1.2.3.4
ns2 86400 IN A 1.2.3.4
默认值.txt
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2VtDlIkIZXHbt5f6fFlwB2bVfYkFI44WvIx+Xx0/oqlxCAaKCkHmlYrLkqamuI/Flm51U/Yht5z1CEbQs/YdVXXkryROGuN4+5G5TR89x4zd7RX+SqODYqeYlrG5V1fQM1WFS42ei9zlDmslK7JJrlOQrs8jYbvQoV39cQuIUNwIDAQAB" ) ; ----- DKIM key default for mydomain.com
或者有没有更好的方法来做到这一点,而不是仅仅将 defaul.txt 内容包含在域区域文件中?
谢谢!
答案1
第二种方法是使用包含文件的正确方法。我很确定声明file
中的多行zone
(即您的第一个示例)最终会产生错误。
被告知:
- 如果您的
named
进程在 chrooted 设置中运行,则其中的绝对路径$INCLUDE
将需要相对于 chroot。(如现有的区域文件) - 当辅助服务器执行区域传输时,它们将看到区域文件的组合内容。这些
$
指令仅影响文件如何加载到当前服务器的内存中;当请求区域传输时,区域因为它被加载到内存中就是被转移的内容。