共用方式為


在封包核心實例上執行封包擷取

使用 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 入口網站 執行封包擷取

設定儲存體帳戶

您必須設定記憶體帳戶來儲存診斷套件。

  1. 使用下列其他組態建立診斷的記憶體帳戶
    1. 在 [數據保護] 索引標籤的 [存取控制] 底下,選取 [啟用版本層級不變性支援]。 這可讓您在下一個步驟中指定帳戶的時間型保留原則。
    2. 如果您想要在一段時間後自動刪除記憶體帳戶的內容, 請為您的記憶體帳戶設定預設的時間型保留原則
    3. 建立診斷的容器
    4. 記下 容器 Blob URL。 例如:
      https://storageaccountname.blob.core.windows.net/diagscontainername
      1. 流覽至您的 儲存體 帳戶
      2. 選取您要用於診斷集合之容器 Blob 右側的 ... 符號。
      3. 在操作功能表中選取 [容器屬性 ]。
      4. 複製容器屬性檢視中 URL 欄位的內容
  2. 建立使用者指派的身分識別,並使用 儲存體 Blob 數據參與者角色,將它指派給上面建立的記憶體帳戶。

    提示

    建立網站時,您可能已經建立並關聯使用者指派的身分識別。

  3. 流覽至 網站的封包核心控制平面 資源。
  4. 選取左側功能表中 設定 下的 [身分識別]。
  5. 選取 [新增]。
  6. 選取您所建立的使用者簽署受控識別,然後選取 [ 新增]。

重要

建立使用者指派的受控識別之後,您必須藉由進行虛擬設定變更來重新整理封包核心設定。 這可能是不會對您的部署造成任何影響的變更,而且可以就地保留,或您立即還原的變更。 請參閱 修改封包核心實例。 如果您未重新整理封包核心組態,封包擷取將會失敗。

啟動封包擷取

  1. 登入 Azure 入口網站

  2. 流覽至 您要執行封包擷取之網站的 [封包核心控制窗格 ] 概觀頁面。

  3. 選取左側 [說明] 區段底下的 [封包擷取]。 這會開啟封包擷 檢視。

  4. 如果這是您第一次使用入口網站擷取封包,您會看到錯誤訊息,提示您設定記憶體帳戶。 如果是:

    1. 遵循錯誤訊息中的連結。
    2. 輸入針對診斷記憶體設定的 儲存體 帳戶容器 URL,然後選取 [修改]。

      提示

      如果您沒有記憶體帳戶容器的 URL:

      1. 流覽至您的 儲存體 帳戶
      2. 選取您要用於封包擷取之容器右側的 ... 符號。
      3. 在操作功能表中選取 [容器屬性 ]。
      4. 複製 URL 欄位的內容
    3. 返回封包擷 檢視。
  5. 選取 [啟動封包擷取]

  6. 填寫 [開始封包擷取] 窗格的詳細數據,然後選取 [建立]。

    每個 節點會套用每個會話 的位元組上限。 在高可用性 (HA) 部署中,封包擷取可能會達到此限制,並在另一個節點上完成,因此當第一個節點完成時,封包擷取仍會執行。 您應該在啟動新的封包之前停止任何執行中的封包擷取。

  7. 頁面會每隔幾秒鐘重新整理一次,直到封包擷取完成為止。 您也可以使用 [ 重新 整理] 按鈕來重新整理頁面。 如果您想要提早停止封包擷取,請選取 [ 停止封包擷取]。

  8. 封包擷取完成後,AP5GC 在線服務會在提供的記憶體帳戶 URL 儲存輸出。

    在HA部署中,將會上傳兩個封包擷取檔案,每個節點各一個。 檔案會標示為 0 或 ,對應至 core-mec-dp-01core-mec-dp-1 Pod。 如果一個封包擷取失敗,狀態頁面會顯示錯誤,但成功的擷取結果會如常上傳。

  9. 若要下載封包擷取輸出,您可以使用 儲存體 或檔名資料行中的 [複製到剪貼簿] 按鈕來複製這些詳細數據,然後將這些詳細數據貼到入口網站的 [搜尋] 方塊中。 若要下載輸出,請以滑鼠右鍵按下檔案,然後選取 [ 下載]。

使用 Azure CLI 執行封包擷取

  1. 在具有已啟用 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

  2. 檢視已設定的使用者平面介面清單:

    mect list
    

    這應該會報告控制平面網路上的單一介面 (N2)、存取網路上的單一介面 (N3) 和核心網路的單一介面 (N6)。

    n2trace
    n3trace
    n6trace
    
  3. 使用 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 檔以瞭解可用的篩選器。

  4. 保留容器:

    exit
    
  5. 複製輸出檔案:

    kubectl cp -n core core-mec-dp-0:<path to output file> <location to copy to> -c troubleshooter
    

    tcpdump 可能在寫入封包時停止,這可能會導致此步驟產生錯誤,指出 unexpected EOF。 不過,您的檔案應該已成功複製,而且您可以檢查目標輸出檔案以確認。

  6. 移除輸出檔案:

        kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- rm <path to output file>
    

下一步

如需監視部署和檢視分析的更多選項: