Bind

關於主機名的 dhcpd.conf 和 ifcfg 文件的 ddns 正確設置

  • December 1, 2013

我最近使用 ISC dhcpd 4 和綁定 9 設置了動態 dns。除了網路上少數無法解析的主機外,一切都正常執行。經過調查,我發現它們已被動態添加到綁定區域文件中,但它們的域名附加了主機名。

例如 server1 很好,但 server2 無法解析:

$TTL 1800   ; 30 minutes
server1                 A   192.168.0.10
           TXT "00ecbb5990a60bb0b138272611cae0f56d"
server2.reh.favsys.net  A   192.168.0.11
           TXT "00ecbb5990a60bb0b138272611cae0f56d"

我檢查了 server2 以查看有什麼不同我發現在 /etc/sysconfig/netowrk-scripts/ifcfg-eth0 文件中,DHCP_HOSTNAME 選項設置為 fqdn: DHCP_HOSTNAME=server2.my.domain.net 其中 server1 剛剛主機名:DHCP_HOSTNAME=server1

對,所以我想我只需要找到所有存在此問題的伺服器並將介面文件更改為僅包含主機名即可。

這很好,可以做到,但這是配置介面文件的正確方法嗎?DHCP_HOSTNAME 選項是否應該是非限定名稱。

或者我可以在 DHCP 伺服器的配置文件中打開一個設置來阻止這種行為的發生。如果有一種方法可以配置 dhcp 以在客戶端發送其主機名完全限定的情況下忽略域部分,我寧願採用這種方法。

我目前的 dhcpd.conf 選項是:

include "/etc/rndc.key";
ddns-update-style interim;
ddns-domainname         "my.domain.net.";
ddns-rev-domainname     "in-addr.arpa.";
ddns-updates            on;
ignore client-updates;
option domain-search "my.domain.net";
default-lease-time 1800;
max-lease-time 7200;
log-facility local7;
authoritative;

我還嘗試使用允許客戶端更新配置 dhcp 伺服器,看看它是否會有所作為。然而,這只是導致區域文件中的動態更新條目,如下所示:

$ORIGIN my.domain.net.
$TTL 1800   ; 30 minutes
server1                 A   192.168.0.10
           TXT "009ddasdr32rfdsfksdfpdsadsad3343fcdsd"
$ORIGIN my.domain.net.my.domain.net.
server2             A   192.168.0.11
           TXT "dasdasdsadasdsddvc0b1382726dsdadasdsd"

使用重複的域名創建了一個新的來源,但主機名仍然無法解析。

在使用 dhcp 並為 ddns 綁定時,我非常感謝有關在客戶端上配置主機名的正確方法的任何指示,謝謝。

編輯添加子網範圍對不起,這裡的範圍遺漏是在範圍內指定的子網選項之一的範例

subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.10 192.168.0.250;
 next-server 192.168.0.2;
 filename "/pxelinux.0";
 option broadcast-address 192.168.0.255;
 option routers 192.168.0.1;
 option domain-name-servers 192.168.0.3;
 option domain-name "my.domain.net";

}

ddns-domainname和選項不是必需的ddns-rev-domainname,因為您的樣式是臨時的(應該是)。

ignore client-updates應該忽略客戶認為他們的 FQDN 應該是什麼。你這樣做是正確的。

奇怪的是,您沒有指定option domain-name "example.net"example.net 是您的域名。這可以是全域的,也可以是特定於範圍的(您出於某種原因省略了範圍;它可能很重要)。

但是,我發現問題在於它認為您的第二台伺服器的 DNS 後綴是my.domain.net.my.domain.net.. 它認為這是因為,儘管它正確地忽略了伺服器關於其 DNS 後綴(或域名)的斷言,但 server2 告訴 DHCP 伺服器它的主機名(將添加 FQDN 後綴)是server2.my.domain.net. 主機名中不應包含任何.s。雖然 dhcpd 沒有刪除或拒絕它很奇怪,而且可能是一個錯誤功能,但 server2 配置錯誤,這是唯一可以糾正這個問題的地方。

在建立臨時方法之前,對於靜態租約,可以使用ddns-hostname選項來覆蓋客戶端的斷言。這不再可用。

即使是現在,對於從 DHCP 伺服器中指定的靜態租約(大多數 linux 和其他一些東西,但不是 windows)接受其主機名的客戶端,您可以從 DHCP 伺服器控制此行為。但是,這聽起來不像描述您的環境。

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