簡介
本文檔介紹當流量在WAN上丟失,但在SD-WAN邊緣未發現丟包時,如何識別和收集資料。
必要條件
需求
思科建議您瞭解以下主題:
- 思科軟體定義廣域網路(SD-WAN)
- 內嵌式封包擷取或vManage封包擷取
- Wireshark
- Microsoft Excel
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- C8000V版本17.03.04
- vManage版本20.3.4
- Wireshark版本2.6.3
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景
為了協助解決此難題,本文檔中介紹的步驟說明如何使用差分服務代碼點(DSCP)標籤特定流量,以幫助識別所需的資料包。DSCP可用於標識流量,因為該值是從內部資料包報頭複製到IPsec報頭。一旦識別出所需的資料包,它就會顯示如何匹配兩個WAN捕獲之間的流量,以確保流量從源傳輸到目的地。
兩個單路由器站點用於演示此故障排除技術。在此案例中,從10.0.0.10到10.0.2.10的ICMP流量形式為100 ping,如下圖所示。在此範例中沒有遺失,但會在遺失的情況下使用相同的疑難排解技術來識別遺失。
疑難排解程式
概觀過程
- 對於通過WAN跟蹤的流量,需要訪問清單(ACL)(或集中策略)來標籤具有一些未使用DSCP值的流量。在本示例中,使用了DSCP 27。
- 標籤流量後,嵌入式資料包捕獲用於捕獲源路由器和目的路由器傳輸介面上的資料包。
註意:雖然有5MB資料或5分鐘運行時間的限制,但也可使用vManage資料包捕獲。
- 擷取擷取後,在Wireshark中將其開啟以檢視。
- 在Wireshark中應用該過濾器,以顯示需要哪些資料包,然後對其進行比較。
- Microsoft Excel用於大型捕獲,以確保準確性。
使用DSCP標籤所需的流量
在源路由器上配置了訪問清單(如示例中的cEdge1),並在路由器配置的SD-WAN部分的介面上應用,如圖所示。
應用可選計數器以驗證流量是否按預期到達策略。可以使用show sdwan policy access-list-counters命令檢查此問題。
policy
access-list mark_dscp_27
sequence 10
match
source-ip 10.0.0.10/32
destination-ip 10.0.2.10/32
!
action accept
count MARK_DSCP_27_COUNT (optional counter to verify packets that hit the policy)
set
dscp 27
!
!
!
default-action accept
sdwan
interface GigabitEthernet3
access-list mark_dscp_27 in
使用嵌入式捕獲捕獲捕獲流量
附註:如何在Cisco IOS XE 中配置嵌入式資料包捕獲以捕獲穿越廣域網的加密資料包,請導航至Embedded Packet Capture for Cisco IOS and Cisco IOS XE Configuration Example
附註:必須使用ACL來限制WAN上的EPC,因為EPC的PPS速率限制可能超過1000。
範例
cEdge1和cEdge3上配置了ACL,因為在本示例中,流量僅在源到目的地的方向上被檢查。
附註:WAN IP地址用於過濾捕獲。有多個輸出可用於標識流量所採用的路徑,以便可以為ACL過濾器標識正確的WAN IP。可用於生成此輸出的命令是show sdwan app-fwd cflowd flows和show sdwan policy service path。請導覽至Conditional Packet Trace以瞭解偵錯條件。
ip access-list extended CAP-Filter
10 permit ip host 192.168.23.149 host 192.168.28.240
這時,兩個路由器上都會啟動擷取,並在重疊上傳送了100個ping。
#ping vrf 10 10.0.2.10 rep 100
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 10.0.2.10, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (100/100), round-trip min/avg/max = 1/1/4 ms
從兩台路由器停止捕獲並收集捕獲後,需要在Wireshark中開啟捕獲來檢視捕獲。
通過Wireshark進行分析
在Wireshark中開啟cEdge1捕獲後,會發現所有流量都經過加密,因此很難分辨哪些資料包是傳送的ping。
使用顯示過濾器ip.dsfield.dscp == 27過濾此捕獲時,螢幕底部只顯示100個資料包,並且顯示DSCP列值全部顯示27。
在廣域網中維護DSCP值的某些情況下,可以在目標捕獲上使用相同的過濾器。
在其他情況下,這不可能,例如通過公共Internet連線清除DSCP值的情況。
按ESP序列過濾所需流量
無論哪種情況,都可以使用ESP序列號來標識流量。
要檢視資料包中的ESP序列號,請按一下右鍵捕獲並選擇Decode as(如圖所示)。
選擇Current field下拉選單,在該欄位中鍵入UDPENCAP,或從下拉選單中選擇。
完成此操作後,選擇OK。
在Wireshark Packet Details(Wireshark資料包詳細資訊)部分中,展開資料包的Encapsulating Security Payload(封裝安全負載)部分,檢視ESP序列。
按一下右鍵ESP Sequence,然後選擇apply as列,這樣ESP Sequence就作為Wireshark螢幕頂部「Packet List」部分的列顯示。
附註:cEdge1上資料包的ESP SPI是0x040001dc。這用於目標捕獲上的篩選器。
開啟目標捕獲,重複上述步驟以UDPENCAP形式解碼,並在資料包中顯示ESP序列號。
資料包顯示ESP序列號後,來自第一個捕獲的ESP SPI可以用作第二個捕獲的過濾器,以僅顯示該SPI中匹配所需流量的流量。
請注意,匹配兩個資料包的序列號均標籤了DSCP 27。
此比較可以在Wireshark中手動完成,也可以使用Microsoft Excel進行此比較。
為了使用Microsoft Excel進行比較,需要對兩個捕獲進行切片,以便僅包含兩個捕獲中的資料包。
在源捕獲中,第一個相關資料包的ESP序列為306,對應於資料包編號451。
源捕獲中的最後一個相關資料包的ESP序列為405,資料包編號為550。
在目標捕獲中,第一個相關資料包對應於ESP序列306的源捕獲,但此捕獲是資料包463。
最後一個相關資料包也帶有ESP序列405,即資料包564。
現在,必須對第一個捕獲進行切片處理,以僅包含相關資料包。
導航到檔案>匯出資料包剖析>作為CSV...
選擇Captured和Range,然後在Range欄位中鍵入從第一個相關資料包到最後一個相關資料包的範圍。
在「File Name」欄位中輸入檔案名稱,然後按一下「Save」。
對capture 2的相關資料包重複相同的過程。
在Microsoft Excel中開啟兩個CSV檔案。
在源捕獲CSV上,另存為XLSX格式。
在螢幕底部,選擇+符號以新增其他工作表。將其命名為CAP2_slice。
開啟CAP2 CSV文件,然後按CTRL +a選擇全部,並按CTRL + c進行複製。
導航到CAP1_slice.xlsx檔案,然後在CAP2_slice的第二個頁籤上,將複製的資訊貼上(CTRL + v)到單元格A1中。
導航回CAP1_slice工作表並建立一個名為COMPARE_ESP_SEQUENCE的新列。
由於ESP序列號位於列G中,請按照所示合成一個VLOOKUP命令,以比較兩個工作表,確保源上列G中的所有內容都位於目標上的列G中。
=IF(ISNA(VLOOKUP(G2,CAP2_slice!G:G,1,FALSE)),"MISSING","PRESENT")
選擇Enter後,將顯示PRESENT一詞。這表示在第二張表中存在ESP序列306的資料包。這非常重要,因為這意味著封包已從來源到達目的地。
選擇列O行2,並將滑鼠懸停在該單元格周圍的綠色框的右下角。
選擇並按住滑鼠並向下拖動滑鼠,以便將此公式複製到有值的單元格的底部。
回滾到工作表的頂部,然後按一下COMPARE_ESP_SEQUENCE。然後選擇排序和篩選。
從下拉選單中選擇Filter。
COMPARE_ESP_SEQUENCE列上出現下拉菜單。
按一下COMPARE_ESP_SEQUENCE標題上的下拉菜單。請注意,在此範例中,顯示的唯一值為PRESENT。這表示兩個擷取中都存在所有封包。
要建立有問題的示例,請從CAP2_slice刪除10個資料包,以演示在缺少某些丟失資料包的測試中如何使用此示例。
導覽回CAP1_slice工作表,現在發現有10個封包遺失。
在COMPARE_ESP_SEQUENCE列上選擇了下拉選單後,現在會看到還存在MISSING資料包。可以將其切換為僅檢視MISSING數據包。
現在,Excel工作表只顯示缺少的資料包。
接收方上的DSCP不同
在某些情況下,ISP會清除所設定的DSCP值,因此接收方設定的DSCP值與傳送方設定的DSCP不匹配。另一個用於補充此場景並跟蹤資料包的有用工具是ESP SPI和ESP序列號。
應使用DSCP來識別來自傳送方的關注資料包。然後,可以將來自這些特定資料包的ESP序列號與接收器捕獲進行比較。與DSCP標籤不同,ESP序列號無法修改,因為它嵌入在SD-WAN IPSEC功能中。這使得ESP序列號有助於在底層上跟蹤感興趣的資料包(與傳送方的DSCP匹配)。
要比較ESP序列號,可以將ESP序列號新增為Wireshark中的列,並在出站捕獲和入站捕獲之間進行比較。
在Wireshark中開啟pcap結構後,為了能夠檢視ESP SPI和序列號,請展開一個資料包,按一下右鍵並選擇協定首選項,搜尋UDPENCAP,並將預設埠更改為SD-WAN埠(源埠),如下圖所示。
在正確的埠設定了UDPENCAP後,現在將顯示ESP資訊,如下圖所示。
附註:要瞭解有關SD-WAN上的ESP的詳細資訊,請參閱排除SD-WAN cEdge IPsec防重播故障
相關資訊