DHCP协议详解,报文内容,如何查看报文,为什么offer报文会以广播的形式进行发送

DHCP是一种动态主机配置协议,用于自动分配IPv4或IPv6地址。其交互过程包括Discover、Offer、Request和ACK等步骤,确保客户端获得可用IP并验证无冲突。DHCP报文在必要时可通过广播方式发送。DHCP Snooping则用于防止仿冒攻击,确保客户端只与合法服务器通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:什么是DHCP,作用?

  1. dhcp地址分配协议,目前有dhcpv4以及dhcpv6,分别作用于ipv4与ipv6的网络中。

  2. 主要作用:dhcp服务端通过dhcp协议下发ip地址给到客户端(pc,终端),使得pc能有上网的能力。

二:DHCP的交互过程是怎么样的呢?(client使用68udp端口,server使用67udp端口)

1.dhcp交互图

2.dhcp报文交互过程中,有大部分的报文都是广播报文。

客户端拥有ip前,是可以接收所有的广播报文的,只要该IP报文能够被硬件网卡接收并过滤给IP协议栈。而有些客户端拥有ip前,是不会接收任何单播IP报文的,只会接收广播IP报文即Destination IP = 255.255.255.255。

DHCP为了增强协议的健壮性,规定:如果协议栈在初始化过程中,不接收单播IP报文,若在DHCP Discovery / Request报文的Flags里明确告知服务器,通过设置“BROADCAST flag = 1”,服务器就广播来和客户端通信。若设置“BROADCAST flag = 0”,服务器就使用单播来和客户端通信。

 

总结:在client与server交互过程中,原本单播的报文可采用广播的形式发送以及接收。并不影响dhcp的作用

 三:完整的交互报文过程:

1.客户端----server,客户端发送discover(广播报文)寻找服务器,服务器收到该报文后,自己先确认一个ip(通过icmp去ping这个即将分配给客户端的ip,确保没有其他人使用该ip)

2.server----客户端  ,服务端把确认没有人使用的空闲ip通过offer(可以为单播)报文发送给客户端,客户端收到后,会使用该ip为源发送免费arp报文,作用也是校验ip是否被使用。若发现有ip冲突,则客户端需发送decline报文(可以为单播)给服务器

3.客户端---server,客户端确认需要使用该ip地址,则发送request报文(可为单播)给server,确认要使用该ip。

4.server---客户端,服务端需要回复ACK(可为单播)报文,表示自己同意客户端使用该ip。ACK一般携带服务器分配给客户端的dns以及ip,网关等信息,若此处信息不全,则客户端会向服务端发送inform报文请求获取dns等相关信息。

5,当租期到达50%以及87.5%时,会发送request报文,续租该ip,若服务器同意,回复ACK表示同意续租。若服务器回复NAK(可为单播),则服务器表示拒绝客户端使用该ip,则客户端需要主动向服务端发送release报文(一般为单播),表示自己放弃使用该ip,服务器收到release后会对该ip进行回收

6.若租期到了后,没有收到租住同意请求。则客户端主动释放ip地址,并再次发送discover报文寻找服务器。

四:dhcp报文格式,以及字段

 1.报文不是固定不变的,但是长度都比较接近

2.开始分析discover报文

2.offer报文

这里需要注意,dhcp服务器不一定是客户端的网关地址。option1中是掩码,option3中为分配的网关地址option6中为dns地址option50中为请求的地址option51为租期。option55为请求获取的信息

option60用来标识供应商类型无法识别则忽略

这里报文讲解到这里,暂不做其他解释,其他报文大同小异。

五:dhcp snooping 

1.主要作用:防止被dhcp仿冒攻击

这样一来,只有真实的dhcp服务器能与客户端进行通信,假冒的dhcp服务器数据帧(主动发送的数据帧,除discover与request报文外的)到达交换机时会被丢弃。

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Speed、li_yunkai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值