正常做法:

正常做法:

我想将 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。(如现有的区域文件)
  • 当辅助服务器执行区域传输时,它们将看到区域文件的组合内容。这些$指令仅影响文件如何加载到当前服务器的内存中;当请求区域传输时,区域因为它被加载到内存中就是被转移的内容。

相关内容