Dns

我只使用 dhcpcd,我想讓 /etc/resolv.conf 添加搜尋 domain.local

  • November 23, 2020

我有許多不使用網路管理器的機器,只使用 dhcpcd 來設置 IP 地址。比如我的樹莓派 4。我已經在 /etc/dhcpcd.conf 文件中靜態分配了 IP 地址,並且可以正常工作,我很高興。我想要做的是,如果我輸入 nslookup machine2 (例如),它將配置的域附加到該查找。

在另一台使用 dhcpcd 的機器(我的 ArchLinux PC)中,我通過 dhcpcd 將地址配置為使用 dhcp(這次不是靜態的)。在我的 DHCP 伺服器上,我對其進行了設置,以便將“域名”欄位指定為返回給客戶端的選項。結果是我的 /etc/resolv.conf 文件更新為以下行:

域 mydomain.local

由於在這個文件中設置了這個“域”值,我只需鍵入 nslookup machine2,它會將 mydomain.local 附加到該查詢,我的 dns 伺服器會解析 machine2.mydomain.local 的 fqdn 的 IP。

所以理想情況下,我想模仿這個設置,這樣我的樹莓派 pi4 就會做同樣的事情,但是它是靜態設置的,那麼我該怎麼做呢?

請注意,我已經嘗試將“search domain.local”添加到 /etc/resolv.conf 文件中,它會執行我想要它執行的操作,但是這些設置在重新啟動時會失去,因此我無法在此處設置此值. 我需要使用 dhcpcd 的適當工作解決方案。

更新:

我被要求將我的 /etc/resolv.conf 的輸出放在這裡:

$ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 10.10.0.1

如果我(最後)理解正確,那麼您已經使用 dhcpcd.conf(不是 dhcpd.conf)配置了您的網路

我想這種配置採用類似於以下的形式:

interface eth0
static ip_address=192.168.2.31/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1 8.8.8.8 4.2.2.1

要設置域和搜尋域,您應該能夠添加如下內容:

static domain_name=example.com
static domain_search=example.com

換句話說,您只需要將 設置domain_search為靜態選項。

有關參考,請參見此處http://www.techsneeze.com/configuring-static-ip-raspberry-pi-running-raspbian/


正如OP所指出的,這個選項隱藏得很好。推斷是因為 dhcpcd 是圍繞 DHCP 概念建構的網路配置工具。在 dhcpcd 中,您通過定義(部分)DHCP 響應來設置靜態配置。所以在這種情況下,答案就是簡單地添加domain_search到靜態定義的值。

記錄不佳的原因可能與 DHCP 允許添加自定義 DHCP 選項有關。因此,dhcpcd 不可能列出您可以靜態定義的每個選項。碰巧domain_search它不是核心 DHCP 標準的一部分,它由RFC 3397固定。

那就是說。它可以在手冊中更好地描述。

引用自:https://unix.stackexchange.com/questions/557571