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

EML*_*EML 31 router dns dhcp

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

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

Aln*_*tak 31

DNS协议实际上相当复杂,尤其是递归函数,大多数路由器甚至不能正确代理DNS并符合DNS RFCs,更不用说作为一个合适的DNS服务器了。请参阅RFC 5625

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

哦。免责声明 - 我写了那个 RFC。

  • @DaveInCaz TL;DR 版本 - DNS 协议(尤其是递归函数)对于大多数路由器供应商来说太复杂了,无法正确实现。 (2认同)

sam*_*amy 13

使用 Linksys 的 WRT* 系列等可闪存路由器,您可以安装OpenWRTTomato;这两个固件应该可以让您访问广泛的工具。

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