Cisco ASA:根據連接開始的位置路由數據包
我們有一個具有三個介面的 Cisco ASA 5505(版本 8.2(2)):
外部:IP 地址 11.11.11.11,這是預設路由 內部:IP 地址 10.1.1.1,這是本地子網 newlink:22.22.22.22,這是一個新的網際網路連接。
我們需要將 VPN 使用者從 11.11.11.11 地址移動到 22.22.22.22 地址,並且我們在 ASA 上使用 SSH 來測試和整理路由。
我們遇到的問題是這樣的:
如果我們將特定 IP 定義為在 newlink 介面的靜態路由上,那麼它可以通過 SSH 連接到 22.22.22.22。如果我們不定義靜態路由,則流量會到達 ASA,但返回流量不會通過新鏈路返回;大概它是通過外部介面發送的,因為這是預設路由。我們不能為每個遠端端點定義一個靜態路由,因為有撥號 VPN 使用者,他們顯然改變了很多 IP
我們需要做的是配置 ASA,因此如果連接進入 newlink 介面,則該連接的傳出數據包將通過 newlink 介面,而不是預設路由。使用 iptables,這應該可以通過標記連接並進行標記路由來實現,但 Cisco ASA 的等價物是什麼?
這在 Cisco ASA 上似乎是不可能的。從好的方面來說,我得到了“風滾草”徽章,因為一周內沒人知道如何做到這一點。:-)
如我所見,這個問題已有 3 年曆史,但我決定給出一個答案,因為它可能對有一天訪問此頁面的人有用。
這個問題是關於PBR(基於策略的路由),也稱為基於源地址的路由。問題是,這些東西是“官方”不被 ASA 支持的。但是,NAT 有一個技巧可以用來實現類似的結果。它被稱為身份NAT,也稱為同地址轉換。
在這種情況下,這將如下所示:
sysopt noproxyarp newlink
靜態(新連結,新連結) 0.0.0.0 0.0.0.0 網路遮罩 0.0.0.0
這就是說:當任何 IP (0.0.0.0/0) 出現在介面newlink上時,將其放回介面newlink上,同時將其轉換為自身 (0.0.0.0)。所以沒有真正發生 NAT,但我們說的是輸出介面。之所以會發生這種路由表覆蓋,是因為在使用身份 NAT 時,NAT 程序會根據“已轉換”介面執行一些部分路由。需要sysopt noproxyarp newlink命令,否則 ASA 將開始響應到達“newlink”介面的任何目標地址的 ARP 請求 (proxy-ARP)。所有這些都是8.3 之前的ASA 作業系統語法。
8.3 後的語法是這樣的:
sysopt noproxyarp newlink
nat (newlink,newlink) 源 靜態 任何 任何