Executar a captura de pacotes em uma instância de núcleo de pacote

A captura de pacotes para pacotes de controle ou plano de dados é executada usando a ferramenta de Rastreamento do Plano de dados da MEC. O Rastreamento do MEC-DP (Plano de dados da MEC) é semelhante ao tcpdump, um programa de computador do analisador de pacotes de rede de dados, executado em uma CLI (interface de linha de comando). Use o Rastreamento MEC-DP para monitorar e gravar pacotes em qualquer interface do plano de usuário na rede de acesso (interface N3) ou na rede de dados (interface N6) em seu dispositivo e no plano de controle (interface N2). Acesse o Rastreamento MEC-DP usando o portal do Azure ou a CLI do Azure.

A captura de pacotes funciona espelhando pacotes em uma interface de kernel do Linux, que pode ser monitorada usando o tcpdump. Neste guia de instruções, você aprenderá a executar a captura de pacotes em uma instância principal do pacote.

Importante

A execução da captura de pacotes reduzirá o desempenho do sistema e a taxa de transferência do plano de dados. Portanto, é recomendável usar essa ferramenta em baixa escala durante o teste inicial.

Pré-requisitos

É necessário ter um site AP5GC implantado para executar a captura de pacotes.

Para executar a captura de pacotes usando a linha de comando, você deverá:

  • Identifique o recurso do Kubernetes – Azure Arc que representa o cluster do Kubernetes habilitado para o Azure Arc, no qual sua instância de núcleo de pacote está em execução.
  • Verifique se o computador local tem acesso kubectl principal ao cluster do Kubernetes habilitado para Azure Arc. Isso requer um arquivo kubeconfig principal, que você pode obter seguindo o Acesso ao namespace principal.

Executar a captura de pacotes usando o portal do Azure

Configurar uma conta de armazenamento

É necessário configurar uma conta de armazenamento para armazenar o pacote de diagnóstico.

  1. Crie uma conta de armazenamento para diagnósticos com a seguinte configuração adicional:
    1. Na guia Proteção de dados, em Controle de acesso, selecione Habilitar suporte para imutabilidade no nível da versão. Isso permitirá que você especifique uma política de retenção baseada em tempo para a conta na próxima etapa.
    2. Caso queira que o conteúdo da sua conta de armazenamento seja excluído automaticamente após um período de tempo, configure uma política de retenção baseada em tempo padrão para sua conta de armazenamento.
    3. Crie um contêiner para seu diagnóstico.
    4. Anote o URL do blob de contêiner . Por exemplo:
      https://storageaccountname.blob.core.windows.net/diagscontainername
      1. Navegue até sua Conta de armazenamento.
      2. Selecione o símbolo... no lado direito do blob de contêiner a ser usado para a coleção de diagnósticos.
      3. Selecione Propriedades de contêiner no menu de contexto.
      4. Copie o conteúdo do campo do URL na exibição de Propriedades do contêiner.
  2. Crie uma Identidade atribuída pelo usuário e atribua-a à conta de armazenamento criada acima com a função de Colaborador de Dados do Blob de Armazenamento.

    Dica

    Você talvez já tenha criado e associado uma identidade atribuída pelo usuário ao criar o site.

  3. Navegue até o recurso Painel de controle do núcleo de pacote do site.
  4. Selecione Identidade em Configurações, no menu do lado esquerdo.
  5. Selecione Adicionar.
  6. Selecione a identidade gerenciada assinada pelo usuário que você criou e selecione Adicionar.

Importante

Após criar a identidade gerenciada atribuída pelo usuário, atualize a configuração do núcleo do pacote fazendo uma alteração de configuração fictícia. Essa pode ser uma alteração que não terá impacto na implantação e pode ser deixada no local ou uma alteração que você reverterá imediatamente. Consulte Modificar uma instância de núcleo de pacote. Caso não atualize a configuração do núcleo do pacote, a captura de pacote falhará.

Iniciar uma captura de pacotes

  1. Entre no portal do Azure.

  2. Navegue até a página de visão geral do Painel de Controle do Núcleo de Pacotes do site a ser executado uma captura de pacote.

  3. Selecione Captura de Pacotes na seção Ajuda no lado esquerdo. Isso abrirá um modo de exibição Captura de Pacotes.

  4. Se esta for a primeira vez que você fizer uma captura de pacote usando o portal, visualizará uma mensagem de erro solicitando configurar uma conta de armazenamento. Se for o caso:

    1. Siga o link na mensagem de erro.
    2. Insira o URL de contêiner da conta de armazenamento, que foi configurada para o armazenamento de diagnóstico e selecione Modificar.

      Dica

      Caso não tenha o URL do contêiner da conta de armazenamento:

      1. Navegue até sua Conta de armazenamento.
      2. Selecione o símbolo... no lado direito do contêiner a ser usado para captura de pacotes.
      3. Selecione Propriedades de contêiner no menu de contexto.
      4. Copie o conteúdo do campo do URL.
    3. Retorne ao modo de exibição Captura de Pacotes.
  5. Selecione Iniciar captura de pacotes.

  6. Preencha os detalhes no painel Iniciar captura de pacotes e selecione Criar.

    O limite Máximo de bytes por sessão é aplicado por nó. Em implantações de HA (alta disponibilidade), é provável que a captura de pacotes atinja esse limite e seja concluída em um nó antes do outro, portanto, uma captura de pacote ainda estará em execução quando a primeira for concluída. Interrompa as capturas de pacote em execução antes de iniciar uma nova.

  7. A página será atualizada a cada poucos segundos até que a captura de pacotes seja concluída. Também é possível usar o botão Atualizar para atualizar a página. Caso queira interromper a captura de pacotes mais cedo, selecione Parar captura de pacotes.

  8. Ao concluir a captura de pacote, o serviço online AP5GC salvará a saída no URL da conta de armazenamento fornecida.

    Em implantações de HA, dois arquivos de captura de pacotes serão carregados, um para cada nó. Os arquivos serão rotulados com um 0 ou um 1, correspondente ao pod core-mec-dp-0 ou core-mec-dp-1. Se uma captura de pacote falhar, a página de status mostrará um erro, mas os resultados bem-sucedidos da captura serão carregados normalmente.

  9. Para fazer o download da saída de captura de pacotes, use o botão Copiar para área de transferência nas colunas de Armazenamento ou Nome de arquivo, para copiar esses detalhes e colá-los na caixa Pesquisar no portal. Para fazer o download da saída, clique com o botão direito no arquivo e selecione Baixar.

Executar a captura de pacotes usando a CLI do Azure

  1. Em uma linha de comando com acesso kubectl ao cluster Kubernetes habilitado para o Azure Arc, insira o pod de solução de problemas do MEC-DP:

    kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- bash
    

    Observação

    Em uma implantação de HA, core-mec-dp-0 pode não existir porque o nó está inoperante. Nesse caso, insira core-mec-dp-1 em vez disso.

  2. Exiba a lista de interfaces de plano de usuário configuradas:

    mect list
    

    Isso deve relatar uma única interface na rede do plano de controle (N2), uma única interface na rede de acesso (N3) e uma única interface para cada rede de dados anexada (N6).

    n2trace
    n3trace
    n6trace
    
  3. Execute mectdump com todos os parâmetros que você normalmente passaria para o tcpdump. Em particular, -i para especificar a interface e -w especificar para onde gravar. Feche a ferramenta quando terminar, pressionando Ctrl + C. Os exemplos a seguir são casos de uso comuns:

    • Para capturar pacotes em todas as interfaces, execute mectdump -i any -w any.pcap
    • Para capturar pacotes para a interface N3 e a interface N6 para uma única rede de dados, insira o pod da solução de problemas do MEC-DP, em duas janelas separadas. Em uma janela, execute mectdump -i n3trace -w n3.pcap e, na outra janela, execute mectdump -i n6trace -w n6.pcap. Para selecionar uma rede de dados individual, filtre por ID de VLAN.

    Importante

    Os arquivos de captura de pacote podem ser grandes, especialmente ao executar a captura de pacotes em todas as interfaces. Especifique filtros ao executar a captura de pacotes para reduzir o tamanho do arquivo, consulte a documentação do tcpdump para os filtros disponíveis.

  4. Deixe o contêiner:

    exit
    
  5. Copie os arquivos de saída:

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

    O tcpdump pode ter sido interrompido no meio da gravação de um pacote, o que pode fazer com que essa etapa produza um erro informando unexpected EOF. No entanto, seu arquivo deve ter sido copiado com êxito, é possível verificar o arquivo de saída de destino para confirmar.

  6. Remova os arquivos de saída:

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

Próximas etapas

Para obter mais opções para monitorar sua implantação e exibir análises: