目錄

簡介

DNS快取的工作原理

疑難排解

簡介

本檔案介紹作業階段管理功能(SMF)中的網域名稱系統(DNS)快取機制以及如何對其進行疑難排解。

DNS快取的工作原理

當DNS查詢在SMF發生時，來自DNS伺服器的響應將快取到內部資料庫中。當訂閱伺服器請求P-CSCF擴展協定配置選項(PCO)時，代理呼叫會話控制功能(P-CSCF)地址的完全限定域名(FQDN)就是一個示例，如果SMF具有P-CSCF FQDN配置，則傳送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嘗試使用DNS伺服器解析FQDN pcscf6.test.local，並將答案儲存到快取中。靜態P-CSCF地址(fec0::1)僅在DNS解析失敗時使用。下次在快取中檢查SMF時，如果找到主機名，將使用該主機名，不會發生DNS查詢。根據SMF配置設定的生存時間(TTL)或DNS伺服器的值，快取條目已過期。

疑難排解

當DNS解析出現問題時，需要調查快取，例如，如果SMF返回意外的P-CSCF IP地址，則可能因為錯誤的TTL值或TTL過期機制由於某種原因無法正常工作而在快取中保留舊條目。

使用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"

}

]

}

]

}

可以使用test dns-query 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無法使用，則可以使用etcdctl指令將快取專案轉儲到etcd pod上。

[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