如果服务器ID不能填写,客户端如何单播RENEW DHCP REQUEST?

时间:2012-09-24 12:31:38

标签: networking network-programming dhcp

当客户端尝试续订租约时间时,如果根据RFC2131 4.3.2不得填写服务器ID,它如何单播到服务器

“在RENEWING状态期间生成的DHCPREQUEST: “服务器标识符”不得填写,“请求的IP地址”选项不得填写,“ciaddr”必须填写客户端的IP地址。在这种情况下,客户端已完全配置,并正在尝试扩展其租约。此消息将是单播的,因此其传输中不会涉及中继代理。因为'giaddr'因此没有填写,DHCP服务器将信任'ciaddr'中的值,并在回复客户端时使用它。

客户可以选择在T1之前续订或延长其租约。服务器可以选择不扩展租约(作为网络管理员的策略决策),但无论如何都应返回DHCPACK消息。“

2 个答案:

答案 0 :(得分:2)

siaddr,“服务器标识符”字段,位于DHCP消息内,使用UDP发送,该消息在IP标头中有自己的目标IP地址字段,因此客户端单播续订数据包到已知的服务器IP。

答案 1 :(得分:1)

客户端可以通过单播发送续订DHCP请求消息,即使不能设置“服务器标识符”,因为“服务器标识符”不是发送数据包所必需的。 使用单播发送数据包时,您只需指定目标IP地址,在这种情况下是DHCP服务器的IP地址,此信息客户端从初始化阶段就知道。

“服务器标识符”实际上是选项54,“DHCP选项54 - DHCP服务器标识符”,用于在初始化阶段多个DHCP服务器响应DHCP OFFER消息到DHCP DISCOPVER消息时选择DHCP服务器。这就是为什么必须在SELECTING阶段指定它,但它不是必需的,或者实际上不能在RENEWING和REBINDING阶段设置,因为客户端已经知道它选择了哪个DHCP服务器。

“服务器标识符”不是DHCP消息的“siaddr”字段。 “Siaddr”不是其中一个选项,而是在DHCP消息中填写的标准,仅由DHCP服务器填充。 “服务器标识符”和“siaddr”都具有DHCP服务器的IP地址的值,我相信这一事实使您认为它们用于发送DHCP消息。但是,在发送和转发数据包时不使用它们,只使用IP报头内部的目标IP地址。

“服务器标识符”和“siaddr”实际上用于查找DHCP服务器的IP地址,然后用于通过单播将DHCP请求消息直接发送到DHCP服务器。