簡介
本檔案將深入介紹Cisco AMF/SMF與第三方NF之間的SCP Model-D通訊方法。
必要條件
需求
思科建議您瞭解以下主題:
- 存取和行動化管理功能(AMF)的功能
- 作業階段管理功能(SMF)的功能
- 服務通訊代理(SCP)的功能
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
世界各地的運營商可以在使用SCP進行網路功能(NF)發現的多個通訊模式之間選擇,並隨後進行NF到NF的通訊。本主題涉及各種通訊模型的相關概念以及使用者微服務基礎設施(SMI)、AMF/SMF上實現基於SCP模型D的通訊所需的呼叫流/配置更改。
架構和解決方案概述
在基於服務的體系結構(SBA)中,SCP充當中介,通過處理路由、負載平衡和服務發現來促進NF之間的間接通訊,最終簡化基於服務的體系結構。
3GPP 23.501 Annex-E詳細介紹了5GC部署中NF之間的四種通訊模型。
圖A:(涉及SCP的不同通訊模式)
Model-A — 無網路儲存庫功能(NRF)互動的直接通訊:消費者被配置有生產者的「NF檔案」,並直接與自己選擇的生產者溝通。這是靜態選擇的型別,既不使用NRF也不使用SCP。
Model-B — 與NRF互動的直接通訊:消費者通過查詢NRF進行發現。根據發現結果,使用者進行選擇。消費者向所選生產商傳送請求。
Model-C — 無委託發現的間接通訊:消費者通過查詢NRF發現。基於發現結果,消費者選擇NF集合或NF集合的特定NF例項。消費者將請求傳送到包含所選服務生產者的地址的SCP,該地址指向NF服務例項或一組NF服務例項。在後一種情況下,SCP將選擇NF服務例項。如果可能,SCP會與NRF互動,以獲得位置、容量等選擇引數。SCP將請求路由到所選NF服務生產者例項。
Model-D — 與委託發現的間接通訊:消費者不參與發現或選擇。消費者向服務請求新增為找到合適的生產者所需的任何必要的發現和選擇引數。SCP使用請求消息中的請求地址以及發現和選擇引數,以將請求路由到適當的生產者例項。SCP可以利用NRF執行發現並獲得發現結果。
深入研究基於Model-D的通訊:使用Call Model-D時,NF使用者不會直接向NRF傳送請求,而是將此發現委託給SCP。NF客戶端向SCP傳送消息,並為每個發現因子連線字串「3gpp-sbi-discovery」和發現因子的名稱,如果通過NRF進行NF發現,將使用該發現因子的名稱。
對於SMF將查詢服務名稱為nudm-sdm的統一資料管理(UDM)的情況,發現因素將傳遞到SCP:
- 授權標頭:授權可以攜帶完全限定域名(FQDN)或IP地址,並為IP地址配置賦予優先順序。
- 3gpp-sbi-discovery-requester-nf-type:SMF(單一模式光纖)
- 3gpp-sbi-discovery-target-nf-type:UDM
- 3gpp-Sbi-discovery-service-name:nudm-sdm
圖B:(通過SCP型號D的SMF-UDM通訊)
附註:3gpp-sbi-discovery-service name格式採用純字串格式,而不是按照3gpp 29.510和開放式API定義(4.7.12.4樣式)採用陣列格式。在29.510 3gpp-sbi-discovery-service-name中稱為陣列格式。
圖C:(快照從29.510規格)
但是,style:form和explode:false會將陣列轉換為一個純字串,這可以通過從OpenAPI中舉一個示例來說明。
圖D:(來自Open API的快照:(4.7.12.4樣式示例)
您在AMF和SMF中都具有CLI控制以傳送引數3gpp-sbi-discovery-service,因為這是可選的(可根據部署環境執行)。
在型號B的情況下,如果您以AMF和身份驗證伺服器功能(AUSF)通訊為例,一旦發現AUSF,AMF會使用AUSF IP/FQDN和埠將POST傳送到AUSF。
POST http://<ausf-fqdn>:<port>/nausf-auth/v1/ue-authentications。
圖E:(通過模型B的AMF-AUSF通訊)
在Model-D中,由於發現是由SCP執行,而不是POST http(s)://<ausf-fqdn>:<ausf-port>/nausf-auth/v1/ue-authentications時,AMF會傳送修改後的POST請求,即:
POST http(s)://<scp-fqdn>:<scp-port>/nausf-auth/v1/ue-authentications
或
POST http(s)://<scp-fqdn>:<scp-port>/nscp-route/nausf-auth/v1/ue-authentications(if apiroot=nscp-route)
使用
3gpp-Sbi-Discovery-target-nf-type:AUSF
3gpp-Sbi-Discovery-Preferred-locality:LOC1
3gpp-Sbi-Discovery-service-name
其中可以看到AMF已將AUSF的api-root(<ausf-fqdn>:<ausf-port>)替換為SCP的api-root。
圖F:(通過SCP-Model D的AMF-AUSF通訊)
3gpp-sbi-discovery引數允許SCP檢索最佳的NF,然後轉發POST請求,其中它在接收到對其發現請求的響應之後用從NRF接收的api-root替換SCP的api-root。
AMF/SMF所需的配置
為了指示每個NF(例如,UDM)必須使用哪個呼叫模型,在關聯的「profile network-element」內使用nf-selection-model配置。
profile network-element udm prf-udm-scp
[...]
nf-selection-model priority <>[local | nrf-query | nrf-query-peer-input | nrf-query-and-scp | scp]
exit
選擇Model-D後,仍會使用為關聯網路元素配置的query-params並將其以「3gpp-Sbi-Discovery-<query-param>」格式傳遞到SCP。
[smf] smf(config)# profile network-element udm prf-udm-scp
[smf] smf(config-udm-udm1)# query-params
Possible completions:
[ chf-supported-plmn dnn requester-snssais tai target-nf-instance-id target-plmn ]
最後,配置檔案網路元素對映到配置檔案資料網路名稱(dnn)。
profile dnn ims
network-element-profiles udm prf-udm-scp
network-element-profiles scp prf-scp
exit
SCP定義為網路元素。
nf-client-profile和failure-handling profile與network-element對映。
profile network-element scp <>
nf-client-profile <>
failure-handling-profile <>
exit
型別為scp-profile的nf-client-profile詳細描述了SCP終端的特性。
此處nscp-route可以新增到api-root中。
profile nf-client nf-type scp
scp-profile <>
locality LOC1
priority 30
service name type <>
responsetimeout 4000
endpoint-profile EP1
capacity 30
api-root nscp-route
priority 10
uri-scheme http
endpoint-name scp-customer.com
priority 10
capacity 50
primary ip-address ipv4
primary ip-address port
fqdn name <>
fqdn port <>
exit
SMF FQDN在終端南向介面(SBI)中配置。
endpoint sbi
relicas 2
nodes 2
fqdn <>
資料包快照示例
圖G:(通過SCP型號D進行的AMF-SMF nsmf-pdusession通訊)
您需要從配置檔案dnn引用剛才配置的SCP網路元素。
profile dnn <>
network-element-profiles udm <>
network-element-profiles scp <>
exit
如果將SCP故障處理配置為重試操作,則SMF將根據SCP配置和重試計數嘗試替代SCP。
如果將SCP故障處理配置為對特定服務名稱和消息型別執行重試和回退操作,則會回退到模型A。
如果從SCP(伺服器標頭指示SCP)觸發錯誤且對等體的NF-client配置存在,則會使用此失敗的SCP處理配置檔案(FHSCP)。
profile nf-client-failure nf-type scp
profile failure-handling <>
service name type npcf-smpolicycontrol
responsetimeout 1800
message type PcfSmpolicycontrolCreate
status-code httpv2 0,307,429,500,503-504
retry 1
action retry-and-fallback
exit
為消息型別PcfSmpolicycontrolCreate配置操作retry和falback的方案的策略控制功能(PCF)的nf-client配置檔案示例:
profile nf-client nf-type pcf
pcf-profile <>
locality LOC1
priority 1
service name type npcf-smpolicycontrol
endpoint-profile epprof
capacity 10
priority 1
uri-scheme http
endpoint-name ep1
priority 1
capacity 10
primary ip-address ipv4 <>
primary ip-address port <>
exit
endpoint-name ep2
priority 1
capacity 10
primary ip-address ipv4 <>
primary ip-address port <>
exit
SMI層所需的核心DNS POD和配置
CoreDNS池是kube系統名稱空間的一部分,部署為2-pod複製集。這些Pod可以在兩個主/控制節點中的任何節點上排程,並且不依賴於在集群管理器中配置名稱伺服器IP的位置。
但是,建議在所有控制/主節點中配置名稱伺服器IP,因為您沒有標籤控制,無法根據自己的需要來旋轉CoreDNS埠。如果在部署CoreDNS的任何主機上不存在指向名稱伺服器的路由,則SMF/AMF群集同步將失敗。
目前,CoreDNS將DNS請求轉發到節點resolv.conf檔案中指定的名稱伺服器。
'kubectl edit configmap coredns -n kube-system'您有:
{
forward ./etc/resolv.conf{
max_concurrent 1000
}
在啟動服務的主節點上檢查/etc/resolv.conf時,它必須包含:
name server <>
name server <>
主/控制節點中的名稱伺服器配置示例:
nodes <>
initial-boot netplan vlans <>
dhcp4 false
dhcp6 false
addresses [<>]
nameserver addresses [<>]
id <>
link <>
exit