计算机如何通过DHCP获取IP地址?


27

计算机如何知道网络上要查询的设备?默认网关如何影响这一点?几乎,当计算机尝试使用DHCP获取IP地址时,发生的事件链是什么

我问的原因是因为我试图找出最佳方法来设置冗余DHCP服务器,以防原始DHCP服务器由于任何原因而失败。

Answers:


41

它不知道要查询什么设备。因此,它将其请求广播到整个子网。DHCP服务器正在侦听某种类型的通信,并且当它听到特定的广播时,便开始与广播其请求的设备进行DHCP对话。查看DORA流程以了解更多信息。

DORA代表:

对于网关,只有在将DHCP流量明确转发到另一个子网时,它才能发挥作用。该功能通常称为DHCP中继。否则,网关将忽略广播的DHCP消息,就像它忽略所有其他广播的消息一样。

对于冗余DHCP服务器,您需要将它们都放在同一子网中,并可能使用80/20规则。如果将CentOS用作DHCP服务器,则可以设置故障转移。


17
+1 DORA dhcp资源管理器?我想这更像是发现者DORA
Nixphoe 2011年

3
@Nixphoe Me gusta。
韦斯利

这是一个问题,通常每个子网都有一个广播地址,而对网络一无所知,网卡是如何编写消息的,以便DHCP服务器(及其间的任何交换机)得到消息?
crasic 2011年

2
@crasic -右边,在这种情况下,它在广播255.255.255.255
马克·亨德森

1
@Mark D'oh,大部分内容已在答案的链接中说明,下次我应该使用
RTFA

3

DHCP(通常)是一种广播协议,因此客户端不需要了解任何有关网络的信息,它只是广播请求。

然后,网络上的DHCP服务器会看到该请求并做出响应。

当然,由于路由和其他网络设备,它要比这复杂得多。 维基百科页面是一个很好的资源

以及相关的RFC涵盖了细节。


3

我问的原因是因为我试图找出最佳方法来设置冗余DHCP服务器,以防原始DHCP服务器由于任何原因而失败。

首先,我赞扬您有兴趣了解有关该协议的更多信息。那是个好计划。

其次,我感谢您解释您的目标;我认为这将帮助您获得一个好的答案。

最后,我的回答:

对于您选择使用的任何DHCP服务器,都可能会有故障转移/冗余配置,该配置允许您设置可以自动接管的冗余DHCP服务器(我相信Windows可以做到这一点,并且我知道ISC的DHCP服务器可以)。那将是我的第一选择,因为它通常可以解决主DHCP服务器在故障之前发出的租约问题,并且因为它可以自动快速恢复。

第二种选择是在另一台计算机上完全复制配置,以便在第一台计算机出现故障的情况下手动启动另一台计算机。这不是最佳选择,因为您将丢失现有的租约信息,并且由于第一个DHCP服务器发生故障与启动替换之间的隐式停机时间。


我看到了80/20规则的要点...如果服务器80出现故障,那么仍然有服务器20提供IP地址。但这并不能为延长的停机时间提供任何形式的支持,因为最终所有客户都希望续签租约,但是只有先前地址范围的20%可用。我喜欢您关于“真正”冗余的建议,但是在我的方案中,不能选择使用第二台Windows计算机(硬件防火墙将是另一台DHCP服务器)。我想我可以手动将服务器20重新配置为服务器100?;)
Bigbio2002 2011年

2

从dhcp服务器获取IP地址涉及几个步骤。

  1. 发现消息,广播此消息以搜索dchp服务器

  2. 网络中的DHCP服务器用提议消息答复。

  3. 客户端通过广播发送DHCP请求消息。此消息将通知网络中所有DHCP服务器,客户端接受了该提议。

  4. DHCP确认消息发送给服务器进行确认。


1
为了简单起见。如果您可以将其不正确地纳入接受的答案
那就太好了

@ Bigbio2002这是您的问题。您可以决定应接受哪个答案。
迈克尔·汉普顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.