自动生成区域的拆分 DNS

自动生成区域的拆分 DNS

我想运行 DNS 设置,其中区域在内部 Active Directory DNS 服务器上进行管理。网络边缘有一个运行 BIND 的从属 DNS 服务器(我愿意切换它,我读到 Unbound 可能更好?)。我想要做的是在拆分 DNS 中运行边缘上的 DNS 服务器;对于内部网络,它应该是 AD DNS 的从属,对于互联网,它应该充当主服务器并对区域进行一些更改(即删除指向 RFC1918 IP 的 A 记录)。

我制作了一个图表来说明。IP 地址和名称是虚构的。10/8 是本地的,192.168/16 和 172.16/12 是可公开路由的,仅供参考。EXAMPLE.COM 和 EXAMPLE.ORG 代表两个不同的组织:

              LOCAL NETWORK      PUBLIC INTERNET

           +------------------+
           |                  |
           |     10.0.0.1     |
           |  AD.EXAMPLE.COM  |
           |                  |
           |   EXAMPLE.COM    |
           |     (master)     |
           |                  |
           +------------------+
                    |
+--------+ +------------------+------------------+
| CLIENT |-|                  |                  |
+--------+ |     10.0.0.2     |  192.168.200.1   |
+--------+ | BIND.EXAMPLE.COM | NS1.EXAMPLE.COM  |
| CLIENT |-|                  |                  |
+--------+ |   EXAMPLE.COM    |   EXAMPLE.COM    |
+--------+ |     (slave)      |     (master)     |
| CLIENT |-|    (resolver)    |                  |
+--------+ +------------------+------------------+
                                        |
                              +------------------+
                              |                  |
                              |   172.16.100.1   |
                              | NS1.EXAMPLE.ORG  |
                              |                  |
                              |   EXAMPLE.COM    |
                              |     (slave)      |
                              |                  |
                              +------------------+

一些关键点:

  • 我不想手动更新 BIND 服务器上的区域;区域应该从 AD 服务器传输并自动修改/重写。
  • 从公共互联网来看,AD.EXAMPLE.COM 未在 SOA 或 NS 记录中提及。就互联网而言,它不是 DNS 服务器。NS1.EXAMPLE.COM 是面向互联网的唯一主服务器。
  • 其他面向互联网的服务器可以作为 NS1.EXAMPLE.COM 的从属服务器,因此必须能够从 BIND 进行区域传输(我预计这里不会出现任何问题)。
  • BIND 服务器对于互联网而言是仅具有权威性的,但是对于本地网络而言是一个开放的解析器。
  • DNSSec(如果适用)在 BIND 服务器上终止。

答案1

一种解决方案是使用 Split-DNS 设置 BIND,一个视图作为从属视图,另一个视图作为主视图,并在 BIND 服务器上运行 cron 作业。cron 作业获取从属区域(来自内部视图),对其进行编辑并将其写入另一个区域文件(用于外部视图)。

然而,这感觉很不寻常,我不认为这是最好的解决方案。

相关内容