我发现了一个带有两个“ ip helper-address”语句的子网。这不是我们的正常配置。

interface Vlan300
 ip address 10.1.3.2 255.255.255.0
 ip helper-address 10.2.1.10
 ip helper-address 10.3.1.10


看看我们的DHCP服务器,看来它们两个都有租约。

我意识到不建议这样做,并且两个DHCP服务器可能不知道彼此的租约分配(我很确定他们没有)。

问题是,思科交换机(4510 Sup7 12.2)如何处理?


它是第一个响应的DHCP服务器吗?
是第一个,如果第一个超时,那么是第二个吗?
是轮循吗?


#1 楼

ip helper-address命令指定将广播转发到的地址;它将原始数据包发送到列出的每个地址。​​

如果都答复,则两个答复都转发回LAN。

评论


因此,主机将从第一个应答的DHCP服务器中获取IP-如果另一个接近通过WAN,那一个接近者将获胜?

–伪网络
13年5月23日在14:22

通常是的。这样做的原因之一是DHCP的故障转移/ HA(例如,ISC DHCPD支持此功能)

–LapTop006
13年5月23日在14:24

ACK LapTop006是正确的。 DHCP客户端将通过设计优雅地处理这种双重报价的情况,不需要特定的实现。

–ytti
13年5月23日在14:26

#2 楼

您的ip-helper是执行此操作以实现冗余的正确方法,并且是推荐的方法。

DHCP帮助发现(广播)被ip-helper接收,然后通过中继单播到每个DHCP服务器-agent(路由器)中。

通常第一个响应DHCP服务器获胜。两个DHCP服务器都可以(并且应该)向客户端提供DCHPOffers。客户端决定保留哪个客户端,然后将DHCPRequest(单播)发送到为其提供要使用的IP的服务器。服务器需要对该请求进行DHCPAck来完成该过程。

为了实现冗余,但又不违反DHCP规则(没有为IP池定义范围重叠),您需要两个ip帮助器。由于DHCP服务器彼此之间不知道,因此IP池必须唯一。 DHCP冗余的一种常见方法是将典型的/ 24子网划分为两个/ 25,以用于您的范围(每个服务器一个)。

示例:192.0.2.0/24是您的实际网络,因此您将其分为192.0.2.0/25和192.0.2.128/25。因此,大约256个地址被分成两个128个地址的池,并分配给每个DHCP作用域。现在您没有重叠的地址+冗余。

由于将作用域池减半,因此如果一台DHCP服务器出现故障,请确保服务器可以支持整个网络。将租用时间视为客户端可以保留其地址的持续时间,如果您有许多轮换的客户端,那么这些地址就不会耗尽您的池,但却能够给您足够的时间来检测和修复出现故障的DHCP服务器。 >

评论


实际上,您不想划分它们,而是在所有dhcp服务器上配置相同的作用域,并在每台服务器上设置唯一的排除范围。这样一来,如果一台服务器出现故障,您将具有更好的敏捷性。

–pauska
13年5月23日在22:18

排除项往往被埋在配置中,我更喜欢看到两个作用域可以通过它们各自的池轻松识别,因此毫无疑问每个DHPC服务器在做什么。只要设计可以在一段时间内处理发生故障的DHCP服务器,我就认为没有问题,但是我同意走排除路线对于某些人来说是更好的选择。 (这些注释是针对Windows DHCP的GUI的,其中包含了一些细节。)

–generalnetworkerror
13年5月23日在22:24



#3 楼

IIRC,它同时发送给配置好的助手和最快的赢家。

#4 楼

关于您对DHCP不了解其他租约的担心,在将DHCPOFFER发送到主机之前,DHCP服务器会向IP地址发送ICMP消息,如果DHCP服务器收到了ICMP Echo Reply消息,服务器选择另一个IP地址,然后向该IP地址发送另一个ICMP消息,直到未收到ICMP Echo Reply消息为止,然后DHCP服务器将DHCPOFFER中的IP地址发送给主机。

评论


如果这样配置。可以将其DHCP服务器配置为不像这样“保护”分配。

–瑞奇
13年5月23日在18:14

我会比Ricky走得更远些,并说这在许多较大的网络中已不再是常见的做法,因为它会在DHCP服务器上造成性能问题。现在,大多数工作站都运行本地防火墙,并且通常不响应ping请求,但是服务器仍然必须为每个请求等待一段时间。这也使该功能的使用性降低(带有防火墙的工作站无法响应,服务器不得不等待请求超时,并且仍然会导致IP冲突)。

– YLearn♦
13年5月23日在18:25