Systemd
DHCP 伺服器不會發送 DHCP 報價中的所有 DNS 伺服器
我有一個 DHCP 伺服器,它也安裝了一個 dns 伺服器,dnsmasq。我目前的 dnsmasq.conf 如下:
domain-needed bogus-priv filterwin2k address=/gateway.gw/192.168.10.1 interface=eth1 bind-interfaces
我使用 systemd 作為我的網路管理器,它具有以下配置:
[Match] Name=eth1 [Network] DHCPServer=yes DNS=192.168.10.1 DNS=8.8.8.8 [Address] Address=192.168.10.1/24 Broadcast=192.168.10.255 [DHCPServer] PoolOffset=110 PoolSize=20 EmitDNS=yes
有一個 Web 伺服器與 dhcp 伺服器在同一台機器上執行,我希望 dhcp 客戶端能夠查詢
gateway.gw
以訪問此 Web 伺服器,而無需更改任何配置。問題是 DHCP 伺服器沒有在 DNS 列表中發送其 IP,而是發送 8.8.8.8。因此,如果沒有明確地將網關設置為 DNS 伺服器,客戶端就不能使用域名gateway.gw
。在準備這個問題時,我一次又一次地嘗試,並意識到有時它甚至沒有發送
8.8.8.8
DNS 列表,我不知道這裡發生了什麼以及為什麼,在網路中是文盲。
bonus question ->
dhcp server 的配置文件其實是可以通過 配置的gateway.gw
,可以改變它的IP地址(請不要問為什麼!:)。有沒有辦法告訴 dnsmasq 使用 eth1 的 IP 地址(動態查找)來匹配gateway.gw
,而不是硬編碼它。注意:我不能使用 dnsmasq 的內置 dhcp 伺服器。我的 Web 伺服器實際上也配置了所有其他網路介面,我不想為一個介面編寫額外的程式碼。
我遇到了 systemd 的 dhcp 伺服器配置,而編寫它的這個人使用
[DhcpServer]
部分來添加 dns 伺服器。我使用的是[Network]
部分,因為本手冊在該部分下列出了它。但事實證明,在 DhcpServer 部分下列出 DNS 伺服器確實可以解決問題。注意:連結中的手冊也是正確的。我仔細閱讀了它,它說應該寫下 dns 伺服器以分發給相應部分的客戶端。