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 é realizada usando a ferramenta MEC-Dataplane Trace . MEC-Dataplane (MEC-DP) Trace é semelhante ao tcpdump, um programa de computador analisador de pacotes de rede de dados que é executado em uma interface de linha de comando (CLI). Você pode usar o MEC-DP Trace para monitorar e gravar pacotes em qualquer interface de plano de usuário na rede de acesso (interface N3) ou rede de dados (interface N6) em seu dispositivo e no plano de controle (interface N2). Você pode acessar o MEC-DP Trace usando o portal do Azure ou a CLI do Azure.
A captura de pacotes funciona espelhando pacotes em uma interface do kernel Linux, que pode ser monitorada usando tcpdump. Neste guia de instruções, você aprenderá como executar a captura de pacotes em uma instância de núcleo de 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, recomenda-se apenas o uso desta ferramenta em baixa escala durante os testes iniciais.
Pré-requisitos
Você deve ter um site AP5GC implantado para executar a captura de pacotes.
Para executar a captura de pacotes usando a linha de comando, você deve:
- Identifique o recurso Kubernetes - Azure Arc que representa o cluster Kubernetes habilitado para Azure Arc no qual sua instância principal do pacote está sendo executada.
- Verifique se sua máquina local tem acesso kubectl principal ao cluster Kubernetes habilitado para Azure Arc. Isso requer um arquivo kubeconfig principal, que você pode obter seguindo o acesso ao namespace Core.
Executando a captura de pacotes usando o portal do Azure
Configurar uma conta de armazenamento
Você precisa configurar uma conta de armazenamento para armazenar o pacote de diagnóstico.
- Crie uma conta de armazenamento para diagnóstico com a seguinte configuração adicional:
- Na guia Proteção de dados, em Controle de acesso, selecione Habilitar suporte à imutabilidade no nível da versão. Isso permitirá que você especifique uma política de retenção baseada no tempo para a conta na próxima etapa.
- Se pretender que o conteúdo da sua conta de armazenamento seja automaticamente eliminado após um período de tempo, configure uma política de retenção baseada no tempo predefinida para a sua conta de armazenamento.
- Crie um contêiner para seus diagnósticos.
- Anote o URL do blob do contêiner. Por exemplo:
https://storageaccountname.blob.core.windows.net/diagscontainername
- Navegue até sua conta de armazenamento.
- Selecione o símbolo ... no lado direito do blob de contêiner que você deseja usar para a coleta de diagnósticos.
- Selecione Propriedades do contêiner no menu de contexto.
- Copie o conteúdo do campo URL na visualização Propriedades do contêiner.
- Crie uma identidade atribuída pelo usuário e atribua-a à conta de armazenamento criada acima com a função de Colaborador de Dados de Blob de Armazenamento .
Gorjeta
Talvez você já tenha criado e associado uma identidade atribuída pelo usuário ao criar o site.
- Navegue até o recurso de plano de controle principal de pacote para o site.
- Selecione Identidade em Configurações no menu do lado esquerdo.
- Selecione Adicionar.
- Selecione a identidade gerenciada assinada pelo usuário que você criou e selecione Adicionar.
Importante
Depois de criar a identidade gerenciada atribuída pelo usuário, você deve atualizar a configuração do núcleo do pacote fazendo uma alteração de configuração fictícia. Isso pode ser uma alteração que não terá impacto na sua implantação e pode ser deixada no lugar, ou uma alteração que você reverte imediatamente. Consulte Modificar uma instância do núcleo do pacote. Se você não atualizar a configuração do núcleo do pacote, a captura do pacote falhará.
Iniciar uma captura de pacotes
Inicie sessão no portal do Azure.
Navegue até a página de visão geral do Painel de Controle Principal de Pacotes do site no qual você deseja executar uma captura de pacote.
Selecione Captura de pacotes na seção Ajuda no lado esquerdo. Isso abrirá uma visualização de captura de pacotes .
Se esta for a primeira vez que você faz uma captura de pacote usando o portal, você verá uma mensagem de erro solicitando que você configure uma conta de armazenamento. Em caso afirmativo:
- Siga o link na mensagem de erro.
- Insira a URL do contêiner da conta de armazenamento que foi configurada para armazenamento de diagnóstico e selecione Modificar.
Gorjeta
Se você não tiver a URL do contêiner da conta de armazenamento:
- Navegue até sua conta de armazenamento.
- Selecione o símbolo ... no lado direito do contêiner que você deseja usar para a captura de pacotes.
- Selecione Propriedades do contêiner no menu de contexto.
- Copie o conteúdo do campo URL .
- Retorne à visualização Captura de pacotes .
Selecione Iniciar captura de pacotes.
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 altamente disponíveis (HA), é 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. Você deve parar qualquer captura de pacote em execução antes de iniciar uma nova.
A página será atualizada a cada poucos segundos até que a captura do pacote seja concluída. Você também pode usar o botão Atualizar para atualizar a página. Se quiser interromper a captura de pacotes antecipadamente, selecione Parar captura de pacotes.
Quando a captura de pacotes for concluída, o serviço online AP5GC salvará a saída na URL da conta de armazenamento fornecida.
Em implantações HA, dois arquivos de captura de pacotes serão carregados, um para cada nó. Os arquivos serão rotulados com um
0
ou um1
, correspondente aocore-mec-dp-0
oucore-mec-dp-1
pod. Se uma captura de pacote falhar, a página de status mostrará um erro, mas os resultados da captura bem-sucedida serão carregados normalmente.Para baixar a saída de captura de pacote, você pode usar o botão Copiar para área de transferência nas colunas Armazenamento ou Nome do arquivo para copiar esses detalhes e colá-los na caixa Pesquisar no portal. Para baixar a saída, clique com o botão direito do mouse no arquivo e selecione Download.
Executando a captura de pacotes usando a CLI do Azure
Em uma linha de comando com acesso kubectl ao cluster Kubernetes habilitado para Azure Arc, insira o pod de solução de problemas MEC-DP:
kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- bash
Nota
Em uma implantação de HA,
core-mec-dp-0
pode não existir porque o nó está inativo. Nesse caso, insiracore-mec-dp-1
em vez disso.Veja a lista de interfaces de plano de usuário configuradas:
mect list
Este relatório deve incluir uma interface única na rede do plano de controlo (N2), uma interface única na rede de acesso (N3) e uma interface única para a rede principal (N6).
n2trace n3trace n6trace
Execute
mectdump
com quaisquer parâmetros que você normalmente passaria para tcpdump. Em particular,-i
para especificar a interface e-w
para especificar 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 de solução de problemas MEC-DP em duas janelas separadas. Em uma janela executar
mectdump -i n3trace -w n3.pcap
e na outra janela executarmectdump -i n6trace -w n6.pcap
. Para selecionar uma rede de dados individual, filtre por ID de VLAN.
Importante
Os arquivos de captura de pacotes 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 obter os filtros disponíveis.
- Para capturar pacotes em todas as interfaces, execute
Deixe o recipiente:
exit
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 esta etapa produza um erro informando
unexpected EOF
. No entanto, seu arquivo deve ter copiado com êxito e você pode verificar seu arquivo de saída de destino para confirmar.Remova os arquivos de saída:
kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- rm <path to output file>
Próximos passos
Para obter mais opções para monitorar sua implantação e visualizar análises:
- Saiba mais sobre como monitorar o Azure Private 5G Core usando as métricas da plataforma Azure Monitor
- Se encontrou um problema e não sabe como resolvê-lo, pode Obter suporte para o seu serviço Azure Private 5G Core