我有以下设置:
方框一:
- RHEL 7.3
- NetworkManager 将 DNS 指向 /etc/resolv.conf
- /etc/resolv.conf 指向其自身的外部 IP
- dnsmasq(由其他人配置)监听该 IP 上的 dns 请求
- dnsmasq 有一个 /etc/dnsmasq.d/something 文件,该文件指向两个外部的公司 DNS 服务器
盒子二:是盒子一的精确副本,但指向它自己的 IP 而不是盒子一的 IP。
现在,我想在盒子一上托管我自己的 TLD“master”,以便盒子二上的程序能够创建一个 veth 网络并分配主机名“vhost1.master”、“vhost2.master”、“vhost3.master”,这样最好甚至可以将盒子三设置为名称服务器,并能够访问“vhost1.master”上的网络服务器。
从我读到的内容来看,我应该只需在 box.one:/etc/resolv.conf 中添加条目“master”即可实现这一点,一切都应该可以正常工作。但事实并非如此。我遗漏了什么?
抱歉,我对所有这些 DNS 自我配置真的很陌生。现在,谷歌搜索一些关键字可能已经足够有帮助了。
答案1
配置
作为起点,阅读一些关于DNS 实际上是。
接下来是使用 dnsmasq 作为本地域和 dhcp 服务器的教程。
更多详细信息请参阅关于 dnsmasq 的 archwiki 文章. 值得一提的是玛拉DNS因为在我看来,他们的文档也有助于理解不同类型的 DNS 服务器(例如权威服务器与递归服务器)以及区域文件的重要性。
然而,MaraDNS不使用标准化区域文件,因此有关区域文件的 wiki 文章也不应该被遗忘。
最后@BillThor 非常好心地提供了一个链接dnsmasq 的手册页从我的调查来看,这至少是满足当地需求的最简单的解决方案。
调试
调试和分析 DNS 请求的主要工具是挖. 然而我的同事更喜欢host <target> <nameserver-to-ask>
。
我还发现在调用时提到的文件-q
中为 dnsmasq 服务设置标志非常有帮助(对我来说是)。这样就可以看到谁发出了什么请求。dnsmasq.service
systemctl status dnsmasq
/usr/lib/systemd/system/dnsmasq.service