DNS Proxy Integration

Feature Summary and Revision History

Summary Data

Table 1. Summary Data

Applicable Product(s) or Functional Area

SMF

Applicable Platform(s)

SMI

Feature Default Setting

Disabled – Configuration Required

Related Changes in this Release

Not Applicable

Related Documentation

Not Applicable

Revision History

Table 2. Revision History

Revision Details

Release

Added support for randomization of P-CSCF addresses from DNS.

2021.01.0

First introduced.

Pre-2020.02.0

Feature Description

The Domain Name System (DNS) is a network of servers that translates numeric IP addresses into readable, hierarchical Internet addresses, and vice-versa. The DNS Proxy allows you to configure one or more proxy servers for resolving the host names. The DNS queries are sent to the configured DNS servers through the DNS proxy servers for resolving host names to their IP addresses.

The DNS proxy feature is integrated in the SMF network function.

Randomization of P-CSCF Addresses from DNS

The SMF service supports random selection of resolved hosts. If a DNS resolution yielded a set of IP addresses for a host and if the randomize-answers CLI is enabled in the DNS Proxy profile configuration, the DNS lookup selects IP addresses randomly. The selection of addresses is based on pseudo-random permutation of integers that ensure randomization.

Every DNS query for a particular host gives different sets of IP addresses when the randomize-answers CLI is enabled. This is applicable for both IPv4 and IPv6 addresses.

The selection method is either round-robin or randomized for the DNS Proxy profile.

Example:

For a DNS lookup to get a subset of five IP addresses with randomize-answers enabled.

Host1 = { "1.1.1.1", "2.2.2.2", "3.3.3.3", "4.4.4.4", "5.5.5.5", "6.6.6.6", "7.7.7.7", "8.8.8.8", "9.9.9.9", "10.10.10.10" }

First lookup: [5.5.5.5 1.1.1.1 9.9.9.9 2.2.2.2 7.7.7.7]

Second lookup: [8.8.8.8 6.6.6.6 2.2.2.2 3.3.3.3 9.9.9.9]

Third lookup: [7.7.7.7 5.5.5.5 2.2.2.2 4.4.4.4 9.9.9.9]

How it Works

The DNS Proxy feature is integrated in the SMF cluster. For sending the list of host names to resolve the DNS Proxy server, the SMF Client Library calls the smfdnsclnt.DNSLookupRequest() Request. The DNS Proxy server forwards the request to the Open source DNS package for host name to IP address resolution.

Figure 1. DNS Proxy Integration in SMF

Call Flows

The following call flow illustrates the communication between the DNS client and the Proxy server.

Figure 2. DNS Client and Proxy Server Communication Call Flow

Configuring the DNS Proxy Feature

This section describes how to configure the DNS Proxy feature.

Configuring the DNS Proxy feature involves the following steps:

  1. Configuring DNS proxy replica in SMF

  2. Configuring DNS proxy in SMF

  3. Configuring P-CSCF Server Addresses

Configuring DNS Proxy Replica

Use the following sample configuration to configure the DNS proxy replica.

config 
   instance instance-id gr_instance_id 
      endpoint dns-proxy replicas replica_value  
      commit 

NOTES:

  • endpoint dns-proxy replicas replica_value : Specify the number of replicas of the DNS proxy pod per node.

    replica_value must be an integer.

  • commit : Saves the configuration.

Configuring DNS Proxy

Use the following sample configuration to configure the DNS Proxy feature for SMF.

config 
   profile dns-proxy 
      cache-ttl dns_response_ttl_value 
      query-type { ipv4v6 | ipv4 | ipv6 } 
      randomize-answers 
      round-robin-answers 
      servers dns_server_name 
         ip server_ip_address 
         port server_port 
         priority server_priority 
         protocol { tcp | udp } 
      timeout dns_timeout_value 
      commit 

NOTES:

  • profile dns-proxy : Enter the DNS Proxy Configuration mode.

  • cache-ttl dns_response_ttl_value : Specify the TTL value of DNS responses in cache, in seconds. dns_response_ttl_value must be an integer in the range of 60-86400.

  • query-type : Specify the DNS query type.

  • randomize-answers : Enable DNS for fetching addresses by the randomized selection method.

  • round-robin-answers : Enable DNS for fetching addresses by the round-robin selection method.

  • servers dns_server_name : Specify the name of the DNS server. For example, serv1.

    • ip server_ip_address : Specify the IP address of the DNS server.

    • port server_port : Specify the port of the DNS server.

      server_port must be an integer in the range of 1-65535.

    • priority server_priority : Specify the priority of the DNS server.

      server_priority must be an integer in the range of 1-100.

    • protocol : Specify the protocol type for the DNS server as TCP or UDP.

  • timeout dns_timeout_value : Specify the DNS timeout value, in milliseconds.

    dns_timeout_value must be an integer.

  • commit : Saves the configuration.

Configuring P-CSCF Server Addresses

This section describes how to configure IPv4, IPv6, and IPv4v6 addresses for primary, secondary, and tertiary P-CSCF servers.

Configuring P-CSCF Server IPv4 Addresses

Use the following sample configuration to configure the IPv4 address of the primary, secondary, and tertiary P-CSCF servers.

config 
   profile pcscf pcscf_profile_name 
      v4-list 
         precedence precedence_value 
            primary server_ipv4_address 
            secondary server_ipv4_address 
            tertiary server_ipv4_address 
            end 

NOTES:

  • precedence precedence_value : Specify the precedence value. precedence_value must be an integer in the range of 1-64. This precedence value is used for the round-robin selection of P-CSCF server. The lower the precedence, the higher the priority.

  • primary server_ipv4_address : Specify the IPv4 address of the primary P-CSCF server in dotted-decimal notation.

  • secondary server_ipv4_address : Specify the IPv4 address of the secondary P-CSCF server in dotted-decimal notation.

  • tertiary server_ipv4_address : Specify the IPv4 address of the tertiary P-CSCF server in dotted-decimal notation.

Configuring P-CSCF Server IPv6 Addresses

Use the following sample configuration to configure the IPv6 address of the primary, secondary, and tertiary P-CSCF servers.

config 
   profile pcscf pcscf_profile_name 
      v6-list 
         precedence precedence_value 
            primary server_ipv6_address 
            secondary server_ipv6_address 
            tertiary server_ipv6_address 
            end 

NOTES:

  • precedence precedence_value : Specify the precedence value. precedence_value must be an integer in the range of 1-64. This precedence value is used for the round-robin selection of P-CSCF server. The lower the precedence, the higher the priority.

  • primary server_ipv6_address : Specify the IPv6 address of the primary P-CSCF server in colon-separated hexadecimal notation.

  • secondary server_ipv6_address : Specify the IPv6 address of the secondary P-CSCF server in colon-separated hexadecimal notation.

  • tertiary server_ipv6_address : Specify the IPv6 address of the tertiary P-CSCF server in colon-separated hexadecimal notation.

Configuring P-CSCF Server IPv4v6 Addresses

Use the following sample configuration to configure the IPv4v6 address of the primary, secondary, and tertiary P-CSCF servers.

config 
   profile pcscf pcscf_profile_name 
      v4v6-list 
         precedence precedence_value 
            primary ipv4 server_ipv4_address ipv6 server_ipv6_address 
            secondary { [ ipv4 server_ipv4_address ] [ ipv6 server_ipv6_address ] } 
            tertiary { [ ipv4  server_ipv4_address ] [ ipv6 server_ipv6_address ] } 
            end 

NOTES:

  • precedence precedence_value : Specify the precedence value. precedence_value must be an integer in the range of 1-64. This precedence value is used for the round-robin selection of P-CSCF server. The lower the precedence, the higher the priority.

  • primary ipv4 server_ipv4_address ipv6 server_ipv6_address : Specify the IPv4 and IPv6 address of the primary P-CSCF server in dotted-decimal notation and colon-separated hexadecimal notation respectively.

  • secondary { [ ipv4 server_ipv4_address ] [ ipv6 server_ipv6_address ] } : Specify the IPv4 and IPv6 address of the secondary P-CSCF server in dotted-decimal notation and colon-separated hexadecimal notation respectively.

  • tertiary { [ ipv4 server_ipv4_address ] [ ipv6 server_ipv6_address ] } : Specify the IPv4 and IPv6 address of the tertiary P-CSCF server in dotted-decimal notation and colon-separated hexadecimal notation respectively.

Verifying DNS Proxy Feature Configuration

This section describes how to verify the DNS Proxy feature configuration.

Use the show running-config profile dns-proxy command to confirm the configuration of DNS Proxy feature.

The following is an example output of show running-config profile dns-proxy command with configuration for two DNS servers, serv1 and serv2.

show running-config profile dns-proxy profile1 
   query-type ipv4  
   timeout 5 
   servers serv1 
   round-robin-answers 
   servers serv1 
   ip 10.105.227.227 
   port 53  
   protocol tcp 
   priority 1 
   exit 
   servers serv2  
   ip 10.105.227.228  
   port 20  
   protocol udp  
   priority 2  
   randomise-answers 
   exit 
exit