Firewall

如何允許 Cisco ASA 5506-X 上的介面之間的 UDP 廣播

  • October 15, 2021

我有一個 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 廣播?

我認為這裡的問題是您誤解了 255.255.255.255 的含義。它不是“全球廣播”。來自 RFC ( https://www.rfc-editor.org/rfc/rfc919 ) 的定義:

“地址 255.255.255.255 表示本地硬體網路上的廣播,不得轉發。例如,該地址可能被不知道其網路號並正在向某些伺服器請求它的主機使用。因此,一個例如,net 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 helperandip forward-protocol和 ASAs命令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 不是可擴展或靈活的解決方案。

引用自:https://serverfault.com/questions/743108