绑定:仅覆盖单个SRVlogging,转发其余的

先决条件

为了让我们的内部图书馆服务器工作,我需要为我们的公有领域company.com设置一个SRVlogging:

 _avatars._tcp.company.com. IN SRV 0 0 80 avatars.internal 

正如你所看到的,头像服务器位于内部域,而不能从外部访问,因此SRVlogging不应公开。

问题

我们有一个BIND DNS服务器,parsing内部域的请求。 该服务器将请求转发给company.com到公共DNS服务器(并且应该保持这种方式,所以我们只需要在一个服务器上pipe理公共名称)。

现在我怎么能覆盖我们的本地BIND服务器_avatars._tcp.company.com SRVlogging,同时转发所有其他请求到公共服务器?

我知道这是很容易的子域(只是定义一个主域的子域,完成),但我没有做到这一点的主要域的SRVlogging。 我能做什么?

我试过了

使用以下设置,parsing适用于子域,但不适用于主域:

 $ dig @localhost +short SRV _avatars._tcp.company.com $ dig @localhost +short SRV _avatars._tcp.bookmarks.company.com 0 0 80 avatars.internal. 

/etc/bind/named.conf.local

 zone "_avatars._tcp.company.com" { type master; file "/etc/bind/db._avatars._tcp.company.com"; allow-update { none; }; }; zone "bookmarks.company.come" { type master; file "/etc/bind/db.bookmarks.company.com"; allow-update { none; }; }; 

/etc/bind/db.bookmarks.company.com

 $TTL 86400 @ IN SOA @ root ( 2012082201 ; serial 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum @ IN NS ns.company.com. @ IN A 192.168.1.41 _avatars._tcp.bookmarks.company.com. IN SRV 0 0 80 avatars.internal. 

/etc/bind/db._avatars._tcp.company.com

 $TTL 86400 @ IN SOA @ root ( 2012082201 ; serial 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum @ IN NS ns.company.com. @ IN SRV 0 0 80 avatars.internal. _avatars._tcp.company.com. IN SRV 0 0 80 avatars.internal. 

(是的最后两行是相同的,但只是为了确保)

将特定名称( _avatars._tcp.company.com. )的区域添加到您的内部DNS服务器,其中包含您希望覆盖的单个logging。

SRVlogging不是特殊的 – 它只是一个DNSlogging,它的行为就像任何其他的DNSlogging。

覆盖区域应该看起来类似于下面的内容

 $TTL 3600 @ IN SOA dev.company.com. root.company.com. ( 2009071505 ; serial 10800 ; refresh 3600 ; retry 3600000 ; expire 86400 ) ; minimum @ IN NS inside-ns.company.com. _foo.dev.company.com. IN SRV 0 0 80 google.co.uk.