The 64-bit interface ID of an IPv6 address is also referred to as a token. During address autoconfiguration, the token is associated with the interface's MAC address. In most cases, non-routing nodes (IPv6 hosts and servers) should use their autoconfigured tokens.
However, using autoconfigured tokens can be a problem for servers with interfaces that are routinely swapped as part of system maintenance. When the interface card is changed, the MAC address is also changed. Servers that depend on having stable IP addresses can experience problems as a result. Various parts of the network infrastructure, such as Domain Name System (DNS) or Network Information System (NIS), might have stored specific IPv6 addresses for the interfaces of the server.
To avoid address change problems, you can manually configure a token to be used as the interface ID in an IPv6 address. To create the token, you specify a hexadecimal number of 64 bits or less to occupy the interface ID portion of the IPv6 address. During subsequent address autoconfiguration, Neighbor Discovery does not create an interface ID that is based on the interface's MAC address. Instead, the manually created token becomes the interface ID. This token remains assigned to the interface, even when a card is replaced.
The following procedure is particularly useful for servers with interfaces that are routinely replaced. You can also follow these steps to configure user-specified tokens on any IPv6 node.
# ipadm show-if IFNAME CLASS STATE ACTIVE OVER lo0 loopback ok yes --- net0 ip ok yes --- # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8
The previous output shows that the network interface net0 exists with no configured IPv6 address.
xxxx:xxxx:xxxx:xxxx
# ipadm create-addr -T addrconf -i interface-ID interface
For example, you configure interface net0 with a token as follows:
# ipadm create-addr -T addrconf -i ::1a:2b:3c:4d/64 net0
# pkill -HUP in.ndpd
The following example shows how to configure net0 with an IPv6 address and a token.
# ipadm show-if IFNAME CLASS STATE ACTIVE OVER lo0 loopback ok yes --- net0 ip ok yes --- # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 # ipadm create-addr -T addrconf -i ::1a:2b:3c:4d/64 net0 # pkill -HUP in.ndpd # ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v6 static ok ::1/128 net0/v6 addrconf ok fe80::1a:2b:3c:4d/10 net0/v6a addrconf ok 2002:a08:39f0:1:1a:2b:3c:4d/64
After the token is configured, the address object net0/v6 has both a link-local address, as well as an address with 1a:2b:3c:4d configured for its interface ID. Note that you can no longer modify the token for this interface after net0/v6 is created.
See also
To update the name services with the IPv6 addresses of the server, see Chapter 4, Administering Naming and Directory Services on an Oracle Solaris Client.
To monitor server performance, see Chapter 1, Administering TCP/IP Networks, in Administering TCP/IP Networks, IPMP, and IP Tunnels in Oracle Solaris 11.2 .