
我有一個基於微控制器的設備,帶有引導程式和應用程式。該設備有一個乙太網路適配器。引導程式使用 IP/UDP 來刷新應用程式映像。該應用程式具有功能齊全的 TCP/IP 堆疊。
這兩個元件都使用 DHCP 來取得 IP 位址。奇怪的是,兩者在 DHCP 過程中得到不同的結果。兩個 DHCP 用戶端都設定為使用相同 MAC 位址的 DHCPDISCOVER 訊息。
DHCP 伺服器應該在 DHCPOFFER 中發送什麼?當 IP 位址未在其他地方分配時,它是否應該為相同的 MAC 位址提供相同的 IP 位址?編輯:最後一次地址分配是在 10 秒前。
DHCP 伺服器在 Linux 主機上運作。我該如何配置這樣的車輛才能監控和了解這種行為?
編輯:我無法控制 DHCP 伺服器設定。管理員希望保持完全控制。
引導程式或應用程式中是否存在其他可能影響 DHCP 結果的 DHCP 設定?
答案1
這取決於您的租用時間設定。如果足夠長,那麼您的應用程式將獲得相同的地址。
但如果您想要保證,請在伺服器上聲明您的 Mac 的固定位址。
如果您使用 dhcpd,則類似:
host foo {
hardware ethernet 00:11:22:33:44:55;
fixed-address 1.2.3.4;
}
實際上是的,有一種方法可以透過設定選項 (50) 在 DHCPDISCOVERY 中建議 IP requested IP address
。但我不知道伺服器是否承認這一點。
還有選項 (51) IP address lease time
,可以在引導程式中使用來建議更長的時間,但我也不確定伺服器回應。
更多資訊RFC2131
答案2
當 DHCP 用戶端發送 DHCPDISCOVER 時,伺服器應丟棄 DHCP 註冊。有些伺服器將獲得相同的 IP 位址。這並沒有錯,但甚至沒有必要。
若要保留 DHCP 位址,用戶端必須傳送帶有快取 IP 配置的 DHCPACQUIRE。 DHCP 伺服器將確認或拒絕。在這種情況下,發送 DHCPDISCOVER 並不是一個好主意。