Cisco

Cisco 2800 使用動態 NAT 創建靜態 NAT 到相同的 IP 地址?

  • March 2, 2017

我們有一個 Cisco 2800(實際上是兩個,帶有 HSRP)配置為為 LAN 中的許多主機提供服務,以及一個用於配置它們的 VPN。該設備有 2 個介面,一個服務於內部網路中的多個 VLAN,一個連接到 ISP,並通過配置的預設網關託管大量帶有 HSRP 的公共 IP 地址。ISP介面標在外面,LAN介面標在裡面。我的目標是限制某個主機的埠暴露,如下所示:

ip nat inside source static LAN_IP OUTSIDE_IP route-map RM-NOVPN

據我所知,這等於主機對任何外部連接都是開放的,並允許它通過 OUTSIDE_IP 的相同全域 IP 地址進行連接和可見。我試圖通過以下一些語句將暴露給外部連接的埠數量限制在最低限度:

ip nat inside source static tcp LAN_IP PORT1 OUTSIDE_IP PORT1 route-map RM-NOVPN

這可行,但如果我禁用總 NAT 轉換,主機將失去啟動與 Internet 的連接的能力。我嘗試過創建一個像這樣重載的動態翻譯:

ip nat pool HOSTPOOL OUTSIDE_IP OUTSIDE_IP mask 255.255.255.224 
ip nat inside source route-map RM_NOVPN2 pool HOSTPOOL overload
route-map RM_NOVPN2 deny 10
 match ip address AL-CRYPTOMAP-VPN
!
route-map RM_NOVPN2 permit 20
 match ip address AL-HOST
!
ip access-list standard AL-HOST
 permit LAN_IP
!

AL-CRYPTOMAP-VPN是 VPN 流量的加密映射訪問列表。在 RM_NOVPN 中使用相同的列表來防止源自 VPN 的流量被 NAT。

此配置不起作用,因為主機無法啟動與 Internet 的連接。原因未知,因為主機正在使用靜態全埠 NAT 進行通信。問題是,這項任務是否只能通過巧妙的 NAT 使用來完成?目前,我們無法為外部介面上的入站流量建立完整的 ACL。

請注意,這不是 ASA,因此我無法使用美化的 GUI 和數據包跟踪器來調試數據包流或其他任何東西。Cisco IOS 版本報告為 12.4。

不幸的是,在我的配置下,純 NAT 解決方案是不可能的。原因在這裡列出:

問:是否可以使用靜態和動態 NAT 轉換建構配置?

答:是的。但是,同一 IP 地址不能用於 NAT 靜態配置或池中用於 NAT 動態配置。所有公共 IP 地址都必須是唯一的。請注意,靜態轉換中使用的全域地址不會自動排除在包含相同全域地址的動態池中。必須創建動態池以排除靜態條目分配的地址。

顯然,如果思科有一個靜態 NAT,即使是基於端​​口的,為目標 IP 地址配置,它根本無法支持對同一 IP 地址的動態 NAT。那裡還說“如果出現與靜態 NAT 不匹配的數據包,則在沒有 NAT 的情況下傳輸”。因此,當 LAN_IP 嘗試在靜態上使用未列出的埠進行 NAT 時,數據包未進行 NAT,然後在外部介面被欺騙,或者至少連接永遠不會建立,因為源地址是 LAN_IP 而不是 OUTSIDE_IP。遺憾。

直接 NAT 到介面將導致伺服器作為 OUTSIDE_IP 之外的另一個 IP 發送數據,並且由於該伺服器是郵件伺服器,由於 SPF/DKIM 保護,從錯誤 IP 發送的郵件將在目的地被拒絕。

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