![如何使用 bind 为开发站点设置本地 DNS?](https://linux22.com/image/548833/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20bind%20%E4%B8%BA%E5%BC%80%E5%8F%91%E7%AB%99%E7%82%B9%E8%AE%BE%E7%BD%AE%E6%9C%AC%E5%9C%B0%20DNS%EF%BC%9F.png)
我将快速开始这个问题,是的,这与许多其他问题类似,但我有一个非常具体的问题,与如何配置 bind9 有关,而这似乎没有在其他地方涉及。
这是我的情况:
- 我们在防火墙后面有一堆开发机器。
- 开发机器没有外部访问权限。
- 所有程序员都使用 VPN,以便访问开发机器。
我希望有一种方法可以允许多个“dev”DNS记录,而不会弄乱我们的公共DNS记录。
总的来说,我的计划如下:
- 在开发网络上运行 DNS 服务器
- 让所有程序员在其本地网络配置中定义一对 DNS 服务器
所以它会像这样工作;我有一堆 dev dns 条目,例如。
*.dev.mysite1.com -> VPN IP *.dev.mysite2.com -> VPN IP
但是,由于客户端机器定义了两个 DNS 条目,它们将链接请求,并且对 www.mysite1.com 等的请求将解析到普通(公共)DNS服务器。
所以,问题是:
如何设置绑定以便它可以解析子域名(例如 dev.mysite.com)但不会解析任何其他子域名(例如 www.mysite.com)?
这可能很简单,但是在安装 bind 并创建区域文件后,事情似乎不起作用了?
我的 named.conf.local 文件/特定区域文件应该是什么样子才能解析特定子域而不是整个域?
--
编辑:是的,我看到了覆盖 BIND 中用于内部网络的某些 DNS 条目,但我希望有一种方法可以使用 bind 轻松完成此操作......
答案1
您需要委托开发人员并赋予名称服务器权威性。
在 site1.com 上:
dev.site1.com. NS ns1.dev.site1.com.
dev.site1.com. NS ns2.dev.site1.com.
ns1.dev.site1.com. A 10.0.0.1
ns2.dev.site1.com. A 10.0.0.2
在 ns1/ns2.dev.site1.com 上:
@ SOA ns1.dev.site1.com. hostmaster.site1.com ( 2011050802 3H 1H 1W 10M )
dev.site1.com. NS ns1.dev.site1.com.
dev.site1.com. NS ns2.dev.site1.com.
ns1.dev.site1.com. A 10.0.0.1
ns2.dev.site1.com. A 10.0.0.2
答案2
严格来说,这不是对您的问题(配置绑定)的回答,但可能仍然是对您的问题的解决方案。
我不知道您说的有多少个程序员和开发机器,但将所有开发机器都纳入程序员客户端上的相应主机文件中可能非常可行。
答案3
在客户端上使用两个 DNS 条目将不起作用。如果客户端查询第一个服务器并返回无法找到条目,则客户端不会尝试第二个服务器,而是会失败。
解决此问题的常用方法是,当用户连接到 VPN 时,通过 DHCP 推出内部服务器的 DNS 条目。然后必须将此服务器配置为 dev.mysite1.com 和/或 dev.mysite2.com 的权威服务器,并且对于其他每个查询,要么是递归的,要么是重定向到主 DNS 服务器。