Linux

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

  • October 11, 2020

語境

我已經在 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. 為什麼我不必配置我的設備(安卓手機和台式電腦)來使用 DNSMasq 的 DNS 伺服器?

$$ The answer to this one may be the same as from the question above, but anyways… $$ 3. 有沒有辦法僅將 DNSMasq 用於 DNS,並讓路由器的 DHCP 伺服器“與”或“使用”DNSMasq 的 DNS 伺服器“對話”?這樣我就不需要關閉路由器的 DHCP 伺服器。

正如我所說,我是新手,但我在網路上的任何地方都找不到這些問題的答案。

DNSmasq 不需要與您的路由器通信。DNSmasq 服務只是接管了 DNS 和 DHCP 的服務,您的路由器不再需要提供這些服務。由於您已禁用路由器上的 DHCP 服務,因此只有執行 DNSmasq 的電腦的 DHCP 伺服器會響應 DHCP 請求。

您的 DHCP 客戶端(安卓手機和台式機)從 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),但需要更多配置。

引用自:https://serverfault.com/questions/922017