Networking

dnsmasq:不同客戶端的自定義名稱解析

  • November 18, 2017

我有一個執行 dnsmasq 來執行 DHCP 和 DNS 的網路。我的網路有幾個客戶端,每個客戶端都需要與主機通信(它們通過對 dnsmasq 的 DNS 查詢來完成master)。我現在想在同一個網路上執行多個主/客戶端組,並且我希望能夠輕鬆配置哪個客戶端與哪個主相關聯。

是否可以配置 dnsmasq 使其對不同客戶端的某個 DNS 查詢給出不同的響應?例如,如果10.0.2.23查詢masterI 希望結果為10.0.3.1. 但是,如果10.0.2.24查詢masterI 希望結果為10.0.3.2.

master我知道我可以通過在每個客戶的文件中創建一個條目來實現這一點/etc/hosts,但是如果這些資訊都在一個配置文件中(例如/etc/dnsmasq.d/masterclient.conf) ,我會很高興

TL;DR:顯式優於隱式

您可能還希望確保您在網路上執行的任何診斷程序也顯示每對成員之間的連接。

如果 dnsmasq 同時執行 dns 和 dhcp,則很容易解決“每個客戶端都知道他們的主”問題,並可以驗證正確的設置 - 通過不讓 dnsmasq 根據誰在查詢而做出不同的響應。

我建議您改為確保每個客戶端通過將其組作為其完全限定域名的一部分來專門詢問其主伺服器:

# make sure your dhcp clients use dnsmasq as dns & split them in groups
#  (you probably already do that baes on either mac or subnet)
dhcp-range=set:group1,10.0.2.0,10.0.2.23,255.255.255.0,4h
dhcp-range=set:group2,10.0.2.24,10.0.2.50,255.255.255.0,4h
dhcp-otion=option:dns-server,0.0.0.0

# based on tags, give them a dns search domain
dhcp-option=tag:group1,option:domain-search,pair1.local
dhcp-option=tag:group2,option:domain-search,pair2.local

# making the respective master address known to them
address=/master.pair1.local/10.0.3.1
address=/master.pair2.local/10.0.3.2

有多種方法可以根據不同的參數來決定哪個客戶屬於哪個組;根據決定客戶應該是哪個組的因素,我的範例拆分dhcp-range可能足夠或完全不合適。

警告:將客戶端重新配置到不同的組只能根據 DHCP 租用時間來完成 - 這不如 dns TTL 靈活。

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