我猜测必须有一个合理的方法来解决我的问题,但我正在努力获得一些关于实施最佳实践的建议.
我最近搬到了一家网页设计公司,我们需要能够欺骗我们正在处理的网站的DNS条目.但是,我们只想覆盖某些A记录,但保留其他记录,以便该网站似乎可以工作.
即:
我们想让“support.abcd.com”在本地解析,但其他一切都会转到真实网站.这将允许我们设计/演示一个功能齐全的站点,只有本地正在进行的工作.
我们有一个内部BIND DNS服务器(9.9.5.dfsg-3).
根据上面的示例,我的区域文件应该查找“abcd.com”?
编辑:这会有用吗?
IN ns1 abcd.com. IN NS ns1 support.abcd.com. IN A 192.168.1.1 faq.abcd.com. IN A 192.168.1.1 *.abcd.com. IN NS abcd.com <- External?
如果这一切只涉及覆盖主机名 – > ip查找,最简单的设置和管理(特别是如果您有快速变化的要求)是开发人员通过在其中添加相关名称来简单地覆盖正常分辨率本地托管文件并单独留下DNS.
但是,如果您想使用DNS进行此操作,使用BIND作为解析程序服务器,并且您只需要覆盖特定名称(而不是整个区域),我相信您将需要使用Response Policy Zone (RPZ)功能.这可以与使用views一起完成,以使这些更改仅影响特定客户.
我已经包含了一个例子,可以做你特别要求的事情,但是看看上面的链接文档,了解如何覆盖事物的所有其他选项和更完整的例子.
options { ... response-policy { zone "development-overrides"; }; }; ... zone "development-overrides" {type master; file "master/development-overrides"; allow-query {none;}; };
引用的区域文件具有正常的主文件语法,但语义是RPZ特定的(请阅读RPZ docs!):
$TTL 1H @ SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h) NS LOCALHOST. support.example.com A 192.168.1.1 faq.example.com A 192.168.1.1