المحتويات

المقدمة

كيفية عمل ذاكرة التخزين المؤقت ل DNS

استكشاف الأخطاء وإصلاحها

المقدمة

يصف هذا المستند آلية ذاكرة التخزين المؤقت لنظام اسم المجال (DNS) في وظيفة إدارة الجلسات (SMF) وكيفية أستكشاف الأخطاء وإصلاحها.

كيفية عمل ذاكرة التخزين المؤقت ل DNS

عندما يتم إجراء استعلام DNS في SMF، يتم تخزين الإجابة من خادم DNS مؤقتا في قاعدة البيانات الداخلية. اسم المجال المؤهل بالكامل (FQDN) لعنوان وظيفة التحكم في جلسة اتصال الوكيل (P-CSCF) هو مثال واحد عندما يتم طلب خيار تكوين البروتوكول الموسع (PCO) ل P-CSCF من قبل المشترك، وإذا كان SMF يتضمن تكوين FQDN ل P-CSCF، يتم إرسال استعلام DNS ويتم حفظ الإجابة في ذاكرة التخزين المؤقت.

نموذج لملف تعريف P-CSCF وتكوين وكيل DNS هو:

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

باستخدام التكوين، يحاول SMF الأول حل FQDN pcscf6.test.local باستخدام خادم DNS وحفظ الإجابة في ذاكرة التخزين المؤقت. يتم إستخدام عنوان P-CSCF الثابت (fec0::1) فقط عند فشل تحليل DNS. في المرة التالية التي يتحقق فيها SMF من ذاكرة التخزين المؤقت وإذا تم العثور على اسم المضيف، فإنه يتم إستخدامه ولا يحدث استعلام DNS. انتهت صلاحية إدخال ذاكرة التخزين المؤقت استنادا إلى مدة البقاء (TTL) المعينة بواسطة تكوين SMF أو القيمة من خادم DNS.

استكشاف الأخطاء وإصلاحها

يجب التحقيق في ذاكرة التخزين المؤقت عندما تكون هناك مشكلة في تحليل DNS، على سبيل المثال، إذا قام SMF بإرجاع عنوان IP غير متوقع ل P-CSCF، فمن المحتمل أن يبقى إدخال قديم في ذاكرة التخزين المؤقت، بسبب قيمة TTL خاطئة أو لأن آلية انتهاء صلاحية TTL لا تعمل لسبب ما.

يمكن رؤية الإدخالات المخزنة مؤقتا باستخدام واجهة سطر الأوامر 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"

}

]

}

]

}

يمكن إختبار دقة DNS باستخدام واجهة سطر الأوامر (CLI) لاختبار استعلام DNS.

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

ال CLI طبقت عن طريق cisco بق id CSCvz13118. في حالة إستخدام بنية SMF قديمة وعدم توفر واجهة سطر الأوامر (CLI)، يمكن إغراق إدخالات ذاكرة التخزين المؤقت على قرص ETCD باستخدام الأمر 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