Inhalt

Einleitung

Funktionsweise von DNS-Cache

Fehlerbehebung

Einleitung

In diesem Dokument wird der DNS-Cache-Mechanismus (Domain Name System) in der Session Management Function (SMF) beschrieben und die Fehlerbehebung dafür beschrieben.

Funktionsweise von DNS-Cache

Wenn eine DNS-Abfrage bei SMF erfolgt, wird die Antwort vom DNS-Server in der internen Datenbank zwischengespeichert. Die Adresse Fully Qualified Domain Name (FQDN) for Proxy Call Session Control Function (P-CSCF) ist ein Beispiel, wenn der Teilnehmer P-CSCF Extended Protocol Configuration Option (PCO) anfordert und wenn SMF über eine P-CSCF FQDN-Konfiguration verfügt, wird eine DNS-Abfrage gesendet und die Antwort im Cache gespeichert.

Ein Beispiel für ein P-CSCF-Profil und eine DNS-Proxy-Konfiguration:

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

Bei der Konfiguration versucht SMF zunächst, den FQDN pcscf6.test.local mit DNS-Server aufzulösen und speichert die Antwort im Cache. Die statische P-CSCF-Adresse (fec0::1) wird nur verwendet, wenn die DNS-Auflösung fehlschlägt. Bei der nächsten SMF-Überprüfung im Cache und wenn der Hostname gefunden wird, wird er verwendet, und die DNS-Abfrage erfolgt nicht. Der Cache-Eintrag ist abgelaufen, basierend auf der Time to Live (TTL), die durch die SMF-Konfiguration oder den Wert vom DNS-Server festgelegt wurde.

Fehlerbehebung

Der Cache muss überprüft werden, wenn ein Problem mit der DNS-Auflösung vorliegt, z. B. wenn SMF eine unerwartete IP-Adresse für P-CSCF zurückgibt, kann ein alter Eintrag im Cache verbleiben, weil ein falscher TTL-Wert vorliegt oder der TTL-Ablaufmechanismus aus irgendeinem Grund nicht funktioniert.

Die zwischengespeicherten Einträge können mit der show dns-cache-CLI angezeigt werden.

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

}

]

}

]

}

Die DNS-Auflösung kann mit der Test-DNS-Abfrage-CLI getestet werden.

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

Die CLI wird mithilfe der Cisco Bug-ID CSCvz13118 implementiert. Wenn ein altes SMF-Build verwendet wird und die CLI nicht verfügbar ist, können die Cache-Einträge mit dem Befehl ecdctl auf einem elektronischen POD gespeichert werden.

[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