IPADDRSEL(8)         Maintenance Commands and Procedures        IPADDRSEL(8)
NAME
       ipaddrsel - configure IPv6 default address selection
SYNOPSIS
       /usr/sbin/ipaddrsel       /usr/sbin/ipaddrsel -f file       /usr/sbin/ipaddrsel -dDESCRIPTION
       Use the 
ipaddrsel utility to configure the IPv6 default address
       selection policy table. The policy table is a longest-matching-prefix
       lookup table that is used for IPv6 source address selection and for
       destination address ordering when resolving names to 
AF_INET6       addresses. For a description of how the policy table is used for
       source address selection, see 
inet6(4P). For a description of how the
       policy table is used for destination address ordering, see       
getaddrinfo(3SOCKET).
       The unmodified policy table is valid for all typical IPv6
       deployments. Modify the table only if a circumstance exists for which
       the default behavior of the IPv6 source address selection or
       destination address ordering mechanism is unsatisfactory. See the
       section for examples of such circumstances. You should carefully
       consider your addressing strategy before you change the table from
       the provided default.
       When the 
ipaddrsel command is issued without any arguments, the
       address selection policy currently in use is printed. The format of
       the output is compatible with the format of the configuration file
       that the 
-f option accepts.
       Note -
         If the 
usesrc subcommand to 
ifconfig(8) is applied to a particular
         physical interface, the selection policy specified by 
usesrc         overrides the source address selection policies specified by         
ipaddrsel. This is true for packets that are locally generated and
         for applications that do not choose a non-zero source address using         
bind(3SOCKET).
   The Configuration File
       The configuration file that the 
-f option accepts can contain either
       comment lines or policy entries. Comment lines have a '
#' character
       as the first non-blank character. and they are ignored by the       
ipaddrsel utility. Policy entry lines have the following format:         
prefix/
prefix_length precedence label [# 
comment]
       The 
prefix must be an IPv6 prefix in a format consistent with       
inet(3C). The 
prefix_length is an integer ranging from 0 to 128. The
       IPv6 source address selection and destination address ordering
       algorithms determine the precedence or label of an address by doing a
       longest-prefix-match lookup using the prefixes in this table, much
       like next-hop determination for a destination is done by doing a
       longest-prefix-match lookup using an IP routing table.
       The precedence is a non-negative integer that represents how the
       destination address ordering mechanism will sort addresses returned
       from name lookups. In general, addresses with a higher precedence
       will be in front of addresses with a lower precedence. Other factors,
       such as destinations with undesirable source addresses can, however,
       override these precedence values.
       The label is a string of at most fifteen characters, not including
       the 
NULL terminator. The label allows particular source address
       prefixes to be used with destination prefixes of the same label.
       Specifically, for a particular destination address, the IPv6 source
       address selection algorithm prefers source addresses whose label is
       equal that of the destination.
       The label may be followed by an optional comment.
       The file must contain a default policy entry, which is an entry with       
::0/0 as its 
prefix and 
prefix_length. This is to ensure that all
       possible addresses match a policy.
OPTIONS
       The 
ippadrsel utility supports the following options:       
-f file                  Replace the address selection policy table with the policy
                  specified in the 
file.       
-d                  Revert the kernel's address selection policy table back to
                  the default table.  Invoking 
ipaddrsel in this way only
                  changes the currently running kernel's policy table, and
                  does not alter the configuration file                  
/etc/inet/ipaddrsel.conf. To revert the configuration file
                  back to its default settings, use 
ipaddrsel -d, then dump
                  the contents of the table to the configuration file by
                  redirecting the output of 
ipaddrsel to                  
/etc/inet/ipaddrsel.conf.
                    example# 
ipaddrsel -d                    example# 
ipaddrsel > /etc/inet/ipaddrsel.confEXAMPLES
       Example 1: The Default Policy in /etc/inet/ipaddrsel.conf
       The following example is the default policy that is located in       
/etc/inet/ipaddrsel.conf:
         # Prefix                            Precedence Label
         ::1/128                                     50 Loopback
         ::/0                                        40 Default
         ::ffff:0.0.0.0/96                           35 IPv4
         2002::/16                                   30 6to4
         2001::/32                                    5 Teredo
         fc00::/7                                     3 ULA
         ::/96                                        1 IPv4_Compatible
         fec0::/10                                    1 Site_Local
         3ffe::/16                                    1 6bone
       Example 2: Assigning a Lower Precedence to Link-local and Site-local
       Addresses
       By default, the destination address ordering rules sort addresses of
       smaller scope before those of larger scope. For example, if a name
       resolves to a global and a site-local address, the site local address
       would be ordered before the global address. An administrator can
       override this ordering rule by assigning a lower precedence to
       addresses of smaller scope, as the following table demonstrates.
         # Prefix                            Precedence Label
         ::1/128                                     50 Loopback
         ::/0                                        40 Default
         2002::/16                                   30 6to4
         fec0::/10                                   27 Site-Local
         fe80::/10                                   23 Link-Local
         ::/96                                       20 IPv4_Compatible
         ::ffff:0.0.0.0/96                           10 IPv4
       Example 3: Assigning Higher Precedence to IPv4 Destinations
       By default, IPv6 addresses are ordered in front of IPv4 addresses in
       name lookups. 
::ffff:0.0.0.0/96 has the precedence of 35 in the
       default table.  In the following example, IPv4 addresses are assigned
       higher precedence and are ordered in front of IPv6 destinations:
         # Prefix                            Precedence Label
         ::1/128                                     50 Loopback
         ::/0                                        40 Default
         ::ffff:0.0.0.0/96                           60 IPv4
         2002::/16                                   30 6to4
         2001::/32                                    5 Teredo
         fc00::/7                                     3 ULA
         ::/96                                        1 IPv4_Compatible
         fec0::/10                                    1 Site_Local
         3ffe::/16                                    1 6bone
       Example 4: Ensuring that a Particular Source Address is Used
       This example ensures that a particular source address is used only
       when communicating with destinations in a particular network.
       The following policy table assigns the label "ClientNet" to a
       particular source address on the local system, 
2001:1111:1111::1. The
       table assigns the same label to a network, 
2001:2222:2222::/48. The
       result of this policy is that the 
2001:1111:1111::1 source address
       will only be used when communicating with destinations contained in
       the 
2001:2222:2222::/48 network. For this example, this network is
       the 
ClientNet, which could represent a particular client's network.
         # Prefix                            Precedence Label
         ::1/128                                     50 Loopback
         2001:1111:1111::1/128                       40 ClientNet
         2001:2222:2222::/48                         40 ClientNet
         ::/0                                        40 Default
         2002::/16                                   30 6to4
         ::/96                                       20 IPv4_Compatible
         ::ffff:0.0.0.0/96                           10 IPv4
       This example assumes that the local system has one physical
       interface, and that all global prefixes are assigned to that physical
       interface.
EXIT STATUS
       ipaddrsel returns the following exit values:       
0             ipaddrsel successfully completed.       
>0             An error occurred. If a failure is encountered, the kernel's
             current policy table is unchanged.
FILES
       /etc/inet/ipaddrsel.conf                                   The file that contains the IPv6 default
                                   address selection policy to be installed
                                   at boot time. This file is loaded before
                                   any Internet services are started.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Evolving        |
       +--------------------+-----------------+
SEE ALSO
       inet(3C), 
getaddrinfo(3SOCKET), 
inet6(4P), 
ipaddrsel.conf(5),       
attributes(7), 
nscd(8)NOTES
       The ipnodes cache kept by 
nscd(8) contains addresses that are ordered
       using the destination address ordering algorithm, which is one of the
       reasons why 
ipaddrsel is called before 
nscd in the boot sequence. If       
ipaddrsel is used to change the address selection policy after 
nscd       has started, you should invalidate the 
nscd ipnodes cache by invoking
       the following command:
         example# 
/usr/sbin/nscd -i ipnodes                               March 30, 2022                   IPADDRSEL(8)