如何在 Cisco ASA 5506-X 上的接口之间允许 UDP 广播

Ste*_*ler 5 firewall udp cisco-asa

我有一个 CISCO ASA 5506-X,有 4 个配置的接口和一组访问列表等。它是通过 CLI 配置的,并在路由模式下运行,而不是透明的。一切都运行良好,但现在我遇到了一个我无法解决的问题:

其中一个接口包含一个子网 (192.168.2.*),其中的设备发出 UDP 广播以发现另一种设备。这些其他设备位于另一个接口 (192.168.3.*) 的另一个子网中。udp 广播在某个端口上是全局的 (255.255.255.255)。

我希望在 192.168.2.* 中发出的全局 UDP 广播也被发送到 192.168.3.* - 当然也允许返回。

在其他 Cisco 设备上,我已经发现可以使用ip helper-addressip forward-protocol命令来做到这一点- 但据我所知,ASA 型号不支持这些。

那么,如何获得跨接口的全局 UDP 广播?

Nat*_*ath 3

我认为这里的问题是您误解了 255.255.255.255 的含义。它不是“全球广播”。RFC ( https://www.rfc-editor.org/rfc/rfc919 )中的定义:

“地址 255.255.255.255 表示本地硬件网络上的广播,不得转发该地址。例如,不知道其网络号并向某些服务器询问该地址的主机可能会使用该地址。因此,例如,网络 36 上的主机可能:

  • 使用 255.255.255.255 向其所有直接邻居广播
  • 使用 36.255.255.255 向整个网络 36 广播

在您的情况下,主机 192.168.3.0/24 向 255.255.255.255 发送广播,意思是请将其发送到 192.168.3.0/24 中的所有主机。这与发送数据包到 192.168.3.255 相同。如果 .3 中的主机想要向 .2 发送广播,则需要向 192.168.2.255 发送数据包。将 .3 中的广播重新广播到 .2 本质上是说您希望将它们设置为同一子网,同时将它们保留为不同的子网。(子网的另一个常见名称是“广播域”)

ip helperip forward-protocol以及 ASA命令的作用dhcprelay 是捕获广播数据包并将其作为单播数据包转发到特定主机。通常是远程 DHCP 服务器,但还有其他用途。上一个答案中链接的检查点文档的第一段明确说明了这一点。它可以被认为是一种 NAT。即目的地址(255.255.255.255)更改为指定的单播IP,192.168.3.10。然后作为普通的单播数据包进行路由。这对于 DHCP 非常有用,并且允许 DHCP 服务器位于远程网络中并且仍然接收和响应 DHCP 请求,但不幸的是,即使 ASA 支持ip helperip forward-protocol命令,它仍然无法解决您的问题。您的要求违反了 RFC 和子网的定义。

这里最简单的解决方案是将 2 个子网合并到 192.168.2.0/23,然后桥接 2 个接口,并在透明模式下使用 ASA 来过滤 2 组主机之间的流量。

如果您做不到这一点,那么您需要找到一种更具可扩展性的方式来让您的设备相互查找。将广播发送到其子网各自的广播地址(192.168.3.255 和 192.168.2.255)或使用其他发现方法。255.255.255.255 不是一个可扩展或灵活的解决方案。