
我有一個自製的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 檔案中。