Pan*_*nos 3 domain-name-system dhcp linux router dnsmasq
语境
我已经在 Debian 机器上成功安装了 DNSMasq,一切似乎都在工作。这是我所做的:
安装 DNSMasq sudo apt-get install dnsmasq
/etc/dnsmasq.d/home.dns使用以下内容更新文件:
# General configuration
domain-needed
bogus-priv
domain=dummy.home
dhcp-range=192.168.0.10,static,48h
dhcp-option=3,192.168.0.1
# Device IPs
dhcp-host=00:00:5e:00:52:41,desktop,192.168.0.10
dhcp-host=00:00:5e:00:52:12,android,192.168.0.11
Run Code Online (Sandbox Code Playgroud)
192.168.0.1 是我的 ISP 路由器的 IP。
sudo service dnsmasq restart这一切都很棒,但我是网络新手,有很多问题:
DNSMasq 如何与路由器通信?我的意思是,它如何告诉路由器它应该从那时起开始使用 DNSMasq 的 DHCP 服务器?是否有特定的协议,即 DNSMasq 与路由器通信,还是 DHCP 本身?
为什么我不必配置我的设备(安卓手机和台式电脑)来使用 DNSMasq 的 DNS 服务器?[这个问题的答案可能和上面那个问题的答案一样,但无论如何……]
有没有办法只将 DNSMasq 用于 DNS 并让路由器的 DHCP 服务器“与”或“使用”DNSMasq 的 DNS 服务器?这样我就不需要关闭路由器的 DHCP 服务器了。
正如我所说,我是一个新手,但我无法在网络上的任何地方找到这些问题的答案。
DNSmasq 不需要与您的路由器通信。DNSmasq 服务刚刚接管了 DNS 和 DHCP 服务,您的路由器不必再提供这些服务。由于您在路由器上禁用了 DHCP 服务,因此只有运行 DNSmasq 的计算机的 DHCP 服务器会响应 DHCP 请求。
您的 DHCP 客户端(Android 手机和台式机)从 DHCP 服务器获取所有需要的信息,例如 IP 地址和网络掩码、DNS 服务器和默认路由器。来自man dnsmasq:
默认情况下,dnsmasq 向 DHCP 客户端发送一些标准选项,网络掩码和广播地址设置为与运行 dnsmasq 的主机相同,DNS 服务器和默认路由设置为运行 dnsmasq 的机器的地址。
在你的情况下,你已经设置
dhcp-option=3,192.168.0.1
Run Code Online (Sandbox Code Playgroud)
它告诉客户端192.168.0.1用作默认路由。DNSmasq 还将从它运行的机器中获取/etc/resolv.conf 中的配置,以配置上游 DNS 服务器以解析 LAN 外的地址。
您可以在与运行 DNS 服务器不同的服务器上运行 DHCP 服务器。但是您必须跟踪客户端及其 IP 和相应的名称。在小型网络中,您可以轻松分配静态 IP 地址和名称,但这不是您想要做的。还有一个选项可以从 DHCP 服务器动态更新 DNS 记录,这称为动态 DNS 更新 (DDNS),但需要更多配置。