DHCP的报文解析

DHCP报文

DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。DHCP报文的格式如下图所示。

图1 DHCP报文格式

< 所有DHCP提供的配置信息都在options字段中,这才是精华部分 >

报文中各字段的描述如下:

  • op,报文类型,1表示请求报文,2表示回应报文。
  • htype,硬件地址类型,1表示10Mb/s的以太网的硬件地址。
  • hlen,硬件地址长度,以太网中该值为6。
  • hops,跳数。客户端设置为0,也能被一个代理服务器设置。
  • xid,事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数。
  • secs,由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数。
  • flags,标志字段。这个16比特的字段,目前只有最左边的一个比特有用,该位为0,表示单播,为1表示广播。
  • ciaddr,客户端的IP地址。只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。
  • yiaddr,"你自己的"或客户端的IP地址。
  • siaddr,表明DHCP协议流程的下一个阶段要使用的服务器的IP地址。
  • giaddr,DHCP中继器的IP地址。//注意:不是地址池中定义的网关
  • chaddr,客户端硬件地址。客户端必须设置它的"chaddr"字段。UDP数据包中的以太网帧首部也有该字段,但通常通过查看UDP数据包来确定以太网帧首部中的该字段获取该值比较困难或者说不可能,而在UDP协议承载的DHCP报文中设置该字段,用户进程就可以很容易地获取该值。
  • sname,可选的服务器主机名,该字段是空结尾的字符串,由服务器填写。
  • file,启动文件名,是一个空结尾的字符串。DHCP Discover报文中是"generic"名字或空字符,DHCP Offer报文中提供有效的目录路径全名。
  • options,可选参数域,格式为"代码+长度+数据"。

    DHCP Options

Option id

Length(字节)

描述

1

4

Subnet Mask

3

n*4

Router(网关)

6

n*4

DNS Server

7

n*4

Log Server

26

2

Interface MTU

33

n*8

Static route

35

4

ARP cache timeout

42

n*4

NTP servers

51

4

IP address lease time

53

1

Message type 1-DHCPDISCOVER 2-DHCPOFFER 3-DHCPREQUEST 4-DHCPDECLINE 5-DHCPACK 6-DHCPNAK 7-DHCPRELEASE 8-DHCPINFORM

54

4

DHCP Server Identifier

60

n

华为自定义:可配置该终端设备在发起DHCP请求时,通过Option 60携带域信息。ME60收到DHCP报文时,可根据Option 60中携带的域信息来分配IP地址。

82

n

华为自定义:ME60作为DHCP Relay,在中继用户DHCP报文时,可在Option 82中填写用户的物理位置信息,通知DHCP服务器按物理位置信息对为用户分配IP地址

DHCP报文类型

DHCP共有八种报文,分别为DHCP Discover、DHCP Offer、DHCP Request、DHCP ACK、DHCP NAK、DHCP Release、DHCP Decline、DHCP Inform。各报文类型功能如表1所述。

DHCP报文类型

描述

DHCP Discover

DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。

DHCP Offer

DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关、DNS服务器等),构造一个Offer报文,发送给用户,告知用户本服务器可以为其提供IP地址。< 只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复>

DHCP Request

DHCP客户端可能会收到很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCP ACK报文,在租期过去3/4时,发送广播Request报文续延租期。

DHCP ACK

DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录,如果有则发送ACK报文作为回应,通知用户可以使用分配的IP地址。

DHCP NAK

如果DHCP服务器收到Request报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则发送NAK报文作为回应,通知用户无法分配合适的IP地址。

DHCP Release

当用户不再需要使用分配IP地址时,就会主动向DHCP服务器发送Release报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约。

DHCP Decline

DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的IP地址不可用。

DHCP Inform

DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端。< 极少用到>

参考:华为ME60产品文档及RFC2131/RFC2132

### 回答1: DHCP Discovery报文DHCP协议中的一种消息类型,用于在网络中寻找可用的DHCP服务器。当客户端设备启动时,它会发送一个DHCP Discovery报文,该报文包含客户端的MAC地址和其他相关信息。DHCP服务器收到该报文后,会向客户端发送DHCP Offer报文,其中包含可用的IP地址和其他配置信息。客户端可以选择接受其中一个DHCP Offer,并向DHCP服务器发送DHCP Request报文,以请求分配该IP地址。最后,DHCP服务器会向客户端发送DHCP Acknowledge报文,确认IP地址的分配。 ### 回答2: DHCP(动态主机配置协议)是一个TCP/IP协议族中的一项技术。它使用UDP协议来向网络中的设备提供IP地址配置和其他相关网络配置。DHCP协议中,DHCP discovery报文是设备在网络中向DHCP服务器发送的第一份请求。因此,它是DHCP协议中非常重要的一个环节。下面将对DHCP discovery报文进行解析DHCP discovery报文分为四个部分: 1. 操作码 DHCP discovery报文中的操作码设置为1,表示这是一个启动请求报文。 2. 硬件类型 DHCP discovery报文中的硬件类型表示设备的物理硬件类型。根据不同的设备,硬件类型可能有所不同。例如,对于以太网设备,硬件类型为1;对于WiFi设备,硬件类型为6。 3. 事务ID DHCP discovery报文中的事务ID是一个随机生成的32位数,用于标识该DHCP交互。在后续的DHCP流程中,该事务ID将用于协调客户端和服务器之间的通信。 4. Options字段 DHCP discovery报文中的Options字段是一个可选的字段,用于传递DHCP客户端的配置选项。该字段包含多个选项,并以结束(End)标识符作为结尾。 在具体的实现中,DHCP discovery报文可以被DHCP客户端发送到广播地址,以便找到DHCP服务器DHCP服务器在接收到DHCP discovery报文后,会回复DHCP offer报文,告知DHCP客户端可用的IP地址和配置选项。DHCP客户端在接收到DHCP offer报文后,会选择其中一份报文,并回复DHCP request报文,请求所选的IP地址和配置选项。最后,DHCP服务器收到DHCP request报文后,发送DHCP acknowledgement报文,向DHCP客户端确认IP地址分配和其他配置选项。 总之,DHCP discovery报文DHCP协议中非常重要的一个环节,它标志着DHCP流程的开始。只有通过DHCP discovery报文DHCP客户端才能寻找DHCP服务器,并获取所需的网络配置信息。 ### 回答3: DHCP是指动态主机配置协议,是一项用于内部网络网络协议。DHCP discovery报文也就是DHCP请求发现报文,它是广播报文,用于向DHCP服务器请求可用的IP地址。 DHCP discovery报文的格式如下: • OP: 报文类型,请求参数为1 • Hardware Type:硬件类型,值为1代表以太网 • Hardware Length:硬件地址长度,通常为6 • Hops:在转发中使用的跳数,通常置0 • Transaction ID:事务ID,为了识别相同的广播请求 • Number of Seconds:客户端从开始请求到现在已经过去的时间 • Flags:用于配置是否需要进行广播 • Client IP Address:客户端IP地址 • Your IP Address:分配给客户端的IP地址 • Server IP Address:提供DHCP服务的服务器的IP地址 • Gateway IP Address:DHCP服务器的网关IP地址 • Client Hardware Address:客户的MAC地址 • Server Hostname:DHCP服务器名称 • Bootfile Name:引导文件名 • Options:报文选项信息 当DHCP客户端启动时,它会发送DHCP discovery报文,用于发现可用的DHCP服务器DHCP discovery报文将在网络中广播,所有接收到该广播的DHCP服务器都将返回给客户端DCHP offer报文,其中包含可用的IP地址资源。当客户端接收到其中一份DCHP offer报文后,它将选择其中一个报文,根据其中包含的IP地址和相关参数,向DHCP服务器发送DHCP request报文进行IP地址分配请求。DHCP request报文DHCP服务器响应,其中包含分配给该客户端的IP地址和配置参数。 综上所述,DHCP Discovery 报文DHCP部署中非常重要的一份报文,因为它作为DHCP客户端与DHCP服务器建立通信的第一步,DHCP Discovery 报文可以广播请求,获取可用IP地址资源,并向DHCP服务器发送解析请求。只有成功解析,才可以实现DHCP的动态IP地址分配。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值