DHCP 在 Ubuntu 網路安裝中失敗:DHCPDECLINE
我正在嘗試在 Cisco UCS C240 機架式伺服器上進行 Ubuntu 12.04 的網路安裝,使用 Cobbler 進行配置。Cobbler 正在管理我的 DHCP 伺服器 (ISC),該伺服器配置為根據伺服器的 MAC 地址分發固定 IP 地址。這是 cobbler 自動生成的 /etc/dhcp/dhcpd.conf 中的相關部分:
group { host generic4 { hardware ethernet 2a:2c:b2:b4:f7:1a; fixed-address 10.10.0.153; option host-name "compute-3"; option subnet-mask 255.255.255.0; option routers 10.30.0.1; filename "/pxelinux.0"; next-server 10.10.0.131; } }
機器 (compute-3) 能夠成功進行 PXE 引導並啟動 Ubuntu 安裝過程。但是,當安裝程序到達嘗試通過 DHCP 獲取 IP 地址的部分時,它會失敗。(此時,如果我手動配置具有相同 IP 地址/網路遮罩和網關的網路,則安裝成功完成)。
當我在執行 DHCP 伺服器的 cobbler 節點上檢查 /var/log/syslog 時,我看到伺服器提供了一個 IP 地址,但它被客戶端拒絕了:
Mar 11 21:51:03 compute-1 dhcpd: DHCPDISCOVER from 2a:2c:b2:b4:f7:1a via eth2 Mar 11 21:51:03 compute-1 dhcpd: DHCPOFFER on 10.10.0.153 to 2a:2c:b2:b4:f7:1a via eth2 Mar 11 21:51:03 compute-1 dhcpd: DHCPREQUEST for 10.10.0.153 (10.10.0.131) from 2a:2c:b2:b4:f7:1a via eth2 Mar 11 21:51:03 compute-1 dhcpd: DHCPACK on 10.10.0.153 to 2a:2c:b2:b4:f7:1a via eth2 Mar 11 21:51:03 compute-1 dhcpd: DHCPDECLINE of 10.10.0.153 from 2a:2c:b2:b4:f7:1a via eth2: not found
根據我的閱讀,客戶端將在進行 ARP 探測後發送 DHCPDECLINE 以查看網路上的另一台機器是否已經具有提供的 IP 地址。我認為 Ubuntu 的安裝程序使用 BusyBox 的 udhcpc,從查看程式碼來看,這似乎是 udhcpc 所做的。
但是,當我從 cobbler 節點使用 arping 時,我無法在該網路上找到任何其他具有 10.10.0.153 的機器。也就是說,在安裝的 DHCP 程序開始之前,我確實看到 compute-3 的 MAC 地址
2a:2c:b2:b4:f7:1a
與該 IP 地址相關聯。# arping 10.10.0.153 ARPING 10.10.0.153 60 bytes from 2a:2c:b2:b4:f7:1a (10.10.0.153): index=0 time=118.017 usec 60 bytes from 2a:2c:b2:b4:f7:1a (10.10.0.153): index=1 time=74.148 usec 60 bytes from 2a:2c:b2:b4:f7:1a (10.10.0.153): index=2 time=48.876 usec
可能導致這種行為的可能故障模式是什麼?為什麼客戶會認為其他人擁有該 IP 地址?或者,為什麼它可能會拒絕地址?
我在Google發現了一個類似的問題:http ://www.linuxquestions.org/questions/linux-networking-3/dhcpdecline-of-ipaddress-from-mac-via-interface-not-found-838369/
您的路由器選項有一個錯誤:它不在同一個子網中,因此無法被發現。
option routers 10.10.0.1
代替option routers 10.30.0.1
希望這有幫助!
如果 IP 地址已經在同一個子網上,dhcpd 將發送一個 ACK 後跟一個 DECLINE。
驗證沒有使用相同 IP 地址靜態配置的主機。