Contenu

Introduction

Fonctionnement du cache DNS

Dépannage

Introduction

Ce document décrit le mécanisme de cache DNS (Domain Name System) dans la fonction de gestion de session (SMF) et comment le dépanner.

Fonctionnement du cache DNS

Lorsqu'une requête DNS a lieu au niveau de SMF, la réponse du serveur DNS est mise en cache dans la base de données interne. Le nom de domaine complet (FQDN) pour l'adresse P-CSCF (Proxy Call Session Control Function) est un exemple lorsque l'abonné demande l'option PCO (Extended Protocol Configuration Option) P-CSCF. Si SMF a la configuration FQDN P-CSCF, la requête DNS est envoyée et la réponse est enregistrée dans le cache.

Voici un exemple de profil P-CSCF et de configuration dns-proxy :

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

Avec la configuration, la première SMF tente de résoudre le nom de domaine complet pcscf6.test.local avec le serveur DNS et enregistre la réponse dans le cache. L'adresse statique P-CSCF (fec0::1) est utilisée uniquement en cas d'échec de la résolution DNS. La prochaine fois que SMF se connecte au cache et que le nom d'hôte est trouvé, il est utilisé et la requête DNS ne se produit pas. L'entrée du cache a expiré en fonction de la durée de vie définie par la configuration SMF ou de la valeur du serveur DNS.

Dépannage

Le cache doit être étudié en cas de problème avec la résolution DNS, par exemple, si SMF retourne une adresse IP inattendue pour P-CSCF, une ancienne entrée peut rester dans le cache, en raison d'une valeur TTL incorrecte ou parce que le mécanisme d'expiration TTL ne fonctionne pas pour une raison quelconque.

Les entrées mises en cache peuvent être vues avec show dns-cache CLI.

[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 résolution DNS peut être testée avec test dns-query CLI.

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

L'interface de ligne de commande est implémentée via l'ID de bogue Cisco CSCvz13118. Si une ancienne build SMF est utilisée et que l'interface de ligne de commande n'est pas disponible, les entrées de cache peuvent être abandonnées sur le pod etcd avec la commande 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