本地DNS服务器(绑定)和路由器DHCP

我只是在一个小型networking(30台左右的个人电脑)上build立一个内部http服务器供内部使用(我build立了Redmine)。

我在一个虚拟的盒子Ubuntu上设置了http服务器,它也运行着DNS服务器(绑定)。 在DNS查询中,我添加了Redmine服务器名称(redmine.engserver < – > 192.168.1.14),并作为外部ISP DNS IP地址的转发器。

我正在使用小型Wi-Fi路由器(ASUS RT-N66U)作为DHCP(和网关)。 在DHCPconfiguration页面我设置为DNS的ubuntu服务器IP(它是固定的192.168.1.14)。 现在,当我连接一台新的PC到networking时,DHCP路由器发布它的新IP,并作为它发布的DNS服务器:primary:192.168.1.14(ubuntu机器)和seconary 192.168.1.1(路由器本身)。

ipconfig / all默认网关。 。 。 。 。 。 。 。 。 :192.168.1.1 DHCP服务器。 。 。 。 。 。 。 。 。 。 。 :192.168.1.1 DHCPv6 IAID。 。 。 。 。 。 。 。 。 。 。 :248539109 DHCPv6客户端DUID。 。 。 。 。 。 。 。 :00-01-00-01-17-15-AA-3F-D0-67-E5-49-A7-EF

DNS服务器。 。 。 。 。 。 。 。 。 。 。 :192.168.1.14 192.168.1.1通过Tcpip的NetBIOS。 。 。 。 。 。 。 。 :启用

在更改路由器上的DHCP设置之前,我总是只能得到一个DNS服务器:192.168.1.1(可能使用DNS转发到外部公共DNS服务)。

问题是这样的:如果在我的浏览器中inputwww.google.com,则它一直在运行。 如果在浏览器中inputhttp://redmine.engserver/,那么大多数情况下都是这样,但有时候会以yahoo页面search或其他方式结束。 在DNScaching中显示为(服务器未find)。 ipconfig / displaydns

我用wireshark看,有时客户端PC似乎询问辅助DNS(192.168.1.1),而不是第一个192.168.1.14。 显然这是一个公有领域,它没有redmine.engserver条目。

这个configuration有什么问题? 有两个不一致的DNS(一个内部和一个路由器转发)是否合法? 在小型办公室networking中是否有另一种方法可以使用本地名称服务? 路由器DHCP为什么会自行发布为DNS?

你已经知道了这一点。 有一半的DNS请求会转到路由器而不是您的内部DNS服务器(它不能在内部解决'redmine')。您的路由器应该只在DHCP中分配192.168.1.14作为DNS服务器。 在您的大小的networking中,您可能只能使用一台DNS服务器。 (这应该是configuration中的一个选项。)

有两个不一致的DNS(一个内部和一个路由器转发)是否合法?

不,这是非常糟糕的做法,因为你正在经历的原因。

路由器DHCP为什么会自行发布为DNS?

在任何路由器上的DHCP的默认设置将执行此操作。 我想这可能是一个设备的完全废话,不允许你禁用它。 如果是这样,把它扔在垃圾一次,并取而代之的东西,让你控制你的networking。

仅供参考 – 我在华硕WiFi路由器上看到完全相同的问题。 我有一个华硕RT-N16。 我也configuration了DHCP服务器给客户端一个不同的DNS服务器。 不过,这个华硕还坚持给客户端路由器的192.168.1.1地址。 这是因为你提到的原因。

有没有办法在路由器上使用DHCP,但不是它的DNS? 我想知道是否用dd-wrt重新刷新路由器可能会更好。

如果你在Ubuntu上有DNS,你也可以从路由器的DHCP中删除DNS条目(所以它只给路由器本身作为DNS到客户端),并把ubunto作为主DNS服务器,并把备用DNS作为备用DNS服务器。