5G核心网学习平台
AMF 实践篇 #32

AMF功能实战篇(37) NRF返回网元服务的FQDN,AMF支持根据FQDN查DNS

《5G核心网原理与实践》实践篇 · AMF 网元功能

《5GC原理与实践》实践篇(37) NRF返回网元服务的FQDN,AMF支持根据FQDN查DNS

爱卫生

2023年02月13日 23:01

《5GC原理与实践》实践篇是按网元来规划的。包括AMF篇、SMF篇、PCF篇等。

本文是AMF篇的第37篇。

1.6.7 NRF返回网元服务的FQDN,AMF支持根据FQDN查DNS

1.6.7.1 概述

根据规范,AMF需要完成AUSF/UDM/SMF的选择,这在前面几节已经介绍过了。

但需要重点强调的是,5G的网元选择是基于网元服务(NF Service)作为最小颗粒度进行查询,而不是基于网元来查询的。

一个5G NF可以有多个服务,每个服务(NFServices参数)可以对外暴露不同的FQDN、业务IP和端口号(IPEndpoints参数)。

举一个例子如下,本例中UDM对外暴露了3个3GPP定义的标准服务,但可以采用3个不同的FQDN和IP端点给自己的消费者网元(如

AMF)来调用。

1.6.7.2 NFServices参数中的FQDN和IPEndpoints子参数

这里还得提一下NFService参数,也就是网元所支持的服务的详细信息,这个参数是是NFInstances参数的一部分。

每个SBI的5GC网元都要把该参数(自己支持的服务)在NRF中注册登记,用于后续的网元发现与选择流程。

该参数就包含了上节提到的该服务对外暴露的FQDN和IP端点。

该参数在TS29510的6.2.6.2.4节定义,如下(仅给出FQDN和IPEndpoints部分):

从上图可以看到,NFService的fqdn和ipEndPoints都是O标,即Optional可选的。

也就是说AMF查NRF选择SMF的时候,NRF可能没有给AMF返回SMF的业务IP,而只给了FQDN(也许是SMF根本就没注册IP,只注

册了FQDN即域名)。

那在这种情况下,AMF应该支持构建SMF的FQDN,并向自己配置的DNSServer发起查询,最终得到SMF的该服务的SBI业务地址。

1.6.7.3 消息举例之NRF返回的结果只有业务的FQDN

下面来看一个实际的AMF在PDU会话建立流程中查询NRF选择SMF的例子(AMF选SMF详见1.6.4节),AMF选择的是一个支持nsmfpdusession服务的SMF,此时NRF返回的是SMF该服务的FQDN。

则AMF应构建SMF该服务的FQDN,向DNS发起查询,得到SMF的nsmf-pdusession服务的SBI业务地址,从而继续后面的PDU会话建

立流程。

1)AMF发给NRF的查询请求与1.6.4.2节相同。其中:

Request-uri=/nnrf-disc/v1/nf-instances?service-names=nsmf-pdusession&target-nf-type=SMF&requester-nf-type=AMF&snssais=

[{"sst":1,"sd":"000001"}]&dnn=xxnet

2)NRF返回给AMF的响应消息如下:

可以看到,NRF返回的查询结果包含了目标SMF的信息。包括:

- ipv4Addresses = 10.1.1.1(需要注意,这个是NF的IP,不是NF的pdusession这个服务的IP)。

- NFType = SMF。代表返回的结果是SMF这个网元的信息。

- nfServices下的子参数有:(注意看缩进,表示嵌套关系。)

1)serviceName=nsmf-pdusession(SMF支持的服务,和AMF请求中的完全一致);

2)FQDN:取值是smf99.mnc099.mcc460.gprs。是SMF该服务的FQDN,不是SMF这个网元的FQDN。

3)ipEndPoints:端口号80,也是SMF该服务对外暴露的端口。并且该参数只有端口号,没有IP地址。也就是NRF并没有返回nsmfpdusession这个服务对外的IP地址。

1.6.7.4 消息举例之AMF构建服务的FQDN发起DNS查询

接下来,AMF根据SMF服务的FQDN构建A记录,向DNS发起查询,如下:

接下来,DNS返回对应的IP地址。如下:

最终,AMF得到了SMF的nsmf-pdusession服务的IP地址(10.1.1.1)和端口号80。

至此,AMF得到了SMF的完整寻址信息。接下来AMF将调用该服务,继续后面的PDU会话建立流程。

← 返回 AMF 实践篇