IPv6
A PSQL Client using any of the access methods supported by PSQL connects using IPv6 to an IPv6 host running the PSQL database engine the same way as it does for IPv4. That is, the client specifies a server and connects through one of the supported access methods. The server can be either the name or IP address of the machine running PSQL Server or Workgroup.
All of the PSQL access methods except for ActiveX support IPv6 connections. Some access methods are Windows only, but can be used with a client-server combination of Windows and Linux or OS X.
This section addresses the following aspects of IPv6:
IPv6 Addresses
Raw IPv6 addresses can be written as 8 colon-separated segments where each segment is a 4-digit hexadecimal value. For example, 1234:5678:90ab:cdef:1234:5678:90ab:cdef. Within this framework, several forms of IPv6 names are possible.
Recommendations for Numeric IPv6 Addresses
In general, numeric IPv6 addresses are more complex and difficult to manipulate than IPv4 addresses. Numeric Link Local addresses are notably problematic, especially with regard to Zone IDs.
For that reason, Actian Corporation recommends the use of host names through DNS servers, LLMNR, host files, or other means of address resolution, particularly for production environments. PSQL support for numeric IPv6 addresses is intended mainly for development environments. Because many contexts require square brackets for IPv6 numeric addresses, when in doubt, add them if numeric addresses are necessary.
Unicast Addresses
PSQL supports only unicast addresses. The following are the unicast address formats that can be used with PSQL.
Example: 2001:db8:28:3:f98a:5b31:67b7:67ef
IPv6 Address Modifiers
IPv6 includes address modifiers that can act as shortcuts or can specify the destination in more detail. PSQL supports the following ones for IPv6.
Address Presentations
PSQL supports IPv6-literal.net names on Windows and bracketed IPv6 addresses on Windows, Linux, and OS X.
IPv6-literal.net Names
An ipv6-literal.net name is a raw IPv6 address with three changes:
Examples
*Note: Linux and OS X distributions do not support IPv6-literal.net names.
Bracketed IPv6 Addresses
A bracketed IPv6 address is a raw IPv6 address with square brackets around it. This format is also referred to as a Uniform Naming Convention (UNC)-safe address.
Examples:
*Note: Linux and OS X distributions do not natively support UNC paths and UNC-safe addresses. However, the PSQL interfaces that accept a file path, a numeric address, or both as input support both UNC paths and UNC-safe addresses on Linux and OS X for compatibility with Windows.
IPv6 and the MicroKernel Engine
The following table lists the restrictions on the use of IPv6 with the MicroKernel Engine.
IPv6 and the Relational Engine
The inclusion of a port number with an IP address is necessary only when you need to override the default port. Generally, a port number can be appended to an IP address using either a colon (:port number) or a dot (.port number).
UNC-safe names (see Address Presentations) support the appending of a port number.
IPv6 with Linux and OS X
All of the previous topics about IPv6 applies to Linux and OS X distributions, with specifics noted. The following topics discuss some additional aspects of IPv6 when used with Linux and OS X.
Suggested Distributions
Full IPv6 support is a relatively recent feature of operating systems. For this reason, Actian Corporation recommends that you use the most current Linux or OS X distribution. See the PSQL website for a list of the Linux and OS X distributions and use the most current distribution of the latest one listed.
Limitations and Conditions
Note the following limitations and conditions when you use IPv6 with Linux or OS X:
You may attempt to diagnose the error with Linux commands such as the following:
ping [fe80::1574:833f:b328:30ab%eth0]
ping6 [fe80::1574:833f:b328:30ab%eth0]
ping6 fe80::1574:833f:b328:30ab%eth0
However, all of those commands fail with “unknown host” or “invalid argument” because of the brackets in the address, the appended Zone ID, or both. You must use ping6 -I eth0 fe80::1574:833f:b328:30ab to determine if the network connection actually exists.
Best Practices
We recommend the following practice when you use IPv6 with Linux or OS X.
Use pvnetpass to ensure that the PSQL Client platform provides the required credentials on a server when the Client connects to the database engine on that server. Pvnetpass is required for each different server address connection, even equivalent server addresses. For example, suppose that a host name and an IPv6 numeric address refer to the same server. A connection to each one requires the use of pvnetpass. See pvnetpass in PSQL User's Guide.
Frequently Asked Questions About IPv6
The following table answers some frequently asked questions (FAQs) about IPv6 support and PSQL.
No. PSQL Server or Workgroup uses one user count for each unique incoming protocol from the same client computer session (such as TCP/IP and SPX). IPv4 and IPv6 are just different address formats of TCP/IP.
Yes. The PSQL licensing server does not yet support IPv6. Because of this, you can use License Administrator over IPv6 to administer licenses. However, to authorize a license with License Administrator, the utility must be running on a machine that uses IPv4 to communicate with the PSQL licensing server.
Yes. See PSQL Auto-Reconnect in Advanced Operations Guide.
Yes. See Listen IP Address in Advanced Operations Guide.