Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Informações de Apoio

DNS

Funcionalidade MME relacionada ao DNS

O procedimento de seleção SPGW

Problema

Troubleshoot

Solução

Introduction

Este documento descreve os problemas relacionados ao tempo limite do Domain Name System (DNS) para as consultas em direção ao DNS na MME (Mobile Management Entity, entidade de gerenciamento móvel) para servir o GateWay (SGW) e a seleção do Packet Data Network Gateway (PGW).

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- StarOS

- Funcionalidade MME relacionada ao DNS

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- DNS

- MME

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Informações de Apoio

DNS

O DNS transforma nomes de domínio em endereços IP, que os navegadores usam para carregar páginas ABCD. Cada dispositivo conectado às redes tem seu próprio endereço IP, que é usado por outros dispositivos para localizar o dispositivo.

Do ponto de vista da mobilidade, o DNS é o servidor externo usado para a resolução de Nome do Ponto de Acesso (APN - Access Point Name) e URL com base na sua conectividade com os nós na rede.

1. Conectividade de MME para DNS: usada para resolução de APN para seleção de SPGW

2. Conectividade SPGW para DNS: Usado para resolução de URL para acessar o provedor de serviços de Internet (ISP)

Tipos de registros usados no DNS.

1. Registro A/AAA: Usado para definir o endereço de host IPv4 e IPv6 mapeado para o nome totalmente qualificado do host onde um registro A usado para IPv4 e Autenticação, Autorização e Contabilidade (AAA) usados para IPv6.

2. Registro NAPTR: usado como um serviço de pesquisa que aponta para um registro de serviço (SRV) e registros A/AAA para o processo de seleção SPGW para a resolução 4G APN e TAC.

3. Registro SRV: Usado como uma pesquisa para mapear entre um NAPTR (Name Authority Pointer, Ponteiro de autoridade de nome) e um registro A/AAA.

Exemplo: Observe como o A/SRV/NAPTR é mapeado.

Funcionalidade MME relacionada ao DNS

- A função básica do MME relacionado ao DNS é para fins de seleção de SGW e PGW com base em consultas de DNS.

- O Cisco MME tem seu próprio cache DNS, que ajuda a evitar consultas frequentes a servidores externos e armazena todas as consultas executadas no cache MME DNS para reduzir a necessidade de enviar a consulta a um servidor DNS externo.

- Quando a UE se registra em uma rede Evolved Packet System (EPS), ela deve receber os SGWs e PGWs apropriados. O MME faz a seleção de GW com base no DNS.

- A consulta NAPTR é usada para fazer a resolução de endereços GW.

- Com base na consulta DNS, o MME determina a interface entre S-GW e P-GW.

O procedimento de seleção SPGW

- O MME executa uma consulta DNS inicial para obter uma lista de identidades e prioridades de GW

- Seleção de S-GW feita com base no identificador de área de rastreamento (TAI)

- Seleção P-GW feita com base na APN

- O MME seleciona o GW com base nas informações de prioridade ou na configuração do MME

- Em seguida, uma segunda consulta DNS é feita para obter os endereços IP do GW desejado.

Assim, de acordo com o procedimento, o MME sempre faz 2 consultas DNS para obter o endereço IP GW, o que é explicado.

Consulta 1: Para a primeira consulta feita via APN ou TAI, você obtém um perfil SRV mapeado com ele ou uma saída de registro A mapeada diretamente em resposta.

Consulta 2: Além disso, ele faz uma consulta ao perfil SRV e o envia como uma string de substituição para obter o IP GW.

Por exemplo:

Query Name: abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org

Query Type: NAPTR      TTL: 515 seconds

Answer:

Order: 100            Preference: 50000

Flags: a             Service: x-3gpp-pgw:x-s5-gtp:x-s8-gtp:x-gn:x-gp

Regular Expression:

Replacement: _nodes._pgw.epc.mncXXX.mccYYY.3gppnetwork.org

Query Name: _nodes._pgw.epc.mncXXX.mccYYY.3gppnetwork.org

Query Type: NAPTR      TTL: 515 seconds

Answer:

Order: 100            Preference: 50000

Flags: a            Service: x-3gpp-pgw:x-s5-gtp:x-s8-gtp:x-gn:x-gp

Regular Expression: topoff.pgw- s5s8.node.epc.mncXXX.mccYYY.3gppnetwork.org

Query Name: topoff.pgw- s5s8.node.epc.mncXXX.mccYYY.3gppnetwork.org

Query Type: A      TTL: 646 seconds

Answer:

IP Address: X.X.X.X

Problema

1. Quando você faz uma consulta NAPTR do MME para APN abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org e obtém um tempo limite de DNS no MME.

Note: String +nc-nr é a nova string adicionada ao serviço 5G e adicionada em cada registro de recurso (RR) NAPTR para identificar a interface do serviço.

"x-3gpp-pgw:x-s5-gtp+nc-nr:x-s8-gtp:x-gn:x-gp"

Note: +nc-nr é a nova string baseada no serviço 5G, portanto o MME precisa suportar este serviço para funcionar porque quando o MME faz uma consulta DNS e obtém uma resposta para verificar se o serviço específico está ativado ou não no MME.

[gn]SGSN-MME# dns-client query client-name dnsclient query-type NAPTR query-name abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org

Wednesday October 27 17:06:20 ICT 2021

Query Name: abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org

Query Type: NAPTR      TTL: 0 seconds

Answer: -Negative Reply-

Failure Reason: DNS query timed out

2. Nos rastreamentos de PCAP, descobriu-se que o servidor DNS recebe a consulta e, em resposta, envia de 30 a 35 substituições em relação a cada APN, devido ao tamanho do pacote tornar-se 4186 bytes e o MME inicia a conexão TCP.

3. Você pode ver que o DNS recebeu uma solicitação de consulta e enviou a resposta, mas sem qualquer conteúdo com apenas um sinalizador como "Mensagem truncada". Isso é observado somente para o caso em que a mensagem de resposta é truncada e o resto das respostas 4G funciona bem quando a mensagem não é truncada.

A razão para a mensagem truncada é quando um número de substituições mapeadas em relação ao APN é maior que 30 e aumenta o tamanho da mensagem e envia o sinalizador de mensagem truncado em resposta. O tamanho total da mensagem de resposta é 4181 bytes como um payload TCP (consulte a imagem).

Depois de receber essa resposta no MME, o MME inicia a conexão TCP com o DNS.

De MME para DNS

- Quadro 31 - O MME envia uma consulta ao DNS

- Quadro 32 - O DNS envia uma resposta com o sinalizador definido como "Mensagem truncada"

- Quadro 33/34/35 - Conexão TCP estabelecida entre MME e DNS e troca suas próprias capacidades

No snapshot fornecido, você pode ver que o envio de Tamanho Máximo de Segmento (MSS) do MME é 9060.

Quando o MME faz uma consulta para a qual o DNS envia uma resposta com "Mensagem truncada" e não tem outras informações após as quais, com base na resposta DNS, o MME inicia a conexão TCP.

De DNS para MME

- O MME envia uma consulta após a conexão TCP

- O DNS reconhece.

- O DNS envia uma resposta com o sinalizador definido como "A mensagem não está truncada" porque o MSS compartilhado com DNS está definido como 9060 bytes e envia a resposta inteira em uma sequência.

- O MME responde com um ACK sem conteúdo

- O DNS envia o ACK para o conteúdo da Mensagem 38, onde o payload é de 4181 bytes

- O MME envia TCP para redefinir e fechar as conexões assim que receber o último fragmento.

Quando o MME recebe o payload inteiro em 2 a 3 segmentos ou em uma tentativa do DNS, o MME envia uma mensagem de redefinição de TCP.

DNS commands to troubleshoot

show dns-client statistics

show dns-client statistics client <DNS Client Name>

show dns-client cache client <client name> [query-name <query-name>[query-type <NAPTR | AAAA | A>] | [query-type <NAPTR | AAAA | A>]]

dns-client query client-name <client name> query-type <NAPTR | AAAA> [query-name <query name>].show port datalink counters

Commands to check if there were any problem internal to the starOS system where request is not able to reach from demux vpnmgr to DNS app in sessmgrs

show port npu counters

show cloud configuration

show iftask stats summary

show npu utilization table

show iftask port-stats card <card>   ---- for all active SF cards

show iftask iomux-stats card <card>  ---- for all active SF cards

MON SUB to be captured with options enabled (verbosity 5,Y,S,34,35,19,A,26)

PCAP traces to be captured

DNS cache flush commands

clear dns-client <client-name> cache

Cenário de teste

1. Capturar todos os registros/rastreamentos de depuração necessários com teste dedicado e ativar os registros ao mesmo tempo quando o assinante navega com APN problemático

2. Certifique-se de que toda vez que um cenário de teste é executado, o assinante precisa fazer um novo anexo para liberar o assinante.

3. Para fins de teste, atribua um testador e esse testador precisa fazer um teste dedicado com seu IMSI e precisa acessar esse APN problemático: abcd.apn.epc.mncXXX.mccYY.3gppnetwork.org.

logging filter active facility vpn level debug         ------ debug level logs

logging filter active facility tcpdemux level debug    ------ debug level logs

logging monitor msid <MSID number>                     ------ (these logging command to be executed in config mode)

Troubleshoot

1. Verifique as saídas de todos os comandos mencionados para confirmar se há alguma queda de pacote interna no sistema.

2. Verifique as estatísticas para confirmar o aumento da frequência de intervalos de DNS no nó.

[gn]SGSN-MME# show dns-client statistics client dnsclient

Friday August 20 13:31:48 ICT 2021

DNS Usage Statistics:

---------------------

Query Type             Attempts       Successes        Failures

A                    2430996860      2410410937        20546467

SRV                  1325520986      1325516557            4429

AAAA                 3939810089               0      3939810089

NAPTR                 480586697       432853033        47732791

PTR                           0               0               0

Total                3881947336      4168780527      4008093776

…

Total Resolver Queries: 4480708

Successful Queries:     670040

Query Timeouts:         409717

Domain Not Found:       2455918

Connection Refused:     0

Other Failures:         580612

Após executar esses comandos para capturar as estatísticas de várias iterações e observar que os tempos limite de consulta são aumentados gradualmente, mas não houve descarte de pacotes entre o Demux e os sms, o que não conclui nenhum problema com o sistema interno

Além disso, para verificar qualquer problema com conectividade externa ou problema de configuração no DNS, você executa diretamente a consulta dos valores de substituição manualmente do MME em vez do APN, como mostrado na imagem, onde ela é resolvida corretamente sem nenhum atraso e conclui que não há nenhum problema com a conectividade e a configuração externas também.

[gn]SGSN-MME# dns-client query client-name dnsclient query-name TOPON.test.NODE.EPC.MNCXXX.MCCYYY.3GPPNETWORK.ORG

Monday August 02 18:51:29 ICT 2021

Query Name: TOPON.test.NODE.EPC.MNCXXX.MCCYYY.3GPPNETWORK.ORG

Query Type: A          TTL: 1038 seconds

Answer:

IP Address: X.X.X.X ------ resolve properly and gave IP

O problema está entre DNS e SGSN-MME, onde você pode ver que DNS envia respostas com valores de substituição como tópico e MME deve consultar novamente as entradas principais, mas que não aconteceram caso contrário, se fizermos manualmente a resolução da consulta com êxito

De acordo com as saídas e rastreamentos do comando, ficou claro que quando você consulta o APN, você obtém respostas com 30 substituições através da conexão TCP em fragmentos e, enquanto o MME reconhece esses fragmentos, ele envia a redefinição para o DNS.

Como o MME envia o TCP para redefinição, podemos ver no MME onde a consulta DNS mostra erro como tempo limite de consulta e até esse momento não vemos esses 30 valores de substituição nas saídas do comando MME, já que os fragmentos não foram confirmados completamente e antes de concluir esse processo, o MME envia o TCP para redefinição.

Debug logs analysis

For abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org

2021-Oct-27+17:06:20.910 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:14585, UDP, Sent time 1635329180, Timeout set 1635329183  ---- timer is set here

2021-Oct-27+17:06:20.910 [vpn 5919 info] [9/0/11730 <vpnmgr:6> dns_resolver.c:323] [software internal system syslog] Sent out a DNS Query abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org to DNS Server   --------- DNS query is send for the first time

2021-Oct-27+17:06:20.911 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Init, While Sending Query

2021-Oct-27+17:06:20.911 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Open with DHost

2021-Oct-27+17:06:20.911 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:14585, TCP, Sent time 1635329180, Timeout set 1635329183 ------------ DNS query is send for the second time

2021-Oct-27+17:06:20.911 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Successful - DHost-Id = 6766924, Sock_fd = 21

2021-Oct-27+17:06:21.008 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP READ, Kernel Closed, EOF - DHost-Id = 6766924, Sock_fd = 21, errno = 115, req_read_len = 0

2021-Oct-27+17:06:21.008 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection close - DHost-Id = 6766924, Sock_fd = 21

2021-Oct-27+17:06:23.019 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:14585, TCP, Timeout detected: 1635329183 ---------------- Timeout detected here

2021-Oct-27+17:06:23.019 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Init, While Sending Query --------------------- Query is send again

2021-Oct-27+17:06:23.019 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Open with DHost

2021-Oct-27+17:06:23.019 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:14585, TCP, Sent time 1635329183, Timeout set 1635329186 ------- Again send the query with new timer value set

2021-Oct-27+17:06:23.019 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Successful - DHost-Id = 6504921, Sock_fd = 23

2021-Oct-27+17:06:26.036 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:14585, TCP, Timeout detected: 1635329186 ---------------- Timeout detected here

2021-Oct-27+17:06:26.036 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:35196, UDP, Timeout detected: 1635329186 ---------------- Timeout detected here

Another example abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org

2021-Oct-27+17:06:27.257 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:19140, UDP, Sent time 1635329187, Timeout set 1635329190 ---- timer is set here

2021-Oct-27+17:06:27.257 [vpn 5919 info] [9/0/11730 <vpnmgr:6> dns_resolver.c:323] [software internal system syslog] Sent out a DNS Query abcd.apn.epc.mncXXX.mccYYY.3gppnetwork.org to DNS Server --------- Query send for the first time

2021-Oct-27+17:06:27.258 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Init, While Sending Query

2021-Oct-27+17:06:27.258 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Open with DHost

2021-Oct-27+17:06:27.258 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:19140, TCP, Sent time 1635329187, Timeout set 1635329190  -------- Same Query send for the second time

2021-Oct-27+17:06:27.258 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Successful - DHost-Id = 7201531, Sock_fd = 22

2021-Oct-27+17:06:27.309 [vpn 5921 debug] [7/0/12843 <sessmgr:79> dns_snaptr.c:1466] [software internal system syslog] VPN DEBUG : snaptr_match_valid_entries Initial ue_usage_type:0 nc_nr:0   ----- snaptr match starts

2021-Oct-27+17:06:27.309 [vpn 5921 debug] [7/0/12843 <sessmgr:79> dns_snaptr.c:237] [software internal system syslog] VPN DEBUG : snaptr_compare_service_protocol_set rr_service_parameter x-3gpp-mme:x-gn, inp_svc_param x-3gpp-sgw:x-s5-gtp ue_usage_type_enabled:0 nc_nr_enabled:0   ------- nc_nr enabled which I mentioned earlier

2021-Oct-27+17:06:27.309 [vpn 5921 debug] [7/0/12843 <sessmgr:79> dns_snaptr.c:237] [software internal system syslog] VPN DEBUG : snaptr_compare_service_protocol_set rr_service_parameter x-3gpp-sgw:x-s5-gtp:x-s8-gtp, inp_svc_param x-3gpp-sgw:x-s5-gtp ue_usage_type_enabled:0 nc_nr_e:nabled0

2021-Oct-27+17:06:27.309 [vpn 5921 debug] [7/0/12843 <sessmgr:79> dns_snaptr.c:279] [software internal system syslog] VPN DEBUG : 0.rr_prot_token x-s5-gtp, input token x-s5-gtp

2021-Oct-27+17:06:27.309 [vpn 5921 debug] [7/0/12843 <sessmgr:79> dns_snaptr.c:323] [software internal system syslog] VPN DEBUG : 4.Success Selected Protocol(Normal):x-s5-gtp  ----------- snaptr protocol matched

2021-Oct-27+17:06:30.057 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:19140, TCP, Timeout detected: 1635329190 -------- TCP timeout happens

2021-Oct-27+17:06:30.057 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Init, While Sending Query ----- Again TCP connection initiated

2021-Oct-27+17:06:30.057 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Open with DHost

2021-Oct-27+17:06:30.057 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:19140, TCP, Sent time 1635329190, Timeout set 1635329193 ------ New timer value set with send query

2021-Oct-27+17:06:30.057 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection Successful - DHost-Id = 7136007, Sock_fd = 21

2021-Oct-27+17:06:30.158 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP READ, Kernel Closed, EOF - DHost-Id = 7136007, Sock_fd = 21, errno = 115, req_read_len = 0 – Error because TCP connection is busy because previous connection is not closed

2021-Oct-27+17:06:30.158 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] TCP Connection close - DHost-Id = 7136007, Sock_fd = 21 -------- Connection closed

2021-Oct-27+17:06:30.171 [vpn 5921 debug] [14/0/12709 <sessmgr:15> dns_snaptr.c:1466] [software internal system syslog] VPN DEBUG : snaptr_match_valid_entries Initial ue_usage_type:0 nc_nr:0 --- again snaptr match takes place

2021-Oct-27+17:06:30.171 [vpn 5921 debug] [14/0/12709 <sessmgr:15> dns_snaptr.c:237] [software internal system syslog] VPN DEBUG : snaptr_compare_service_protocol_set rr_service_parameter x-3gpp-mme:x-gn, inp_svc_param x-3gpp-sgw:x-s5-gtp ue_usage_type_enabled:0 nc_nr_enabled:0

2021-Oct-27+17:06:30.171 [vpn 5921 debug] [14/0/12709 <sessmgr:15> dns_snaptr.c:237] [software internal system syslog] VPN DEBUG : snaptr_compare_service_protocol_set rr_service_parameter x-3gpp-sgw:x-s5-gtp:x-s8-gtp, inp_svc_param x-3gpp-sgw:x-s5-gtp ue_usage_type_enabled:0 nc_nr_enabled:0

2021-Oct-27+17:06:30.171 [vpn 5921 debug] [14/0/12709 <sessmgr:15> dns_snaptr.c:279] [software internal system syslog] VPN DEBUG : 0.rr_prot_token x-s5-gtp, input token x-s5-gtp

2021-Oct-27+17:06:33.073 [vpn 5456 info] [9/0/11730 <vpnmgr:6> vpnmgr_func.c:8011] [software internal system syslog] query:19140, TCP, Timeout detected: 1635329193 -----TCP timeout detected

Dos registros, ele indica que após o primeiro tempo limite, o MME envia o erro 115 para as próximas tentativas, pois a primeira conexão TCP ainda não está fechada no soquete.  O tempo limite para a primeira conexão TCP ocorreu e a conexão anterior não foi fechada.

Uma nova conexão é iniciada no mesmo soquete onde a conexão anterior foi estabelecida e não foi limpa. Você vê o erro 115 (operações em andamento) mesmo que a nova conexão tenha sido formada, mas de alguma forma o soquete não fechou a conexão anterior após o primeiro tempo de espera.

Solução

Reinicie o vpnmgr do contexto DNS. Uma correção de software ainda não foi fornecida.