ExtremeXOS 網路架構大師

Advanced Networking :: DHCP & BootP Relay

👋 歡迎來到網路架構實驗室

我是您的講師。今天我們要探討的是網路運作的基石——DHCP,以及在大型企業網路中不可或缺的 Extreme BootP Relay 技術。 我會用最直白的方式,帶您從理論走到 ExtremeXOS 的實戰配置。

1

核心概念 (Concept)

一句話定義

DHCP (Dynamic Host Configuration Protocol) 是一種網路協定,負責「自動」分配 IP 位址、子網路遮罩、閘道器 (Gateway) 等網路設定給用戶端設備,省去人工逐一設定的繁瑣。

生活化比喻

想像您去入住飯店

  • 您不需要自己帶床(靜態 IP),只需到櫃檯 Check-in。
  • 櫃檯(DHCP Server)會給您一張房卡(IP 位址)。
  • 這間房是有期限 (Lease Time) 的,退房時間一到,如果您沒續約,房間就會被收回並租給下一位客人。
2

運作原理 (Mechanism)

1. 標準 DHCP 流程 (D.O.R.A.)

DHCP 的互動就像一場四步驟的談判,我們稱為 DORA 流程。

sequenceDiagram participant Client as 用戶端 (Client) participant Server as DHCP 伺服器 Note over Client: 剛開機,沒有 IP
(0.0.0.0) Client->>Server: 1. DHCP Discover (廣播 Broadcast)
"有人在嗎?我需要一個 IP!" Server-->>Client: 2. DHCP Offer (單播/廣播)
"我是伺服器,這個 IP (192.168.1.10) 給你好嗎?" Client->>Server: 3. DHCP Request (廣播)
"好的,我決定租用這個 IP 了!" Server-->>Client: 4. DHCP Ack (單播)
"確認完畢,IP 正式租給你,期限 8 小時。" Note over Client: 取得 IP,開始上網

2. Extreme BootP Relay 的關鍵角色

問題: DHCP Discover 是「廣播 (Broadcast)」封包。路由器(或 L3 Switch)預設不會轉發廣播封包。如果 DHCP 伺服器和用戶端在不同的 VLAN,用戶端永遠喊不到伺服器。

解法: 開啟 BootP Relay(Cisco 稱為 IP Helper)。Switch 會攔截用戶端的廣播,將其「封裝」成單播 (Unicast),直接寄給遠端的 DHCP Server。

ExtremeXOS 關鍵參數與指令:

  • UDP Ports: Server (67), Client (68)。
  • BootPrelay: ExtremeXOS 使用連寫的關鍵字。

# ExtremeXOS Configuration Example

# 1. 啟用 BootP Relay (啟用所有 VLAN 或指定 VLAN)

enable bootprelay all


# 2. 指定 DHCP Server IP 並綁定特定 VLAN

# 語法:configure bootprelay vlan <名稱> add <伺服器IP>

configure bootprelay vlan vlan_marketing add 10.0.0.1


# 3. 驗證設定 (Check Configuration)

show bootprelay


# --- 預期輸出範例 (Output Example) ---

Switch.1 # show bootprelay
Bootprelay : Enabled on virtual router "VR-Default"
DHCP Relay Agent Information Option : Enabled on virtual router "VR-Default"
DHCP Relay Agent Information Check : Enabled on virtual router "VR-Default"
DHCP Relay Agent Information Policy : Replace
DHCP Relay Agent Information Remote-ID : "default"
Bootprelay servers for virtual router "VR-Default":
Destination: 10.0.0.1
DHCP/BOOTP relay statistics for virtual router "VR-Default"
Received from client = 2 Received from server = 2
Requests relayed = 2 Responses relayed = 2
DHCP Discover = 1 DHCP Offer = 1
DHCP Request = 1 DHCP Ack = 1
DHCP Decline = 0 DHCP NAck = 0
DHCP Release = 0
DHCP Inform = 0
DHCP Information Option 82 packets statistics for virtual router "VR-Default"
Received from client = 0 Received from server = 2
Requests replaced = 0 Responses dropped = 0
Opt82 added to Requests = 2
Note: Default Remote-ID : System MAC Address
3

架構視覺化 (Visuals)

下圖展示了跨 VLAN 的 DHCP 運作架構。請注意 Switch 如何扮演 "Relay Agent" 的角色,打破廣播網域的限制。

graph TD %% 定義樣式類別 classDef largeText font-size:18px,font-weight:bold,stroke-width:2px; classDef serverNode fill:#bbf,stroke:#333,color:#000; classDef switchNode fill:#f9f,stroke:#333,color:#000; classDef clientNode fill:#bfb,stroke:#333,color:#000; subgraph VLAN10 ["VLAN 10 - User Net"] PC["用戶端 PC"] end subgraph CoreSwitch ["Core Switch (L3)"] L3_IF["VLAN 10 介面
IP: 192.168.10.1"] Relay["BootP Relay Agent
(攔截廣播 -> 轉單播)"] end subgraph VLAN100 ["VLAN 100 - Server Farm"] DHCPServer["DHCP 伺服器
IP: 10.0.0.1"] end PC -- "1. DHCP Discover (Broadcast)" --> L3_IF L3_IF -.-> Relay Relay == "2. Unicast Forward (UDP 67)" ==> DHCPServer DHCPServer == "3. Reply (Unicast)" ==> Relay Relay -- "4. Forward to Client" --> PC %% 套用樣式 class PC clientNode,largeText; class L3_IF,Relay switchNode,largeText; class DHCPServer serverNode,largeText;

圖解:BootP Relay 跨網段轉發機制 (可左右滑動檢視完整圖表)

4

實務應用場景 (Use Case)

案例:大型企業園區網路

情境:某科技園區有 5 棟大樓,共 20 個部門 (20 個 VLANs)。 IT 部門不希望在每個 VLAN 都架設一台 DHCP Server。

部署策略

  • 集中管理: 在核心機房建立一組 DHCP 叢集 (Cluster)。
  • BootP Relay: 在每一棟大樓的 Core Switch (Extreme Switch) 上啟用 `bootprelay`。
  • Scope 設定: DHCP Server 依據封包來源的 Gateway IP (GIADDR),判斷要發放哪個網段的 IP (例如來自 192.168.10.1 的請求,就發 192.168.10.x 的 IP)。

優缺點分析

優點: 管理簡化、節省伺服器授權費、IP 紀錄集中化方便稽核。

缺點: 核心 DHCP Server 成為單點故障 (SPOF)。若 Relay 設定錯誤,整個部門會無法上網。

講師建議: 務必在 Server 端設定 Failover,並在 Switch 端設定多個 Relay 目標 IP 以備援。

5

隨堂測驗 (Quiz)

1. DHCP 取得 IP 的正確四步驟順序為何?

Request -> Offer -> Discover -> Ack
Discover -> Offer -> Request -> Ack
Discover -> Request -> Offer -> Ack
Ack -> Request -> Offer -> Discover

2. 在 ExtremeXOS 中,若要讓 VLAN 10 的用戶端能取得 VLAN 100 伺服器的 IP,必須設定什麼功能?

OSPF Routing
BootP Relay
IP Helper-Address
Port Mirroring

3. DHCP Server 使用哪一個 UDP Port 來接收 Client 的請求?

53
68
67
80

4. 為什麼 DHCP Discover 封包預設無法跨越 Router?

因為它是廣播封包 (Broadcast),Router 預設會阻擋廣播。
因為 TTL 設定為 1。
因為封包太大。
因為它被加密了。

5. 在 ExtremeXOS 指令 `configure bootprelay vlan hr_dept add 10.0.0.1` 中,10.0.0.1 代表什麼?

Client 的 IP
VLAN 的 Gateway IP
DHCP Server 的 IP
Switch 自己的管理 IP