如何处理两个“ip helper-address”语句?

网络工程 思科 dhcp
2021-07-06 15:47:00

我发现了一个带有两个“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 服务器可能不知道彼此的租约分配(我很确定他们不知道)。

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

  • 它是第一个响应的 DHCP 服务器吗?
  • 如果第一个超时,它是第一个,然后是第二个?
  • 是循环赛吗?
4个回答

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

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

您的 ip-helper 是实现冗余的正确方法,也是推荐的方法。

DHCPDiscovery(广播)由ip-helper 获取,然后单播到每个带有请求中的中继代理(路由器)的 DHCP 服务器。

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

为了冗余,但不违反 DHCP 规则,即没有为 IP 池定义重叠范围,您需要两个 ip-helper。由于 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 服务器。

IIRC,它发送给两个配置的助手,最快的一个获胜。

关于你担心DHCP不知道其他租约,在向主机发送DHCPOFFER之前,DHCP服务器向IP地址发送ICMP消息,如果DHCP服务器收到ICMP Echo Reply消息,DHCP服务器选择一个不同的IP地址,然后向该IP地址发送另一个ICMP消息,直到没有收到ICMP Echo Reply消息,然后DHCP服务器将DHCPOFFER中的IP地址发送给主机。