Method, system, and computer-readable medium for providing a network function (NF) repository function (NRF) with configurable producer NF internet protocol (IP) address mappings - Patents.com

JP2025507393A5Pending Publication Date: 2026-02-24ORACLE INT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024547876
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-02-15
Filing Date
2023-02-15
Publication Date
2026-02-24

AI Technical Summary

Technical Problem

In 5G and other communication networks, the Network Function (NF) profiles of producer NFs often contain multiple IP addresses, leading to challenges in selecting a routable IP address and managing network address translation (NAT) and DNS resolution efficiently.

Method used

The proposed solution involves configuring the Network Function Repository (NRF) with producer NF IP address mapping rules that allow for the intelligent selection of IP addresses from multiple addresses in the NF profile, including the option to select network address translated (NATed) IP addresses based on consumer NF attributes such as region.

Benefits of technology

This approach enables scalable and efficient management of IP addresses, reduces the need for custom logic in consumer NFs, and simplifies the maintenance of DNS records by providing region-based DNS support and NATed IP-based routing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for supporting configurable producer Network Function (NF) Internet Protocol (IP) address mapping includes receiving, at an NF Repository Function (NRF), a request message for a producer NF's network 5 address and / or service information from a requesting node. The method further includes determining at least one consumer NF parameter from the request message. The method further includes finding a producer NF IP address mapping rule using the at least one consumer NF parameter. The method further includes determining an IP address to return to the requesting node using the producer NF IP address mapping rule in response to finding the producer NF IP address mapping rule. The method further includes generating a response message including the IP address and sending the response message to the requesting node.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Claiming priority This application claims the benefit of priority to U.S. Patent Application No. 17 / 672,646, filed February 15, 2022, the disclosure of which is incorporated herein by reference in its entirety.

[0002] Technical Field The subject matter described herein relates to facilitating efficient communications in 5G and other networks where service discovery and Domain Name System (DNS) translation are supported. More particularly, the subject matter described herein relates to providing an NRF that includes configurable producer NF IP address mapping, including support for selecting from multiple IP addresses configured on the same producer NF and for selecting a network address translated (NATed) IP address. [Background technology]

[0003] background In a 5G communication network, a network function that provides a service is referred to as a producer NF or an NF service producer. A network function that consumes a service is referred to as a consumer NF or an NF service consumer. A network function may be a producer NF, a consumer NF, or both, depending on whether the network function is consuming, generating, or consuming and generating a service. The terms "producer NF" and "NF service producer" are used interchangeably herein. Similarly, the terms "consumer NF" and "NF service consumer" are used interchangeably herein.

[0004] A given producer NF may have many service endpoints, where a service endpoint is a connection point of one or more NF instances hosted by the producer NF. A service endpoint is identified by a combination of an Internet Protocol (IP) address and a port number, or a fully qualified domain name that translates to an IP address and a port number on the network node hosting the producer NF. An NF instance is an instance of a producer NF that provides a service. A given producer NF may include two or more NF instances. It should also be noted that multiple NF instances can share the same service endpoint.

[0005] An NF registers with a Network Capability Repository Function (NRF). The NRF maintains a profile of available NF instances that identifies the services supported by each NF instance. The profile of an NF instance is referred to as an NF profile in 3GPP TS 29.510. An NF instance can obtain information about other NF instances registered with the NRF through an NF discovery service operation. In accordance with an NF discovery service operation, a consumer NF sends an NF discovery request to the NRF. The NF discovery request includes query parameters that the NRF uses to find NF profiles of producer NFs that can provide the service identified by the query parameters. An NF profile is a data structure that defines the type of service provided by an NF instance, as well as connectivity and capacity information about the NF instance. Thus, it is desirable for a consumer NF to be able to construct an NF discovery request with query parameters optimized to find producer NFs that are capable and best suited to provide the service requested by the consumer NF.

[0006] A service communication proxy (SCP) can also invoke NF discovery service operations to learn about available producer NF instances. The case where an SCP uses NF service discovery procedures to obtain information about producer NF instances on behalf of a consumer NF is called delegated discovery. A consumer NF contacts an SCP, which either load balances traffic among producer NF service instances offering the required service or routes the traffic directly to the destination producer NF instance. A communication model where a consumer NF communicates with a producer NF via an SCP is called an indirect communication model.

[0007] In addition to the SCP, another example of an intermediate proxy forwarding traffic between producer and consumer NFs is the Security Edge Protection Proxy (SEPP). The SEPP is a network function used to protect the control plane traffic exchanged between different 5G Public Land Mobile Networks (PLMNs). Thereby, the SEPP performs message filtering, policing, and topology hiding for all Application Programming Interface (API) messages sent between PLMNs. Summary of the Invention [Problem to be solved by the invention]

[0008] One problem that may arise in 5G and other communication networks is that the NF profile of a producer NF may contain multiple IP addresses, and a consumer NF may need to select one of the IP addresses used to reach the producer NF. One possible solution to this problem is to have the consumer NF receive an NF profile containing multiple IP addresses and implement custom logic to select a routable IP address from the multiple IP addresses in the NF profile. This solution is undesirable because custom logic is required in each consumer NF, and consumer NFs running the same custom logic may end up selecting the same IP address, which may lead to network bottlenecks.

[0009] Another problem related to IP addresses in the NF profile is the need for network address translation (NAT). A network operator may need to configure network address translation so that a producer NF can return different network address translated IP addresses to consumer NFs located in different sites or regions. Possible solutions to this problem include placing a network address translator in each individual region or network, having the consumer NF perform network address translation when connecting to a producer NF in each subnet, or having the producer NF provide multiple network address translated IP addresses in the NF profile. None of these solutions are scalable.

[0010] Yet another problem related to producer NF IP addressing is how to provide localized DNS support at different sites or regions. The problem of multiple IP addresses and / or network address translation can be solved by providing region-based DNS support at each site or region. In such a situation, the producer NF can publish a fully qualified domain name (FQDN) in its NF profile, and a localized DNS server can translate the FQDN based on the region from which the request originates. However, this solution can lead to operational challenges, such as keeping DNS records up to date.

[0011] Therefore, in light of these and other challenges, there is a need for an NRF that supports configurable producer-NF IP address mapping. [Means for solving the problem]

[0012] overview A method for supporting configurable producer Network Function (NF) Internet Protocol (IP) address mapping includes receiving, at an NF Repository Function (NRF), a request message for network addresses and / or service information of a producer NF from a requesting node. The method further includes determining at least one consumer NF parameter from the request message. The method further includes using the at least one consumer NF parameter, the producer NF IP address mapping rule. The method further includes, in response to finding the producer NF IP address mapping rule, using the producer NF IP address mapping rule to determine an IP address to return to the requesting node. The method further includes generating a response message including the IP address and sending the response message to the requesting node.

[0013] According to another aspect of the subject matter described herein, receiving the request message includes receiving an NF discovery request message, and determining an IP address to return to the requesting node includes finding an NF profile of the producer NF using at least one query parameter from the NF discovery request message, and selecting an IP address from the NF profile using a producer NF IP address mapping rule.

[0014] According to another aspect of the subject matter described herein, selecting an IP address using the producer NF IP address mapping rule includes selecting an IP address from a plurality of IP addresses included in the NF profile.

[0015] According to another aspect of the subject matter described herein, selecting an IP address using the producer NF IP address mapping rules includes selecting, using the producer NF IP address mapping rules, the network address translated IP address as the IP address to return to the requesting node.

[0016] According to another aspect of the subject matter described herein, finding the IP address mapping rule using the at least one consumer NF attribute includes finding the IP address mapping rule using at least one attribute obtained from an NF profile of the consumer NF or a source address of the request message.

[0017] According to another aspect of the subject matter described herein, the requesting node includes a consumer NF or a service communication proxy (SCP).

[0018] According to another aspect of the subject matter described herein, receiving the request message includes receiving a Domain Name System (DNS) resolution request message, and determining an IP address to return to the requesting node includes finding an NF profile of the producer NF using an NF instance identifier mapped to a fully qualified domain name (FQDN) in the DNS resolution request message, and selecting an IP address from the NF profile using a producer NF IP address mapping rule.

[0019] According to another aspect of the subject matter described herein, finding the IP address mapping rule using the consumer NF parameters includes finding the IP address mapping rule using a source IP address of the DNS resolution request message.

[0020] According to another aspect of the subject matter described herein, receiving the DNS resolution request message from the requesting node includes receiving the DNS resolution request message from a consumer NF, and an SCP, or a DNS server.

[0021] According to another aspect of the subject matter described herein, determining the IP address includes selecting an IP address from a plurality of IP addresses included in the NF profile or selecting a network address translated IP address from the NF profile.

[0022] According to another aspect of the subject matter described herein, a system for supporting configurable producer network function (NF) Internet Protocol (IP) address mapping. The system includes an NF repository function (NRF) including at least one processor and a memory for receiving a request message for a network address and / or service information of a producer NF from a requesting node. The system includes a producer NF IP address mapper for determining at least one consumer NF parameter from the request message, finding a producer NF IP address mapping rule using the at least one consumer NF parameter, and determining an IP address to return to the requesting node using the producer NF IP address mapping rule in response to finding the producer NF IP address mapping rule. The system further includes a response generator implemented by the at least one processor for generating a response message including the IP address and sending the response message to the requesting node.

[0023] According to another aspect of the subject matter described herein, the request message includes an NF discovery request message, and the producer NF IP address mapper is configured to determine an IP address to return to the requesting node by finding an NF profile of the producer NF using at least one query parameter from the NF discovery request message and selecting an IP address from the NF profile using a producer NF IP address mapping rule.

[0024] According to another aspect of the subject matter described herein, the producer NF IP address mapper is configured to select an IP address from a plurality of IP addresses included in the NF profile using a producer NF IP address mapping rule.

[0025] According to another aspect of the subject matter described herein, the producer NF IP address mapper is configured to use the producer NF IP address mapping rules to select the network address translated IP address as the IP address to return to the requesting node.

[0026] According to another aspect of the subject matter described herein, the producer NF IP address mapper is configured to find an IP address mapping rule using at least one attribute obtained from the NF profile of the consumer NF or a source address of the request message.

[0027] According to another aspect of the subject matter described herein, the request message includes a Domain Name System (DNS) resolution request message, and the producer NF IP address mapper is configured to determine an IP address to return to the requesting node by finding an NF profile of the producer NF using an NF instance identifier mapped to a fully qualified domain name (FQDN) in the DNS resolution request message and selecting an IP address from the NF profile using a producer NF IP address mapping rule.

[0028] According to another aspect of the subject matter described herein, the producer NF IP address mapper is configured to use the source IP address of the DNS resolution request message to map to an IP address mapping rule.

[0029] According to another aspect of the subject matter described in this specification, the requesting node includes a consumer NF, a service communication proxy (SCP), or a DNS server.

[0030] According to another aspect of the subject matter described herein, the IP address includes selecting an IP address from a plurality of IP addresses included in the NF profile, or selecting a network address translated IP address from the NF profile.

[0031] According to another aspect of the subject matter described herein, a non-transitory computer-readable medium having stored thereon executable instructions that, when executed by a processor of a computer, control the computer to perform a plurality of steps at a network function (NF) repository function (NRF), the plurality of steps including receiving a request message for a network address and / or service information of a producer NF from a requesting node. The plurality of steps further including determining at least one consumer NF parameter from the request message. The plurality of steps further including finding a producer NF IP address mapping rule using the at least one consumer NF parameter. The plurality of steps further including, in response to finding the producer NF IP address mapping rule, determining an IP address to return to the requesting node using the producer NF IP address mapping rule. The plurality of steps further including generating a response message including the IP address. The plurality of steps further including transmitting the response message to the requesting node.

[0032] The subject matter described herein can be implemented in software in combination with hardware and / or firmware. For example, the subject matter described herein can be implemented in software executed by a processor. In one exemplary implementation, the subject matter described herein can be implemented using a non-transitory computer-readable medium having computer-executable instructions stored thereon that, when executed by a processor of a computer, control a computer to perform steps. Exemplary computer-readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media such as disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In addition, the computer-readable medium implementing the subject matter described herein can be located on a single device or computing platform, or can be distributed across multiple devices or computing platforms.

[0033] Exemplary embodiments of the subject matter described herein will now be described with reference to the accompanying drawings. [Brief description of the drawings]

[0034] [Figure 1] FIG. 1 is a network diagram illustrating an example 5G system network architecture. [Diagram 2] FIG. 1 is a network diagram illustrating a problem that occurs when an NF profile includes multiple IP addresses. [Diagram 3] FIG. 1 is a network diagram illustrating the problem that occurs when the IP address of a producer NF requires network address translation. [Figure 4] FIG. 1 is a network diagram illustrating the problems associated with providing localized DNS support when an NF profile returns an FQDN that requires localized DNS translation. [Diagram 5]FIG. 1 is a network diagram illustrating an NRF with configurable IP address mapping rules for selecting an IP address to return to a consumer NF when an NF profile includes multiple IP addresses. [Figure 6] FIG. 1 is a network diagram illustrating an NRF with an integrated DNS server that provides localized DNS support and selection between multiple IP addresses, including NATed IP addresses. [Figure 7] FIG. 1 is a block diagram illustrating example producer NF IP address mapping rules that may be configured in the NRF. [Figure 8] 1 is a flowchart illustrating an example process that an NRF may implement when processing an NF discovery request using producer NF IP address mapping rules. [Figure 9] 13 is a flowchart illustrating an example process that an NRF may perform to update NF (and associated service) profile parameters in an NF discovery response using producer NF IP address mapping rules. [Figure 10] 1 is a flowchart illustrating an example process that may be performed by an NRF effective to provide localized DNS support. [Figure 11] 1 is a flowchart illustrating an example process that an NRF may perform when processing a DNS query using a producer NF IP address mapping rule. [Figure 12] 1 is a flowchart illustrating an example process that an NRF may perform when using producer NF IP address mapping rules to select IP addresses to include in an NF profile to be sent in an NF discovery response. [Figure 13] FIG. 13 is a message flow diagram illustrating example messages exchanged when the NRF provides support for selecting one of multiple IP addresses for load balancing. [Figure 14]FIG. 13 is a message flow diagram illustrating example messages exchanged when an NRF uses producer NF IP address mapping rules to provide support for selecting among multiple IP addresses for consumers in different regions. [Figure 15] FIG. 13 is a message flow diagram illustrating example messages exchanged when the NRF provides localized DNS support to the NF discovery service. [Figure 16] FIG. 13 is a message flow diagram illustrating example messages exchanged when an NRF provides localized DNS support, including support for DNS forwarding to the nearest NRF for DNS resolution. [Figure 17] FIG. 1 is a block diagram illustrating an example architecture of an NRF with configurable IP address mapping rules for producer NFs. [Figure 18] 13 is a flowchart illustrating an example process that an NRF may perform in supporting configurable IP address mapping rules for a producer NF. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035] Detailed Description FIG. 1 is a block diagram illustrating an example 5G system network architecture. The architecture of FIG. 1 includes an NRF 100 and an SCP 101, which may be located in the same Home Public Land Mobile Network (HPLMN). As described above, the NRF 100 may maintain a profile of available NF instances and their supported services, and enable consumer NFs or SCPs to subscribe and be notified of new / updated NF instance registrations. The SCP 101 may also support service discovery and selection of NF instances. The SCP 101 may perform load balancing of connections between consumer NFs and producer NFs.

[0036] The NRF 100 is a repository for the profiles of NF instances. To communicate with a producer NF instance, a consumer NF or SCP must obtain the NF profile of the producer NF instance from the NRF 100. The NF profile is a JavaScript Object Notation (JSON) data structure defined in 3GPP TS 29.510. The NF profile contains attributes that indicate the type of service provided, the capacity of the NF instance, and information for connecting to the NF instance.

[0037] In Figure 1, any of the network functions can be a consumer NF, a producer NF, or both, depending on whether they are requesting, providing, or requesting and providing a service. In the illustrated example, the NFs include a Policy Control Function (PCF) 102 that performs policy-related operations within the network, a Unified Management (UDM) Function 104 that manages user data, and an Application Function (AF) 106 that provides application services.

[0038] The NF shown in Figure 1 further includes a Session Management Function (SMF) 108 that manages sessions between an Access and Mobility Management Function (AMF) 110 and the PCF 102. The AMF 110 performs mobility management operations similar to those performed by a Mobility Management Entity (MME) in 4G networks. An Authentication Server Function (AUSF) 112 performs authentication services for user equipment (UE), such as user equipment (UE) 114, that seeks access to the network.

[0039] A network slice selection function (NSSF) 116 provides network slicing services for devices seeking to access specific network capabilities and characteristics associated with a network slice. A network exposure function (NEF) 118 provides application programming interfaces (APIs) to application functions seeking to obtain information about Internet of Things (IoT) devices and other UEs connected to the network. The NEF 118 performs a function similar to the service capability exposure function (SCEF) of 4G networks.

[0040] A Radio Access Network (RAN) 120 connects the User Equipment (UE) 114 to the network via wireless links. The Radio Access Network 120 may be accessed using a g-NodeB (gNB) (not shown in FIG. 1) or other wireless access points. A User Plane Function (UPF) 122 may support various proxy functions for user plane services. One example of such a proxy function is a Multi-Path Transmission Control Protocol (MPTCP) proxy function. The UPF 122 may also support a performance measurement function that the UE 114 may use to obtain network performance measurements. Also shown in FIG. 1 is a Data Network (DN) 124 through which the UE accesses data network services, such as Internet services.

[0041] The SEPP 126 filters incoming traffic from another PLMN and performs topology hiding for outgoing traffic from the home PLMN. The SEPP 126 can communicate with a SEPP in a foreign PLMN that manages the security of the foreign PLMN. Thus, traffic between NFs in different PLMNs may go through two SEPP functions, one for the home PLMN and another for the foreign PLMN.

[0042] As mentioned above, problems that may arise in 5G and other networks where service discovery and DNS are supported include selecting a producer NF IP address when the producer NF supports multiple IP addresses, performing network address translation on the producer NF IP address, and performing DNS resolution in a manner that addresses either or both of the first two problems. In 3GPP TS 29.510, a producer NF can register an NF profile or a service profile that includes an FQDN and / or multiple IPv4 or IPv6 addresses. Tables 1 and 2 show a portion of the NF profile and the service profile, respectively, that includes attributes related to the FQDN and IP addresses. Table 3 defines the IpEndPoint attribute of the service profile.

[0043] [Table 1]

[0044] [Table 2]

[0045] [Table 3]

[0046] NF Profile Note 1 and Service Profile Note 7 in Table 1 emphasize the following:

[0047] NOTE 1: The NF profile shall include at least one of the addressing parameters (fqdn, ipv4address or ipv6adress). If the NF supports NF services with the "https" URI scheme (i.e. the use of TLS is mandatory), the FQDN shall be provided in the NF profile or NF service profile (see clause 6.1.6.2.3). See Note 1 in Table 6.1.6.2.3-1 for the use of these parameters. "If the NF profile includes multiple ipv4 and / or ipv6 addresses, the NF service consumer of the discovery service shall randomly select one of these addresses, unless the operator has defined a local policy for IP address selection to avoid overloading specific ipv4 and / or ipv6 addresses." NOTE 7: "If an NF service contains multiple ipv4 and / or ipv6 addresses, the NF service consumer of the discovery service shall randomly select one of these addresses, unless the operator has defined a local policy for IP address selection, to avoid overloading specific ipv4 and / or ipv6 addresses." The bold part above (Agent Note: corresponds to the above quotation mark ("") part) indicates that if an NF or service profile supports multiple IP addresses, the consumer shall randomly select one of the addresses unless the operator defines a specific policy. Relying on the consumer to select among multiple IP addresses of an NF or service profile can be problematic, since such a solution is not scalable and may result in different consumer NFs selecting the same IP address too many times.

[0048] Figure 2 is a network diagram illustrating problems that may occur when a producer NF registers multiple IP addresses in its NF or service profile. Referring to Figure 2, a producer NF 200 located in site / region A registers IP addresses IP1 and IP2 with NRFs 100A and 100B. The purpose of registering the two IP addresses is to allow a consumer NF1 300 located in site / region A to connect to the producer NF 200 using IP address IP1 and a consumer NF2 302 located in site / region B to connect to the producer NF 200 using IP address IP2.

[0049] When multiple IP addresses are registered for the same producer NF, the consumer NF needs logic to select a routable IP address to reach the producer NF. As shown in FIG. 2, a producer NF may expose multiple IP addresses to make the producer NF reachable from different locations separated by different subnets. For example, the producer NF 200 exposes different IP addresses in its NF or service profile to make the producer NF 200 reachable from region A and region B. The example in FIG. 2 shows a dedicated NRF instance 100A or 100B in each region. However, a network operator may choose to have a shared NRF instance with multiple reachable addresses to make the NRF reachable from different subnets / regions.

[0050] When one of the consumer NFs 300 and 302 sends an NF discovery request to its local NRF instance 100A or 100B, the consumer NF 300 or 302 obtains the NF profile of the producer NF 200 with both IP addresses via an NF discovery response message. The consumer NF 300 or 302 can execute custom logic to find a routable IP address used to set up a connection between the consumer and producer NFs, as indicated by the arrow between the consumer NFs 300 and 302 and the producer NF 200. This logic is needed by each consumer NF in a different subnet that is trying to connect with the producer NF 200.

[0051] In some cases, a producer NF may expose multiple IP addresses to load balance network traffic on multiple network interfaces. In this case, 3GPP TS 29.510 suggests that a consumer NF randomly selects one of the IP addresses to avoid overloading a particular IPv4 and / or IPv6 address. Since every consumer NF has its independent selection logic for selecting an IP address from the NF or service profile of the producer NF, it is possible that all consumer NFs may end up selecting the same IP address simultaneously, which may result in overloading the interface associated with the overselected IP address.

[0052] In another example, a producer NF may want to use network address translation to provide different NATed IP addresses to different networks. Figure 3 is a network diagram illustrating an example where a producer NF provides different network address translated IP addresses to consumer NFs located at different sites or regions. In Figure 3, a producer NF 200 may want a consumer NF 300 to use a NATed IP address IP1 to connect to the producer NF 200 from region / site A and a NATed IP address IP2 to connect to the producer NF 200 from region / site B.

[0053] To implement the NATed IP address scheme shown in FIG. 3, a network operator can set up a routing module in the operator's network to automatically perform network address translation. In another example, a consumer NF can have custom logic to perform NAT when connecting to a producer NF in an isolated subnet. The producer NF can add a new NATed IP address to the NF profile of the producer NF when a new isolated subnet is hosted by the network operator. Requiring the producer NF and / or standalone network address translators to perform NAT for different subnets can introduce operational and maintainability challenges within the operator's network.

[0054] Figure 4 is a network diagram illustrating the use of DNS to partially address the problems described with respect to Figures 2 and 3. In Figure 4, DNS servers 400 and 402 are located at sites / regions A and B, respectively. DNS server 400 performs a DNS lookup for an FQDN requested by consumer NF 300 and returns an IP address that is routable in site / region A. Similarly, DNS server 402 performs a DNS lookup for consumer NF 302 and returns an IP address that is routable in site / region B.

[0055] It is assumed that the producer NF 200 publishes an FQDN in its NF profile. The functionality for providing region-based DNS is described in the following URL:

[0056] https: / / docs.microsoft.com / en-us / windows-server / networking / dns / deploy / primary-geo-location In this model, the operator can set up the DNS such that a common DNS server is provided for all producer NFs and producer NFs can respond based on the region from which the request originates. In another example, each region may have a DNS server that has information about all producer NFs in the network and can provide region-based DNS translation results. In either case, maintaining up-to-date DNS records is challenging, especially in a cloud network environment where NFs are dynamically generated based on analytical data that is registered or deregistered with the NRF for a given slice or location.

[0057] Considering the issues discussed above with respect to Figures 2-4, there is a need to facilitate management of mapping of FQDNs to IP addresses via DNS in 5G networks. There is also a need to enable NATed IP-based routing between isolated networks. Furthermore, there is a need to ensure that logic in a consumer NF does not have to select an IP address for routing when a producer NF exposes multiple IP addresses.

[0058] To address the challenges discussed above, the NRF described herein can be configured with an IP address mapper and configurable producer NF IP address mapping rules that enable the NRF to intelligently select among multiple IP addresses published in an NF or service profile and select different NATed IP addresses to return to different consumer NFs based on consumer NF attributes such as region. The IP address mapper can be used to select IP addresses in an NF profile to return in response to DNS queries processed by the NRF.

[0059] Figure 5 is a network diagram showing an NRF with configurable IP address mapping rules and an IP address mapper that uses those rules to select IP addresses to return to consumer NFs and SCPs. Referring to Figure 5, NRFs 100A and 100B each include an IP address mapper 500 and configurable IP address mapping rules 502 to enable selection among multiple IP addresses, including NATed IP addresses.

[0060] In a first example, a producer NF exposes an IP endpoint in its NF or service profile. As described in the preceding paragraph, the NRFs 100A and 100B can be configured with operator-defined rules, referred to herein as producer NF IP address mapping rules, that allow the NRF to map IP addresses in the NF or service profile of the producer NF to information about the consumer NF (such as region, source IP address, etc.). In response to receiving an NF discovery request, the NRF 100A or 100B can find NFs or service profiles that match the query parameters in the NF discovery request. The NRF 100A or 100B can then determine whether any producer NF IP address mapping rules are configured for the NF or service profile. If the NRF 100A or 100B determines that a producer NF IP address mapping rule is configured for the NF or service profile, the NRF 100A or 100B can use the mapping rule and the input for the consumer NF to update the IP address returned to the consumer NF or SCP in the NF discovery response with the specific IP address used to connect to the producer NF. The producer NF IP address mapping rule can be based on the operator's network deployment model. For example, if the network operator implements network separation and the producer NF exposes only a single IP address based on the producer NF's subnet, the NRF can generate and provide a NATed IP address to each consumer NF in the NF discovery response, where different NATed IP addresses can be provided to consumer NFs in different regions, and the NATed IP address provided to each consumer NF is a routable IP address from the consumer NF's region or site.

[0061] To determine the NATed IP address to use for a particular consumer NF, the NRF may utilize information about the consumer NF. For example, if the consumer NF provides a requester-nf-instance-id in an NF discovery request, the NRF may use the requester-nf-instance-id to find the NF or service profile of the consumer NF and use one or more of the following attributes from the consumer NF profile to select a producer NF IP address mapping rule that can be used to determine the IP address of the producer NF to return to the consumer NF in an NF discovery response: NF instance ID, FQDN, IP endpoint information, region, network slice, etc. In another example, the NRF may use the source IP subnet of the TCP datagram carrying the NF discovery request, or other source identification parameters from the NF discovery request, to select a producer NF IP address mapping rule to be used to generate or select the IP address to return to the consumer NF in the NF or service profile.

[0062] If the network operator implements network separation and the producer NF exposes multiple IP addresses for different subnets, the NRF may use any of the IP endpoint information, region, slice, etc. from the NF profile of the consumer NF to find a matching producer NF IP address mapping rule and select one of the IP addresses to return to the consumer NF. If not, the NRF may utilize the source IP subnet of the TCP datagram carrying the NF discovery request, or other source identification parameters from the NF discovery request. If the producer NF exposes multiple IP addresses for load balancing, the producer NF IP address mapping rule may be used to select one or more IP addresses routable from the site or region of the consumer NF, and a load balancing algorithm may be used if there are many such addresses after application of the rules.

[0063] Figure 6 is a network diagram illustrating an example solution of producer NF IP address mapping in an NRF when a producer NF publishes an FQDN and one or more IP endpoints in its NF or service profile. In the example of Figure 6, producer NF 200 publishes an FQDN and IP endpoint addresses IP1 and IP2 in its NF or service profile, which are registered with NRFs 100A and 100B. In addition, each NRF 100A and 100B includes a DNS server 600, which receives DNS queries or resolution requests from consumer NFs and returns routable IP addresses in response to DNS queries. NRFs 100A and 100B may include producer NF IP address mapper 500 and producer NF IP address mapping rules 502, as described above, to select among multiple IP addresses to provide in a DNS response message.

[0064] As shown above, the producer NF 200 publishes FQDNs and IP endpoints in its NF or service profile. The producer NF 200 may choose to publish one or more IP addresses based on the network operator's deployment model. By co-hosting the DNS server 600 at the NRFs 100A and 100B, the NRFs 100A and 100B may manage DNS entries based on the registration, deregistration, and update of the NF profile. If the network includes a local DNS server, such as the DNS server 604, the local DNS server 604 may be configured to forward DNS queries to the DNS server 600 co-hosted at the NRFs 100A or 100B that is closest to the DNS server that received the DNS query.

[0065] The producer NF IP address mapper 500 may use the producer NF IP address mapping rules 502 to select an IP address to be returned by the DNS server 600. For example, if a network operator has implemented network isolation, the DNS server 600 may return an IP address selected by the IP address mapper 500 based on the source IP address of the TCP datagram carrying the DNS query. The IP address returned to the consumer NF in the DNS response may be either one of the IP addresses published by the producer NF in the NF or service profile, or a NATed IP address selected by the IP address mapper 500 associated with the DNS server 600 based on operator configuration and information available in the profile of the producer NF. If the producer NF 200 publishes multiple IP addresses for the same subnet and the NRF 100A or 100B determines that all of the IP addresses published by the producer NF 200 are applicable to the consumer NF 300 or 302, the NRF 100A or 100B selects one of the IP addresses (based on operator policy) and returns the IP address as part of the DNS query response.

[0066] Thus, based on the operator network / deployment and configuration, the NRF described herein selects among multiple IP addresses in the NF profile for load balancing or other criteria in a manner that provides a routable IP address to the consumer NF. The NRF described herein also selects a routable NATed IP address from the consumer NF's network and returns it to the consumer NF. The NRF further performs DNS lookups and returns the routable IP address to the consumer NF while maintaining updated DNS records based on the NF's registration, deregistration, and update service operations. In one example, a local DNS server separate from the NRF can forward DNS queries to the NRF, allowing the NRF to perform DNS resolution.

[0067] An NRF may include producer NF IP address mapping rules in an NF or service profile that are used to determine the IP address returned to a consumer NF or SCP. FIG. 7 illustrates an example producer NF IP address mapping rule. Referring to FIG. 7, producer NF IP address mapping rules 502 are split into ConsumerCriteria 700 and ProducerConfigList 702. ConsumerCriteria 700 includes criteria from or related to a consumer NF that can be used to select a rule from ProducerConfigList 702. In this example, ConsumerCriteria 700 includes a priority attribute, which has a value ranging from 0 to 255, with a lower numerical priority value indicating a higher priority. ConsumerCriteria further includes a Type attribute, which has a value that can be any of [instance ID, fqdn, IP endpoint, region, IP subnet]. If a consumer NF provides a requester-nf-instance-id in the discovery request, the instance id, fqdn, IP endpoints, region etc. can be fetched from the consumer NF profile registered with the NRF. The Value field of the ConsumerCriteria stores the value of the attribute specified in the Type attribute. If "IP Subnet" is set, the producer NF's rule applies to consumer NFs that match "IP Subnet" for any IP endpoint exposed by the consumer NF in its profile. The IP Subnet shall be configured when enabling DNS support in the NRF.

[0068] The value specified in the consumer Criteria is compared with the criteria in the ProducerConfigList to find one or more matching rules. If multiple rules of a given ConsumerCriteria match the incoming request parameters or the IP address of a TCP datagram, the rule with the highest priority (i.e., closest to 0) wins and is used to select the ProducerConfigList object that evaluates the IP address to be returned to the consumer NF or SCP. The ConsumerCriteria can match multiple rows, i.e., in some ProducerConfigLists, the ConsumerCriteria is set based on a region. In some ProducerConfigLists, the ConsumerCriteria may be set to an IPSet. The priority acts as a tiebreaker when an incoming request from a consumer NF matches multiple ConsumerCriteria. Based on the priority, a given rule with a list of ProducerConfigLists is selected. In the ProducerConfigList, the NfType and NfInstance act as keys for mapping rule selection. Therefore, priority is not required to select a mapping rule in the ProducerConfigList.

[0069] ProducerConfigList is a list of configuration rules for producers that have multiple IP addresses published in their NF or service profile, or for which NATed IP addresses are to be generated. These rules can be used to provide IP information in an NF profile or as part of DNS resolution. If the producer's NF does not match the NfType and NfInstance, its profile is provided as is (i.e., without modification) in the response to the NF discovery request. NfType is the type of producer NF to which the rule applies. If the producer NF profile matches the NfType and NfInstance, the NRF uses the matching rule from ProducerConfigList to determine the IP address to return to the consumer NF or SCP in the NF discovery response. ProducerConfigList can have multiple records for the same NfType, allowing unique configurations for different producer instances.

[0070] NfInstance is an optional parameter used to specify a list of NfInstances to which a given rule applies. In the absence of this parameter, the rule is considered the default for the given NfType and applies to all NfInstances that are not explicitly specified. When specified, the NfInstance entry must be unique among the various entries in the ProducerConfigList. For a given NfType, one configuration with an empty NfInstance list shall be allowed in the ProducerConfigList.

[0071] The ProfileEndpointData attribute is used to specify the following values: [fqdn, IP, BOTH]. If ProfileEndpointData is set to FQDN, the NF profile returned to the consumer NF or SCP is provided with only FQDN information, even if the NF profile has an FQDN and one or more IP addresses. The value of FQDN shall be set only if the operator has an external DNS or the NRF is able to perform a DNS lookup. If ProfileEndpointData attribute is set to IP, the NF profile returned to the consumer NF or SCP is provided with only IP information, even if the NF profile has an FQDN and one or more IP addresses. If ProfileEndpointData attribute is set to BOTH, the NF profile returned to the consumer NF or SCP is provided with FQDN information and associated IP addresses, even if the NF profile has an FQDN and one or more IP addresses.

[0072] The ipSubnet attribute of the ProducerConfigList is used to specify the IP subnet address that matches a given subnet from the producer NF profile. When a consumer NF sends an NF discovery request, based on the ConsumerCriteria, a ProducerConfigList is selected. From the matching NfType and NfInstance, a matching producer configuration is found. Based on the IPset, an IP address is selected from the producer NF profile and returned as part of the NF discovery response. If the request being processed by the NRF is a DNS resolution request rather than an NF discovery request, the ConsumerCriteria will match the IP address in the TCP datagram that carries the DNS resolution request. Based on the requested FQDN (in the DNS resolution request), a matching NF instance ID is found from the DNS mapping table (see Table 4). Then, based on the NfType and instanceID, the corresponding ProducerConfig rule is applied, i.e., based on the IPSet configuration in the ProducerConfig rule, the NRF returns the corresponding IP address from the producer NF profile as a DNS query response. If none of the IP addresses in the NF profile match the given subnet, all IP addresses (provided by the producer NF) in the NF profile included in the NF discovery response message are returned.

[0073] The NATset attribute is a List[<producerPublishedIP,NatedIP> ]. A list of NATed IP sets. If a producer NF or service profile contains an IP address specified in the list as producerPublishedIP, that IP address will be replaced with the corresponding NATed IP address in the NF or service profile (for discovery responses) or in DNS responses. A NATed IP address will be selected and returned in the NF profile or DNS response if the NATed IP address matches the value of the ipSubnet parameter.

[0074] The loadBalancingIP attribute is only applicable when ProfileEndpointData is set to IP or Both. There may be multiple IP addresses in the producer NF profile that match a given ipSubnet. The loadBalancingIP parameter allows the NRF to decide whether all IP addresses or one IP address is returned in the NF profile. If ProfileEndpointData is set to FQDN or "DNS support" is enabled in the NRF, the loadBalancingIP parameter is set to TRUE by default. If the loadBalancingIP attribute is set to TRUE, an alternate IP address (determined by processing the IP addresses in the NF profile with the ipSubnet and NATset) is returned in every discovery request. Otherwise, all relevant IP addresses are returned.

[0075] FIG. 8 is a flow chart illustrating an example process that the NRF performs when processing an NF discovery request. With reference to FIG. 8, in step 800, the NRF receives an NF discovery request from a consumer NF. In the case of delegated discovery, the NF discovery request may come from an SCP performing discovery on behalf of the consumer NF. In step 802, the NRF performs default logic to select a set of producer NF profiles to include in the discovery response. Step 802 may include comparing query parameters in the NF discovery request with corresponding attributes in NF profiles registered with the NRF to find matching NF profiles.

[0076] In step 804, the NRF determines whether the consumer NF provided a requester-nf-instance-id in the NF discovery request. If the consumer NF provided a requester-nf-instance-id, control proceeds to step 806, where the NRF looks up the consumer NF profile corresponding to the requester-nf-instance-id. The NRF then extracts parameters from the consumer NF profile and compares the parameters with the value of the Type attribute specified in the ConsumerCriteria of the producer NF IP address mapping rules 502. If the parameters from the consumer NF profile match the value of the Type attribute of the ConsumerCriteria of any of the producer NF IP address mapping rules, control proceeds to step 808, where the NRF selects the rule with the highest priority in the rule's priority attribute. Control then proceeds to step 810, where the NRF performs a lookup in the ProducerConfigList to find a matching ProducerConfig object with NF type and target NF type attributes that match the corresponding attributes from the discovery request. In step 812, it is determined whether a match is found for the comparison of step 810. If a match is found, control proceeds to step 814, where the NRF begins the process of iterating through all producer NF profiles selected for the discovery response to perform the step of updating the IP address.

[0077] Iteration through the NF profiles begins at step 816, where the NRF selects the next profile from the profiles selected for the discovery response. In step 818, the NRF finds a ProducerConfig object with an NF instance that includes the instance ID of the profile, or selects a ProducerConfig object with the NF instance set to null. Control then proceeds to step 820, where the NRF determines whether any profiles with a matching producer configuration object are found. If a matching object is found, control proceeds to step 822, where the NRF executes logic to update the NF profile based on the parameters selected in the ProducerConfig object. If there are no matching parameters in step 820, or after the parameters are updated in step 822, control returns to step 816, where the next profile is selected. Steps 816 through 822 are repeated until all of the profiles have been processed. Control then proceeds to step 824, where the modified NF profile is returned to the consumer NF in the NF discovery response.

[0078] Returning to step 804, if the consumer NF did not provide a requester-nf-instance-id, control proceeds to step 826, where the IP subnet of the TCP datagram carrying the NF discovery request is compared to the IP subnet attribute of the ConsumerCriteria having type as "IP Subnet". Control then proceeds to step 808, where the matching rule with the highest priority is selected. Steps 810 to 824 are then executed to process the NF profile returned in the NF discovery response.

[0079] Returning to step 812, if there is no match in the ProducerConfigList to the NF type from the discovery request or the target NF type, control proceeds to step 828, where it is determined that no changes are required to the producer NF profile. Control then returns to 824, where the raw NF profile is returned in the NF discovery response.

[0080] FIG. 9 is a flow chart illustrating example steps an NRF performs to update NF (and its associated service) profile parameters as specified in step 822 of FIG. 8. Referring to FIG. 9, in step 900, logic begins to update an NF and its service profiles based on parameters in a selected ProducerConfig object. In step 902, the NRF iterates through the NF profiles and service instances in the profiles to update parameters. The first step in the iteration is step 904, where the NRF determines whether the ProducerConfig.ProfileEndpointData attribute is set to an FQDN. If the ProducerConfig.ProfileEndpointData attribute is set to an FQDN, control proceeds to step 906, where the NRF removes the ipEndPoint from the NF profile. Control then proceeds to step 908 and then to step 902, where processing of the next NF profile begins.

[0081] Returning to step 904, if the NRF determines that the ProducerConfig.ProfileEndpointData attribute is not set to an FQDN, control proceeds to step 910, where it is determined whether the ProfileConfig.ProfileEndpointData attribute is set to an IP. If the ProfileConfig.ProfileEndpointData attribute is set to an IP, control proceeds to step 912, where the NRF updates the profile to remove the FQDN. Control then proceeds to step 914, where the NRF determines whether any of the ipEndPoints specified in the NF profile match any of the IP addresses in the producerPublishedIP attribute of ProducerConfig.NATset. If any of the ipEndPoints in the profile match any of the IP addresses specified in the ProducerPublishedIP attribute of ProducerConfig.NATset, control proceeds to step 916, where the matching IpEndPoints are replaced with the NATed IP addresses specified in ProducerConfig.NATset. Control then proceeds to step 918 where it is determined whether any IpEndPoints match ProducerConfig.IPsubnet. If the answer in step 918 is yes, control proceeds to step 920 where the NRF removes the non-matching ipEndPoints from the NF profile. Control then proceeds to step 922 where the NRF determines whether ProducerConfig.LoadBalancingIP is set to TRUE. If ProducerConfig.LoadBalancingIP is set to TRUE, control proceeds to step 924 where the NRF uses a round robin selection or other load balancing algorithm to select a single IP address to remain in the NF profile to be returned or sent to the consumer NF.Control then returns to step 902, where iterating through the remaining NF profiles or service profiles (within the NF profile) to be returned in the NF discovery response continues. Steps 904 through 918 are repeated for each NF profile to be included in the NF discovery response.

[0082] Returning to step 910, if the ProducerConfig.ProfileEndpointData is not set to an IP (or FQDN), control proceeds to step 914, where it is determined whether any IpEndPoint in the profile matches the producer public IP address in the ProducerConfig.NATset. Steps 914 through 924 are then used to update the IP addresses to be included in the NF or service profile returned to the consumer NF.

[0083] Returning to step 914, if none of the ipEndPoints in the NF profile match the producerPublishedIP of the ProducerConfig.NATset, control passes from step 918 back to step 924, where the IP addresses in the ipEndPoint attributes of the NF or service profile are processed without replacing any of the IP addresses with NATed IP addresses.

[0084] 10 is a flow chart illustrating an example process that the NRF performs in generating local DNS data usable for obtaining responses to DNS requests in response to NF registration, NF update, and NF deregistration service operations. With reference to FIG. 10, in step 1000, the NF sends a service request to the NRF to register, update, or deregister an NF profile. Step 1000 may also include the NRF failing to receive a response to the NF heartbeat request within a NF heartbeat interval defined for the producer NF instance.

[0085] In step 1002, it is determined whether the request to register, renew, or deregister the NF is valid. If the request is not valid, control proceeds to step 1004, where the NRF responds to the request without generating any local DNS data.

[0086] If the request of step 1002 is determined to be valid, control proceeds to step 1004, where the NRF executes its default logic to process the request. Step 1004 may include generating an Nnrf management response to the request. In step 1006, the NRF determines whether DNS support is enabled. If DNS support is not enabled, control proceeds to step 1008, where the NRF generates a response to the request message without generating any local DNS data.

[0087] If DNS support is enabled, control proceeds to step 1010, where the NRF determines whether the NF or service profile has FQDN and IpEndPoint information. If the NF profile has FQDN and IpEndPoint information, control proceeds to step 1012, where the NRF adds or updates local DNS data to store the mapping from FQDN to NF profile / service profile instance ID. Step 1012 also applies if the NF resumes heartbeat. The NRF adds all FQDNs (in the NF profile or service profile of the resumed instance) to the DNS data store. Control then proceeds to step 1014, where the NRF removes from the local DNS data the mappings from FQDN to NF profile / service profile instance ID that are no longer part of the NF service / profile. Step 1014 also applies if the NF heartbeat is lost and the NF profile is marked SUSPENDED. The NRF will remove all FQDNs (in NF profiles or service profiles of SUSPENDED NF instances) from the DNS data store.

[0088] Returning to step 1010, if the NF or service profile does not have FQDN and IpEndPoint information, control proceeds to step 1014, where the NRF removes from its local DNS data any mappings from FQDN to NF profile / service profile instance IDs that are no longer part of the NF service / profile. After step 1014, control returns to step 1004, where the NRF responds to requests for Nnrf service operations.

[0089] Table 4 shows an example of local DNS data that may be maintained by the NRF.

[0090] [Table 4]

[0091] As described in more detail below, the local DNS data in Table 4 obtained from the NF registration request, NF deregistration request, and NF update request can be used to find the NF profile to be used to provide an IP address in response to a DNS query.

[0092] FIG. 11 is a flow chart illustrating example steps that the NRF may perform in processing a DNS query using an IP address obtained from a NF or service profile. Referring to FIG. 11, in step 1100, the NRF receives a DNS query. In step 1102, the NRF determines whether the FQDN in the DNS query is in a local DNS table (see Table 4). If the FQDN is not in the local DNS table, control proceeds to step 1104, where the NRF determines that a mapping from the FQDN to an IP address is not found, and then proceeds to step 1106, where the NRF returns a DNS response indicating that a mapping for the IP address is not found.

[0093] If in step 1102 the FQDN in the DNS query is found in the local DNS table, control proceeds to step 1108 where the NRF determines whether there is a matching ConsumerCriteria based on the DNS query. If there is no matching ConsumerCriteria, control proceeds to steps 1104 and 1106 where the NRF determines that no FQDN to IP address mapping is found and a DNS response without an IP address is sent to the requestor.

[0094] In step 1108, if a matching ConsumerCriteria is found based on the source IP address of the DNS query, control proceeds to step 1110, where the producer NF IP address mapping rule with the highest priority and matching ConsumerCriteria is selected. Control then proceeds to step 1112, where the NRF finds a ProducerConfig object with an NF instance that includes the NF profile ID (corresponding to the FQDN in the local DNS table). Otherwise, the NRF selects a ProducerConfig object with the NF instance attribute set to null.

[0095] In step 1114, the NRF determines whether any matching ProducerConfig objects are identified. If no matching ProducerConfig objects are identified, control returns to steps 1104 and 1106, where it is determined that no FQDN to IP address mapping is found and a DNS response is sent.

[0096] If a matching ProducerConfig object is found in step 1114, control proceeds to step 1116, where the NRF fetches the NF profile that matches the NF profile ID corresponding to the FQDN in the DNS table and creates a local copy. Control then proceeds to step 1118, where the NRF executes logic to obtain an IP address from the NF profile based on the FQDN from the DNS request and the parameters in the selected ProducerConfig object.

[0097] FIG. 12 is a flow chart illustrating an example process that the NRF performs to find IP addresses from an NF profile to return in a DNS response. Referring to FIG. 12, in step 1200, logic is initiated to obtain an IP address from an NF or service profile based on a DNS request and parameters in a selected ProducerConfig object. In step 1202, the NRF begins a process of iterating through the NF profiles and service instances in the NF profile to select an IP address. In step 1204, the NRF determines whether there is a matching FQDN in the profile. If there is a matching FQDN in the profile, control proceeds to step 1206, where the NRF determines whether any IP endpoints in the NF profile match the producerPublishedIP in ProducerConfig.NATset. If there are any matching IP addresses, control proceeds to step 1208, where the NRF updates the matching IP addresses in ipEndPoint to the corresponding NATed IP addresses in the NF profile. After step 1208, or if there are no matching ipEndPoints in step 1206, control proceeds to step 1210, where the NRF determines whether any IpEndPoints match ProducerConfig.IPsubnet. If any IpEndPoints match, control proceeds to step 1212, where the NRF removes any non-matching IP endpoints from the profile. Control then proceeds to step 1214, where the NRF selects a single IP address from the profile using a round robin selection or other selection algorithm. Control then proceeds to step 1216, where the NRF returns IP addresses from the NF or service profile to include in the DNS response.

[0098] FIG. 13 is a message flow diagram illustrating example messages exchanged to use configurable producer NF IP address mapping rules at the NRF to select a routable IP address among multiple IP addresses in an NF profile using load balancing. With reference to FIG. 13, at line 1, the producer NF 200 sends an NF registration request to the NRF 100. The NF registration request includes multiple IP addresses and an FQDN in the NF profile. The NRF 100 is also configured with configurable IP address mapping rules to select a routable IP address specific to the site of the consumer NF. At line 2 of the message flow diagram, the NRF 100 responds to the producer NF 200 with a success response indicating successful registration of the NF profile.

[0099] At line 3, the consumer NF 300 sends an NF discovery request to the NRF 100. The NRF 100 finds an NF profile that matches the query parameters in the NF discovery request and uses the producer NF IP address mapping rule to select an IP address IP1 from the ipEndPoint in the NF profile of the producer NF 200. The NRF 100 modifies the NF profile to include the IP address IP1, and at line 4, sends an NF discovery response including the modified NF profile to the consumer NF 300.

[0100] In line 5 of the message flow diagram, the consumer NF 302 sends an NF discovery request to the NRF 100. The NRF 100 selects an NF profile that corresponds to the query parameters in the NF discovery request and applies the producer NF IP address mapping rules to select an IP address IP2 from the ipEndPoint attribute of the NF profile to return to the consumer NF 302. In line 6, the NRF 100 sends an NF discovery response to the consumer NF 302 that includes the modified NF profile.

[0101] At line 7, consumer NF 300 sends an SBI service request to producer NF 200 using routable IP address IP1. At line 8, producer NF 200 responds with a success response. At line 9, consumer NF 302 sends a service request to producer NF 200 using IP address IP2. At line 10, producer NF 200 responds with a success response.

[0102] FIG. 14 is a message flow diagram illustrating example messages exchanged when using configurable IP address mapping rules in an NRF to provide different IP addresses to consumer NFs located in different networks. In FIG. 14, it is assumed that NRFs 100A and 100B are each configured with a producer NF IP address mapping rule to select an IP address to return to a consumer NF in a different network from among the IP addresses in the NF profile. In line 1, producer NF 200 sends an NF registration request to NRF 100B. The NF registration request includes multiple IP addresses and FQDNs in the NF profile. In line 2 of the message flow diagram, NRF 100B responds to producer NF 200 with a success response indicating successful registration of the NF profile. NRF 100B replicates the NF profile to its geo-redundant mate NRF 100A.

[0103] At line 3, the consumer NF 300 sends an NF discovery request to the NRF 100A. The NRF 100A finds an NF profile that matches the query parameters in the NF discovery request and uses the producer NF IP address mapping rules to select a routable IP address from an ipEndPoint in the NF profile of the producer NF 200 based on the region or other source identification parameters. The NRF 100A modifies the NF profile to include the selected IP address and at line 4 sends an NF discovery response including the modified NF profile to the consumer NF 300.

[0104] In line 5 of the message flow diagram, the consumer NF 302 sends an NF discovery request to the NRF 100B. The NRF 100B selects an NF profile that corresponds to the query parameters in the NF discovery request and applies the producer NF IP address mapping rules to select a routable IP address from the ipEndPoint attribute of the NF discovery request in the NF profile to return to the consumer NF 302. In line 6, the NRF 100B sends an NF discovery response including the modified NF profile to the consumer NF 302.

[0105] At line 7, consumer NF302 sends an SBI service request to producer NF200 using the routable IP address that consumer NF302 received from NRF 100B. At line 8, producer NF200 responds with a success response. At line 9, consumer NF300 sends a service request to producer NF200 using IP address IP2. At line 10, producer NF200 responds with a success response.

[0106] FIG. 15 is a message flow diagram illustrating example messages exchanged when an NRF provides support for local DNS for NF discovery services. In FIG. 15, NRFs 100A and 100B each include an NRF SBI interface 1500 for receiving and responding to SBI service requests, and an NRF DNS server 600 for receiving and responding to DNS requests. In line 1 of the message flow diagram, producer NF 200 sends an NF registration request to the SBI interface 1500 of NRF 100B. In line 2, the NRF SBI interface 1500 of NRF 100B responds with a success response. In this example, it is assumed that the NF profile registered by producer NF 200 includes multiple reachable IP addresses and FQDNs. In line 3 of the message flow diagram, the NRF SBI interface 1500 updates the DNS record with the IP addresses and FQDNs received in the NF registration request in line 1. It is understood that the DNS resource record may be updated directly or the local DNS mapping data may be updated as described above with respect to Table 4.

[0107] In line 4 of the message flow diagram, the NRF DNS server 600 responds to the NRF SBI interface 1500 with a success response confirming successful updating of the DNS data. The NRF 100B replicates the NF profile registered in line 1 to its geo-redundant mate NRF 100A. The NRF 100A stores the NF profile in its NF profile database and updates its DNS data.

[0108] At line 5 of the message flow diagram, the consumer NF 302 sends an NF discovery request to the SBI interface 1500 of the NRF 100B. At line 6 of the message flow diagram, the NRF 100B responds with a success response that includes the NF profile of the producer NF 200. The NF profile may include the FQDN of the producer NF 200 according to the rules being applied by the NRF 100B. At line 7 of the message flow diagram, the consumer NF 302 sends a DNS query to the NRF DNS server 600. At line 8, the NRF DNS server 600 of the NRF 100B responds to the consumer NF 302 with a routable IP address using the DNS mapping data received in the registration request at line 1.

[0109] At line 9 of the message flow diagram, the consumer NF 300 sends an NF discovery request to the NRF SBI interface 1500 of NRF 100A. At line 10, the NRF SBI interface 1500 of NRF 100A responds with a success response that includes the NF profile of the producer NF 200. At line 11, the consumer NF 300 sends a DNS query to the NRF DNS server 600 of NRF 100A. At line 12, the NRF DNS server 600 of NRF 100A responds to the consumer NF 300 with a routable IP address.

[0110] FIG. 16 is a message flow diagram illustrating example messages exchanged when a DNS server supports forwarding of DNS queries to a local DNS server for DNS resolution. Referring to FIG. 16, in line 1 of the message flow diagram, producer NF 200 sends a NF registration request to SBI interface 1500 of NRF 100B. In line 2, NRF SBI interface 1500 of NRF 100B responds with a success response. In this example, it is assumed that the NF profile registered by producer NF 200 includes multiple reachable IP addresses and FQDNs. In line 3 of the message flow diagram, NRF SBI interface 1500 updates the DNS record with the IP addresses and FQDNs received in the NF registration request in line 1. It is understood that the DNS resource record may be updated directly or local DNS mapping data may be updated as described above with respect to Table 4.

[0111] In line 4 of the message flow diagram, the NRF DNS server 600 responds to the NRF SBI interface 1500 with a success response confirming successful updating of the DNS data. The NRF 100B replicates the NF profile registered in line 1 to its geo-redundant mate NRF 100A. The NRF 100A stores the NF profile in its NF profile database and updates its DNS data.

[0112] At line 5 of the message flow diagram, the consumer NF 300 sends an NF discovery request to the SBI interface 1500 of the NRF 100B. At line 6 of the message flow diagram, the NRF 100A responds with a success response that includes the NF profile of the producer NF 200. The NF profile may include the FQDN of the producer NF 200 according to the rules being applied by the NRF 100A. At line 7 of the message flow diagram, the consumer NF 300 sends a DNS query to a local DNS server 1600 that is external to the NRF 100A. At line 8, if the local DNS server 1600 cannot resolve the DNS query, the local DNS server 1600 performs DNS forwarding by sending a corresponding DNS query to the NRF DNS server 600 of the NRF 100A. At line 9, the NRF DNS server 600 of the NRF 100A responds to the local DNS server 1600 with a routable IP address using the DNS mapping data received in the registration request at line 1. At line 10, the local DNS server 1600 sends a DNS response including the routable IP address of the producer NF 200 to the consumer NF 300.

[0113] FIG. 17 is a block diagram illustrating an example architecture of the NRF 100 described herein. With reference to FIG. 17, the NRF 100 includes at least one processor 1700 and a memory 1702. The NRF 100 further includes the producer NF IP address mapper 500 and the producer NF IP address mapping rules 502 described above. The NRF 100 also includes a NF profile database 1704 and DNS data or DNS mapping data 1706. The NRF 100 further includes a response generator 1708 that includes the NRF SBI interface 1500 and the NRF DNS server 600.

[0114] In operation, when the NRF 100 receives an NF discovery request via the SBI interface 1500, the NRF 100 uses the NF profile in the NF profile database 1704 along with the producer NF IP address mapper 500 and mapping rules 502 to select an IP address to return to the requesting node in order to respond to the NF discovery request. Similarly, when responding to a DNS query received via the DNS server 600, the producer NF IP address mapper 500 can use the IP address mapping rules 502 along with the DNS data or DNS mapping data 1706 to select an IP address stored in the NF profile database 1704 to provide to the DNS server 600 so that the DNS server 600 can respond to the DNS query with an IP address that is routable to the consumer NF.

[0115] 18 is a flow chart illustrating an example process for supporting configurable producer NF IP address mapping. Referring to FIG. 18, in step 1800, the process includes receiving a request message for a producer NF's network address and / or service information from a requesting node at an NF Repository Function (NRF). For example, the NRF 100 may receive an NF discovery request message from a consumer NF or SCP, or a DNS resolution request message from a consumer NF, SCP, or DNS server.

[0116] In step 1802, the process includes determining at least one consumer NF parameter from the request message. For example, if the request is an NF discovery request message including a requesting NF instance ID, the NRF 100 can use the requesting NF instance ID to identify the NF profile of the consumer NF and obtain the FQDN, IP endpoint address, and / or region from the NF profile. If the request message is a DNS resolution request message or an NF discovery request message without a requesting NF instance ID, the NRF 100 can use the source IP address of the message as the consumer NF parameter.

[0117] In step 1804, the process includes finding a producer NF IP address mapping rule using the at least one consumer NF parameter. For example, the NRF 100 can find a matching rule in the ProducerConfigList using the NF instance ID, FQDN, IP endpoint address, and / or source IP address as the ConsumerCriteria.

[0118] In step 1806, the process includes, in response to finding the producer NF IP address mapping rule, determining an IP address to return to the requesting node using the producer NF IP address mapping rule. For example, the matching rule may specify that one IP address of multiple IP addresses in the NF profile should be selected based on a region or other consumer NF attribute. In another example, the matching rule may indicate that a network address translated address should be returned.

[0119] In step 1808, the process includes generating a response message including the IP address. For example, if the request message is an NF discovery request, the NRF 100 may generate an NF discovery response message including the NF profile of the producer NF, with the selected IP address being returned as the only IP address in the ipEndPoits attribute of the NF profile, replacing one or more IP addresses previously included in the NF profile. If the request message is a DNS resolution request, the response message may include a DNS resolution response message including the selected IP address.

[0120] In step 1810, the process includes sending a response message to the requesting node. For example, the NRF 100 may send the response message to the consumer NF, SCP, or DNS server that generated the NF discovery or DNS resolution request.

[0121] The disclosure of each of the following references is incorporated herein by reference in its entirety. References 1.3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; 5G System; Network Function Repository Services; Stage 3 (Release 17) 3GPP TS 29.510 V17.3.0 (2021-09) It will be understood that various details of the subject matter described herein can be changed without departing from the scope of the subject matter described herein. Moreover, the foregoing description is intended to be illustrative only and not limiting, as the subject matter described herein is defined by the claims set forth below.

Claims

1. 1. A method for supporting configurable producer network function (NF) Internet Protocol (IP) address mapping, comprising: In the NF Repository Function (NRF), receiving a request message for network addresses and / or service information of producer NFs from a requesting node; determining at least one consumer NF parameter from the request message; using the at least one consumer NF parameter to find a producer NF IP address mapping rule; In response to finding the producer NF IP address mapping rule, using the producer NF IP address mapping rule to determine an IP address to return to the requesting node; generating a response message including the IP address; sending the response message to the requesting node.

2. receiving the request message includes receiving an NF discovery request message; 2. The method of claim 1, wherein determining the IP address to return to the requesting node includes finding an NF profile of the producer NF using at least one query parameter from the NF discovery request message, and selecting the IP address from the NF profile using the producer NF IP address mapping rule.

3. The method of claim 2 , wherein selecting the IP address using the producer NF IP address mapping rule comprises selecting the IP address from a plurality of IP addresses included in the NF profile.

4. 3. The method of claim 2, wherein selecting the IP address using the producer NF IP address mapping rule comprises using the producer NF IP address mapping rule to select a network address translated IP address as the IP address to return to the requesting node.

5. 3. The method of claim 2, wherein locating the IP address mapping rule using the at least one consumer NF attribute comprises locating the IP address mapping rule using at least one attribute obtained from an NF profile of the consumer NF or a source address of the request message.

6. The method of claim 2 , wherein the requesting node comprises a consumer NF or a service communication proxy (SCP).

7. receiving the request message includes receiving a Domain Name System (DNS) resolution request message; 2. The method of claim 1, wherein determining the IP address to return to the requesting node includes: finding an NF profile of the producer NF using an NF instance identifier mapped to a fully qualified domain name (FQDN) in the DNS resolution request message; and selecting the IP address from the NF profile using the producer NF IP address mapping rule.

8. The method of claim 7 , wherein locating the IP address mapping rule using a consumer NF parameter comprises locating the IP address mapping rule using a source IP address of the DNS resolution request message.

9. The method of claim 7 , wherein receiving the DNS resolution request message from the requesting node includes receiving the DNS resolution request message from a consumer NF, and an SCP, or a DNS server.

10. 8. The method of claim 7, wherein determining the IP address includes selecting the IP address from a plurality of IP addresses included in the NF profile, or selecting a network address translated IP address from the NF profile.

11. 1. A system for supporting configurable producer network function (NF) Internet Protocol (IP) address mapping, comprising: an NF repository function (NRF) including at least one processor and memory for receiving a request message for network addresses and / or service information of producer NFs from a requesting node; a producer NF IP address mapper for determining from the request message at least one consumer NF parameter, using the at least one consumer NF parameter to find a producer NF IP address mapping rule, and in response to finding the producer NF IP address mapping rule, using the producer NF IP address mapping rule to determine an IP address to return to the requesting node; a response generator implemented by the at least one processor for generating a response message including the IP address and sending the response message to the requesting node.

12. the request message includes an NF discovery request message; 12. The system of claim 11, wherein the producer NF IP address mapper is configured to determine the IP address to return to the requesting node by finding an NF profile of the producer NF using at least one query parameter from the NF discovery request message and selecting the IP address from the NF profile using the producer NF IP address mapping rule.

13. The system of claim 12 , wherein the producer NF IP address mapper is configured to use the producer NF IP address mapping rule to select the IP address from a plurality of IP addresses included in the NF profile.

14. 13. The system of claim 12, wherein the producer NF IP address mapper is configured to use the producer NF IP address mapping rules to select a network address translated IP address as the IP address to return to the requesting node.

15. 14. The system of claim 12 or 13, wherein the producer NF IP address mapper is configured to find the IP address mapping rule using at least one attribute obtained from an NF profile of the consumer NF or a source address of the request message.

16. the request message comprises a Domain Name System (DNS) resolution request message; 12. The system of claim 11, wherein the producer NF IP address mapper is configured to determine the IP address to return to the requesting node by locating an NF profile of the producer NF using an NF instance identifier mapped to a fully qualified domain name (FQDN) in the DNS resolution request message, and selecting the IP address from the NF profile using the producer NF IP address mapping rule.

17. 17. The system of claim 16, wherein the producer NF IP address mapper is configured to use a source IP address of the DNS resolution request message to map to an IP address mapping rule.

18. The system according to claim 16 or 17, wherein the requesting node comprises a consumer NF, a service communication proxy (SCP), or a DNS server.

19. 18. The system of claim 16 or 17, wherein determining the IP address includes selecting the IP address from a plurality of IP addresses included in the NF profile, or selecting a network address translated IP address from the NF profile.

20. A computer program causing a computer processor to carry out the method according to any one of claims 1 to 10.