一:什么是DHCP,作用?
-
dhcp地址分配协议,目前有dhcpv4以及dhcpv6,分别作用于ipv4与ipv6的网络中。
- 主要作用: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报文外的)到达交换机时会被丢弃。
文章来源地址https://www.toymoban.com/news/detail-462857.html
文章来源:https://www.toymoban.com/news/detail-462857.html
到了这里,关于DHCP协议详解,报文内容,如何查看报文,为什么offer报文会以广播的形式进行发送的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!