为本地networking设置dnsmasq

我和一小部分开发人员刚刚搬到新办公室,我想在我们的开发服务器上设置dnsmasq,所以当我们在那里部署web应用时,我们不必编辑自己的主机文件。 我们有一个192.168.3.1路由器,我们没有访问权限。 我想我会在开发盒上安装一个DNS服务器,并且我们都将其IPlogging为辅助DNS服务器。 不幸的是我正在努力做这个工作。

devel服务器的名称是devbox,它的IP是192.168.3.99,它运行着最新的Ubuntu Server(Karmic)

我的电脑正在运行Ubuntu Desktop(Karmic)

我想达到什么

假设我有三个网站,网站1,网站2,网站3,在开发箱上运行。 我想通过url访问他们:

http://website1.devbox http://website2.devbox http://website3.devbox 

所以我在开发箱上configuration了Apache,安装了dnsmasq,并把下面几行放到hosts文件中:

 192.168.3.99 website1.devbox 192.168.3.99 website2.devbox 192.168.3.99 website3.devbox 

并编辑我自己的resolv.conf文件,以包含作为域名服务器的开发框:

 nameserver 192.168.3.99 

这工作正常,我可以访问的网站。 问题是它不能很好地扩展。 我希望所有以.devbox结尾的域名都被转发到开发箱,这就是我所苦苦挣扎的。

我曾尝试过

 192.168.3.99 devbox 

到主机文件中,然后编辑dnsmasq.conf中的行:

 # Add local-only domains here, queries in these domains are answered # from /etc/hosts or DHCP only. local=/devbox/ 

但我无法得到它的工作。 如果我尝试任何未明确出现在开发框的主机文件中的url,那么dns查找失败。

是否是其他地方的指令? 我看错了地方?

请参阅DNSmasq文档 ,尤其是dnsmasq联机帮助页和示例configuration文件 。 local关键字告诉DNSmasq使用本地数据执行这些域名查找。 例如,这会影响发送到DNSmasq for foo.localnetbar.localnet的请求。 我不认为这是你想要的。

 # Add local-only domains here, queries in these domains are answered # from /etc/hosts or DHCP only. local=/localnet/ 

要强制主机/子域名查找parsing为特定地址,您可能需要使用address关键字。 下面的第二个例子应该允许web1.devboxweb2.devboxweb73872.devbox全部parsing到指定的地址。

 # Add domains which you want to force to an IP address here. # The example below send any host in doubleclick.net to a local # webserver. address=/doubleclick.net/127.0.0.1 # for your example address=/devbox/192.168.3.99 

我在家里使用DNSmasq处理简单的DNS我的局域网的东西; 在这种情况下, 本地和相关的扩展主机关键字是适当的。 DNSmasq服务器是我的主要名称服务器,所以所有请求都经过它; 任何非本地地址都被传回给ISP的域名服务器。 如果可能,您可以考虑configuration。