我有一个CISCO ASA 5506-X,带有4个configuration的接口和一组访问列表等,它通过CLI进行configuration,并以路由模式运行,不透明。 一切运行良好,但现在我有一个问题,我还无法解决:
其中一个接口包含一个子网(192.168.2。*),其中的设备发送UDP广播来发现另一种设备。 其他设备位于另一个接口(192.168.3。*)的另一个子网中。 在某个端口上,udp广播是全局的(255.255.255.255)。
我想要在192.168.2。*中发送的全局UDP广播也发送到192.168.3。* – 并且当然也允许返回。
在其他思科设备上,我已经发现可以使用ip helper-address和ip forward-protocol命令来做到这一点 – 但是ASA模型并不支持这些,据我所知。
那么,我如何通过接口获得全局UDP广播呢?
我想这里的问题是你误解了255.255.255.255是什么意思。 它不是“全球广播”。 RFC的定义( https://tools.ietf.org/html/rfc919 ):
“地址255.255.255.255表示在本地硬件networking上的广播,它不能被转发,例如,这个地址可以被不知道它们的networking号的主机使用,并且询问某个服务器,例如,networking36上的主机可以:
- 通过使用255.255.255.255向所有邻居广播
- 通过使用36.255.255.255向所有networking36广播
在你的情况下,一个主机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 helper和ip forward-protocol以及ASA dhcprelay命令所做的是捕获广播数据包,并将其作为单播数据包转发给特定的主机。 通常是远程DHCP服务器,但还有其他用途。 这在前面的答案中链接的检查点文档的第一段中已经明确说明。 它可以被认为是一种NAT。 即目的地址(255.255.255.255)被更改为指定的单播IP 192.168.3.10。 然后作为正常的单播数据包路由。 这对DHCP非常有用,并允许DHCP服务器在远程networking中,仍然可以接收和响应DHCP请求,但不幸的是,即使ASA支持ip helper和ip forward-protocol命令,它仍然无法解决您的问题。 你的问题违反了RFC和子网的定义。
最简单的解决scheme是将两个子网合并到192.168.2.0/23中,然后桥接两个接口,并使用透明模式下的ASA过滤两组主机之间的stream量。
如果你不能这样做,那么你需要找出一个更可扩展的方式来让你的设备find对方。 要么广播发送到他们的子网各自的广播地址(192.168.3.255和192.168.2.255)或使用其他发现方法。 255.255.255.255不是一个可扩展或灵活的解决scheme。
在当前版本中没有这个function(可能出于安全原因)。 思科实施“dhcprelay”,而不是提供更广泛的广播转发的手段。
我build议在ASA FW之外添加另一个可以执行相同angular色的设备(也许是Cisco路由器或Linux机器)。 您将需要通过ASA允许“定向广播”。
您也可以考虑使用不同的支持广播中继的防火墙平台,例如Checkpoint防火墙。
看看这里看看它是如何configuration的