我已经build立了一个bind9和一个拆分dnsconfiguration的单个DNS服务器,以便我的域名的所有内部请求获得内部IP地址,并且来自我的networking外部的所有请求都获得正式地址(通过Cisco ASA防火墙但最终会达到相同的系统)。
当我从内部networking使用nsupdate时,内部区域被更新。 同样,当我在外部系统(带有TSIG)上运行nsupdate时,外部区域被更新。
不过,我宁愿能够更新内部networking中的所有DNS数据。 问题似乎是我可以定义几个视图到我的域名,但bind9标识客户端的IP地址使用的区域,根据我的views.conf。 所以当它是一个内部IP地址时,内部区域被检索或更新,但不能从内部系统更新外部区域。
我也尝试过使用两个不同的TSIG键,希望bind9可以通过键识别外部区域,这也不起作用:
Aug 26 11:04:22 s1006 named[13444]: client 10.1.1.6#39841: view internal: signer "external" denied Aug 26 11:04:22 s1006 named[13444]: client 10.1.1.6#39841: view internal: update 'example.org/IN' denied
以下是相关的bind9configuration设置:
view "internal" { match-clients { 10.1.1.6; }; recursion yes; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/zones/example.org-internal.conf"; }; view "external" { match-clients { 10.1.1.3; }; recursion no; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/zones/example.org-external.conf"; }; key internal { algorithm hmac-md5; secret "x2ZKW4SxbeySMK7PmV1Nng=="; }; key external { algorithm hmac-md5; secret "kiHB9BR6IeSmUUnp1QMCcA=="; }; zone "example.org" { type master; file "/var/cache/bind/example.org-internal/example.org"; notify yes; allow-update { key internal; }; }; zone "example.org" { type master; file "/var/cache/bind/example.org-external/example.org"; notify yes; allow-update { key external; }; };
注意:出于testing目的,视图被设置为使得来自10.1.1.3的所有请求是“外部的”,并且来自10.1.1.6的视图被认为是“内部的”。
请告知如何configuration这个,以便我可以通过在10.1.1.6而不是10.1.1.3上运行nsupdate来更新外部区域。 另外,如果你认为这个特定的设置是一个非常愚蠢的想法,请让我知道。
nsupdate有一个local子命令,可以让你select源地址。 从理论上讲,这将使您可以使用外部源地址触发内部networking内部的外部视图更新。 实际上,您的防火墙策略可能会阻止它。