在私人VPN的BIND9

假设有一个私人VPN(examplevpn.org),并且有几个内部NETWORKS连接到它(net1.examplevpn.org,net2.examplevpn.org等等)。

  1. 所有的邮件都通过examplevpn.org(传入或传出)进行中继。 所有networking都有自己的邮件服务器。
  2. 所有networking访问都通过examplevpn.org中的代理服务器。 没有NAT,只有那个networking代理。
  3. examplevpn.org有两个DNS,一个是外部的,一个是内部的。 内部的一个只能从VPN内部访问,只能回复* .examplevpn.org域的查询,其余部分将被忽略。
  4. 每个内部networking都有自己的DNS服务器。

我在net1.examplevpn.org工作,我想configurationBIND(版本9.9.5)

  1. 直接回复查询* .net1.examplevpn.org。 (EASY,区域,我要说完成这个要求)
  2. 将* .examplevpn.org查询转发到内部examplevpn.org DNS服务器。 所有这些都是recursion查询。
  3. 忽略其余的互联网的问题,我的意思是,我不希望这些查询转发到内部examplevpn.org DNS服务器。 examplevpn.org的内部DNS服务器已经忽略了它们,此外,由于没有NAT,我无法连接到IP。

这是2和3的组合,我不知道如何在同一时间做。

我想做3有两个原因:

  • 这是无缘无故的带宽浪费(查询无论如何将失败)
  • 潜伏。 我希望查询很快失败。 我简化了这个问题。 IRL有3个内部DNS,我的DNS服务器(在net1.examplevpn.org)尝试其中三个失败之前…大部分时间需要5秒,一件事情应该是瞬间的。

解决方法很简单,如果有点模糊,但是forward指令在zone子句中也是有效的。

因此,禁用任何现有的转发器和recursion(需求#3),定义一个本地区域(需求#1),并将另一个特定区域的所有内容转发到另一个名称服务器(需求#2)

 options { recursion no; ... }; zone "net1.example.org." IN { type master; file "zone.net1.example.org"; }; zone "example.org." IN { type forward; forward only; forwarders { 10.9.8.7; }; };