Solaris IPv6
Sun includes solid IPv6 support in its current Solaris 10 Unix operating system, with comparable features on the Solaris Express and OpenSolaris (2009.6) derivates. IPv6 support was first added with Solaris 8 from March 2000 onwards, with subsequent releases adding several IPv6 features — as of Solaris 10/Solaris Express the functionality is relative complete with a good integration into the base operating system.
Left for future work (maybe inside the OpenSolaris community) are several of the newer subprotocols, most notably DHCPv6 server and IPv6 mobility.
Content from | Last updated July 2009. 2007, 2006. |
---|---|
Current version | Solaris 10 5/09, Solaris Express (1/08), OpenSolaris 2009.6 |
Tested version | Solaris Express 5/06 (OpenSolaris) — equivalent to Solaris 10 |
Documentation for | Solaris 10-8 |
Basic IPv6 functions
Overview
IPv6 is active depending on the choice while the installation of Solaris. IPv6 is selected by default, in which case Solaris configures automatically IPv6 link-local addresses for each interface and afterward performs stateless autoconfiguration.
IPv6 can be manually activated for each interface with the creation of the file /etc/hostname6.if
(if being the name of the interface). For regular
IPv6 operation the file can be left empty.
However, configuration options can be added for more complex functionality.
After creating the file, the system has to be restarted.
Upon booting, the network stack sends out router solicitations, waits for
router advertisements and tries to autoconfigure a global address.
Preference
Solaris prefers IPv6 if a DNS query results in IPv4 and IPv6 addresses being sent back (A and AAAA RRs).
Privacy Extensions
Privacy addresses are not enabled by default. Their generation has to be added to
the configuration file of the Neighbor Discovery Daemon (in.ndpd) residing
in /etc/inet/ndpd.conf:
if TmpAddrsEnabled true
(if being the name of the interface.)
Afterward in.ndpd has to be restarted.
In our tests, however, the privacy addresses were not used for communication.
Maybe the address selection policy did not work or was not configured correctly.
Packet Filter/Firewall
Since at least Solaris 10 the IP Filter (IPF
) packet filter is included in the base system,
which includes support for IPv6 filtering since the Solaris 10 6/06 release.
IPv6 filtering functionality is equivalent to the IPv4 part including stateful
TCP and UDP filtering, similar filtering rules syntax and the same commands, with
added options. Notable absent are support for IPv6 jumbograms.9
The IP Filter tools have an added -6 option, allowing IPv6 usage (ipf -6, ipfstat -6).
Tunnelling IPv4/IPv6
Configured tunnels
Solaris supports configured tunnels with the ip.tun0 tunnel-interface. Setting up a manual tunnel requires a configuration file and a reboot.
Beforehand, you need the following information:
- $host-ipv4
- IPv4-address of the host
- $router-ipv4
- IPv4-address of the router/tunnel-server
Create a proper configuration file /etc/hostname6.ip.tun0:
tsrc $host-ipv4 tdst $router-ipv4 up
Afterward the system needs a reboot. (The tunnel can be set up and activated
manually — rebooting is the recommended procedure as per Sun documentation.)
6to4
Linux supports automatic 6to4-tunnelling with the ip.6to4tun0 tunnel-interface. Setting up a 6to4 tunnel requires small configuration and a reboot.
Beforehand, you need the following information:
- $host-ipv4
- IPv4-address of the host
Create a proper configuration file /etc/hostname6.ip.6to4tun0:
tsrc $host-ipv4 up
Afterward activate the 6to4 routing over the 6to4 anycast address:
/usr/sbin/6to4relay -e
As with configured tunnels, the system needs a reboot. (The tunnel can be set up and activated
manually — rebooting is the recommended procedure as per Sun documentation.)
DHCPv6
Solaris and OpenSolaris include DHCPv6 client software in their base operating system (via the existing DHCP dhcpagent) since December 2006, first available in Solaris 10 8/07.
The DHCPv6 client software was developed within the OpenSolaris Project and added support
for basic DHCPv6 functionality as defined in RFC 3315 (stateful DHCPv6).1
However, no more DHCPv6 options or extensions were integrated at this point. (Most notably, no
temporary/Privacy
addresses and no prefix delegation.)8
More DHCPv6 functionality (server, relay and more options) can be obtained through external packages (see DHCPv6 software overview for comparison):
PPPv6
Solaris integrates the same IPv6-capable PPP daemon into its base system as
most Linux distributions do — the standard, IPv6-capable (Paul’s PPP Package
)
ppp.2
The PPP software supports (in version 2.4.3) RFC 2472 3 and was tested successfully with IPv6 on DSL (via PPPoE). The PPP daemon pppd tries to negotiate IPv6 when establishing the PPP link (IPv6CP) and successfully creates a link-local address for the PPP interface. The IPv6 stack afterward receives RAs on the PPP link and configures an global address on the PPP interface.
Configuration of the PPP daemon is not IPv6-specific. The following /etc/ppp/peers/pppoetest contains configuration for a PPPoE link (if is the used ethernet interface)
sppptun
plugin pppoe.so
connect "/usr/lib/inet/pppoec/if"
noccp
noauth
user username
password secret
The PPPoE/PPPv6 connection then can be established manually (with debugging):
pppd debug updetach call pppoetest +ipv6 ipv6cp-use-persistent
Supported IPv6 RFCs & IDs
Solaris 10
Document | Title |
---|---|
RFC 1886 | DNS extensions to support IPv6 |
RFC 1981 | Path MTU discovery for IP version 6 |
RFC 2019 | Transmission of IPv6 packets over FDDI |
RFC 2080 | RIPng for IPv6 |
RFC 2292 | IPv6 Advanced Sockets API (since Solaris Express 1/04) |
RFC 2373 | IPv6 Addressing |
RFC 2374 | IPv6 Aggregatable Global Unicast Address Format |
RFC 2428 | FTP Extensions for IPv6 and NATs |
RFC 2452 | IPv6 IPv6 Management Information Base for the Transmission Control Protocol |
RFC 2454 | IPv6 IPv6 Management Information Base for the User Datagram Protocol |
RFC 2460 | Internet protocol, version 6 (IPv6) specification |
RFC 2461 | Neighbor discovery for IP version 6 (IPv6) |
RFC 2462 | IPv6 stateless address autoconfiguration |
RFC 2463 | Internet Control Message Protocol (ICMPv6) for the Internet protocol version 6 (IPv6) specification |
RFC 2464 | Transmission of IPv6 packets over Ethernet networks |
RFC 2465 | Management Information Base for IPv6: Textual Conventions and General Group |
RFC 2466 | Management Information Base for IPv6: ICMPv6 |
RFC 2472 (deduced) |
PPPv6 |
RFC 2492 | IPv6 over ATM/pvc |
RFC 2553 | Basic Socket Interface Extensions for IPv6 |
RFC 2893 | Transition Mechanisms for IPv6 Hosts and Routers |
RFC 3041 | Privacy Extensions |
RFC 3056 | 6to4; also as router. (since Solaris 10 3/05) |
RFC 3068 | Anycast prefix for 6to4 relay router |
RFC 3315 | Basic Stateful DHCPv6 (since 12/2006 (code/OpenSolaris) — Solaris 10 8/07) 7 |
RFC 3484 | Default Address selection can be changed with a policy table (since Solaris 10 3/05) |
RFC 3596 | DNS Extensions to support IPv6 |
RFC 3810 | Multicast Listener Discovery Version 2 (MLDv2) |
RFC 4007 | IPv6 Scoped Address Architecture |
RFC 4193 | Unique Local IPv6 Unicast Addresses |
RFC 4213 | Transition Mechanisms for IPv6 Host and Routers |
RFC 4291 | IPv6 Addressing Architecture |
RFC 4443 | Internet Control Message Protocol (ICMPv6) for the Internet ProtoVersion 6 (IPv6) Specification |
N/A | IPv4-over-IPv6 and IPv6-over-IPv4 tunnels (since Solaris 10 3/05) |
N/A | IPv6 IPsec (with automatic keying — IKE) |
N/A | IPv6 for X11 |
Solaris 9
Document | Title |
---|---|
RFC 1886 | DNS extensions to support IPv6 |
RFC 1981 | Path MTU discovery for IP version 6 |
RFC 2019 | Transmission of IPv6 packets over FDDI |
RFC 2080 | RIPng for IPv6 |
RFC 2373 | IPv6 Addressing |
RFC 2374 | IPv6 Aggregatable Global Unicast Address Format |
RFC 2428 | FTP Extensions for IPv6 and NATs |
RFC 2452 | IPv6 IPv6 Management Information Base for the Transmission Control Protocol |
RFC 2454 | IPv6 IPv6 Management Information Base for the User Datagram Protocol |
RFC 2460 | Internet protocol, version 6 (IPv6) specification |
RFC 2461 | Neighbor discovery for IP version 6 (IPv6) |
RFC 2462 | IPv6 stateless address autoconfiguration |
RFC 2463 | Internet Control Message Protocol (ICMPv6) for the Internet protocol version 6 (IPv6) specification |
RFC 2464 | Transmission of IPv6 packets over Ethernet networks |
RFC 2465 | Management Information Base for IPv6: Textual Conventions and General Group |
RFC 2466 | Management Information Base for IPv6: ICMPv6 |
RFC 2472 (guessed) |
PPPv6 |
RFC 2492 | IPv6 over ATM/pvc |
RFC 2553 | Basic Socket Interface Extensions for IPv6 |
RFC 2893 | Transition Mechanisms for IPv6 Hosts and Routers |
RFC 3056 | 6to4; also as router. (since Solaris 9 4/03) |
RFC 3068 | Anycast prefix for 6to4 relay router |
N/A | IPv4-over-IPv6 and IPv6-over-IPv4 tunnels (since Solaris 9 9/02) |
N/A | IPv6 IPsec (only manual keying) |
N/A | IPv6 for X11 |
Solaris 8
Document | Title |
---|---|
RFC 1886 | DNS extensions to support IPv6 |
RFC 1981 | Path MTU discovery for IP version 6 |
RFC 2019 | Transmission of IPv6 packets over FDDI |
RFC 2080 | RIPng for IPv6 |
RFC 2373 | IPv6 Addressing |
RFC 2374 | IPv6 Aggregatable Global Unicast Address Format |
RFC 2428 | FTP Extensions for IPv6 and NATs |
RFC 2452 | IPv6 IPv6 Management Information Base for the Transmission Control Protocol |
RFC 2454 | IPv6 IPv6 Management Information Base for the User Datagram Protocol |
RFC 2460 | Internet protocol, version 6 (IPv6) specification |
RFC 2461 | Neighbor discovery for IP version 6 (IPv6) |
RFC 2462 | IPv6 stateless address autoconfiguration |
RFC 2463 | Internet Control Message Protocol (ICMPv6) for the Internet protocol version 6 (IPv6) specification |
RFC 2464 | Transmission of IPv6 packets over Ethernet networks |
RFC 2465 | Management Information Base for IPv6: Textual Conventions and General Group |
RFC 2466 | Management Information Base for IPv6: ICMPv6 |
RFC 2553 | Basic Socket Interface Extensions for IPv6 |
RFC 2893 | Transition Mechanisms for IPv6 Hosts and Routers |
References
- Solaris 10 System Administration Guide: IP Services pp. 415-471 (Sun Microsystems, Inc.: June 2007. Accessed 11.9.2007) ↑
- Paul’s PPP Package Homepage (Paul Mackerras: n.d. Accessed 20.12.2006)↑
- PPPD(8) manual page from pppd version 2.4.3 (Paul Mackerras: n.d. Accessed 15.1.2007)↑
-
Solaris 10 What’s New
(Sun Microsystems, Inc.: 2009. Accessed July 2009) and
Special Interoperability Test Certification of the Sun Microsystems SPARC T2000 and X86 V40z 32-bit and 64-bit Platforms Running Solaris 10 for IPv6 Capability (Defense Information Systems Agency/Joint Interoperability Test Command (JITC): May 2008. Accessed April 2009) and
Sun Solaris 10 IPv6 Letter of Compliance for DISA/JITC (Sun Microsystems: January 2008. Accessed April 2009) ↑ - What’s New in the Solaris 9 Operating Environment (Sun Microsystems, Inc.: May 2002. Accessed 20.9.2006) ↑
- IPv6 Networking for the Solaris 8 Operating Environment (Sun Microsystems, Inc.: 2001. Accessed 20.9.2006)↑
- See DHCPv6 section ↑
- opensolaris-arc Mailinglist: 2006/597 DHCPv6 Client [restart] from James Carlson on 3.11.2006 (OpenSolaris project. Accessed 11.9.2007) ↑
- System Administration Guide: IP Services: IPv6 for Solaris IP Filter (Sun Microsystems, Inc.: 2008, part-number 816-4554-16. Accessed April 2009)↑