Contents

Introduction

Como o cache DNS funciona

Troubleshoot

Introduction

Este documento descreve o mecanismo de cache do Sistema de Nomes de Domínio (DNS - Domain Name System) na Função de Gerenciamento de Sessão (SMF - Session Management Function) e como solucioná-lo.

Como o cache DNS funciona

Quando uma consulta DNS ocorre em SMF, a resposta do servidor DNS é armazenada em cache no banco de dados interno. O endereço FQDN (Fully Qualified Domain Name, nome de domínio totalmente qualificado) para a função de controle de sessão de chamada proxy (P-CSCF) é um exemplo quando a opção de configuração de protocolo estendido P-CSCF (PCO, Extended Protocol Configuration Option) é solicitada pelo assinante e se o SMF tiver configuração de FQDN P-CSCF, a consulta DNS é enviada e a resposta é salva no cache.

Um exemplo de perfil P-CSCF e configuração de proxy dns são:

profile pcscf pcscf1

fqdn pcscf6.test.local

v6-list

precedence 1

primary fe80::1

exit

exit

exit

profile dns-proxy

query-type ipv6

timeout 2000

round-robin-answers

servers serv1

ip 192.168.20.11

port 53

protocol udp

priority 1

exit

exit

Com a configuração, o primeiro SMF tenta resolver o FQDN pcscf6.test.local com o servidor DNS e salva a resposta no cache. O endereço estático P-CSCF (FEC0::1) é usado somente quando a resolução DNS falha. Na próxima vez que o SMF verificar no cache e se o nome do host for encontrado, ele será usado e a consulta DNS não acontecerá. A entrada de cache expirou com base no Tempo de Vida (TTL) definido pela configuração SMF ou pelo valor do servidor DNS.

Troubleshoot

O cache precisa ser investigado quando há um problema com a resolução de DNS, por exemplo, se o SMF retornar um endereço IP inesperado para P-CSCF, possivelmente uma entrada antiga permanece no cache, devido a um valor TTL incorreto ou porque o mecanismo de expiração de TTL não funciona por algum motivo.

As entradas em cache podem ser vistas com a CLI show dns-cache.

[unknown] smf# show dns-cache ipv6

dns-cache-details

{

"cacheResponse": [

{

"hostname": "pcscfv6.test.local",

"hostdata": [

{

"podInstance": "0",

"cachedType": "ipv6",

"cachedTime": "Wed Jan 26 03:32:01 UTC 2022",

"currentTime": "Wed Jan 26 03:32:03 UTC 2022",

"cachedData": [

{

"ip": "fec0:0:1:2:3:4:fe8b:5d43",

"ttl": 180

}

],

"dnsServer": "192.168.20.11:53 udp"

}

]

}

]

}

A resolução de DNS pode ser testada com CLI de consulta de dns de teste.

[unknown] smf# test dns-query fqdn pcscfv6.test.local

dns-summary

Hostname : pcscfv6.test.local,

IPv4Addr : [],

IPv6Addr : [fe80:0:1:2:3:4:fe8b:5d43]

A CLI é implementada através do bug da Cisco ID CSCvz13118. Se uma compilação SMF antiga for usada e a CLI não estiver disponível, as entradas de cache poderão ser despejadas no pod etcd com o comando etcdctl.

[root@master1 ~]# kubectl get pod -n smf-data | grep etcd

etcd-smf-data-etcd-cluster-0 2/2 Running 2 23h

[root@master1 ~]# kubectl exec -it etcd-smf-data-etcd-cluster-0 -n smf-data bash

Defaulting container name to member.

Use 'kubectl describe pod/etcd-smf-data-etcd-cluster-0 -n smf-data' to see all of the containers in this pod.

groups: cannot find name for group ID 303

I have no name!@etcd-smf-data-etcd-cluster-0:/usr/local/bin$

I have no name!@etcd-smf-data-etcd-cluster-0:/usr/local/bin$ etcdctl get --prefix C.RadiusDNS

C.RadiusDNS/DNS/CacheV6.pcscfv6.test.local

fe80:0:1:2:3:4:fe8b:5d43

180

C.RadiusDNS/DNS/Common.algorithm

round-robin

C.RadiusDNS/DNS/Common.queryType

ipv6