DHCP工作流程:
(1)主機pc(client)通過網卡向外廣播發送DHCP Discover信息
》該數據包的源mac地址爲pc網卡mac地址,目的mac地址爲廣播mac地址(全F)
》DHCP使用UDP協議,源端口號(DHCP client)爲68,目的端口號(DHCP server)爲67
》源IP地址爲0.0.0.0,目的IP爲255.255.255.255
(2)DHCP服務器收到PC的DHCP Discover廣播包,將在本地DHCP配置中尋找匹配的地址池,從中分配一個未被使用的IP地址併發送DHCP Offer信息給PC
(3)PC收到DHCP服務器發來的DHCP Offer信息,將回復一個DHCP Request包
》DHCP協議是假設有多個DHCP服務器存在,因此可能接受到多個DHCP服務器發來的DHCP offer報文
》但是只接受第一個發過來的報文,因此需要發送廣播宣告自己已經接受了某個DHCP服務器提供的IP地址
》該廣播包中包含所接受的IP地址和服務器IP地址(接收到這個廣播包的DHCP服務器可以知道是不是自己提供的IP被選中了)
》其他所有的DHCP服務器撤銷他們的提供以便將IP地址提供給下一次IP租用請求
(4)DHCP服務器收到DHCP Request 信息後,馬上發送DHCP ack確認信息,其中包含了租期、子網掩碼、域名等信息
(5)PC收到DHCP ack後,廣播發送Gratuitous ARP(免費arp)通知其他設備這個ip已被使用
》 免費arp的作用:①檢測ip是否衝突(如果衝突會收到迴應);②告知廣播域內設備更新arp緩存(告知所有設備當前這個mac地址對應的ip地址)
實驗:
1.配置dhcp服務器和客戶端
R3:
//配置路由器e0/0口作爲資源池p1的默認網關和默認dns地址
Router(config)#interface e0/0
Router(config-if)#ip address 1.1.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
//配置路由器e0/1口作爲資源池p2的默認網關和默認dns地址
Router(config)#interface e0/1
Router(config-if)#ip address 2.2.2.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
//配置資源池p1
Router(config)#ip dhcp pool p1 //p1爲資源池的名字
Router(dhcp-config)#network 1.1.1.0 255.255.255.0 //配置資源池內網絡和掩碼
Router(dhcp-config)#default-route 1.1.1.1 //配置默認網關
Router(dhcp-config)#dns-server 1.1.1.1 //配置DNS地址
Router(dhcp-config)# domain-name www.ccie.com //域名,可選
Router(dhcp-config)#lease 1 //租期,須爲整數,單位爲天
Router(dhcp-config)#exit
//配置資源池p1
Router(config)#ip dhcp pool p2
Router(dhcp-config)#network 2.2.2.0 255.255.255.0
Router(dhcp-config)#default-router 2.2.2.2
Router(dhcp-config)#dns-server 2.2.2.2
Router(dhcp-config)#domain-name www.ccie.com
Router(dhcp-config)#lease 1
Router(dhcp-config)#exit
VPC1:
VPC> ip dhcp
S1:
Switch(config)#interface e0/0
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#switch mode trunk
Switch(config-if)#exit
Switch(config)#interface e0/1
Switch(config-if)#switchport mode access
Switch(config-if)#exit
Switch(config)#interface e0/2
Switch(config-if)#switchport mode access
Switch(config-if)#exit
VPC4/VPC5:
VPC> ip dhcp
2.DHCP中繼
// R10爲DHCP服務器,R8爲中繼DHCP
//中繼DHCP與終端PC直連的端口需要配置helper-address(幫助地址爲可達的DHCP服務器地址),當這個端口收到廣播的DHCP請求將單播發送到DHCP服務器,這個端口地址也將作爲這個資源池網段的默認網關
//需要在DHCP服務器上將中繼DHCP用於做資源池網關的這個IP排除(excluded-address)
//中繼DHCP與DHCP服務器之間要求路由可達,需要在路由上添加靜態路由
R8:
Router(config)#interface e0/0
Router(config-if)#no shutdown
Router(config-if)#ip address 3.3.3.3 255.255.255.0
Router(config-if)#ip helper-address 5.5.5.5
Router(config-if)#exit
Router(config)#interface s1/0
Router(config-if)#no shutdown
Router(config-if)#ip address 4.4.4.4 255.255.255.0
Router(config-if)#exit
Router(config)#ip route 5.5.5.0 255.255.255.0 4.4.4.5
R9:
Router(config)#interface s1/0
Router(config-if)#no shutdown
Router(config-if)#ip address 4.4.4.5 255.255.255.0
Router(config-if)#clock rate 128000
Router(config-if)#exit
Router(config)#interface s1/1
Router(config-if)#no shutdown
Router(config-if)#ip address 5.5.5.6 255.255.255.0
Router(config-if)#clock rate 128000
Router(config-if)#exit
Router(config)#ip route 3.3.3.0 255.255.255.0 4.4.4.4
R10:
Router(config)#interface s1/0
Router(config-if)#no shutdown
Router(config-if)#ip address 5.5.5.5 255.255.255.0
Router(config-if)#exit
Router(config)#ip dhcp excluded-address 3.3.3.3
Router(config)#ip dhcp pool p3
Router(dhcp-config)#network 3.3.3.0 255.255.255.0
Router(dhcp-config)#default-router 3.3.3.3
Router(dhcp-config)#dns-server 3.3.3.4
Router(dhcp-config)#domain-name www.ccie.com
Router(dhcp-config)#lease 7
Router(dhcp-config)#exit
Router(config)#ip route 4.4.4.0 255.255.255.0 5.5.5.6
Router(config)#ip route 3.3.3.0 255.255.255.0 5.5.5.6
Router(config)#interface e0/0
Router(config-if)#no shutdown
Router(config-if)#ip address 6.6.6.6 255.255.255.0
Router(config)#ip dhcp pool p4
Router(dhcp-config)#network 6.6.6.0 255.255.255.0
Router(dhcp-config)#default-router 6.6.6.6
Router(dhcp-config)#dns-server 6.6.6.7
Router(dhcp-config)#domain-name www.ccie.com
Router(dhcp-config)#lease 3
Router(dhcp-config)#exit
VPC6:
VPC7: