DHCP中繼
在多 VLAN 網絡中為什么不能直接用 DHCP?
比如你現在的網絡是:
-
PC 在 VLAN10、VLAN20 中
-
DHCP服務器(Router0)在另一個網段(比如
192.168.100.0/24
) -
PC 的 DHCP Discover 是廣播,無法跨越三層交換機路由到路由器
-
所以,客戶端永遠收不到 IP
DHCP 中繼就是為了解決廣播不能跨網段的問題,讓多 VLAN 網絡中不同子網的客戶端也能從一個集中 DHCP 服務器獲取 IP。
拓撲圖
三層交換機作為DHCP中繼,路由器為DHCP服務器
這里配置繼承三層路由通信,具體說明路由器的配置和三層交換機的額外配置,配置之前,需要保證vlan 10和vlan 20之間能夠通信
路由器配置
配置f0/0的ip地址:
Router(config)#ip address 192.168.30.1Router(config-if)#no shutdown
配置DHCP池:
Router(config)#service dhcpRouter(config)#ip dhcp pool vlan10 //pc從路由器獲取ipRouter(dhcp-config)#network 192.168.10.0 255.255.255.0 //ip網段Router(dhcp-config)#default-router 192.168.10.254 //網關Router(config)#ip dhcp pool vlan 20Router(dhcp-config)#network 192.168.20.0 255.255.255.0Router(dhcp-config)#default-router 192.168.20.254
配置vlan 10、vlan 20域返回報文要經過的接口ip:
Router(config)#ip route 192.168.10.0 255.255.255.0 192.168.30.254 //不設置路由器將不知道包從哪個接口返回pcRouter(config)#ip route 192.168.20.0 255.255.255.0 192.168.30.254
三層交換機配置
將f0/3端口從二層交換模式改成三層路由模式:
Switch(config)#int f0/3Switch(config-if)#no switchport
配置f0/3的網關:
Switch(config)#int f0/3Switch(config-if)#ip address 192.168.30.254 255.255.255.0
配置DHCP中繼:
Switch(config)#int vlan 10Switch(config-if)#ip helper-address 192.168.30.1Switch(config)#int vlan 20Switch(config-if)#ip helper-address 192.168.30.1
pc獲取ip的步驟大概如下,通過發送協議報文來獲取可用的ip地址:
pc會先廣播發送一個dhcp discover報文來尋找服務器
這里可以看到,路由器從中繼dhcp(三層交換機)收到的包里面有目標mac地址,因為中繼器和路由器之間是單播通信:
DHCP動態分配IP
拓撲圖
也是一樣的繼承三層交換機跨vlan間通信的配置,再配置DHCP前需要vlan 10和vlan 20能進行通信。
三層交換機的額外配置
配置DHCP池:
Switch(config)#ip dhcp pool vlan10Switch(dhcp-config)#network 192.168.10.0 255.255.255.0Switch(dhcp-config)#default-router 192.168.10.254Switch(config)#ip dhcp pool vlan20Switch(dhcp-config)#network 192.168.20.0 255.255.255.0Switch(dhcp-config)#default-router 192.168.20.254
測試
成功自動獲取ip