目录
1、DHCP概念
DHCP是动态主机配置协议
诞生背景:是为了解决现在需要分配的IP越来越多,如果由管理员手工分配,就可能会造成配置困难、地址冲突、难管理等问题。
功能:即插即用、统一管理、动态分配
2、DHCP分配方式
(1)手工配置方式:通过网络管理员手工配置某台客户端特定的IP地址,当客户端请求分配时,DHCP服务器就将手动配置的IP地址分配给客户端。
(2)自动配置方式:当DHCP客户端第一次想服务端租用到第一个IP地址后,就将这个IP地址永久分配给客户端使用。
(2)动态配置方式:服务器暂时分配一个IP地址给客户端,根据租约到期或者续约租期的方式来管理分配的IP地址。
3、DHCP报文解释
DHCP在传输层使用UDP协议封装:客户端使用UDP端口号68、服务端使用UDP端口号67
DHCP Discover:发现报文,DHCP客户端用来寻找DHCP服务器,广播。
DHCP Offer:提供报文,DHCP服务器用来响应DHCP Discover报文,单播。
DHCP Request:请求报文,DHCP客户端请求配置确认,或者续借租期。广播。
DHCP Ack:确认报文,DHCP服务器对Request报文的确认响应,单播。
DHCP NAck:否认报文,DHCP服务器对Request报文的确认响应,广播。
DHCP Release:释放报文,DHCP客户端要释放地址时用来通知DHCP服务器,单播。
DHCP Decline:谢绝报文,客户端收到DHCP服务器的地址后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则会向DHCP服务器发送Decline请求报文;目的为通知服务器所分配的IP地址不可用,以期获得新的IP地址
DHCP Inform:请求更多信息报文,向DHCP服务器请求更为详细的配置信息;DHCP服务器在收到该报文后,将根据租约进行查找到相应的配置信息后,向DHCP客户端发送ACK应答报文;目前基本不用。
4、DHCP工作过程
动态分配IP
一般分为四个阶段:发现阶段、提供阶段、请求阶段、确认阶段
(1)发现阶段:Client寻找Server,向周围广播发送一个Discover报文,等待Server回复。
(2)提供阶段:Server收到Discover报文后,会单播回复一个Offer报文,内部携带了地址池中的一个合适IP地址,加上相应的租约期限和其他配置信息(如GATEWAY,DNS SERVER等)。
(3)请求阶段:Client收到Offer报文后,一般会选择最先受到的Offer报文,并对该Server广播回复一个Request报文,告诉Server,我需要使用你这个IP,你同意或拒绝。
(4)确认阶段:Server收到Rquest报文后,会单播ACK报文会广播NAK报文,进行同意或拒绝Client使用该IP地址。
DHCP租期
在使用动态分配方式时,该IP会有一个租期,当租期过期后就不可再使用
(1)当租期到达50%时,Client会像Server单播一个Request报文,请求续租IP(如果同意则更新租约,不同意则等待)
(2)当租期到达87.5%时,Client若没有收到原先Server的回复,则向周围广播一个Request报文,请求新的租约(如果同意则更新租约,不同意则等待租期过期,IP不可使用)
5、DHCP中继
上面情况是DHCP Server与DHCP Client在同一网段的情况下,如果不在同一网段该如何使用呢?
如果不在同一网段,我们不可能为每个网段都配置DHCP Server,这样会消耗大量金钱,所以针对这种问题就诞生了DHCP中继。
因为DHCP工作中会产生广播报文,但是广播报文无法跨网段通信,所以DHCP中继会将广播报文转换为单播报文,方便后续通信。
6、DHCP的思科配置
Server配置
RT(config)# int g0/1
RT(config-if)# ip address 10.1.1.2 255.255.255.252 // 端口IP
RT(config)# service dhcp // 开启DHCP服务
RT(config)# ip dhcp pool hh // 配置DHCP地址池
RT(dhcp-config)# network 192.168.10.0 255.255.255.0 // 配置地址池范围
RT(dhcp-config)# default-router 192.168.10.254 // 配置地址网关
RT(dhcp-config)# dns-server 114.114.114.114 // 配置DNS地址
RT(config)# ip dhcp excluded-address 192.168.10.250 192.168.10.255 // 排除该范围的地址分配
RT(config)# ip route 192.168.10.0 255.255.255.0 10.1.1.1 // 配置到达Client的路由
中继配置
SW(config)# int g0/0
SW(config-if)# no switchport // 开启三层转换口
SW(config-if)# ip address 10.1.1.1 255.255.255.252 // 端口IP
SW(config)# int g0/1
SW(config-if)# no switchport
SW(config-if)# ip address 192.168.10.254 255.255.255.0
SW(config)# service dhcp
SW(config)# int g0/1
SW(config-if)# ip helper-address 10.1.1.2 // 将该接口数据前转至服务器端口
SW(config)# ip route 0.0.0.0 0.0.0.0 10.1.1.2 // 配置到达Server的路由
Client获取IP
感谢大家浏览。