簡介
本文檔介紹如何使用NAT過載在TLOC擴展路由器上配置靜態NAT,以便與對稱NAT後的對等體合作。
行動
思科建議您瞭解以下主題:
- Cisco Catalyst軟體定義廣域網路(SD-WAN)
- 網路位址轉譯(NAT)
- TLOC擴展
採用元件
本文件中的資訊是以下列軟體和硬體版本為依據.
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
問題
Cisco Catalyst SD-WAN設計手冊強調某些型別的網路地址轉換(NAT)可能會影響控制連線和BFD隧道的形成。
不協同工作的兩種NAT型別是埠/地址受限NAT和對稱NAT。這些NAT型別要求從內部網路啟動會話,以允許每個埠上的流量。這意味著外部流量在沒有來自內部的事先請求的情況下無法啟動到內部網路的連線。
對稱NAT背後的站點在與對等站點建立BFD會話時經常遇到困難。當在NAT過載(也稱為埠/地址受限NAT)之後使用TLOC擴展與站點對等時,這尤其具有挑戰性。
拓撲
狀況
1. S30_Edge1位於對稱NAT之後
2. S20_Edge2位於TLOC擴展之後,其中S20_Edge1使用NAT過載(PAT)對來自Edge2的流進行NAT。
這會導致對稱NAT裝置和S20_Edge1上的BFD hello被丟棄,因為對等體中的未知埠不存在會話。
S20_Edge1裝置顯示這些hello的隱式ACL丟棄,因為它們與NAT表中的任何會話都不匹配。

找出問題
步驟1.檢查BFD會話
在S30_Edge1上的show sdwan bfd sessions輸出中,可以看到到S20_Edge2(10.0.0.2)的BFD會話已關閉。
S30_Edge1#show sdwan bfd sessions
SOURCE TLOC REMOTE TLOC DST PUBLIC DST PUBLIC DETECT TX
SYSTEM IP SITE ID STATE COLOR COLOR SOURCE IP IP PORT ENCAP MULTIPLIER INTERVAL(msec UPTIME TRANSITIONS
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
10.0.0.2 20 down biz-internet biz-internet 192.168.30.2 172.16.1.18 5063 ipsec 7 1000 NA 0
10.0.0.1 20 up biz-internet biz-internet 192.168.30.2 172.16.1.18 12346 ipsec 7 1000 0:00:44:29 0
步驟2.檢查NAT型別
在輸出的底部,在S30_Edge1上看到NAT型別A。這表示對稱NAT。另請注意公用IP 172.16.1.34和埠31048。
S30_Edge1# show sdwan control local-properties
site-id 30
domain-id 1
protocol dtls
tls-port 0
system-ip 10.0.0.30
NAT TYPE: E -- indicates End-point independent mapping
A -- indicates Address-port dependent mapping
N -- indicates Not learned
Note: Requires minimum two vbonds to learn the NAT type
PUBLIC PUBLIC PRIVATE PRIVATE PRIVATE WAN MAX RESTRICT/ LAST SPI TIME NAT VM BIND
INTERFACE IPv4 PORT IPv4 IPv6 PORT VS/VM COLOR STATE CNTRL CONTROL/ LR/LB CONNECTION REMAINING TYPE CON REG INTERFACE
STUN PRF IDs
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GigabitEthernet1 172.16.1.34 31048 192.168.30.2 :: 12346 2/1 biz-internet up 2 yes/yes/no No/No 0:00:49:18 0:11:10:25 A 5 Default N/A
步驟3.檢查NAT配置
從拓撲中可以得知,S20_Edge2位於TLOC擴展的後面。此時,我們可以檢查S20_Edge1上的PAT配置。
S20_Edge1上已經存在NAT過載配置
S20_Edge1#sh run int gi1
interface GigabitEthernet1
description biz-internet
ip dhcp client default-router distance 1
ip address 192.168.20.2 255.255.255.0
no ip redirects
ip nat outside
load-interval 30
negotiation auto
arp timeout 1200
end
S20_Edge1#sh run | i nat
ip nat inside source list nat-dia-vpn-hop-access-list interface GigabitEthernet1 overload
步驟4.檢查公共IP和埠
檢查S20_Edge2上的show sdwan control local properties輸出,檢視公共IP和埠172.16.1.18以及埠5063
S20_Edge2#show sdwan control local-properties
site-id 20
domain-id 1
protocol dtls
tls-port 0
system-ip 10.0.0.2
NAT TYPE: E -- indicates End-point independent mapping
A -- indicates Address-port dependent mapping
N -- indicates Not learned
Note: Requires minimum two vbonds to learn the NAT type
PUBLIC PUBLIC PRIVATE PRIVATE PRIVATE WAN MAX RESTRICT/ LAST SPI TIME NAT VM BIND
INTERFACE IPv4 PORT IPv4 IPv6 PORT VS/VM COLOR STATE CNTRL CONTROL/ LR/LB CONNECTION REMAINING TYPE CON REG INTERFACE
STUN PRF IDs
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GigabitEthernet2.100 172.16.1.18 5063 192.168.100.2 :: 12346 2/0 biz-internet up 2 yes/yes/no No/No 0:00:50:29 0:11:09:15 E 5 Default N/A
步驟5.檢查NAT轉換
現在檢查S20_Edge1裝置上的NAT轉換。對於S30_Edge1、IP 172.16.1.34和埠31048,只有到通告的IP和埠的NAT會話。考慮到我們對對稱NAT的瞭解,情況並非如此。必須至少有一個與31048不同的埠(不是像12346這樣的標準SD-WAN埠),如果不是不同的IP和埠組合。
S20_Edge1#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.1.69:12346 172.16.1.69:12346
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.0.102:12446 172.16.0.102:12446
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.1.50:12346 172.16.1.50:12346
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.0.202:12346 172.16.0.202:12346
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.1.82:12346 172.16.1.82:12346
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.1.34:31048 172.16.1.34:31048
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.0.201:12346 172.16.0.201:12346
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.0.101:12446 172.16.0.101:12446
udp 192.168.20.2:5063 192.168.100.2:12346 172.16.1.98:12346 172.16.1.98:12346
步驟6.檢查FIA跟蹤
運行FIA跟蹤,僅檢查資料包是否在S20_Edge1上被丟棄。請記住,IP不必與通告的IP相同,但為了簡單起見,必須相同。
S20_Edge1#debug platform condition ipv4 172.16.1.34/32 both
S20_Edge1#debug platform condition start
S20_Edge1#debug platform packet packet 1024 fia
S20_Edge1#debug platform packet packet 1024 fia-trace
S20_Edge1#show platform packet summary
Pkt Input Output State Reason
0 Gi2.100 Gi1 FWD
1 internal0/0/recycle:0 Gi1 FWD
2 Gi2.100 Gi1 FWD
3 internal0/0/recycle:0 Gi1 FWD
4 Gi2.100 Gi1 FWD
5 internal0/0/recycle:0 Gi1 FWD
6 Gi2.100 Gi1 FWD
7 internal0/0/recycle:0 Gi1 FWD
8 Gi1 Gi1 DROP 479 (SdwanImplicitAclDrop)
檢查資料包8,檢視此資料包是否為可疑資料包。
S20_Edge1#show platform packet packet 8
Packet: 8 CBUG ID: 482
Summary
Input : GigabitEthernet1
Output : GigabitEthernet1
State : DROP 479 (SdwanImplicitAclDrop)
Timestamp
Start : 6120860350139 ns (04/18/2025 02:35:03.873687 UTC)
Stop : 6120860374021 ns (04/18/2025 02:35:03.873710 UTC)
Path Trace
Feature: IPV4(Input)
Input : GigabitEthernet1
Output :
Source : 172.16.1.34
Destination : 192.168.20.2
Protocol : 17 (UDP)
SrcPort : 3618
DstPort : 12346
這似乎的確是來自S30_Edge1的封包。
在步驟6中再次檢查NAT表,我們可以看到沒有此資料包的會話。這就是股市下跌的原因。
步驟7.檢查BFD計數器
在S30_Edge1上看不到來自S20_Edge2的BFD資料包,因為這些資料包在NAT裝置上的裝置外部被丟棄。可以通過show sdwan tunnel statistics命令檢查BFD Tx/Rx計數器。
S30_Edge1#show sdwan tunnel statistics
tunnel stats ipsec 192.168.30.2 172.16.1.18 12346 12347
system-ip 10.0.0.2
local-color biz-internet
remote-color biz-internet
tunnel-mtu 1438
tx_pkts 10
tx_octets 1060
rx_pkts 0 <<<<<<<<<<<<<
rx_octets 0
tcp-mss-adjust 1358
ipv6_tx_pkts 0
ipv6_tx_octets 0
ipv6_rx_pkts 0
ipv6_rx_octets 0
tx_ipv4_mcast_pkts 0
tx_ipv4_mcast_octets 0
rx_ipv4_mcast_pkts 0
rx_ipv4_mcast_octets 0
tx-ipv6-mcast-pkts 0
tx-ipv6-mcast-octets 0
rx-ipv6-mcast-pkts 0
rx-ipv6-mcast-octets 0
解決方案
要解決此問題,可以在S20_Edge1上的NAT過載(PAT)之上配置靜態NAT,將所有控制和BFD資料包傳送到單個IP/埠組合。
1.首先,必須在此顏色上禁用埠跳躍,或在S20_Edge2上禁用系統範圍的埠跳躍。
還可以為S20_Edge2新增埠偏移作為最佳實踐,因此S20_Edge1和S10_Edge2不會將同一源埠用於控制連線或BFD隧道。
附註:此配置可以通過路由器CLI或通過vManage CLI外掛模板執行。
S20_Edge2#config-t
S20_Edge2(config)# system
S20_Edge2(config-system)# no port-hop
S20_Edge2(config-system)# port-offset 1
S20_Edge2(config-system)# commit
附註:通過檢查show sdwan control local-properties,確保S20_Edge12347在此配置後使用基本埠VLAN。如果未使用基本埠,請使用命令clear sdwan control port-index將埠重置回基本埠。如果連線埠在更高的連線埠上執行,且之後會重新開機,這可以防止連線埠變更。clear命令重置控制連線和bfd隧道。
2.在S20_Edge1上配置靜態NAT。
S20_Edge1#config-t
S20_Edge1(config)# ip nat inside source static udp 192.168.100.2 12347 192.168.20.2 12347 egress-interface GigabitEthernet1
S20_Edge1(config)# commit
3.清除S20_Edge1上的NAT轉換。
S20_Edge1#clear ip nat translation *
驗證
1.檢查其中一個對等體上的BFD會話。
S30_Edge1#show sdwan bfd sessions
SOURCE TLOC REMOTE TLOC DST PUBLIC DST PUBLIC DETECT TX
SYSTEM IP SITE ID STATE COLOR COLOR SOURCE IP IP PORT ENCAP MULTIPLIER INTERVAL(msec UPTIME TRANSITIONS
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
10.0.0.2 20 up biz-internet biz-internet 192.168.30.2 172.16.1.18 12347 ipsec 7 1000 0:00:00:37 0
2.檢查S20_Edge1上的NAT會話。
S20_Edge1#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
udp 192.168.20.2:12347 192.168.100.2:12347 --- ---
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.0.202:12346 172.16.0.202:12346
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.1.50:12346 172.16.1.50:12346
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.0.102:12446 172.16.0.102:12446
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.1.34:50890 172.16.1.34:50890
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.1.69:12346 172.16.1.69:12346
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.1.98:12346 172.16.1.98:12346
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.0.101:12446 172.16.0.101:12446
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.0.201:12346 172.16.0.201:12346
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.1.82:12346 172.16.1.82:12346
udp 192.168.20.2:12347 192.168.100.2:12347 172.16.0.1:13046 172.16.0.1:13046
Total number of translations: 11
現在可看到,所有控制連線和BFD隧道都通過NAT連線到配置的IP和埠192.168.20.2:12347。此外,到172.16.1.34的連線與S30_Edge1向vSmart通告的連線完全不同。請參閱埠50890。
3.請注意,在S30_Edge1的show sdwan control local properties輸出中,通告的IP和埠為172.16.1.34,且埠為60506。
S30_Edge1#show sdwan control local-properties
site-id 30
domain-id 1
protocol dtls
tls-port 0
system-ip 10.0.0.30
NAT TYPE: E -- indicates End-point independent mapping
A -- indicates Address-port dependent mapping
N -- indicates Not learned
Note: Requires minimum two vbonds to learn the NAT type
PUBLIC PUBLIC PRIVATE PRIVATE PRIVATE WAN MAX RESTRICT/ LAST SPI TIME NAT VM BIND
INTERFACE IPv4 PORT IPv4 IPv6 PORT VS/VM COLOR STATE CNTRL CONTROL/ LR/LB CONNECTION REMAINING TYPE CON REG INTERFACE
STUN PRF IDs
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GigabitEthernet1 172.16.1.34 60506 192.168.30.2 :: 12346 2/0 biz-internet up 2 yes/yes/no No/No 0:00:21:13 0:11:38:30 A 5 Default N/A
參考資料
Cisco Catalyst SD-WAN設計手冊