DNSMasq 如何与我的路由器集成?

DNSMasq 如何与我的路由器集成?

语境

我已成功在 Debian 机器上安装了 DNSMasq,一切似乎都正常。以下是我所做的:

  1. 使用以下方式安装 DNSMasqsudo apt-get install dnsmasq

  2. 更新文件/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
    

192.168.0.1 是我的 ISP 路由器的 IP。

  1. 关闭 ISP 路由器上的 DHCP
  2. 重新启动 DNSMasq 服务sudo service dnsmasq restart

这一切都很棒,但我对网络还很陌生,有一系列的问题:

  1. DNSMasq 如何与路由器通信?我的意思是,它如何告诉路由器从那时起应该开始使用 DNSMasq 的 DHCP 服务器?是否有特定的协议,DNSMasq 通过该协议与路由器通信,还是 DHCP 本身?

  2. 为什么我不需要配置我的设备(Android 手机和台式电脑)来使用 DNSMasq 的 DNS 服务器?[这个问题的答案可能与上面的问题相同,但无论如何...]

  3. 有没有办法只使用 DNSMasq 进行 DNS 处理,并让路由器的 DHCP 服务器“与”DNSMasq 的 DNS 服务器“对话”或“使用”它?这样我就不需要关闭路由器的 DHCP 服务器了。

正如我所说,我是一个新手,但我在网上找不到这些问题的答案。

答案1

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

告诉客户端使用192.168.0.1作为默认路由。DNSmasq 还将获取配置/etc/resolv.conf从正在运行的机器配置上游 DNS 服务器来解析 LAN 之外的地址。

您可以在与 DNS 服务器不同的服务器上运行 DHCP 服务器。但您必须跟踪客户端及其 IP 和相应的名称。在小型网络中,您可以轻松分配静态 IP 地址和名称,但您不想这样做。还有一个选项可以从 DHCP 服务器动态更新 DNS 记录,这称为动态 DNS 更新 (DDNS),但需要更多配置。

相关内容