绑定:仅覆盖单个 SRV 记录,转发其余记录

绑定:仅覆盖单个 SRV 记录,转发其余记录

先决条件

为了获得我们的内部自由头像服务器正常工作,我需要为我们的公共域设置一个 SRV 记录company.com

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

如您所见,头像服务器位于内部域中,外部无法访问,因此 SRV 记录不应公开。

问题

我们有一个 BIND DNS 服务器,用于解析内部域的请求。此服务器将请求转发company.com到公共 DNS 服务器(以及应该保留这样我们只需要在一台服务器上管理公共名称)。

现在,我如何覆盖_avatars._tcp.company.com本地 BIND 服务器上的 SRV 记录,同时将所有其他请求转发到公共服务器?

我知道对于子域名来说这很容易(只需为子域名定义一个主区域即可),但我无法对主域名的 SRV 记录执行此操作。我该怎么办?

我尝试过的方法

通过以下设置,解析适用于子域,但不适用于主域:

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

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

答案1

向您的内部 DNS 服务器添加特定名称 () 的区域_avatars._tcp.company.com.,其中包含您想要覆盖的单个记录。

SRV 记录并不特殊 - 它只是一个 DNS 记录,其行为与任何其他 DNS 记录一样。

覆盖区域应与下图类似

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

相关内容