為什麼 DHCP 伺服器需要靜態 IP 位址?

為什麼 DHCP 伺服器需要靜態 IP 位址?

我正在使用虛擬機器嘗試各種網路設定。當我在 Windows Server 上設定 DHCP 角色時,它需要靜態IP。我無法理解為什麼這是必要的技術的觀點看法。

我對DHCP的理解是,客戶端在網路上廣播DHCP Discovery請求,網路上的任何裝置都可以回應。因此 DHCP 伺服器需要一個 IP 位址,但為什麼這個 IP 需要是靜態的呢? DHCP 伺服器可以從其他地方取得其位址,並且只要它仍然會回應廣播一個IP。

例如

  • 伺服器A,伺服器B客戶X都連接到同一個交換機
  • 伺服器A為 10.0.0.1,服務於 10.0.0.X/24
  • 伺服器A配置為僅將 IP 提供給伺服器B透過MAC過濾
  • 伺服器B取得其IP伺服器A,因此它存在於 10.0.0.X/24 上
  • 伺服器B服務 10.0.1.X/24
  • 客戶X連接並取得 IP伺服器B

當然,有一次客戶X取得IP來自伺服器B,將無法聯繫伺服器B直接,因為它們位於不同的子網路中。但這不是問題 - DHCP 請求(最初)是廣播,因此交換器上的每個人都會收到它。

忽略管理觀點,為什麼我不能

  • 具有靜態 IP 的主 DHCP 伺服器,它只為其他 DHCP 伺服器提供服務
  • “輔助” DHCP 伺服器的位址範圍
  • 從「輔助」DHCP 伺服器取得的用戶端位址範圍

有沒有技術的DHCP 伺服器的原因必須有靜態IP嗎?

答案1

我對DHCP的理解是,客戶端廣播網路上的 DHCP 發現請求,網路上的任何裝置都可以回應。

用戶端也可以發出單播 DHCP 請求,更新請求是單播發出的,因此用戶端直接向 DHCP 伺服器請求。如果 DHCP 改變了他原來的 IP 位址怎麼辦?續訂將會失敗,下一個請求將以廣播方式發出。這不會優化您的網路流量。

微軟:

續約租約 當原始租約時間(稱為 T1)過去了 50% 時,DHCP 用戶端首先嘗試續約其租約。此時,DHCP 用戶端會向最初授予其租約的 DHCP 伺服器發送單播 DHCPRequest 訊息。如果伺服器可用,且租約仍然可用,則伺服器會使用單播 DHCPAck 訊息進行回應,並續訂租約。

來源

國際標準委員會:

Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:ac:18:75
Sending on   LPF/eth0/00:0c:29:ac:18:75
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 << First request
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPOFFER from 10.0.0.253
DHCPACK from 10.0.0.253
bound to 10.0.0.6 -- renewal in 133 seconds.



DHCPREQUEST on eth0 to 10.0.0.253 port 67 << Renewal
DHCPACK from 10.0.0.253
bound to 10.0.0.6 -- renewal in 119 seconds.
DHCPREQUEST on eth0 to 10.0.0.253 port 67
DHCPACK from 10.0.0.253
bound to 10.0.0.6 -- renewal in 118 seconds.

然而,一旦租約被授予,未來的 DHCPREQUEST/RENEWAL 訊息將直接單播到 DHCP 伺服器

來源

答案2

DHCP 伺服器必須具有已配置的 IP 位址,以便它可以知道哪些作用域本地連接到實體接口,以及哪些作用域只能透過 DHCP 中繼提供服務。

忽略管理的角度,

抱歉,但我認為嘗試揮手離開並忽略運行網路的實際問題是愚蠢的。對於大多數網路來說,獲取有效的 IP 位址至關重要。您絕對不會希望您的 DHCP 伺服器因為無法取得自己的有效位址而失敗。軟體和協定旨在在常見的實際情況下工作。你所描述的似乎為事情創造多個失敗的地方,而幾乎沒有或根本沒有真正的收穫

如果您確實想要對 DHCP 伺服器進行某種動態配置,您可能應該考慮使用組態管理系統來強制執行 DHCP 伺服器上的設置,而不是嘗試使用 DHCP 來設定 DHCP 伺服器。

答案3

從技術上講,DHCP 伺服器必須有一個已知的在初始發現資料包之後發送的資料包的 IP 位址。該位址通常在啟動時需要知道,因此它幾乎是靜態的。它不必 (IIRC) 位於同一子網路上,DHCP 中繼才能運作,但如果沒有到其指派的子網路的路由,它就無法運作。

如果您確實想要這樣做,您可以使用虛擬介面進行一些安排,以便您的實體適配器(伺服器 B)在您線路上的兩個子網路上都擁有 IP 位址(一個 DHCP,另一個靜態)。

與 Zoredache 一樣,我建議您確實應該堅持為線路設定 DHCP 伺服器。大多數 DHCP 伺服器可讓您以各種方式對裝置進行分類(例如:MAC 位址的一部分)並將它們指派給子網路的不同部分。然後,您可以為這些小節指定不同的防火牆規則。

安全性沒有區別,因為任何客戶端都可以在這兩種情況下設定自己的靜態位址。

相關內容