我正在尝试设置一个简单的本地 DNS 服务器,以便在开发/测试环境(Web 服务器)中的多台虚拟机上使用。虽然我只想设置一个带有 DNS 的 Windows 服务器,但我的可用内存有限,所以我宁愿在我的主机操作系统(Widows XP Pro)上运行 BIND。
我发现这个很棒的教程这让我能够在单个域上启动并运行 BIND。设置完成后,我能够利用我熟悉的 DNS 控制面板知识来设置一些记录。不幸的是,本教程中的假设是我只想管理一个域的 DNS,而我有两个域。
我查阅了大量文档,也尝试过复制区域文件并复制和粘贴 named.conf 中的“zone”部分,但都没有成功。我还尝试将其他域的记录直接放入我的原始区域文件中,但没有成功。按照示例,我的区域文件目前如下所示:
$TTL 6h
@ IN SOA ns1.mydomain.com. info.mydomain.com. (
2011052302
10800
3600
604800
86400 )
@ NS ns1.mydomain.com.
ns1 IN A 10.225.0.51
test IN A 10.225.0.1
$ORIGIN test.mydomain.com.
www IN A 10.225.0.1
www2 IN A 10.226.0.66
当前已解决:
- 测试.mydomain.com
- www.test.mydomain.com
- www2.test.mydomain.com
我还需要让服务器解析:
- test.myotherdomain.com
- www.test.myotherdomain.com
- ftp.test.myotherdomain.com
我对实现该功能的方法或最佳实践不感兴趣(这是一个测试环境),我只是试图找到一种方法来让它解析 mydomain.com 和 myotherdomain.com 的记录。如果可以在 1 个区域文件中完成,那就没问题。如果需要多个区域文件,请说明如何配置它们(按照我链接的教程),以便 BIND 可以读取它们。
更新
通过更多的修改和你们的帮助,我发现了自己犯下严重错误的地方——我与公共 DNS 发生了冲突,因为 mydomain.com 和 myotherdomain.com 都在线。我之前已经正确设置了文件结构和 named.conf。但是,我必须将我的本地 DNS 设置为对 test.mydomain.com 和 test.myotherdomain.com(而不是 mydomain.com 和 myotherdomain.com)具有权威性,然后仅为“test”子域添加 A 记录。
$TTL 6h
@ IN SOA ns1.test.mydomain.com. info.mydomain.com. (
2011052304
10800
3600
604800
86400 )
@ NS ns1.test.mydomain.com.
ns1 IN A 10.225.0.51
www IN A 10.225.0.171
db IN A 10.225.0.171
ftp IN A 10.225.0.171
答案1
添加另一个区域条目,类似于 named.conf 文件中的现有条目,并使用第二个域的 DNS 名称和文件名。
答案2
当您在 Bind 中创建另一个区域时,您会向 named.conf 添加另一个部分并将其指向另一个数据文件 (db.test.myotherdomain.com)。