Support for IPv6
Internet Protocol version 6 (IPv6) is the next-generation Internet Protocol version designated as the successor to IPv4. This section discusses the following topics:
Using Pervasive PSQL With IPv6
Pervasive PSQL v11 supports IPv6 for the following access methods on Windows operating systems:
Both access methods function correctly in an IPv4 environment, an IPv6 environment, or an environment that combines the two. No special configurations of Pervasive PSQL are required.
Client Connections
A Pervasive PSQL Client connects to a IPv6 host running the Pervasive PSQL database engine the same way as for IPv4. That is, the Client specifies a server and connects through DTI or by specifying a URI or UNC. The server can be either the name or IP address of the machine running Pervasive PSQL Server or Workgroup.
See also the following:
Database URIs in Pervasive PSQL Programmer's Guide.
Universal Naming Convention (UNC) Path Formats in Getting Started With Pervasive PSQL.
Making a Connection to a Server Using DTI in Distributed Tuning Interface Guide.
The following topics in this subsection discuss how to specify a server using IPv6 addresses.
IPv6 Address Formats
Raw IPv6 addresses can be written as 8 colon-separated segments where each segment is a a 4-digit hexadecimal value. For example, 1234:5678:90ab:cdef:1234:5678:90ab:cdef.
Pervasive PSQL supports only unicast addresses. The following are the unicast address formats that can be used with Pervasive PSQL.
Example: 2001:db8:28:3:f98a:5b31:67b7:67ef
IPv6 Address Modifiers
IPv6 includes address modifiers which can act as shortcuts, or to specify the destination in more detail. Pervasive PSQL supports the following ones for IPv6.
IPv6 With UNC Paths and URI Connections
UNC paths do not allow certain special characters, such as colons. Since raw IPv6 addresses use colons, different methods of handling UNC paths are available. Pervasive PSQL supports the following methods:
IPv6-literal.net Names
An ipv6-literal.net name is a raw IPv6 address with three changes:
Examples:
Ipv6-literal.net names are allowed in a URI or UNC used with Pervasive PSQL.
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 UNC-safe address.
Examples:
The use of square brackets is required for raw IPv6 addresses used in a URI or UNC with Pervasive PSQL. See Restrictions. Note that if you use an address with a ZoneID in a URI, the ZoneID character “%” must use the escape characters “%25.” See Restrictions. Support for bracketed IPv6 or UNC-safe addresses in UNC paths is absent on Windows XP and Windows 2003 operating systems.
Restrictions
The following table lists the restrictions on the use of IPv6 with Pervasive PSQL.
Frequently Asked Questions About IPv6 Support
The following table answers some frequently asked questions (FAQs) about IPv6 support in Pervasive PSQL v11.
No. Pervasive 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.
Pervasive PSQL Utilities and IPv6
The following Pervasive PSQL utilities support IPv6. No special configuration of them is required.
Configuration Reference in Advanced Operations Guide
Testing Btrieve Operations in Advanced Operations Guide
License Administration in Pervasive PSQL User's Guide
Monitoring Database Resources in Advanced Operations Guide
Using Pervasive PSQL Control Center in Pervasive PSQL User's Guide
IPv6 Aspects for Application Programmers
Because IPv6 has not been widely adopted, the section discusses a few aspects of it that an application programmer may want to investigate further. The intent is not to explain in detail networking concepts or IPv6, but to provide a very brief introduction to IPv6. For a complete discussion of IPv6, see the IPv6 specification at www.ipv6.org, and refer to the IPv6 documentation from the various operating system vendors and network hardware vendors.
Importance of IPv6
IPv6 is the next-generation Internet Protocol version designated as the successor to IPv4. IPv4 was the first implementation used in the Internet that is still in dominant use currently. Because of the age of IPv4, and the changing world environment of networking, IPv4 contains several limitations that make it unsuitable for future needs.
Perhaps the most serious limitation is that its address space will eventually be exhausted. Even today, public IPv4 addresses have become relatively scarce. In addition, world-wide networking has introduced requirements beyond what IPv4 provides, such as simpler configuration capabilities, enhanced security, and extensibility.
IPv6 addresses the shortcomings of IPv4 as well as offering a host of additional benefits. Newer hardware and operating systems provide IPv6 support. Applications for certain sectors already require IPv6 support. For example, the governments of the United States and Japan have mandated support for IPv6. Since IPv4 must eventually be replaced, the sooner that occurs, the sooner the benefits of IPv6 can be realized.
Client/Server Communications
During the transition period between IPv4 and IPv6 support, both protocols will likely be functional on certain operating systems. Depending on the operating systems, this is referred to as dual IP layer or dual stack. Note, however, that IPv4 and IPv6 traffic is independently routed. For two hosts to communicate, both must either be capable of using IPv4 or capable of using IPv6.
 
If you want to configure the network settings at the operating system level, note the following.
Host Files, ZoneIDs, and Name Discovery
Within the hosts file, each IP uses only lines with compatible address formats. For example, if you request an IPv4 address for a host name, the IPv6 lines are ignored. Compatible addresses also apply for localhost, so a hosts files typically has localhost lines for 127.0.0.1 (IPv4) and ::1 (IPv6).
When doing a lookup to convert a name into an address, the application programmer specifies whether to use IPv4, IPV6 or both. A networking component of the operating system uses administrator-level preferences to determine how to sequence the lookups to the local hosts file, the local DNS cache, the remote DNS server, and so forth. With IPv6, there are new auto-discovery protocols that can find remote machines without using DNS.
You can specify an IPv6 address in a hosts file with the following restrictions:
The use of hosts files is most useful when ZoneIDs are not required.
ZoneID
The ZoneID maps to a network interface. With a single network interface card (NIC) and gateway, a ZoneID is not needed because the gateway is reached by only one route. Most machines enabled for IPv6 have multiple interfaces because of built-in support for transition routers like ISATAP, 6to4, or Teredo.
In netsh commands, you must use the interface name (using the interface= parameter), for example “Local Area Connection 2” or “eth0.” When using ping with an IPv6 address, you may need to use the ZoneID, for example fe80::abcd%10, in which case the decimal integer 10 is the ZoneID.
On Windows platforms, you can display the ZoneIDs for each interface with the ipconfig command.
Name Discovery
IPv6 contains auto-discovery protocols that can find remote machines without using Domain Name System (DNS). The Link Local Multicast Name Resolution (LLMNR) is a protocol based on the DNS packet format. LLMNR allows both IPv4 and IPv6 hosts to perform name resolution for hosts on a single subnet without a DNS server. Since every IPv6 machine has a link-local address, LLMNR locates the machine on the subnet, if present, before having to perform a DNS lookup for a link-global address.