> public.webdomain.com – 应该从dotter得到这个
> outside.webdomain.com – 也应该从dotter得到这个
> testing.webdomain.com – 应该从我的内部dns控制器获取
我似乎每次都遇到的问题是,如果我有一个包含webdomain.com区域的内部DNS控制器,那么我可以获取我指定的内部条目但从未从公共DNS服务器获取任何内容.无论我使用的DNS服务器的类型如何,这都适用 – 我已经尝试过Linux Bind9和Windows 2008域控制器.
我想我的一个大问题是:我认为系统应该能够检查我指定的内部DNS是不合理的,并且在请求的条目不存在的情况下,它应该故障转移到指定的公共DNS服务器 – 或 – 这是不是DNS工作的方式,我迷失了酱油?
看起来它应该像告诉我的内部DNS服务器将任何无法满足的请求转发给dotter一样简单,但这似乎不起作用.这可能是防火墙问题吗?
提前致谢
EXTENDED
好的,所以我做了一堆研究,并且已经插入了几个小时.我在我的named.conf中有这个,我仍然看到相同的结果.内部呼叫被馈送,但外部(在区域控制域中)的任何东西都被转储.任何帮助都会很棒!此外,这是我正在使用的Ubuntu 9.04操作系统.
Code removed because it was wrong.
正确的方式 – 在问题结束后添加
好吧,多亏了服务器故障中的人们,我现在可以在我的服务器上以更加简洁的方式完美地运行.这是你如何做到的.从bind9的基本安装中编辑named.conf.local文件,并为要重定向的EACH子域添加区域:
/etc/bind/named.conf
// WEBDOMAIN.COM ENTRIES zone "test.webdomain.com" { type master; file "/etc/bind/zones/test.webdomain.com"; }; zone "alpha.webdomain.com" { type master; file "/etc/bind/zones/alpha.webdomain.com"; }; zone "beta.webdomain.com" { type master; file "/etc/bind/zones/beta.webdomain.com"; }; // INTERNETSITE.COM ENTRIES zone "internal.internetsite.com" { type master; file "/etc/bind/zones/internal.internetsite.com"; }; zone "dev.internetsite.com" { type master; file "/etc/bind/zones/dev.internetsite.com"; };
编辑/etc/bind/named.conf.options文件,并将要使用的所有转发器添加到正确的位置:
/etc/bind/named.conf.options
options { directory "/var/cache/bind"; forwarders { 208.67.222.222; 208.67.220.220; 8.8.8.8; 8.8.4.4; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; };
在/ etc / bind / zones /创建一个名为zones的新文件夹,并为上面创建的与上面的’file’属性匹配的EACH区域添加一个新文件.以test.webdomain.com为例:
/etc/bind/zones/test.webdomain.com
$TTL 604800 @ IN SOA test.webdomain.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS test.webdomain.com. test.webdomain.com. IN A 10.0.1.20
其中10.0.1.20是您希望此(子)域转发到的A记录IP地址.通过这种方式,test.webdomain.com的记录仅对子域具有权威性,并且全局DNS将像往常一样提供任何其他子域或根域.
解决方法
当有人查询www.webdomain.com时,请求将被转发到dotster进行查找(因为您的本地DNS服务器对该区域不具有权威性),而对test.webdomain.com的请求将由您的内部DNS服务器处理.