我想要为一个域托管 DNS,同时将子域转发到另一台服务器。
像这样:
区域“xxx.test.com”位于 { 类型转发;仅转发;转发器 { public-ip-here; }; };
区域“test.com”位于 { 类型 master;文件“domain/test.com”; };
据我所知,如果我这样做,转发实际上永远不会发生。我不确定不太具体的 test.com 是否会以某种方式覆盖它,或者我想要做的事情是否只需要以不同的方式完成。
我在两个系统上都运行 BIND 9.9.5-9+deb8u9-Debian(扩展支持版本)。
答案1
如果您是父区域的主控,那么您可能应该为子区域设置委派,而不是尝试转发。
做一个代表团只需把这样的东西放在test.com
区域中。
xxx.test.com. IN NS servername.
答案2
根据我的经验和测试,当您的服务器在父区域具有权威性时,如果您想转发子区域,您必须:
- 在 named.conf 中将要转发的子区域声明为转发区域类型
- 添加与名称服务器相关的 NS 记录,您将在父区域中转发该子区域
通过该配置,您的服务器将发送递归请求到您在named.conf中的子区域声明中设置的转发器列表。
如果你只添加了 NS 记录而没有在 named.conf 中将该区域声明为正向区域,则你委托了该区域,并且你的 DNS 服务器将发送一个迭代要求。
如果您在 named.conf 中仅将子区域声明为正向区域类型(并且父区域在您的服务器上具有权威性),则正向将不起作用。
注意:您可以通过执行流量捕获来检查迭代或递归查询,并在标志部分使用参数(DNS->Flags->Recursion Desired)查看
选择委派或转发可以大大改变 DNS 请求流/DNS 架构选择(递归或迭代 DNS 请求)