DHCP协议分析

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

DHCP作用:为终端分配IP地址,并且对IP地址进行集中化管理的协议。

DHCP使用UDP协议,有两个熟知端口:DHCP服务器为67,DHCP客户为68

DHCP分配IP地址的方式有:自动分配、动态分配和手工配置。前两种都是由DHCP服务器给客户端分配,自动分配的是永久性的IP地址,动态分配的IP地址过一段时间过期或能被客户端主动释放。手工配置由用户手动为客户端指定IP地址。

DHCP的报文格式

op:1byte,是报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。

htype:1byte,表示client硬件地址的类型,1表示以太网类型。

hlen:1byte,硬件地址的长度,以太网的硬件地址长度为6bytes。

hops:1byte,表示当前dhcp报文经过的DHCP中继的数目,每经过一个DHCP中继这个字段就加1.

xid:4bytes,由client端产生的随机数,用于匹配请求和应答报文,就是匹配应答报文是对哪个请求报文做出应答。

secs:2bytes,客户端进入IP地址申请进程的时间或者更新IP地址进程的时间;由客户端软件根据情况设定。目前没有使用,固定为0。

flags:2bytes,是标志字段,16比特中只使用了最高位比特(即最左边的比特),这个个比特是广播响应标识位,用来标识DHCP服务器发出的响应报文是广播还是单播,0是单播,1是广播。其余的比特位保留不用,都为0.

ciaddr:4bytes,是客户端的IP地址,可以是client自己的IP地址,也可以是server分配给client的IP地址。

yiaddr(Your IP Address):4bytes,是server分配给client的IP地址。

siaddr:4bytes,是client端获取IP地址等信息的server端的地址。

giaddr:4bytes,是client发出请求报文后经过的第一个中继的IP地址。

chaddr:16bytes,是client端的硬件地址,在client发出报文时会把自己网卡的硬件地址写进这个字段。

sname:64bytes,服务器主机名,是client端获取IP地址等信息的服务器名称。

file:128bytes,是client的启动配置文件名,是服务器为client指定的启动配置文件名及路径信息,由服务器填写。

options:是可选变长的选项字段,这个字段包含了终端的初始配置信息和网络配置信息,包括报文类型,有效租期,DNS服务器的IP地址等配置信息。

DHCP的option

Option 1:用于指定客户端所在子网的子网掩码。

Option 3:用于指定默认网关的IP地址。

Option 6:用于指定DNS服务器的IP地址。

Option 12:用于指定客户端设备的主机名。

Option 15:用于指定本地域名。

Option 51:IP地址租约时间

Option 53:DHCP信息类型

Option 54:服务器标识

Option 58:更新时间值(用于指定客户端请求续约租约的时间间隔。)

Option 59:重新链接时间值(用于指定客户端请求重新绑定租约的时间间隔。)

Option 60:用于指定客户端设备的类型或厂商信息。

DHCP报文的种类及其作用

  1. DHCP DISCOVER:客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。
  2. DHCP OFFER:服务器对DHCP DISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。
  3. DHCP REQUEST:客户端对DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。
  4. DHCP DECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。
  5. DHCP ACK :服务器对客户端的DHCP REQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。
  6. DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。
  7. DHCP RELEASE:客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。
  8. DHCP INFORM:客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。

DHCP的工作流程

第一步:搜索阶段(DHCP DISCOVER)

当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。

第二步:提供阶段(DHCP OFFER)

在网络中接收到DHCP discover发现信息的DHCP服务器就会做出响应,它从尚未分配的IP地址池中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含分配的IP地址和其他设置的DHCP offer提供信息。因为此时客户端还没有IP,所以返回信息也是以广播的方式返回的。

第三步:选择阶段(DHCP REQUEST)

DHCP客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。

第四步:确认阶段(DHCP ACK)

当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后,便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,确认租约,并指定租约时长。告诉DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址。

DHCP续租

IP地址租期----当PC申请下来IP地址后,会存在租期时间。能够合理使用该IP地址的时间

租期时间---24小时

当租期时间到达12小时,客户端就需要向服务器发起续租申请。

当第一次续租得到回复后,则客户端将租期时间刷新为24小时;若没有回复,则等待租期时间仅剩下3小 时。

此时发送第二次续租申请,此时使用discover报文广播发送申请。

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值