Cisco Catalyst 上的访问列表后面的 DHCP 转发

Cisco Catalyst 上的访问列表后面的 DHCP 转发

我在从 Cisco Catalyst 4500 交换机上的访问列表后面的子网转发 DHCP 时遇到了一些问题。我希望有人能发现我犯的错误。

子网定义如下:(IP 地址和 VRF 名称的前三个八位字节已匿名化)

interface Vlan40
  ip vrf forwarding vrf_name
  ip address 10.10.10.126 255.255.255.0 secondary
  ip address 10.10.10.254 255.255.255.0
  ip access-group 100 out
  ip helper-address 10.10.20.36
  no ip redirects

我尝试在此子网上打开配置为使用 DHCP 的 VMWare 计算机,但从未收到 DHCP 响应,DHCP 服务器也没有收到请求。我尝试将以下内容放入访问列表中:

access-list 100 permit udp host 10.10.10.254 host 10.10.20.36 eq bootps
access-list 100 permit udp host 10.10.10.254 host 10.10.20.36 eq bootpc
access-list 100 permit udp host 10.10.20.36 host 10.10.10.254 eq bootps
access-list 100 permit udp host 10.10.20.36 host 10.10.10.254 eq bootpc

这没用。有人能看出问题出在哪里吗?

  • 我知道 DHCP 服务器可以工作;我们的整个网络都由这个 DHCP 服务器运行
  • 我还知道子网可以正常工作,因为我们在网络上运行着活跃的服务器
  • DHCP 服务器上已定义 DHCP 范围
  • 子网在 VMWare 服务器上已正确定义(VMWare 上的子网中已有服务器运行)

编辑2012-10-19:这个问题已经解决!该子网以前被定义为 /25 网络,但后来扩展为 /24 网络。在这次更改之后更改 DHCP 范围时,操作是错误的;网关被移动到 .254,可租用 IP 范围位于 /24 子网的下半部分,但我们忘记将 CIDR 前缀从 /25 更改为 /24。这件事发生在大约 2 年前,直到本周我们才需要再次在此服务器网络上使用 DHCP。

感谢 MDMarra 和 Jason Seemann 研究该问题并尝试解决问题。

现在我想知道我是否应该将Jason的答案标记为接受的答案(我是Stack Exchange网络的新手,所以我不知道如果我像在这种情况下错误地陈述了问题该怎么做)。

答案1

注 1:通常,出站 ACL 不应影响出站路由器发起的流量,因此,在您的情况下,我不太确定 ACL 是否直接阻止 DHCP 工作。

注 2:我模拟了一个简单的实验室来验证上述内容。本质上我只是设置了一个允许 IP 任何日志 ACL 来验证路由器流量不会触及 ACL - 在我的情况下并没有触及。

注释 3:因此,我连接了一个嗅探器来了解 VLAN40 上的 DHCP 答复的数据包格式。DHCP 答复将来自路由器接口(在您的例子中为 10.10.10.254),并发往广播 IP 255.255.255.255。源端口 BOOTPS,目标端口 BOOTPC。如果您愿意,您可以将 ACL 塑造成这种数据包格式(允许 udp 主机 10.10.10.254 eq bootps 主机 255.255.255.255 eq bootpc),但我再次认为您不会看到任何命中,因为注释 #1。

需要注意的是,我的 ACL 确实接收了来自 DHCP 服务器对子网的 ping 测试,以验证它想要分配的 IP 地址是否可用。即使您拒绝此 DHCP,它仍应有效,但主要仅供参考。

仔细查看您的服务器和客户端以及其他参数 - 您说 DHCP 在此子网上有效。或者只是进行基本确认,完全删除 ACL,看看它是否有效。

相关内容