为什么大多数路由器不包含本地 DNS?

为什么大多数路由器不包含本地 DNS?

我需要更换防火墙/路由器,我更希望使用内置 DNS 来解析本地子网上的查询。我有一个混合 Linux/Windows 系统,通常只打开一台计算机,而且我经常在解析本地名称时遇到问题。我不想只为 DNS 而永久打开 Linux 机器,我更希望在我的路由器设备中安装 DNS,它始终处于打开状态。

我偶尔会在 Google 上搜索这个,但总是找不到任何东西。你总是得到显而易见的答案 - 这是不可能的,把所有东西都放在/etc/hostsNetBIOS、专用盒子等中。那么我错过了什么?为什么“便宜”的路由器不让你这样做?我很确定思科套件可以做到这一点。几乎所有的廉价路由器都会让你进行 MAC 地址预留,让它们为 DHCP 分配静态 IP 地址。那么为什么它们不能简单地对本地子网上的所有内容进行 DNS,而只是通过远程域传递给 ISP?

答案1

DNS 协议实际上相当复杂,尤其是递归函数,大多数路由器甚至无法代理人DNS 正确且符合 DNS RFC,更不用说充当正确的 DNS 服务器了。请参阅RFC 5625

具有 DNS 功能的最佳路由器是使用dnsmasq软件内部运行在 Linux 内核之上。

Ob. 免责声明 - 我编写了该 RFC。

答案2

使用可刷新路由器(例如 Linksys 的 WRT* 系列),您可以安装OpenWRT或者番茄;这两个固件应该可以让您使用各种各样的工具。

名单支持的设备OpenWrt 可能会打开其他选项;也许您可以从列表中回收旧的路由器。

答案3

我怀疑廉价路由器制造商的用例是您唯一要做的就是连接到外部互联网。您为什么要在家庭网络上的设备之间进行通信?

他们应该做的正确的事是在执行 DHCP 时自动添加 DNS 条目,并且当 DHCP 租约到期且未续订时删除 DNS 条目。

您可以使用 OpenWRT 来实现这一点。您还可以设置自己的 dhcp/dns 服务器,并将其用于 DHCP,而不是使用廉价路由器。

答案4

正如其他人提到的,自定义固件有一个“如何”问题,而“为什么”问题在于思科不希望需要该功能的小型企业跳过他们的一些低端企业路由器。一切都是“一分钱一分货”。对于一家拥有 5 名员工但需要 DNS 的小公司来说,这将是一个不错的 50 美元解决方案。对于思科来说太便宜了,而且考虑到大多数家庭用户不需要 DNS,为什么要把它放在那里?

此外,这些设备可能往往无法满足上述目的。家用路由器确实没有足够的能力同时执行 NAT、DHCP 和 DNS。虽然我确信通过安装自定义固件可以实现这一点,但它的性能可能不如预期。

相关内容