解析具有多個子網路的 dnsmasq 伺服器的伺服器主機名

解析具有多個子網路的 dnsmasq 伺服器的伺服器主機名

我有一個自製的Linux路由器,運行dnsmasq。它有兩個不同的網卡,客戶端透過它們進行連接;其中一台有子網192.168.1.,一台有子網192.168.2.。我的/etc/dnsmasq.conf看起來像這樣:

except-interface=enp1s0
dhcp-range=interface:wlp2s0,192.168.1.10,192.168.1.25,255.255.255.0,48h
dhcp-range=interface:enp0s29f7u4,192.168.2.10,192.168.2.25,255.255.255.0,48h

解析客戶端可以在子網路之間進行,但我無法從兩個子網路解析伺服器本身的主機名稱。如果我使用新增靜態規則,則address=/name/IP必須選擇其中一個子網,並且無法從其他子網路執行 ping 操作(除其他外)。例如,如果我設定

address=/name/192.168.1.1

然後我可以從子網路解析主機名192.168.2.,但 ping 沒有得到答案。我該如何解決這種情況?我希望不必橋接介面或類似的東西。

答案1

據我了解,在您的情況下,伺服器每個子網路都有一個位址:192.168.1.1,另一個可能是192.168.2.1

我想您希望客戶端接收其對應子網路的伺服器位址。

我遇到了同樣的問題,在中找到了答案http://t7994.network-dns-dnsmasq-general.dnstalk.us/multi-homed-server-with-same-hostname-on-2-subnets-t7994.html

檢查 dnsmasq 手冊頁中的「-y, --localise-queries」。

您也可以將「localise-queries」放入 ​​dnsmasq.conf 中,並將兩個伺服器位址項目放入 /etc/hosts 檔案中。

相關內容