Inleiding
Dit document beschrijft het Domain Name System (DNS)-cachemechanisme in Session Management Functie (SMF) en de manier waarop u een oplossing kunt vinden.
Hoe DNS-cache werkt
Wanneer een DNS-query bij SMF plaatsvindt, wordt het antwoord van de DNS-server in de interne database opgeslagen. Het Full Qualified Domain Name (FQDN) voor Proxy Call Session Control Functie (P-CSCF)-adres is één voorbeeld wanneer P-CSCF Extended Protocol Configuration Optie (PCO) door de abonnee wordt gevraagd en als SMF P-CSCF FQDN-configuratie heeft, wordt DNS-query verzonden en het antwoord in het cache wordt opgeslagen.
Een voorbeeldprofiel van P-CSCF en de configuratie van dns-volmacht zijn:
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
Met de configuratie probeert SMF eerst de FQDN pcscf6.test.local op te lossen met DNS server en slaat het antwoord in het cache op. Het statische P-CSCF-adres (fec0:1) wordt alleen gebruikt wanneer DNS-resolutie niet werkt. Volgende keer dat SMF in het cache controleert en als de naam van de host wordt gevonden, wordt deze gebruikt en gebeurt de DNS-query niet. De cache-ingang is verlopen op basis van de Time to Live (TTL) die is ingesteld door SMF-configuratie of -waarde van de DNS-server.
Problemen oplossen
Het cache moet worden onderzocht wanneer er een probleem is met DNS-resolutie, bijvoorbeeld wanneer SMF een onverwacht IP-adres voor P-CSCF retourneert, blijft er mogelijk een oude inloop in het cache, vanwege een verkeerde TTL-waarde of omdat het TTL-verloopmechanisme niet op een of andere manier werkt.
De cached items kunnen worden gezien met 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"
}
]
}
]
}
DNS-resolutie kan met test dns-query CLI worden getest.
[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]
De CLI wordt geïmplementeerd via Cisco bug ID CSCvz13118. Als een oude SMF-opbouw wordt gebruikt en de CLI niet beschikbaar is, kunnen de cache-items met etcdctl-opdracht op etcd-pod worden gedumpt.
[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