패킷 코어 인스턴스에서 패킷 캡처 수행

제어 또는 데이터 평면 패킷에 대한 패킷 캡처는 MEC-Dataplane Trace 도구를 사용하여 수행됩니다. MEC-DP(MEC-Dataplane) Trace는 CLI(명령줄 인터페이스)에서 실행되는 데이터 네트워크 패킷 분석기 컴퓨터 프로그램인 tcpdump와 유사합니다. MEC-DP Trace를 사용하면 디바이스의 액세스 네트워크(N3 인터페이스) 또는 데이터 네트워크(N6 인터페이스)의 모든 사용자 플레인 인터페이스와 컨트롤 플레인(N2 인터페이스)에서 패킷을 모니터링하고 기록할 수 있습니다. Azure Portal 또는 Azure CLI를 사용하여 MEC-DP Trace에 액세스할 수 있습니다.

패킷 캡처는 Linux 커널 인터페이스에 패킷을 미러링하여 작동합니다. 그러면 tcpdump를 사용하여 모니터링할 수 있습니다. 이 방법 가이드에서는 패킷 코어 인스턴스에서 패킷 캡처를 수행하는 방법을 알아봅니다.

Important

패킷 캡처를 수행하면 시스템 성능과 데이터 평면의 처리량이 줄어듭니다. 따라서 초기 테스트 중에는 이 도구를 저규모로만 사용하는 것이 좋습니다.

필수 조건

패킷 캡처를 수행하려면 AP5GC 사이트가 배포되어 있어야 합니다.

명령줄을 사용하여 패킷 캡처를 수행하려면 다음을 수행해야 합니다.

  • 패킷 코어 인스턴스가 실행 중인 Azure Arc 지원 Kubernetes 클러스터를 나타내는 Kubernetes - Azure Arc 리소스를 식별합니다.
  • 로컬 컴퓨터에 Azure Arc 지원 Kubernetes 클러스터에 대한 코어 kubectl 액세스 권한이 있는지 확인합니다. 그러려면 Core 네임스페이스 액세스에 따라 가져올 수 있는 코어 kubeconfig 파일이 필요합니다.

Azure Portal을 사용하여 패킷 캡처 수행

스토리지 계정 설정

진단 패키지를 저장하려면 스토리지 계정을 설정해야 합니다.

  1. 다음 추가 구성으로 진단을 위한 스토리지 계정을 만듭니다.
    1. 데이터 보호 탭의 액세스 제어에서 버전 수준 불변성 지원 사용을 선택합니다. 이렇게 하면 다음 단계에서 계정에 대해 시간 기반 보존 정책을 지정할 수 있습니다.
    2. 일정 기간이 경과한 후 스토리지 계정의 콘텐츠를 자동으로 삭제하려면 스토리지 계정에 대한 기본 시간 기반 보존 정책을 구성합니다.
    3. 진단을 위한 컨테이너를 만듭니다.
    4. 컨테이너 Blob URL을 기록해 둡니다. 예시:
      https://storageaccountname.blob.core.windows.net/diagscontainername
      1. 스토리지 계정으로 이동합니다.
      2. 진단 컬렉션에 사용할 컨테이너 Blob의 오른쪽에서 ... 기호를 선택합니다.
      3. 바로 가기 메뉴에서 컨테이너 속성을 선택합니다.
      4. 컨테이너 속성 보기에서 URL 입력란의 콘텐츠를 복사합니다.
  2. 사용자 할당 ID를 만들고 Storage Blob 데이터 기여자 역할로 위에서 만든 스토리지 계정에 할당합니다.

    사이트를 만들 때 이미 사용자 할당 ID를 만들고 연결했을 수 있습니다.

  3. 사이트의 패킷 코어 컨트롤 플레인 리소스로 이동합니다.
  4. 왼쪽 메뉴의 설정에서 ID를 선택합니다.
  5. 추가를 선택합니다.
  6. 만든 사용자 서명 관리 ID를 선택하고 추가를 선택합니다.

Important

사용자가 할당한 관리 ID를 만든 후에는 더미 구성을 변경하여 패킷 코어 구성을 새로 고쳐야 합니다. 이는 배포에 영향을 주지 않고 그대로 둘 수 있는 변경이거나 즉시 되돌릴 수 있는 변경일 수 있습니다. 패킷 코어 인스턴스 수정을 참조하세요. 패킷 코어 구성을 새로 고치지 않으면 패킷 캡처가 실패합니다.

패킷 캡처 시작

  1. Azure Portal에 로그인합니다.
  2. 패킷 캡처를 실행하려는 사이트의 Packet Core 제어 창 개요 페이지로 이동합니다.
  3. 왼쪽 도움말 섹션에서 패킷 캡처를 선택합니다. 그러면 패킷 캡처 보기가 열립니다.
  4. 포털을 사용하여 처음으로 패킷 캡처를 수행한 경우 스토리지 계정을 구성하라는 오류 메시지가 표시됩니다. 오류 메시지가 표시된 경우:
    1. 오류 메시지의 링크를 따라가세요.
    2. 진단 스토리지용으로 구성된 스토리지 계정 컨테이너 URL을 입력하고 수정을 선택합니다.

      스토리지 계정 컨테이너에 대한 URL이 없는 경우:

      1. 스토리지 계정으로 이동합니다.
      2. 패킷 캡처에 사용하려는 컨테이너 오른쪽에 있는 ... 기호를 선택합니다.
      3. 바로 가기 메뉴에서 컨테이너 속성을 선택합니다.
      4. URL 필드의 콘텐츠를 복사합니다.
    3. 패킷 캡처 보기로 돌아갑니다.
  5. 패킷 캡처 시작을 선택합니다.
  6. 패킷 캡처 시작 창에 세부 정보를 입력하고 만들기를 선택합니다.
  7. 패킷 캡처가 완료될 때까지 페이지는 몇 초마다 새로 고쳐집니다. 새로 고침 단추를 사용하여 페이지를 새로 고칠 수도 있습니다. 패킷 캡처를 조기에 중지하려면 패킷 캡처 중지를 선택합니다.
  8. 패킷 캡처가 완료되면 AP5GC 온라인 서비스는 제공된 스토리지 계정 URL에 출력을 저장합니다.
  9. 패킷 캡처 출력을 다운로드하려면 스토리지 또는 파일 이름 열의 클립보드에 복사 단추를 사용하여 해당 세부 정보를 복사한 다음 포털의 검색 상자에 붙여넣습니다. 출력을 다운로드하려면 파일을 마우스 오른쪽 단추로 클릭하고 다운로드를 선택합니다.

Azure CLI를 사용하여 패킷 캡처 수행

  1. Azure Arc 지원 Kubernetes 클러스터에 대한 kubectl 액세스 권한이 있는 명령줄에서 MEC-DP 문제 해결사 Pod를 입력합니다.

    kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- bash
    
  2. 구성된 사용자 플레인 인터페이스 목록을 봅니다.

    mect list
    

    이는 컨트롤 플레인 네트워크(N2)의 단일 인터페이스, 액세스 네트워크(N3)의 단일 인터페이스 및 연결된 각 데이터 네트워크(N6)에 대한 인터페이스를 보고해야 합니다. 예시:

    n2trace
    n3trace
    n6trace0 (Data Network: internet)
    n6trace1 (Data Network: enterprise)
    n6trace2 (Data Network: test)
    
  3. 일반적으로 tcpdump에 전달하는 매개 변수를 사용하여 mectdump를 실행합니다. 특히 인터페이스를 지정할 수 있는 -i와 작성 위치를 지정할 수 있는 -w를 실행합니다. 완료되면 Ctrl + C를 눌러 도구를 닫습니다. 다음 예에서는 일반적인 사용 사례입니다.

    • 모든 인터페이스에서 캡처 패킷을 실행하려면 mectdump -i any -w any.pcap을 실행합니다.
    • N3 인터페이스에 대한 캡처 패킷과 단일 데이터 네트워크에 대한 N6 인터페이스를 실행하려면, 두 개의 개별 창에 MEC-DP 문제 해결사 Pod를 입력합니다. 한 창에서 mectdump -i n3trace -w n3.pcap을 실행하고, 다른 창에서 mectdump -i <N6 interface> -w n6.pcap을 실행합니다(2단계에서 확인한 데이터 네트워크용에 대해 N6 인터페이스 사용).

    Important

    특히 모든 인터페이스에서 패킷 캡처를 실행하는 경우 패킷 캡처 파일이 클 수 있습니다. 패킷 캡처를 실행할 때 필터를 지정하여 파일 크기를 줄입니다. 사용 가능한 필터는 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>
    

다음 단계

배포를 모니터링하고 분석을 볼 수 있는 추가 옵션은 다음과 같습니다.