在封包核心實例上執行封包擷取
使用 MEC-Dataplane 追蹤工具來執行控制或數據平面封包的封包擷取。 MEC-Dataplane (MEC-DP) 追蹤類似於 tcpdump,這是在命令行介面 (CLI) 上執行的數據網路封包分析器計算機程式。 您可以使用 MEC-DP 追蹤,監視和記錄裝置上任何使用者平面介面上的封包(N3 介面)或數據網路 (N6 介面),以及控制平面 (N2 介面)。 您可以使用 Azure 入口網站 或 Azure CLI 來存取 MEC-DP 追蹤。
封包擷取的運作方式是將封包鏡像到Linux核心介面,然後使用 tcpdump 加以監視。 在本操作指南中,您將瞭解如何在封包核心實例上執行封包擷取。
重要
執行封包擷取會降低系統的效能,以及數據平面的輸送量。 因此,建議在初始測試期間以低規模使用此工具。
必要條件
您必須部署AP5GC網站,才能執行封包擷取。
若要使用命令行執行封包擷取,您必須:
- 識別 Kubernetes - Azure Arc 資源,代表您封包核心實例執行所在的 Azure Arc 已啟用 Kubernetes 叢集。
- 請確定您的本機電腦具有已啟用 Azure Arc 的 Kubernetes 叢集核心 kubectl 存取權。 這需要核心 kubeconfig 檔案,您可以透過下列 Core 命名空間存取來取得該檔案。
使用 Azure 入口網站 執行封包擷取
設定儲存體帳戶
您必須設定記憶體帳戶來儲存診斷套件。
- 使用下列其他組態建立診斷的記憶體帳戶 :
- 在 [數據保護] 索引標籤的 [存取控制] 底下,選取 [啟用版本層級不變性支援]。 這可讓您在下一個步驟中指定帳戶的時間型保留原則。
- 如果您想要在一段時間後自動刪除記憶體帳戶的內容, 請為您的記憶體帳戶設定預設的時間型保留原則 。
- 建立診斷的容器 。
- 記下 容器 Blob URL。 例如:
https://storageaccountname.blob.core.windows.net/diagscontainername
- 流覽至您的 儲存體 帳戶。
- 選取您要用於診斷集合之容器 Blob 右側的 ... 符號。
- 在操作功能表中選取 [容器屬性 ]。
- 複製容器屬性檢視中 URL 欄位的內容。
- 建立使用者指派的身分識別,並使用 儲存體 Blob 數據參與者角色,將它指派給上面建立的記憶體帳戶。
提示
建立網站時,您可能已經建立並關聯使用者指派的身分識別。
- 流覽至 網站的封包核心控制平面 資源。
- 選取左側功能表中 設定 下的 [身分識別]。
- 選取 [新增]。
- 選取您所建立的使用者簽署受控識別,然後選取 [ 新增]。
重要
建立使用者指派的受控識別之後,您必須藉由進行虛擬設定變更來重新整理封包核心設定。 這可能是不會對您的部署造成任何影響的變更,而且可以就地保留,或您立即還原的變更。 請參閱 修改封包核心實例。 如果您未重新整理封包核心組態,封包擷取將會失敗。
啟動封包擷取
登入 Azure 入口網站。
流覽至 您要執行封包擷取之網站的 [封包核心控制窗格 ] 概觀頁面。
選取左側 [說明] 區段底下的 [封包擷取]。 這會開啟封包擷 取 檢視。
如果這是您第一次使用入口網站擷取封包,您會看到錯誤訊息,提示您設定記憶體帳戶。 如果是:
- 遵循錯誤訊息中的連結。
- 輸入針對診斷記憶體設定的 儲存體 帳戶容器 URL,然後選取 [修改]。
提示
如果您沒有記憶體帳戶容器的 URL:
- 流覽至您的 儲存體 帳戶。
- 選取您要用於封包擷取之容器右側的 ... 符號。
- 在操作功能表中選取 [容器屬性 ]。
- 複製 URL 欄位的內容。
- 返回封包擷 取 檢視。
選取 [啟動封包擷取]。
填寫 [開始封包擷取] 窗格的詳細數據,然後選取 [建立]。
每個 節點會套用每個會話 的位元組上限。 在高可用性 (HA) 部署中,封包擷取可能會達到此限制,並在另一個節點上完成,因此當第一個節點完成時,封包擷取仍會執行。 您應該在啟動新的封包之前停止任何執行中的封包擷取。
頁面會每隔幾秒鐘重新整理一次,直到封包擷取完成為止。 您也可以使用 [ 重新 整理] 按鈕來重新整理頁面。 如果您想要提早停止封包擷取,請選取 [ 停止封包擷取]。
封包擷取完成後,AP5GC 在線服務會在提供的記憶體帳戶 URL 儲存輸出。
在HA部署中,將會上傳兩個封包擷取檔案,每個節點各一個。 檔案會標示為
0
或 ,對應至core-mec-dp-0
或1
core-mec-dp-1
Pod。 如果一個封包擷取失敗,狀態頁面會顯示錯誤,但成功的擷取結果會如常上傳。若要下載封包擷取輸出,您可以使用 儲存體 或檔名資料行中的 [複製到剪貼簿] 按鈕來複製這些詳細數據,然後將這些詳細數據貼到入口網站的 [搜尋] 方塊中。 若要下載輸出,請以滑鼠右鍵按下檔案,然後選取 [ 下載]。
使用 Azure CLI 執行封包擷取
在具有已啟用 Azure Arc 的 Kubernetes 叢集存取 kubectl 的命令行中,輸入 MEC-DP 疑難解答員 Pod:
kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- bash
注意
在HA部署中,
core-mec-dp-0
可能不存在,因為節點已關閉。 在這裡情況下,請改為輸入core-mec-dp-1
。檢視已設定的使用者平面介面清單:
mect list
這應該會報告控制平面網路上的單一介面 (N2)、存取網路上的單一介面 (N3) 和核心網路的單一介面 (N6)。
n2trace n3trace n6trace
使用
mectdump
您通常會傳遞至 tcpdump 的任何參數執行。 特別是,-i
若要指定 介面,以及-w
指定要寫入的位置。 按 Ctrl + C 完成時關閉工具。下列範例是常見的使用案例:- 若要擷取所有介面上的封包,請執行
mectdump -i any -w any.pcap
- 若要擷取 N3 介面的封包和單一數據網路的 N6 介面,請在兩個不同的視窗中輸入 MEC-DP 疑難解答員 Pod。 在視窗中執行
mectdump -i n3trace -w n3.pcap
,另一個視窗mectdump -i n6trace -w n6.pcap
執行 。 若要選取個別的數據網路,請依 VLAN 識別碼進行篩選。
重要
封包擷取檔案可能很大,尤其是在所有介面上執行封包擷取時。 在執行封包擷取以減少檔案大小時指定篩選條件 - 請參閱 tcpdump 檔以瞭解可用的篩選器。
- 若要擷取所有介面上的封包,請執行
保留容器:
exit
複製輸出檔案:
kubectl cp -n core core-mec-dp-0:<path to output file> <location to copy to> -c troubleshooter
tcpdump 可能在寫入封包時停止,這可能會導致此步驟產生錯誤,指出
unexpected EOF
。 不過,您的檔案應該已成功複製,而且您可以檢查目標輸出檔案以確認。移除輸出檔案:
kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- rm <path to output file>
下一步
如需監視部署和檢視分析的更多選項:
- 深入瞭解如何使用 Azure 監視器平臺計量監視 Azure Private 5G Core
- 如果您發現問題且不知道如何解決問題,您可以 取得 Azure 私人 5G 核心服務的支援