我很高兴使用旧电脑作为路由器。两张网卡,Debian wheezy,NAT,...一切都很好。我的家庭网络使用静态 IP,我对此也很满意。
然而,我的家庭网络上的每个盒子都需要我的提供商的名称服务器在其自己的/etc/resolv.conf
文件中互联网上班。我认为这将是可行的方法,但我注意到,当在商用路由器上使用笔记本时,/etc/resolv.conf
一旦我连接到路由器,文件就会被覆盖dhclient
,并且只列出路由器自己的 IP 地址,没有外部名称服务器。
我认为(1)实现这一点的唯一方法是路由器有某种方式接受客户端的名称解析请求并将它们传递到提供商的名称服务器;(2)这实际上是一个非常方便的解决方案,因为它将允许我将我的路由器的 IP 放入任何客户端/etc/resolv.conf
,而不必担心告诉每个客户端我的提供商的名称服务器。
这些假设 (1, 2) 正确吗?
这是隐藏在 DHCP 中的功能,要求我的路由器成为 DHCP 服务器,还是也可以使用静态 IP?
我需要在路由器上配置什么才能启用转发/处理客户端的名称服务器请求?
答案1
你的假设是正确的。然而,您在商用路由器上观察到的并不是 DHCP 功能,而是一个单独的程序,即名称服务器。绑定名称服务器是名称服务器的一个非常常见的选择。您将其安装在路由器上。然后,您重新配置 DHCP,因为 DHCP(d) 可以告诉客户端要使用哪个名称服务器。为了告诉您如何重新配置您的 dhcpd,我需要知道它是什么。
这是 DNS 操作指南。第 3 节告诉您如何将 bind 设置为转发和缓存名称服务器。这个想法是,每个本地客户端都会向您的服务器发出 DNS 请求,服务器依次进行查找并将结果返回给客户端。在执行此操作时,它会缓存请求和响应,以便当另一个客户端请求相同的主机名时,您的本地名称服务器可以立即回答问题,而无需通过互联网发送数据包。
答案2
是的,(1) 是正确的,它实际上是一个典型的配置。在路由器上运行 DNS 缓存代理。
对于没有特殊要求的小型网络,我建议域名解析。它体积小、重量轻(我的 16 MB RAM 家用路由器就是用它运行的)并且易于配置。除了作为 DNS 缓存代理之外,dnsmasq 还可以提供一些静态名称(以便您可以为您的家用计算机定义名称),并且如果您需要的话,还可以成为 DHCP 服务器(但如果您不这样做,则不必激活此功能)不想要它)。
看如何使用主机名从 LAN 访问计算机获取 Dnsmasq 教程。