DHCP请求消息是广播还是单播?

时间:2018-09-19 18:45:43

标签: networking dhcp

DHCP过程作为DORA分为四个阶段。我知道发现和报价是广播的。 DHCP请求消息是广播还是单播?

3 个答案:

答案 0 :(得分:0)

这是广播。发现,提供,请求,确认都被广播。在整个过程完成之前,客户端不会获得IP地址。所以它必须广播。您可以看到更多here

答案 1 :(得分:0)

DHCPOFFER和DHCPACK通常作为单播从服务器发送到客户端。客户端可以设置广播标志,以请求服务器将广播发送回客户端,但这不是首选方法。

这在RFC 2131, Dynamic Host Configuration Protocol中有详细说明:

  

如果客户端使用DHCP进行初始配置(之前   客户端的TCP / IP软件已完全配置),DHCP   需要创造性地使用客户端的TCP / IP软件和自由   RFC 1122的解释。TCP/ IP软件应接受和   将任何传递到客户端的IP数据包转发到IP层   配置IP地址之前的硬件地址; DHCP服务器和   BOOTP中继代理可能无法将DHCP消息传递给客户端   在TCP / IP之前不能接受硬件单播数据报的协议   软件已配置。

     

要解决一些不能接受IP单播数据报的客户端   在按照前面的讨论配置TCP / IP软件之前   在段落中,DHCP使用“标志”字段[21]。最左边的位是   定义为BROADCAST(B)标志。该标志的语义是   在本文档第4.1节中讨论。剩下的位   标志字段保留供将来使用。必须将它们设置为零   客户和服务器和中继代理忽略。图2给出了   “标志”字段的格式。

                             1 1 1 1 1 1
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         |B|             MBZ             |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

          B:  BROADCAST flag

          MBZ:  MUST BE ZERO (reserved for future use)

          Figure 2:  Format of the 'flags' field

-和-

  

通常,DHCP服务器和BOOTP中继代理尝试传递   使用以下命令直接向客户端发送DHCPOFFER,DHCPACK和DHCPNAK消息   uicast交付。 IP目标地址(在IP标头中)已设置   到DHCP“ yiaddr”地址,并且链路层目标地址为   设置为DHCP“ chaddr”地址。不幸的是,一些客户   实现无法接收此类单播IP数据报,直到   实施已配置了有效的IP地址   (导致无法在其中锁定客户端IP地址的死锁   直到客户端配置了IP地址为止。

答案 2 :(得分:0)

客户端和服务器之间的DHCP消息交换可以广播也可以单播,具体取决于DHCP消息中内部字段的设置,尤其是广播标志字段,客户端IP地址(ciaddr)字段和网关IP地址(giaddr)字段。

下面是摘要注释明细

*如果设置了广播标志字段,则服务器将向客户端广播OFFER和ACK,但前提是客户端和服务器位于同一广播域中。

*如果网关IP地址(giaddr)字段不为零,则客户端与服务器之间存在中继代理,因此所有服务器消息均单播到中继代理IP地址。

*如果客户端IP地址(ciaddr)字段不为零,则服务器将单播OFFER&ACK到该客户端IP地址

*如果未设置广播位,客户端IP地址字段为零,网关IP地址字段为零,则服务器会将DHCP消息单播到客户端硬件地址(chaddr)

*如果服务器标识符IP地址(siaddr)字段非零,则客户端会将所有消息发送到siaddr中的该IP地址。在OFFER和ACK消息中,该字段将为非零值,因为DHCP服务器会将其设置为自我标识。

https://www.niledigitech.com/447/dynamic-host-configuration-protocol/