会自动分配IP地址的路由协议——DHCP

时间:2024-04-10 15:57:01

一、为什么使用DHCP?

我们都知道PC要想上网,那就需要在PC上配置IP地址。我们可以手动配置,但是如果我们要配置上百台,上千台,那样工作效率在这个高速发展的时代显得有点低了,那么我们就需要通过协议进行自动获取,也就是这篇博文说的DHCP协议。

二、什么是DHCP?

DHCP中文名字叫动态主机配置协议,是一种局域网的网络协议,指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。以上是百度的解释。通俗来说,就是通过这个协议我们可以从一段IP地址中自动获取IP地址以及子网掩码。

作用:自动分配IP地址
模型:基于C/S模型运行
封装:UDP封装
端口:
a、客户端是68号端口
b、服务端是67号端口

三、成为DHCP服务器的条件

想要成为DHCP服务器的设备,需要满足以下两个条件:

a、该设备必须拥有所要下放地址广播域内的直接接口或网卡
假如一场演讲,演说家要想表达自己的观点,那就得靠嘴说出来嘛,不可能用意识发射出去吧,不知道以后,反正现在是不能的了,而且还得在这个会场里演说才对咯,不可能说一个演说家去演唱会演说,开玩笑呢?

b、该设备接口或设备网卡必须已经拥有合法IP地址
就比如说一场演讲,肯定需要一个确实存在的演说家嘛,如果是空的,那还听个啥子?所以肯定要有确实存在且合法的IP地址,要是不存在的话,PC怎么知道是谁在放送IP地址,不合法的话,在局域网或者因特网中肯定是不可能被访问到的咯!

四、DHCP的报文包

a、DHCP发现包:discover(0x01)
作用:客户端查询有没有DHCP服务器
发送方:客户端(0.0.0.0,客户端的MAC地址)
接收方:服务端(255.255.255.255,FFFF-FFFF-FFFF-FFFF)
发送方式:通过广播方式

2.DHCP提供包:offer(0x02)
作用:服务端提供IP地址并且判断该IP地址有没有其他设备使用
发送方:服务端(服务的IP地址,服务端的MAC地址)
接收方:客户端(255.255.255.255,FFFF-FFFF-FFFF-FFFF)
发送方式:通过单播\广播方式

3.DHCP请求包:request(0x03)
作用:对offer报文确认,获取先进的IP地址,然后拒绝其他DHCP服务器IP地址分配
发送方:客户端(0.0.0.0,客户端的MAC地址)
接收方:服务端(255.255.255.255,FFFF-FFFF-FFFF-FFFF)
发送方式:通过广播方式

4.DHCP禁止包:decline(0x04)
作用:通知服务端禁止使用该IP地址
发送方:客户端(0.0.0.0,客户端的MAC地址)
接收方:服务端(服务的IP地址,服务端的MAC地址)
发送方式:通过单播\广播方式

5.DHCP确认包:ack(0x05)
作用:确认服务器的IP使用
发送方:服务端(服务的IP地址,服务端的MAC地址)
接收方:客户端(255.255.255.255,客户端的MAC地址)
发送方式:通过单播\广播方式

6.DHCP不确定包:NAK(0x06)
作用:服务端发送拒绝request响应报文,客户端重新开始新的DHCP获取
发送方:服务端(服务的IP地址,服务端的MAC地址)
接收方:客户端(255.255.255.255,客户端的MAC地址)
发送方式:通过广播方式

7.DHCP释放包:release(0x07)
作用:客户端发送想要主动释放客户端分配的IP地址
发送方:客户端(客户的IP地址,客户端的MAC地址)
接收方:服务端(服务的IP地址,服务端的MAC地址)
发送方式:通过单播方式

8.DHCP通知包:inform(0x08)
作用:为了从服务器处获取其他的一些网络配置信息
发送方:客户端(客户的IP地址,客户端的MAC地址)
接收方:服务端(服务的IP地址,服务端的MAC地址)
发送方式:通过单播方式

注意:上面的包,有些可能不一定对这是根据自己理解书写的,但是基本意思是差不多的

五、DHCP的工作原理

会自动分配IP地址的路由协议——DHCP

  • a、客户端通过广播的方式发出Discover报文,查询有没有DHCP服务器。
  • b、当域内的所有服务器都接收到客户端发送的Discover报文后,会及时响应并向客户端发送一个Offer报文, 在自己已分配的IP地址中记录下来。
  • c、客户端只能接收第一个发送过来的Offer报文,其他的都将弃掉,同时以广播方式发送Request报文且报文中存在服务器的IP地址和需要的IP地址。
  • d、服务器收到Request报文后,判断是否与自己发送的IP地址相同,相同的话,将给客户端发送ACK报文并加入IP地址使用租借信息,否则清除相应IP地址分配记录。
  • e、当客户端接收到ACK报文后,检查分配的IP地址是否能够使用。如果可以使用,那么就根据IP地址使用租期自动启动续延过程,如果不能使用,客户端将向服务端发出Decline报文,通知服务端这个IP地址不能使用,然后客户端继续a步骤重新开始新的地址申请过程。
  • f、客户端成功获取IP地址后,随时可以通过发送Release报文释放自己的IP地址,此时服务端江会收回相应的IP地址并重新分配。

六、DHCP的续租问题

当设备使用租期超过50%时,客户端会以单播形式向服务器发送Request报文来续租IP地址,如果客户端收到ACK报文,则按相应时间延长IP地址租期,如果没有收到ACK报文,则客户端继续使用这个IP地址到租期为87.5%,在使用租期超过87.5%时,客户端会以广播形式向服务端发送Request报文来续租IP地址。如果客户端成功收到ACK报文,则按相应时间延长IP地址租期,如果没有收到ACK报文,则客户端继续使用这个IP地址,直到IP地址使用租期到期时,客户端才会向客户端发送Release报文来释放这个IP地址,并开始新的IP地址申请过程。

七、Cisco的配置

要想在Cisco路由器上配置DHCP服务,那么得有一个IP地址池,网关,DNS地址,举个例子说吧!假设有一个养鱼的老板(网关),他需要在一个一块地方养鱼,那么他需要有块鱼塘地(IP地址池),这些鱼要想买出去,就得通知市场(DNS),说:哦,我这里要买鱼。这样就可以在市场上买鱼了!

注意:首先DHCP得有出接口网关IP地址

DHCP 服务器端配置

创建并进入DHCP 池:(config)#ip dhcp pool+名字
定义下放地址范围:(dhcp-config)#network+IP段+子网掩码
定义默认网关:(dhcp-config)#default-router+网关IP
定义DNS地址:(dhcp-config)#dns-server+服务器IP+服务器IP(地区不同网关不同)
定义租约时间:(dhcp-config)#lease+天数(默认一天)+时+分钟
排除地址范围:(config)#ip dhcp excluded-address+IP地址
排除单个地址:(config)#ip dhcp excluded-address+IP地址
排除一段地址:(config)#ip dhcp excluded-address+起始地址+结束地址