DD-WRT为其他DNS服务器提供服务,而不仅仅是路由器的IP


9

我有一个使用DNSMasq设置的DD-WRT(使用DD-WRT v24SP2-MULTI(03/21/11)std)路由器,用于将某些域解析为内部地址并通过其他地址。路由器本身配置为使用Google的公共DNS服务器来解析地址。

我的设置屏幕如下所示:

DDWRT设置屏幕

我的问题是,当DHCP客户端连接时,它们将获得路由器以及Google的两个DNS服务器作为分配的DNS服务器:

DHCP分配的DNS服务器

这是一个问题,因为有时无线客户端尝试解析应该指向内部IP地址的域并最终获得外部ip,因为无论出于何种原因,他们的请求都被发送到8.8.8.8而不是发送到路由器。

我不希望路由器将自己的IP作为DNS服务器提供任何服务。那可能吗?


1
我可能会弄错,但是由于这是DHCP服务器配置部分,因此您明确地告诉路由器将这些Google服务器作为dns选项提供给客户端。您想从列表中删除它们,然后配置路由器以从Google获取自己的dns,也许下面的答案是正确的方法。
horatio 2012年

如果我删除这些,路由器将提供服务器,它通过DHCP从ISP得到..
0x6A75616E

您在帖子和评论中说“无论出于何种原因”次要时间。这就是将8.8.8.8传递给客户端的原因。因为你告诉过。如果您不希望举报,则需要将其删除。如果您的路由器是dns服务器,请仅尝试使用路由器的地址。
horatio 2012年

@horatio,不是真的。.我的意思是,为什么dhcp服务器根本不提供任何其他DNS地址。如果在设备上使用dnsmasq并应用某些名称解析规则,则为其他DNS服务器(除了路由器本身)提供服务将无法达到目的。
0x6A75616E 2012年

该部分是要分发给请求DHCP信息的客户端的DNS服务器的列表。
horatio 2012年

Answers:


7

很好,您正在使用DNSMasq。

您可以在“ 服务”(>“服务”)选项卡的“ DNSMasq”>“其他DNSMasq选项”框中配置所需的内容,但是首先,您需要清除那些“静态DNS”字段。 “设置>基本设置”中的静态DNS字段

将以下内容添加到DNSMasq选项框中:

dhcp-option= option:dns-server, 192.168.10.10 # DHCP option 006

server = 8.8.8.8 # DNSMasq will use these servers for forwarding the DNS requests that it can't serve
server = 8.8.4.4

这似乎对我自己来说是完美的。问题非常愚蠢。第一行的哪一部分指定了DHCP选项006?选项:DNS服务器?
Residualfail

@Residualfail:是的;我认为您也可以通过数字指定它,但是option:dns-server对应于DHCP option 006
palswim

1
看来我讲得太早了。在我的内部dns关闭后,dns似乎并没有退回到Google的dns。=(
Residualfail

4

信息来自DD-WRT官方网站:http//www.dd-wrt.com/wiki/index.php/OpenDNS

看来您可以将其余的dns服务器设置为不可路由的IP(在我的情况下为10.0.0.010.0.0.1),它将使用这些不可路由的IP 挤出您的ISP DNS服务器。到目前为止,对我来说,它似乎可以立即在不存在的DNS服务器上等待。


不会有延迟,因为不可路由的地址将立即被网络堆栈丢弃。它产生了少量的开销,这是一个hack,但不应存在任何现实问题。
某人

3

我没有使用DDWRT,所以这是一半问题/一半答案。

作为DHCP服务器的手动DNSMasq在“其他DNSMasq选项”部分中说:

您可以通过在“服务”选项卡上“其他DNSMasq选项”中输入DNSMasq的Web界面中的一些其他选项来进行设置。

如果希望从ISP传递DNS服务器,则可以使用以下参数:

dhcp-option=6, x.x.x.x, y.y.y.y

其中xxxx = DNS1 yyyy = DNS2

这似乎意味着通过ISP服务器是可选的,因此找到并删除上述行应将其关闭。


1
我将设置dhcp-option = 6,192.168.10.10将该IP地址作为DNS服务器IP传递给DHCP客户端。
thane 2012年

1
感谢您的指导。我想,两个uDHCPd(这是DNS守护我使用的DDWRT)和的dnsmasq(切换到它),但无济于事:(它让无论出于何种原因,供应额外的DNS记录。
0x6A75616E

在这种情况下,您应该将问题发布到DD-WRT论坛上
harrymc 2012年

2

如果您不希望客户端访问外部DNS,请不要将其地址放入DHCP服务器配置中。

我想您想在外部DHCP客户端的配置中添加(最终更快)谷歌的DNS服务器(其中DNSMASQ将采用它的DNS客户端首选项)

额外:

您必须将额外的(所有)DNS服务器添加到WAN链接配置中。DNSMasq将使用它们,而从未有DHCP客户端从提供者那里获取。


感谢您的贡献,但这在问题中并没有多大意义。DNSMasq的工作原理是将客户端的dns请求转发到真实的DNS服务器,并具有即时修改某些响应的能力。如果我从配置中删除了dns服务器,则路由器仅恢复为ISP分配的服务器。您通过说“修复您的配置”来回答我的问题,但问题本身是“如何修复配置”。
0x6A75616E 2012年

2

DD-WRT的典型配置选项是允许路由器将ISP路由到ISP的主要DNS服务器之外。您已成功完成;但是,由于请求是从CLIENT机器生成的,将路由器连接到路由器,因此优先级顺序始终会分配给客户端计算机上已配置的DNS,然后再分配给路由器。

您所描述的是客户端正在与路由器关联,这是正确的,但是客户端的DNS显示了您的路由器IP + 2个其他DNS设置。请检查客户端计算机,并确保将其IPV4设置设置为从连接中动态提取DNS服务器配置,而不是手动进行配置:

配置客户端

然后,确保正确设置了DD-WRT路由器:

配置路由器

在上面的配置中,您还会遇到一些问题。您已将DHCP地址范围设置为开始于200和结束于255; 我建议您将其更改为从200开始到在254; 考虑到正常配置*.*.*.255是广播地址,而不是用于分配给关联客户端的普通IP地址,请保留255地址。

我突出显示了本地DNS设置,因为您将其设置为127.0.0.1; 这表示您正在路由器上运行本地DNS服务器。如果不是这种情况,请将其更改为0.0.0.0,或将其更改为网络上本地DNS服务器的正确地址。

您会注意到,当以这种方式配置服务器和客户端时,只会显示路由器的DNS IP地址。并且所有请求将通过与路由器关联的DNS服务器进行路由。

关于本地DNS服务器的说明 如果希望路由器将某些本地地址与本地IP相关联,则可以将它们添加到适当的DD-WRT屏幕中的DNSMasq配置选项中,或使用本地DNS服务器,并为该服务器(通常是网络范围内的静态服务器)。这样,解析顺序将首先是本地服务器,然后是外部2。但是,仍然只有客户端会将路由器IP视为DNS服务器。


感谢您的回答!,我确保网络上的所有客户端均未对DNS服务器进行硬编码。实际上,在每种情况下,192.168.10.10(路由器本身)都会作为第一个命中的DNS服务器返回。发生的情况是,有些计算机随机访问了DHCP当前提供的辅助DNS服务器。.我已经尝试了上百万种方法,但是看起来没有办法让它自己服务。我可能最终会在其他计算机上运行其他一些dnsmasq实例,并将其用作dns2和dns3 ..这样的hack!大声笑。再次感谢。
0x6A75616E 2012年

2

路由器死亡后,我也遇到了类似的问题,我需要使闪存WRT160N运行。

我的网络中有一个框用作192.168.2.30上的本地DNS服务器。我基本上希望DHCP仅将该地址作为DNS服务器分发出去。我不希望DNS到其他地方。

我正在使用“固件:DD-WRT v24-sp2(12/19/10)mini”

DNSMasq设置,DHCP设置,本地DNS或我使用的任何组合似乎都无关紧要。如果DNS服务器2和DNS服务器3为空白或与DNS服务器1相匹配,则DD-WRT坚持为这些位置分发Comcast的DNS服务器。我不希望这样,因为我有192.168.2.30转发给非本地查询的OpenDNS。

我正在将它写为DD-WRT的这个较旧(到目前为止)版本中的一个错误,并将在192.168.2.30上安装/配置我自己的DHCP服务器,并在路由器上禁用DHCP。


1
这实际上不是一个坏主意……我可能只是在另一个盒子上设置了dhcp并退出了ddwrt。
0x6A75616E 2012年

1
我的2016年2月构建中仍然存在此问题,似乎是一个功能。我放弃了路由器,打算为此返回到Linux PC。实际上,构建路由器软件的人们应该更好地理解GUI的这种意外,不常见和不负责任的行为所带来的隐私问题。如果我必须自己整理东西,那么使用相对复杂且有限的系统实际上是没有意义的。当您已经在另一台计算机上运行DNS和DHCP时,路由器还剩下什么?数据包推送?
某人

1

由于我偶然发现了这个答案,所以添加了几年后...我在pi-hole中添加了虚拟接口来处理另外2个ip地址。

eth0 192.168.10.10
eth0.1 192.168.10.11
eth0.2 192.168.10.12

这使我可以用本地地址填充所有3个邮箱,并且分发得足够多,即使dd-wrt路由器分发了5个,3个本地和2个上游ISP dns,我的机器也不会受到攻击。


0

使用一种不太hacky的方法进行侦听:如果是您的LAN和DNS,我敢肯定有一些地址可用于让DNS侦听三个IP。

具有不可路由的地址的收益在实际中应该是无关紧要的,但至少您不依赖于某些故障,而路由器会对此做出响应。您永远无法确定这一天是否会改变。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.