named.conf包含区域文件和opendkim conf

我想从区域文件中分离出opendkim default.txt,并将其包含在named.conf中。 我有点困惑,我应该使用哪种方法,哪种方法是正确的。

正常方法:

named.conf中

zone "mydomain.com" IN { type master; file "/var/named/data/mydomain.com.zone"; }; 

mydomain.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 

第一种方法:

named.conf中

 zone "mydomain.com" IN { type master; file "/var/named/data/mydomain.com.zone"; file "/etc/opendkim/keys/mydomain.com/default.txt"; }; 

mydomain.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.txt

  default._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2VtDlIkIZXHbt5f6fFlwB2bVfYkFI44WvIx+Xx0/oqlxCAaKCkHmlYrLkqamuI/Flm51U/Yht5z1CEbQs/YdVXXkryROGuN4+5G5TR89x4zd7RX+SqODYqeYlrG5V1fQM1WFS42ei9zlDmslK7JJrlOQrs8jYbvQoV39cQuIUNwIDAQAB" ) ; ----- DKIM key default for mydomain.com 

第二种方法:

named.conf中

 zone "mydomain.com" IN { type master; file "/var/named/data/mydomain.com.zone"; }; 

mydomain.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 

default.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内容?

谢谢!

第二种方法是使用包含文件的正确方法。 我很确定zone声明中的多个file行(即你的第一个例子)最终会产生一个错误。

被告知:

  • 如果你的named进程在chroot设置下运行, $INCLUDE的绝对path将需要相对于chroot。 (如现有的区域文件)
  • 当辅助服务器执行区域传输时,他们将看到区域文件的组合内容。 $指令只影响如何将文件加载到当前服务器的内存中; 当区域传输被请求时,区域被加载到内存中被传输。