我们正在慢慢开始在 HP ProCurve 2610 系列交换机上实施 dhcp 监听,所有交换机都运行 R.11.72 固件。我发现了一些奇怪的行为,当来自“下游”交换机的 dhcp 请求或 dhcp 更新数据包由于“来自客户端的不可信中继信息”而被丢弃。
完整错误:
Received untrusted relay information from client <mac-address> on port <port-number>
更详细地说,我们有一台 48 端口 HP2610(交换机 A)和一台 24 端口 HP2610(交换机 B)。交换机 B 是交换机 A 的“下游”,因为它与交换机 A 的一个端口有 DSL 连接。DHCP 服务器连接到交换机 A。相关位如下:
交换机 A
dhcp-snooping
dhcp-snooping authorized-server 192.168.0.254
dhcp-snooping vlan 1 168
interface 25
name "Server"
dhcp-snooping trust
exit
开关 B
dhcp-snooping
dhcp-snooping authorized-server 192.168.0.254
dhcp-snooping vlan 1
interface Trk1
dhcp-snooping trust
exit
交换机设置为信任授权 dhcp 服务器所连接的端口及其 IP 地址。这对于连接到交换机 A 的客户端来说很好,但连接到交换机 B 的客户端由于“不受信任的中继信息”错误而被拒绝。这很奇怪,原因有几个:1) 两个交换机上都没有配置 dhcp-relay,2) 这里的三层网络是平面的,同一个子网。DHCP 数据包不应该具有修改后的选项 82 属性。
然而,dhcp-relay 似乎默认启用:
SWITCH A# show dhcp-relay
DHCP Relay Agent : Enabled
Option 82 : Disabled
Response validation : Disabled
Option 82 handle policy : append
Remote ID : mac
Client Requests Server Responses
Valid Dropped Valid Dropped
---------- ---------- ---------- ----------
0 0 0 0
SWITCH B# show dhcp-relay
DHCP Relay Agent : Enabled
Option 82 : Disabled
Response validation : Disabled
Option 82 handle policy : append
Remote ID : mac
Client Requests Server Responses
Valid Dropped Valid Dropped
---------- ---------- ---------- ----------
40156 0 0 0
有趣的是,交换机 B 上的 dhcp 中继代理似乎非常繁忙,但为什么呢?据我所知,在这种拓扑结构下,dhcp 请求没有理由需要中继。此外,我无法判断为什么上游交换机会丢弃合法的 dhcp 请求以获取不受信任的中继信息,而有问题的中继代理(在交换机 B 上)无论如何都不会修改选项 82 属性。
在交换机 A 上添加no dhcp-snooping option 82
允许交换机 B 的 dhcp 流量被交换机 A 批准,只需关闭该功能即可。不是验证选项 82 修改的 DHCP 流量?如果我禁用所有“上游”交换机上的选项 82 - 它们是否会传递来自任何下游交换机的 DHCP 流量,而不管该流量的合法性?
此行为与客户端操作系统无关。我在 Windows 和 Linux 客户端上都看到过这种情况。我们的 DHCP 服务器是 Windows Server 2003 或 Windows Server 2008 R2 计算机。无论 DHCP 服务器的操作系统是什么,我都会看到这种行为。
有人能解释一下这里发生了什么吗?并就如何配置选项 82 设置给我一些建议吗?我觉得我还没有完全理解 dhcp-relaying 和选项 82 属性。
答案1
您说“dhcp 中继未启用”……但根据您的 show dhcp-relay 输出,显然已启用。
尝试明确禁用它;根据上述评论,我怀疑您的问题将会消失:)
答案2
实际上,交换机 A 上的数据包被丢弃是因为您在不受信任的端口上收到了带有选项 82 的 DHCP 客户端数据包。该选项 82 由交换机 B 插入。
我认为下面应该有效 -
打开,SwitchB - 禁用选项 82,以便不会插入这些选项。将接口 25 标记为信任,以允许 DHCP 服务器数据包流到。
在 SwitchA 上,您可以在此处保持选项 82 处于启用/禁用状态。这没关系。将连接到 switchB 的端口标记为不可信。将连接到 dhcp 服务器的端口标记为可信。
答案3
我认为您可能误解了受信任端口的概念。我同意仅信任提供方所来自的端口是直观的,但我的理解是您还需要信任交换机 A 上的中继端口。您将连接到您了解和信任的设备上的端口标记为受信任。仅仅因为您将交换机 A 上的中继标记为受信任并不意味着您将允许流氓 DHCP 服务器存在于交换机 B 上。如果设置正确,交换机 B 不会信任除其中继端口之外的任何端口,因此您仍然可以阻止流氓 DHCP 服务器驻留在交换机 B 上并向交换机 A 上的客户端发送提供方。
简而言之,您应该信任连接到您自己的 DHCP 服务器的端口以及连接到您管理的其他交换机的端口(这样您就可以确保没有任何其他受信任的端口)。