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: