Enabling IPv6 dual-stack support
IBM® Content Manager provides Internet Protocol Version 6 (IPv6) dual-stack support in addition to Internet Protocol Version 4 (IPv4).
IPv6 is the next generation protocol created by Internet Engineering Task Force (IETF) to replace the current protocol, IPv4. IPv6 eliminates the shortage of IPv4 addresses that are required by all new machines connected to the Internet. IPv6 also enhances the routing and network auto-configuration of IPv4.
IPv4 has 32–bit addresses. IPv6 provides an almost unlimited number of addresses. IPv6 addresses are 128 bits. In addition to solving the network address shortage problem, IPv6 also provides:
- Automatic configuration
- Site renumbering
- End-to-end IP security
- Mobility with route optimization
- In an URL string, an IPv6 address is enclosed in brackets. If you are using a hostname, no brackets are required even though the host has an IPv6 address. For example, the URL using IPv4 address 9.67.122.66 is http://9.67.122.66:8080/index.html. If you are using a host name like myhost.company.com, the URL is http://myhost.company.com:8080/index.html. However, the URL using IPv6 address 2001:0DB8:4545:2::09FF:FEF7:62DC is http://[2001:0DB8:4545:2::09FF:FEF7:62DC]:8080/index.html
- If you are using IPv6 address in Db2® JDBC URL string, the IPv6 address must be enclosed in square
brackets. For example, the connect string must be in the format:
.JDBCURL=jdbc:db2://[2007::9:181:141:150]:50000/icmnlsdb
To enable IPv6 support, Java™ (1.4 or later) provides two system properties:
- java.net.preferIPv4Stack
- If an application has a preference to use IPv4 sockets only, set this property to true. If this property is set to true, the application does not communicate with IPv6 hosts.
- java.net.preferIPv6Addresses
- Set this property to change the preference to use IPv6 addresses over IPv4 addresses.
While you are running a Java application by using an ICM connector, set the java.net.preferIPv4Stack and java.net.preferIPv6Addresses properties so that the Java application communicates with either IPv4 or IPv6 or both IPv4 and IPv6 dual-stack hosts.
The following table summarizes the results of various combinations of java.net.preferIPv4Stack and java.net.preferIPv6Addresses properties when you are running a Java class on a dual-stack node. Example: java -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true <class name>
| java.net.preferIPv4Stack | java.net.preferIPv6Addresses | default address |
|---|---|---|
| true | true | IPv4 |
| true | false | IPv4 |
| false | false | IPv4 |
| false | true | IPv6 |
If your TCP/IP is configured as dual-stack to support both IPv6 and IPv4, and the host name for the resource manager specified in the ICMSTResourceMgr table, then the TCP/IP service will resolve the host name to an IPv6 address. In this situation, you must configure the resource manager to use IPv6 by using an Apache server as a reverse proxy. You must also specify that the port column in the ICMSTResourceMgr table correspond to the IPv6 port of the Apache Server reverse proxy (rather than the IPv4 port of the resource manager). Otherwise, the connection from ICMFETCHCONT UDF to the resource manager might fail.