This chapter contains procedures for configuring IPv6 on hosts and routers. The text includes the following major topics:
For More Information |
Go to |
---|---|
Overview of IPv6 | |
Detailed conceptual information that is related to the IPv6 tasks in this chapter | |
Details about making the transition from IPv4 to IPv6 |
Chapter 4, Making the Transition From IPv4 to IPv6 (Reference) |
This section provides procedures that you might need to configure IPv6 nodes on your network.
The term node in this context refers either to a Solaris server or client host.
Task |
Description |
For Instructions |
---|---|---|
Enable IPv6 on a node |
Involves touching hostname6.interface file, displaying addresses, and entering the addresses in the /etc/inet/ipnodes file. See the note that follows this table. | |
Configure a Solaris IPv6 router |
Involves adding entries to the indp.conf file. | |
Configure a 6to4 router |
Involves configuring a 6to4 interface in the /etc/hostname6.ip.6to4tun0 file | |
Add IPv6 addresses to NIS and NIS+ |
Involves adding entries to the /etc/ipnodes file. | |
Add IPv6 addresses to DNS |
Involves adding AAAA records to the DNS zone and reverse zone file. |
You can enable IPv6 on a system when you install the Solaris software. If you answered yes to enable IPv6 during the installation process, you can omit the following procedures to enable IPv6.
Become superuser on the system where you want to enable IPv6.
Type the following for each interface.
# touch /etc/hostname6.interface |
Interface |
Interface name, such as le0, le1. |
Reboot the node
The reboot process sends router discovery packets. The router responds with a prefix. The response enables the node to configure the interfaces with an IPv6 address. Rebooting also restarts key network daemons in IPv6 mode.
Display the IPv6 addresses of all interfaces.
# ifconfig -a6 |
To show both IPv4 and IPv6 addresses, just use the -a option.
Add the IPv6 address to the appropriate name service as follows:
For NIS and NIS+, see How to Add IPv6 Addresses to NIS and NIS+.
For DNS, see How to Add IPv6 Addresses to DNS.
Become superuser on the system to become the router.
Edit the file /etc/inet/ndpd.conf with subnet prefixes by adding one or more of the following entries.
See the in.ndpd(1M) man page for a list of variables and allowable values. For more information about the ndpd.conf file, see the ndpd.conf(4) man page.
Add entries that specify router behavior for all interfaces.
ifdefault variable value |
Add entries that specify the default behavior of prefix advertisement.
prefixdefault variable value |
Add sets per interface parameter entries.
if interface variable value |
Add advertisements for each entry for interface prefix information.
prefix prefix/length interface variable value |
Reboot the system.
Neighbor discovery (in.ndpd) relays the subnet address prefixes of the hosts to the hosts. Also, the next generation RIP routing protocol (in.ripngd) runs automatically.
# Send router advertisements out all NICs ifdefault AdvSendAdvertisements on # Advertise a global prefix and a # site local prefix on three interfaces. # 0x9255 = 146.85 prefix 2:0:0:9255::0/64 hme0 prefix fec0:0:0:9255::0/64 hme0 # 0x9256 = 146.86 prefix 2:0:0:9256::0/64 hme1 prefix fec0:0:0:9256::0/64 hme1 # 0x9259 = 146.89 prefix 2:0:0:9259::0/64 hme2 prefix fec0:0:0:9259::0/64 hme2 |
Before you configure 6to4 routing on an IPv6 network, you must have done the following:
Configured IPv6 on all appropriate nodes at the prospective 6to4 site, as described in How to Enable IPv6 on a Node.
Selected at least one router with a connection to an IPv4 network to become the 6to4 router.
Configured a globally unique IPv4 address for the prospective 6to4 router's interface to the IPv4 network. The IPv4 address must be static. Do not use a dynamically allocated IPv4 address. For instructions for configuring an IPv4 interface, see “Network Configuration Procedures” in System Administration Guide: IP Services
Become superuser on the prospective 6to4 router.
Configure a 6to4 pseudo-interface on the router by creating the /etc/hostname6.ip.6to4tun0 file.
If you plan to use the recommended convention of subnet ID=0 and host ID=1, use the short format for /etc/hostname6.ip.6to4tun0:
tsrc IPv4 address up |
If you plan to use other conventions for subnet ID and host ID, use the long format for /etc/hostname6.ip.6to4tun0:
tsrc IPv4 address 2002:IPv4 address:subnet ID:host ID:/64 up |
The next table explains the parameters of /etc/hostname6.ip.6to4tun0 that are used in this step.
tsrc |
Indicates that this interface is used as a tunnel source |
IPv4 address |
Specifies, in dotted decimal format, the IPv4 address that is configured on the physical interface to become the 6to4 pseudo-interface |
2002 |
(Optional) Specifies the 6to4 prefix |
IPv4 address |
(Optional) Specifies, in hexadecimal, the IPv4 address of the pseudo-interface. |
subnet ID |
(Optional) Specifies, in hexadecimal notation, a subnet ID other than 0 |
host ID |
(Optional) Specifies a host ID other than 1 |
/64 |
Indicates that the address has a length of 64 bits. |
up |
Directs ifconfig to configure the interface as “up” |
Two IPv6 tunnels cannot have the same source and same destination addresses. Packets are dropped as a result. This type of event can happen if a 6to4 router also performs tunneling through atun.
(Optional) Create additional 6to4 pseudo-interfaces on the router.
Each prospective 6to4 pseudo-interface must have an already-configured, globally unique IPv4 address.
Run ifconfig to verify the status of the interface.
# ifconfig ip.6to4tun0 inet6 |
If the interface is correctly configured, you receive output that is similar to the following.
ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6>mtu 1480 index 11 inet tunnel src 129.146.87.188 tunnel hop limit 60 inet6 2002:8192:56bb:56bb::1/64 |
Edit /etc/inet/ndpd.conf to advertise 6to4 routing.
For detailed information, refer to ndpd.conf(4).
Specify the subnet to receive the advertisement in the first line.
Create an if entry with the following format:
if subnet-interface AdvSendAdvertisements 1 |
For example, to advertise 6to4 routing to the subnet that is connected to interface hme0, replace subnet-interface with hme0.
if hme0 AdvSendAdvertisements 1 |
Add the 6to4 prefix as the second line of the advertisement.
Create a prefix entry with following format:
prefix 2002:IPv4-address:subnet ID::/64 subnet-interface |
prefix 2002 |
Indicates a 6to4 prefix |
IPv4-address |
Specifies, in hexadecimal representation, the unique IPv4 address of the 6to4 pseudo-interface |
subnet ID |
Specifies, in hexadecimal, a subnet ID |
subnet-interface |
Router interface to which the subnet is connected |
Reboot the router.
Alternatively, you can issue a sighup to /etc/inet/in.ndpd to begin sending router advertisements.. The IPv6 nodes on each subnet to receive the 6to4 prefix now autoconfigure with new 6to4–derived addresses.
Add the new 6to4–derived addresses of the nodes to the name service that is used at the 6to4 site.
For instructions, go to How to Add IPv6 Addresses to DNS or How to Add IPv6 Addresses to NIS and NIS+.
For a multiple router site, the routers behind the 6to4 router might require further configuration to support 6to4. If your site uses RIP, you must configure on each non-6to4 router static routes to the 6to4 router. If you use a commercial routing protocol, you do not need to create static routes to the 6to4 router.
The following is an example of the short form of /etc/hostname6.ip.6to4tun0.
# cat /etc/hostname6.ip.6to4tun0 tsrc 129.146.87.188 up |
Here is an example of the long form of /etc/hostname6.ip.6to4tun0.
# cat /etc/hostname6.ip.6to4tun0 tsrc 129.146.87.188 2002:8192:56bb::1/64 up |
The following example shows output of ifconfig for a 6to4 pseudo-interface.
# ifconfig ip.6to4tun0 inet6 ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6> mtu 1480 index 11 inet tunnel src 129.146.87.188 tunnel hop limit 60 inet6 2002:8192:56bb::1/64 |
The next sample /etc/inet/ndpd.conf file advertises 6to4 routing on two subnets.
if qfe0 AdvSendAdvertisements 1 prefix 2002:8192:56bb:1::/64 qfe0 if qfe1 AdvSendAdvertisements 1 prefix 2002:8192:56bb:2::/64 qfe1 |
A new table has been added for NIS+ named ipnodes.org_dir. The table contains both IPv4 and IPv6 addresses for a host. The existing hosts.org_dir table, which contains only IPv4 addresses for a host, remains the same to facilitate existing applications. Both the hosts.org_dir and ipnodes.org_dir tables must be consistent with the IPv4 addresses. See IPv6 Extensions to Solaris Name Services for an overview.
Administration of the new ipnodes.org_dir table is similar to administering the hosts.org_dir. The same tools and utilities that are used to administer the previous NIS+ tables are valid for ipnodes.org_dir. See System Administration Guide: Naming and Directory Services for details on how to manipulate the NIS+ table.
The following command merges the entries from /etc/inet/ipnodes into the ipnodes.org_dir table, in verbose mode. The NIS+ table was probably created by nistbladm(1), nissetup(1M), or nisserver(1M).
On a command line, type the following command:
% nisaddent -mv -f /etc/inet/ipnodes ipnodes |
Use the following procedure to display the ipnodes.org_dir table.
On a command line, type the following command:
% nisaddent -d ipnodes |
Two new maps have been added for NIS: ipnodes.byname and ipnodes.byaddr. These maps contain both IPv4 and IPv6 host name and address associations. The hosts.byname and hosts.byaddr maps, which contain only IPv4 host name and address associations, are unchanged so that they can facilitate existing applications. Administration of the new maps is similar to the maintenance of the hosts.byname and hosts.byaddr older maps. Again, it is important that when you update the hosts maps with IPv4 addresses that the new ipnode maps are also updated with the same information.
Tools that are aware of IPv6 use the new NIS maps and the new NIS+ tables.
Become superuser on the primary or secondary DNS server for your IPv6 network.
Edit the appropriate DNS zone file by adding AAAA records for each IPv6–enabled host, as follows.
host-name IN AAAA host-address |
Edit the DNS reverse zone file and add PTR records, using the following format.
host-address IN PTR host-name |
For detailed information on DNS administration, refer to “DNS Administration (Reference)” in System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).
vallejo IN AAAA 2::9256:a00:20ff:fe12 IN AAAA fec0::9256:a00:20ff:fe12:528 |
$ORIGIN ip6.int. 8.2.5.0.2.1.e.f.f.f.9.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0 \ IN PTR vallejo.Eng.apex.COM. 8.2.5.0.2.1.e.f.f.f.9.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.0.c.e.f \ IN PTR vallejo.Eng.apex.COM. |
The following commands are modified to accommodate the Solaris implementation of IPv6.
You can use the new additions to conduct diagnostics. For conceptual descriptions of these commands, see IPv6 Extensions to the ifconfig Utility and IPv6 Extensions to Existing Utilities.
Task |
Description |
For Instructions, Go to ... |
---|---|---|
Display interface address assignments |
Displays all address assignments, or just IPv4, IPv6, or 6to4-derived address assignments by using ifconfig command. | |
Display network status |
Displays all sockets and routing table entries. Displays inet address family for IPv4. Displays inet6 address family for IPv6. Displays statistics for IPv6 or ICMPv6 counters of interfaces by using the netstat command. | |
Control the display output of IPv6 related commands |
Controls the output of the ping, netstat, ifconfig, and traceroute commands. Creates a file that is named inet_type. Sets the DEFAULT_IP variable in this file. | |
Monitor only IPv6 network traffic |
Displays all IPv6 packets by using the snoop command. | |
Probe all multì-homed host addresses |
Checks all addresses by using the ping command. | |
Trace all routes |
Uses the traceroute command. |
You can use the ifconfig command to display all address assignments as well as just IPv4 or IPv6 address assignments.
On the command line, type the following command.
% ifconfig [option] |
For more information on the ifconfig command, see the ifconfig(1M) man page.
% ifconfig -a lo0: flags=1000849 mtu 8232 index 1 inet 120.10.0.1 netmask ff000000 le0: flags=1000843 mtu 1500 index 2 inet 120.46.86.54 netmask ffffff00 broadcast 120.146.86.255 ether 8:0:73:56:a8 lo0: flags=2000849 mtu 8252 index 1 inet6 ::1/128 le0: flags=2000841 mtu 1500 index 2 ether 8:0:20:56:a8 inet6 fe80::a00:fe73:56a8/10 le0:1: flags=2080841 mtu 1500 index 2 inet6 fec0::56:20ff:fe73:56a8/64 le0:2: flags=2080841 mtu 1500 index 2 inet6 2::56:a00:fe73:56a8/64 |
% ifconfig -a4 lo0: flags=1000849 mtu 8232 index 1 inet 120.10.0.1 netmask ff000000 le0: flags=1000843 mtu 1500 index 2 inet 120.46.86.54 netmask ffffff00 broadcast 120.46.86.255 ether 8:0:20:56:a8 |
% ifconfig -a6 lo0: flags=2000849 mtu 8252 index 1 inet6 ::1/128 le0: flags=2000841 mtu 1500 index 2 ether 8:0:20:56:a8 inet6 fe80::a00:fe73:56a8/10 le0:1: flags=2080841 mtu 1500 index 2 inet6 fec0::56:20ff:fe73:56a8/64 le0:2: flags=2080841 mtu 1500 index 2 inet6 2::56:a00:fe73:56a8/64 ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6> mtu 1480 index 11 inet tunnel src 129.146.86.187 tunnel hop limit 60 inet6 2002:8192:56bb::1/64 |
% ifconfig ip.6to4tun0 inet6 6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6. mtu 1480 index 11 inet tunnel src 172.16.213.81 tunnel hop limit 60 inet6 2002:ac10:d551::1/64 |
These procedures enable you to display the following structure formats for network data by using the netstat command:
All sockets and routing table entries
Inet address family for IPv4
Inet6 address family for IPv6
Statistics per interface—IPv6 or ICMPv6 counters
For more information on the netstat command, see the netstat(1M) man page.
% netstat -a UDP: IPv4 Local Address Remote Address State -------------------- -------------------- ------- *.* Unbound *.apexrpc Idle *.* Unbound . . UDP: IPv6 Local Address Remote Address State If --------------------------------- --------------------------------- ------- *.* Unbound *.time Idle *.echo Idle *.discard Idle *.daytime Idle *.chargen Idle TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ------- *.* *.* 0 0 0 0 IDLE *.apexrpc *.* 0 0 0 0 LISTEN *.* *.* 0 0 0 0 IDLE *.ftp *.* 0 0 0 0 LISTEN localhost.427 *.* 0 0 0 0 LISTEN *.telnet *.* 0 0 0 0 LISTEN tn.apex.COM.telnet is.Eng.apex.COM 8760 0 8760 0 ESTABLISHED tn.apex.COM.33528 np.apex.COM.46637 8760 0 8760 0 TIME_WAIT tn.apex.COM.33529 np.apex.COM.apexrpc 8760 0 8760 0 TIME_WAIT TCP: IPv6 Local Address Remote Address Swind Send-Q Rwind Recv-Q State If ----------------- ----------------- ----- ------ ----- ------ ----- *.* *.* 0 0 0 0 IDLE *.ftp *.* 0 0 0 0 LISTEN *.telnet *.* 0 0 0 0 LISTEN *.shell *.* 0 0 0 0 LISTEN *.smtp *.* 0 0 0 0 LISTEN . . 2::56:8.login something.1023 8640 0 8640 0 ESTABLISHED fe80::a:a8.echo fe80::a:89 8640 0 8640 0 ESTABLISHED fe80::a:a8.ftp fe80::a:90 8640 0 8640 0 ESTABLISHED |
% netstat -f inet TCP: IPv4 Local Address Remote Address Swind Send-Q Rwind Recv-Q State -------------------- -------------------- ----- ------ ----- ------ ------- tn.apex.COM.telnet is.apex.COM.35388 8760 0 8760 0 ESTABLISHED tn.apex.COM.1022 alive-v4.nfsd 8760 0 8760 0 ESTABLISHED tn.apex.COM.1021 sl.apex.COM.nfsd 8760 0 8760 0 ESTABLISHED . . tn.apex.COM.33539 np.apex.COM.apexrpc 8760 0 8760 0 TIME_WAIT |
% netstat -f inet6 TCP: IPv6 Local Address Remote Address Swind Send-Q Rwind Recv-Q State If -------------------- --------------------- ----- ------ ----- ------ ----------- ----- 2::56:a8.login something.1023 8640 0 8640 0 ESTABLISHED fe80::a0:a8.echo fe80::a0:de.35389 8640 0 8640 0 ESTABLISHED . . fe80::a0:a8.ftp-data fe80::a0:de.35394 25920 0 25920 0 TIME_WAIT |
% netstat -sa RAWIP rawipInDatagrams = 1407 rawipInErrors = 0 rawipInCksumErrs = 0 rawipOutDatagrams = 5 rawipOutErrors = 0 UDP udpInDatagrams = 7900 udpInErrors = 0 udpOutDatagrams = 7725 udpOutErrors = 0 TCP tcpRtoAlgorithm = 4 tcpRtoMin = 200 tcpRtoMax = 60000 tcpMaxConn = -1 . . IPv4 ipForwarding = 2 ipDefaultTTL = 255 ipInReceives =406345 ipInHdrErrors = 0 ipInAddrErrors = 0 ipInCksumErrs = 0 . . IPv6 for lo0 ipv6Forwarding = 2 ipv6DefaultHopLimit = 0 ipv6InReceives = 0 ipv6InHdrErrors = 0 . . IPv6 for le0 ipv6Forwarding = 2 ipv6DefaultHopLimit = 255 ipv6InReceives = 885 ipv6InHdrErrors = 0 . . IPv6 ipv6Forwarding = 2 ipv6DefaultHopLimit = 255 ipv6InReceives = 885 ipv6InHdrErrors = 0 . . ICMPv4 icmpInMsgs = 618 icmpInErrors = 0 icmpInCksumErrs = 0 icmpInUnknowns = 0 icmpInDestUnreachs = 5 icmpInTimeExcds = 0 . . ICMPv6 for lo0 icmp6InMsgs = 0 icmp6InErrors = 0 icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0 . . ICMPv6 for le0 icmp6InMsgs = 796 icmp6InErrors = 0 icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0 icmp6InTimeExcds = 0 icmp6InParmProblems = 0 . . ICMPv6 icmp6InMsgs = 796 icmp6InErrors = 0 icmp6InDestUnreachs = 0 icmp6InAdminProhibs = 0 . . ICMPv6 for ip.6to4tun0 icmp6InMsgs = 57 icmp6InErrors = 0 icmp6InDestUnreachs = 57 icmp6InAdminProhibs = 0 icmp6InTimeExcds = 0 icmp6InParmProblems = 0 icmp6InPktTooBigs = 0 icmp6InEchos = 0 icmp6InEchoReplies = 0 icmp6InRouterSols = 0 icmp6InRouterAds = 0 icmp6InNeighborSols = 0 icmp6InNeighborAds = 0 icmp6InRedirects = 0 icmp6InBadRedirects = 0 icmp6InGroupQueries = 0 icmp6InGroupResps = 0 icmp6InGroupReds = 0 icmp6InOverflows = 0 icmp6OutMsgs = 57 icmp6OutErrors = 0 icmp6OutDestUnreachs= 57 icmp6OutAdminProhibs= 0 icmp6OutTimeExcds = 0 icmp6OutParmProblems= 0 icmp6OutPktTooBigs = 0 icmp6OutEchos = 0 icmp6OutEchoReplies = 0 icmp6OutRouterSols = 0 icmp6OutRouterAds = 0 icmp6OutNeighborSols= 0 icmp6OutNeighborAds = 0 icmp6OutRedirects = 0 icmp6OutGroupQueries= 0 icmp6OutGroupResps = 0 icmp6OutGroupReds = 0 IGMP: 2542 messages received 0 messages received with too few bytes 0 messages received with bad checksum 2542 membership queries received . . |
You can control the output of the netstat and ifconfig commands. Create a file that is named inet_type in the /etc/default directory. Then, specify the value of the DEFAULT_IP variable. For more information about the inet_type, see the inet_type(4) man page.
Create the /etc/default/inet_type file.
Make one of the following entries, as needed.
To display IPv4 information only, type:
DEFAULT_IP=IP_VERSION4 |
To display both IPv4 and IPv6 information, type:
DEFAULT_IP=BOTH |
Or
DEFAULT_IP=IP_VERSION6 |
The -4 and -6 flags in ifconfig override the value set in the inet_type file. The -f flag in netstat also overrides the value that is set in the inet_type file.
When you specify the DEFAULT_IP=BOTH or DEFAULT_IP=IP_VERSION6 variable in the inet_type file, you should have the following results:
% ifconfig -a lo0: flags=1000849 mtu 8232 index 1 inet 120.10.0.1 netmask ff000000 le0: flags=1000843 mtu 1500 index 2 inet 120.46.86.54 netmask ffffff00 broadcast 120.46.86.255 ether 8:0:20:56:a8 lo0: flags=2000849 mtu 8252 index 1 inet6 ::1/128 le0: flags=2000841 mtu 1500 index 2 ether 8:0:20:56:a8 inet6 fe80::a00:fe73:56a8/10 le0:1: flags=2080841 mtu 1500 index 2 inet6 fec0::56:a00:fe73:56a8/64 le0:2: flags=2080841 mtu 1500 index 2 inet6 2::56:a00:fe73:56a8/64 |
When you specify the DEFAULT_IP=IP_VERSION4 variable in the inet_type file, you should have the following results:
% ifconfig -a lo0: flags=849 mtu 8232 inet 120.10.0.1 netmask ff000000 le0: flags=843 mtu 1500 inet 120.46.86.54 netmask ffffff00 broadcast 120.46.86.255 ether 8:0:20:56:a8 |
In this procedure, you use the snoop command to display all IPv6 packets.
For more information on the snoop command, see the snoop(1M) man page.
# snoop ip6 Using device /dev/le (promiscuous mode) fe80::a0:a1 -> ff02::9 IPv6 S=fe80::a0:a1 D=ff02::9 LEN=892 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=104 fe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=104 fe80::a0:a1 -> ff02::9 IPv6 S=fe80::a0:a1 D=ff02::9 LEN=892 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=104 ping -afe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=152 fe80::a0:a1 -> ff02::9 IPv6 S=fe80::a0:a1 D=ff02::9 LEN=892 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=72 fe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=72 fe80::a0:a8 -> fe80::a0:de IPv6 S=fe80::a0:a8 D=fe80::a0:de LEN=72 fe80::a0:de -> fe80::a0:a8 IPv6 S=fe80::a0:de D=fe80::a0:a8 LEN=72 |
In this procedure, you use the ping command to check all addresses.
On the command line, type the following command.
% ping -a ipng11 ipng11 (2::102:a00:fe79:19b0) is alive ipng11 (fec0::102:a00:fe79:19b0) is alive ipng11 (190.68.10.75) is alive |
For more information on the ping command, see the ping(1M) man page.
In this procedure, you use the traceroute command to trace all routes.
On the command line, type the following command.
% traceroute -a <hostname> |
For more information on the traceroute command, see the traceroute(1M) man page.
% traceroute -a ipng11 traceroute: Warning: Multiple interfaces found; using 2::56:a0:a8 @ le0:2 traceroute to ipng11 (2::102:a00:fe79:19b0),30 hops max, 60 byte packets 1 ipng-rout86 (2::56:a00:fe1f:59a1) 35.534 ms 56.998 ms * 2 2::255:0:c0a8:717 32.659 ms 39.444 ms * 3 ipng61.Eng.apex.COM (2::103:a00:fe9a:ce7b) 401.518 ms 7.143 ms * 4 ipng12-00 (2::100:a00:fe7c:cf35) 113.034 ms 7.949 ms * 5 ipng11 (2::102:a00:fe79:19b0) 66.111 ms * 36.965 ms traceroute: Warning: Multiple interfaces found; using fec0::56:a8 @ le0:1 traceroute to ipng11 (fec0::10:b0), 30 hops max, 60 byte packets 1 ipng-rout86 (fec0::56:a00:fe1f:59a1) 96.342 ms 78.282 ms 88.327 ms 2 ipng8-tun1 (fec0::25:0:0:c0a8:717) 268.614 ms 508.416 ms 438.774 ms 3 ipng61.Eng.apex.COM (fec0::103:a00:fe9a:ce7b) 6.356 ms * 713.166 ms 4 ipng12-00 (fec0::100:a00:fe7c:cf35) 7.409 ms * 122.094 ms 5 ipng11 (fec0::102:a00:fe79:19b0) 10.620 ms * * traceroute to ipng11.eng.apex.com (190.68.10.75),30 hops max,40 byte packets 1 rmpj17c-086.Eng.apex.COM (120.46.86.1) 4.360 ms 3.452 ms 3.479 ms 2 flrmpj17u.Eng.apex.COM (120.46.17.131) 4.062 ms 3.848 ms 3.505 ms 3 ipng8.Eng.apex.COM (120.68.7.23) 4.773 ms * 4.294 ms 4 ipng61.Eng.apex.COM (120.68.10.104) 5.128 ms 5.362 ms * 5 ipng12-20.Eng.apex.COM (120.68.10.62) 7.298 ms 5.444 ms * 6 ipng11.Eng.apex.COM (120.68.10.75) 8.053 ms 6.394 ms * |
This section describes how you manually configure IP in IP tunnels. For information on configuring an automatic 6to4 tunnel, refer to How to Configure a 6to4 Router.
IPv6 supports the following types of tunnel encapsulation:
IPv4 over IPv4 tunnels
IPv6 over IPv4 tunnels (native IPv6 and 6to4)
IPv6 over IPv6 tunnels
IPv4 over IPv6 tunnels
IPv6 to IPv6 over 6to4 tunnels
6to4 site tunnel to 6to4 relay router to native IPv6 site
For conceptual descriptions of tunnels, see Solaris Tunneling Interfaces for IPv6 and Tunneling Mechanism.
Task |
Description |
Instructions |
---|---|---|
Manually configuring IPv6 over IPv4 tunnels |
Shows the entries required for the hostname6.ip.tunn file. | |
Automatically configuring IPv6 over IPv4 tunnels (6to4 tunnels) |
Shows entries required for the hostname6.ip.6to4tun file. | |
Configuring IPv6 over IPv6 tunnels |
Shows the entries required for the hostname6.ip.6.tunn file. | |
Configuring IPv4 over IPv6 tunnels |
Shows the entries required for the hostname.ip6.tunn file. | |
Configuring IPv4 over IPv4 tunnels |
Shows the entries required for the hostname.ip.tunn file. | |
Configuring a tunnel between a 6to4 router and a 6to4 relay router |
Describes how to enable a tunnel to a 6to4 relay router by using the 6to4relay command. | |
Configuring your router to advertise over tunneling interfaces |
Shows the entries required for the /etc/inet/ndpd.conf file. |
How to Configure Your Router to Advertise Over Tunneling Interfaces |
The best way to pass IPv6 packets over an IPv4 network is to use an automatic 6to4 tunnel. For instructions for implementing 6to4 routing at your site, refer to How to Configure a 6to4 Router.
Become superuser.
Create the file /etc/hostname6.ip.tunn. Use the values 0, 1, 2, and so on, for n. Then, add entries by following these steps.
Add the tunnel source addresses. Then, add the tunnel destination addresses.
tsrc IPv4-source-addr tdst IPv4-destination-addr up |
(Optional) Add a logical interface for the source and destination IPv6 addresses.
addif IPv6-source-address IPv6-destination-address up |
Omit this step if you want the address autoconfigured for this interface. You do not need to configure link-local addresses for your tunnel. Link-local addresses are configured automatically.
When you finish configuring the tunnels, you must reboot.
You must perform the same steps at the other end of the tunnel for bidirectional communication to occur.
If your system is to be configured as a router, you must also configure your router to advertise over tunneling interfaces before rebooting. See How to Configure Your Router to Advertise Over Tunneling Interfaces.
This example shows a tunnel for which all IPv6 addresses are autoconfigured.
tsrc 129.146.86.138 tdst 192.168.7.19 up |
This example shows a tunnel for which global source and global destination addresses are manually configured. The site-local source and site-local destination addresses are also manually configured.
tsrc 120.46.86.138 tdst 190.68.7.19 up addif fec0::1234:a00:fe12:528 fec0::5678:a00:20ff:fe12:1234 up addif 2::1234:a00:fe12:528 2::5678:a00:20ff:fe12:1234 up |
Become Superuser.
Create the file /etc/hostname6.ip6.tunn. Use the values 0, 1, 2, and so on, for n. Then, add entries by following these steps.
Add the tunnel source address. Then, add the tunnel destination address.
tsrc IPv6-source-address tdst IPv6-destination-address IPv6-packet-source-address IPv6-packet-destination-address up |
(Optional) Add a logical interface for the source and destination IPv6 addresses.
addif IPv6-source-address IPv6-destination-address up |
Omit this step if you want the address autoconfigured for this interface. You do not need to configure link-local addresses for your tunnel. Link-local addresses are configured automatically.
When you finish configuring the tunnels, you must reboot.
You must perform the same steps at the other end of the tunnel for bidirectional communication to occur.
If your system is to be configured as a router, you must also configure your router to advertise over tunneling interfaces before rebooting. See How to Configure Your Router to Advertise Over Tunneling Interfaces.
This example shows the entry for an IPv6 over IPv6 tunnel.
tsrc 2000::114:a00:20ff:fe72:668c tdst 2000::103:a00:20ff:fe9b:a1c3 fe80::4 fe80::61 up |
Become Superuser.
Create the file /etc/hostname.ip6.tunn. Use the values 0, 1, 2, and so on, for n. Then, add entries by following these steps.
Add the tunnel source address. Then, add the tunnel destination address.
tsrc IPv6-source-address tdst IPv6-destination-address tunnel-IPv4-source-address tunnel-IPv4-destination-address up |
(Optional) Add a logical interface for the source and destination IPv6 addresses.
addif IPv6-source-address IPv6-destination-address up |
When you finish configuring the tunnels, you must reboot.
You must perform the same steps at the other end of the tunnel for bidirectional communication to occur.
If your system is to be configured as a router, you must also configure your router to advertise over tunneling interfaces before rebooting. See How to Configure Your Router to Advertise Over Tunneling Interfaces.
This example shows the entry for an IPv4 over IPv6 tunnel.
tsrc 2000::114:a00:20ff:fe72:668c tdst 2000::103:a00:20ff:fe9b:a1c3 10.0.0.4 10.0.0.61 up |
Become Superuser.
Create the file /etc/hostname.ip.tunn. Use the values 0, 1, 2, and so on, for n. Then, add entries by following these steps.
Add the tunnel source address. Then, add the tunnel destination address.
tsrc IPv4-source-address tdst IPv4-destination-address tunnel-IPv4-source-address tunnel-IPv4-destination-address up |
(Optional) Add a logical interface for the source and destination IPv4 addresses.
addif IPv4-source-address IPv4-destination-address up |
When you finish configuring the tunnels, you must reboot.
You must perform the same steps at the other end of the tunnel for bidirectional communication to occur.
If your system is to be configured as a router, you must also configure your router to advertise over tunneling interfaces before rebooting. See How to Configure Your Router to Advertise Over Tunneling Interfaces.
This example shows the entry for an IPv4 over IPv4 tunnel.
tsrc 120.46.86.158 tdst 120.46.86.122 10.0.0.4 10.0.0.61 up |
Following these steps for each tunnel.
Become superuser.
Edit the /etc/inet/ndpd.conf file. Add entries by using the following steps.
Reboot.
Because of major security issues, by default 6to4 relay router support is disabled in the Solaris operating system. See Considerations for Tunnels to a 6to4 Relay Router and Internet Draft, Security Considerations for 6to4.
Before you enable a tunnel to a 6to4 relay router, you must have completed the following tasks:
Configured a 6to4 router at your site, as explained in How to Configure a 6to4 Router.
Reviewed the security issues that are involved in tunneling to a 6to4 relay router.
Become superuser on the 6to4 router.
Enable a tunnel to the 6to4 relay router by using either of the following formats:
Enable a tunnel to an anycast 6to4 relay router.
# /usr/sbin/6to4relay -e |
The -e option sets up a tunnel between the 6to4 router and an anycast 6to4 relay router. Anycast 6to4 relay routers have the well-known IPv4 address 192.88.99.1. The anycast relay router that is physically nearest to your site becomes the endpoint for the 6to4 tunnel. This relay router then handles packet forwarding between your 6to4 site and a native IPv6 site.
For detailed information about anycast 6to4 relay routers, refer to RFC 3068, "An Anycast Prefix for 6to4 Relay Routers"
Enable a tunnel to a specific 6to4 relay router.
# /usr/sbin/6to4relay -e -a relay-router-address |
The -a option indicates that a specific router address is to follow. Replace relay-router-address with the IPv4 address of the specific 6to4 relay router with which you want to enable a tunnel.
The tunnel to the 6to4 relay router remains active until you remove the 6to4 tunnel pseudo-interface.
Delete the tunnel to the 6to4 relay router, when no longer needed, by typing the following:
# /usr/sbin/6to4relay -d |
(Optional) Make the tunnel to the 6to4 relay router persistent across reboots.
Your site might have a compelling reason to have the tunnel to the 6to4 relay router reinstated each time the 6to4 router reboots. To support this scenario, you must do the following.
Edit the/etc/default/inetinit file.
The line that you need to modify is at the end of the file.
Change the “NO” value in the line ACCEPT6TO4RELAY=NO to “YES.”
(Optional) Create a tunnel to a specific 6to4 relay router that persists across reboots.
For the parameter RELAY6TO4ADDR, change the address 192.88.99.1 to the IPv4 address of the 6to4 relay router that you want to use.
You can use /usr/bin/6to4relay to find out whether support for 6to4 relay routers is enabled. The next example shows the output when support for 6to4 relay routers is disabled, as is the default in the Solaris operating system:
# /usr/sbin/6to4relay 6to4relay: 6to4 Relay Router communication support is disabled. |
When support for 6to4 relay routers is enabled, you receive the following output:
# /usr/sbin/6to4relay 6to4relay: 6to4 Relay Router communication support is enabled. IPv4 destination address of Relay Router=192.88.99.1 |
This section provides procedures to display IPv6 name service information.
Task |
Description |
For Information |
---|---|---|
Display name service information for IPv6 |
Displays name service information for IPv6 by using the nslookup command. | |
Verify that DNS IPv6 PTR records are updated correctly |
Displays the PTR records for DNS IPv6 PTR records by using the nslookup command. Also, uses the set q=PTR parameter. |
How to Verify That DNS IPv6 PTR Records Are Updated Correctly |
Display IPv6 information through NIS |
Displays the IPv6 information through NIS by using the ypmatch command. | |
Display IPv6 information through NIS |
Displays the IPv6 information through NIS+ by using the nismatch command. | |
Display IPv6 information independent of name service |
Displays the IPv6 information by using the getent command. |
In this procedure, you use the nslookup command to display IPv6 name service information.
On the command line, type the following command:
% /usr/sbin/nslookup |
The default server name and address appear, followed by the nslookup command angle bracket prompt.
To see information about a particular host, type the following commands at the angle bracket prompt:
>set q=any >host-name |
To see only AAAA records, type the following command at the angle bracket prompt:
>set q=AAAA |
Quit the command by typing exit.
% /usr/sbin/nslookup Default Server: space1999.Eng.apex.COM Address: 120.46.168.78 > set q=any > vallejo Server: space1999.Eng.apex.COM Address: 120.46.168.78 vallejo.ipv6.eng.apex.com IPv6 address = fec0::9256:a00:fe12:528 vallejo.ipv6.eng.apex.com IPv6 address = 2::9256:a00:fe12:528 > exit |
In this procedure, you use the nslookup command to display PTR records for DNS IPv6.
On the command line, type the following command:
% /usr/sbin/nslookup |
The default server name and address display, followed by the nslookup command angle bracket prompt.
To see the PTR records, type the following command at the angle bracket prompt:
>set q=PTR |
Quit the command by typing exit.
% /usr/sbin/nslookup Default Server: space1999.Eng.apex.COM Address: 120.46.168.78 > set q=PTR > 8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int 8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int name = vallejo.ipv6.Eng.apex.COM ip6.int nameserver = space1999.Eng.apex.COM > exit |
In this procedure, you use the ypmatch command to display IPv6 information through NIS.
On the command line, type the following command:
% ypmatch host-name ipnodes.byname |
The information about host-name displays.
% ypmatch vallejo ipnodes.byname fec0::9256:a00:20ff:fe12:528 vallejo 2::9256:a00:20ff:fe12:528 vallejo |
In this procedure, you use the nismatch command to display IPv6 information through NIS.
On the command line, type the following command:
% nismatch host-name ipnodes.org-dir |
The information about host-name displays.
% nismatch vallejo ipnodes.org_dir vallejo vallejo fec0::9256:a00:20ff:fe12:528 vallejo vallejo 2::9256:a00:20ff:fe12:528 |
On the command line, type the following command:
% getent ipnodes host-name |
The information about host-name displays.
% getent ipnodes vallejo 2::56:a00:fe87:9aba vallejo vallejo fec0::56:a00:fe87:9aba vallejo vallejo |