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
192.168.0.1 是我的 ISP 路由器的 IP。
- 關閉我的 ISP 路由器上的 DHCP
- 重新啟動 DNSMasq 服務
sudo service dnsmasq restart
這一切都很好,但我是網路新手,有很多問題:
- DNSMasq 如何與路由器通信?我的意思是,它如何告訴路由器它應該從那時起開始使用 DNSMasq 的 DHCP 伺服器?是否有特定的協議,DNSMasq 與路由器通信,還是 DHCP 本身?
- 為什麼我不必配置我的設備(安卓手機和台式電腦)來使用 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),但需要更多配置。