浅析DHCP服务

1.简介

DHCP(Dynamic Host Configuration Protocol:动态主机设置协议)是一个局域网的网络协议,前身是BOOTP协议,使用UDP协议工作。
DHCP分为两个部分:一个是服务器端,另一个是客户端。常用的有2个端口:67端口(DHCP server,发送) 和 68端口(DHCP client,接收);
主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

2.功能

1.保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2.DHCP应当可以给用户分配永久固定的IP地址。
3.DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)
4.DHCP服务器应当向现有的BOOTP客户端提供服务。

3.工作流程
在这里插入图片描述

1.DHCP Client发现阶段
DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送 DHCP discover发现信息来寻找DHCP服务器,
源地址为0.0.0.0 目的地址为255.255.255.255。网络上每一台安装了TCP/IP协议的主机 都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

2.DHCP Server提供阶段
DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,
向DHCP客户机发送一个包含出租的 IP地址和其他设置的DHCP offer信息。

3.DHCP Client选择阶段
DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,
则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,
该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

4.DHCP Server确认阶段
DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,
它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。
然后DHCP客户机便将其TCP/IP协议与网卡绑定。另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回之前为其提供的IP地址。

5.DHCP Client重新登录阶段
当DHCP客户机重新登录后,发送一个以前的DHCP服务器分配的IP地址信息的DHCP Request报文,当DHCP服务器收到该请求后,会尝试让DHCP客户端继续使用该IP地址。
并回答一个ACK报文。如果该IP地址无法再次分配给该DHCP客户机后,DHCP回复一个NAK报文,当DHCP客户机收到该NAK报文后,会重新发送DHCP Discovery报文来重新获取IP地址。

6.DHCP Client续约阶段
DHCP获取到的IP地址都有一个租约,租约过期后,DHCP服务器将回收该IP地址,所以如果DHCP客户机如果想继续使用该IP地址,则必须更新器租约。
更新的方式就是,当当前租约期限过了一半后,DHCP客户机都会发送DHCP Renew报文来续约租期。
DHCP获得ip地址的4步骤:    Discover -­--> Offer­ ---> Request­ ---> Ack(nak)

DHCP刷新租期的步骤:       Request ­---> Ack(nak)

DHCP释放ip的步骤:        Release
注意:客户端传输广播包给整个物理网络段内的所有主机,如局域网内有DHCP服务器时,才会响应客户端的IP参数要求,
所以DHCP服务器与客户端应该在同一个物理网段内。

4.优缺点

优点:
1.网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主机;
2.DHCP不会同时租借相同的IP地址给两台主机;
3.DHCP管理员可以约束特定的计算机使用特定的IP地址;
4.可以为每个DHCP作用域设置很多选项;
5.客户机在不同子网间移动时不需要重新设置IP地址。

缺点:
1.DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;
2.当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;
3.DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP转发。

5. IP分配方式

DHC服务器提供三种IP分配方式:
1.自动分配方式(Automatic Allocation):DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
2.动态分配方式(Dynamic Allocation):DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3.手工分配方式(Manual Allocation):客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

6.DHCP报文

(1).报文类型

DHCP一共有8种报文,分别为DHCP Discover、DHCP Offer、DHCP Request、DHCP ACK、DHCP NAK、DHCP Release、DHCP Decline、DHCP Inform

在这里插入图片描述
在这里插入图片描述
(2).报文格式

DHCP服务的8种报文的格式是相同的,不同类型的报文只是报文中的某些字段取值不同。DHCP报文格式基于BOOTP的报文格式。

在这里插入图片描述

1.OP
报文的操作类型;分为请求报文和响应报文。1:请求报文,2:应答报文。即client送给server的封包,设为1,反之为2。
请求报文:DHCP Discover、DHCP Request、DHCP Release、DHCP Inform和DHCP Decline。应答报文:DHCP Offer、DHCP ACK和DHCP NAK。

2.Htype
DHCP客户端的MAC地址类型;MAC地址类型其实是指明网络类型,Htype值为1时表示为最常见的以太网MAC地址类型。

3.Hlen
DHCP客户端的MAC地址长度;以太网MAC地址长度为6个字节,即以太网时Hlen值为6。

4.Hops
DHCP报文经过的DHCP中继的数目,默认为0;DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
没有经过DHCP中继时值为0。(若数据包需经过router传送,每站加1,若在同一网内,为0)

5.Xid
客户端通过DHCP Discover报文发起一次IP地址请求时选择的随机数,相当于请求标识。用来标识一次IP地址请求过程。在一次请求中所有报文的Xid都是一样的。

6.Secs
DHCP客户端从获取到IP地址或者续约过程开始到现在所消耗的时间,以秒为单位。在没有获得IP地址前该字段始终为0。(DHCP客户端开始DHCP请求后所经过的时间。目前尚未使用,固定为0。)

7.Flags
标志位,只使用第0比特位,是广播应答标识位,用来标识DHCP服务器应答报文是采用单播还是广播发送,0表示采用单播发送方式,1表示采用广播发送方式。其余位尚未使用。(即从0-15bits,最左1bit为1时表示server将以广播方式传送封包给client。)

8.Ciaddr
DHCP客户端的IP地址;仅在DHCP服务器发送的ACK报文中显示,在其他报文中均显示0,因为在得到DHCP服务器确认前,DHCP客户端是还没有分配到IP地址的。只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。

9.Yiaddr
DHCP服务器分配给客户端的IP地址;仅在DHCP服务器发送的Offer和ACK报文中显示,其他报文中显示为0。

10.Siaddr
下一个为DHCP客户端分配IP地址等信息的DHCP服务器IP地址;仅在DHCP Offer、DHCP ACK报文中显示,其他报文中显示为0(用于bootstrap过程中的IP地址)

11.Giaddr
DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。如果没有经过DHCP中继,则显示为0。(转发代理(网关)IP地址)

12.Chaddr
DHCP客户端的MAC地址;在每个报文中都会显示对应DHCP客户端的MAC地址。

13.Sname
为DHCP客户端分配IP地址的DHCP服务器名称(DNS域名格式);在Offer和ACK报文中显示发送报文的DHCP服务器名称,其他报文显示为0。

14.File
DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息;仅在DHCP Offer报文中显示,其他报文中显示为空。

15.Options:可选项字段,长度可变,格式为"代码+长度+数据"。列出部分可选的选项:

在这里插入图片描述
参考博客: https://blog.csdn.net/u011857683/article/details/83019895

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值