Contenido

Introducción

Cómo funciona la caché DNS

Troubleshoot

Introducción

Este documento describe el mecanismo de caché del Sistema de nombres de dominio (DNS) en la función de administración de sesiones (SMF) y cómo resolverlo.

Cómo funciona la caché DNS

Cuando se realiza una consulta DNS en SMF, la respuesta del servidor DNS se almacena en caché en la base de datos interna. La dirección Full Qualified Domain Name (FQDN) para Proxy Call Session Control Function (P-CSCF) es un ejemplo cuando el suscriptor solicita la opción P-CSCF Extended Protocol Configuration Option (PCO) y si SMF tiene la configuración FQDN P-CSCF, se envía una consulta DNS y la respuesta se guarda en la caché.

Un perfil P-CSCF de ejemplo y la configuración dns-proxy son los siguientes:

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

Con la configuración, el primer SMF intenta resolver el FQDN pcscf6.test.local con el servidor DNS y guarda la respuesta en la memoria caché. La dirección estática P-CSCF (flash0::1) sólo se utiliza cuando falla la resolución DNS. La próxima vez que SMF verifique en la memoria caché y si se encuentra el nombre de host, se utiliza y la consulta DNS no se realiza. La entrada de caché ha caducado en función del tiempo de vida (TTL) establecido por la configuración SMF o el valor del servidor DNS.

Troubleshoot

La memoria caché debe investigarse cuando hay un problema con la resolución de DNS, por ejemplo, si SMF devuelve una dirección IP inesperada para P-CSCF, posiblemente una entrada antigua permanece en la memoria caché, debido a un valor TTL incorrecto o porque el mecanismo de vencimiento TTL no funciona por alguna razón.

Las entradas almacenadas en caché se pueden ver con la 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"

}

]

}

]

}

La resolución de DNS se puede probar con la CLI de consulta dns de prueba.

[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]

La CLI se implementa a través del ID de bug de Cisco CSCvz13118. Si se utiliza una generación SMF antigua y la CLI no está disponible, las entradas de caché se pueden volcar en etcd pod con el 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