dnsmasq作为本地DNS服务器

我有以下设置:

方框一:

  • RHEL 7.3
  • NetworkManager将dns指向/etc/resolv.conf
  • /etc/resolv.conf指向自己的外部IP
  • dnsmasq(由其他人configuration)在该IP上侦听DNS请求
  • dnsmasq有一个/etc/dnsmasq.d/something文件,指向两个外部的corp dns服务器

方框2:作为方框1的精确副本,除了指向自己的IP而不是方框1。

现在我想在第一个盒子上托pipe我自己的TLD“主”,方法是第二个盒子上的程序能够创buildvethnetworking并分配主机名“vhost1.master”,“vhost2.master”,“vhost3.master” ,这样最好甚至可以将一个box 3设置为nameserver,并能够在“vhost1.master”上访问一个web服务器。

从我读到的,似乎我应该能够实现,通过添加到box.one:/etc/resolv.conf条目“主”,一切都应该工作。 但事实并非如此。 我错过了什么?

对于所有这个DNS自我configuration真的很抱歉。 Google的一些关键字现在可能已经足够帮助了。

组态

作为一个起点,阅读一些关于DNS实际是什么的基础知识总是很好的。

接下来是一个使用dnsmasq作为本地域和dhcp服务器的教程 。

进一步的细节可以在关于dnsmasq的archwiki文章中find。 值得一提的是MaraDNS,因为他们的文档在我看来也有助于理解不同types的DNS服务器(例如authorative和recursion)以及区域文件的重要性。

然而,MaraDNS不使用标准化的区域文件,因此有关区域文件的wiki文章也不应该被遗忘。

最后,@BillThor非常高兴地提供了一个dnsmasq的手册页的链接,从我的调查来看,似乎是至less对本地需求最简单的解决scheme。


debugging

dig是debugging和分析dns请求的主要工具。 然而,我的同事更喜欢host <target> <nameserver-to-ask>

另外我发现在调用systemctl status dnsmasq (对于我来说它是/usr/lib/systemd/system/dnsmasq.service )中提到的dnsmasq.service文件中为dnsmasq服务设置-q标志是相当有帮助的。 通过这个人可以看到谁提出了什么要求。