IPv6 support

IPv6 support is available in Abyss Web Server version 2.8 and later.

What is IPv6?

IPv6 stands for Internet Protocol version 6. IPv6 is a version of the Internet Protocol (IP) which is intended to succeed IPv4 which is currently used to direct almost all Internet traffic.

IPv6 implements several changes but the most visible to end-users is the addressing scheme which is radically different from the one adopted by IPv4.

An IPv6 address is made of 8 groups of 16-bit hexadecimal values separated by colons as in 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

IPv6 addresses can be abbreviated by omitting leading zeroes in 16-bit values and by replacing each group of consecutive zeroes by a double colon. As such, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 is equivalent to 2001:db8:85a3::8a2e:370:7334.

Using IPv6 in URLs

If you are using a literal IPv6 address in a URL, you should surround it with [ and ]. For example, to access the localhost using its IPv6 address ::1 you should use the URL:

http://[::1]

This change is required to distinguish between the colons used in the IPv6 address and the colon that introduces the port number as in:

http://[::1]:9999/

Operating system support

IPv6 support in Abyss Web Server will only be effective if your operating system is IPv6 ready. This includes:

  • Windows 2000 with IPv6 Technology Preview, Windows XP SP 3, Windows 2003, Windows Vista, Windows 2008, Windows 7, Windows 8, Windows Server 2012 and later
  • Virtually all modern Linux-based systems built around kernel version 2.4 and later.
  • Mac OS X 10.2 (Jaguar) and later

Note that on some systems, each network interface should be explicitly configured to support IPv6. This is the case for Windows XP for example.

What does IPv6 change to Abyss Web Server?

Almost nothing visible... IPv6 support in Abyss Web Server is transparent. If your system has IPv6 support enabled on one or more network interfaces (network cards, Wifi interfaces, etc...), and if your hosts are set to listen to all IP interfaces (which is the default achieved by setting Bind To IP to * in Advanced Parameters of the console or of each of your hosts), Abyss Web Server will listen on all of them and will accept both IPv4 and IPv6 incoming connections.

Any configuration field in the console which accepts an IP address now recognizes both IPv4 and IPv6 addresses.

Request made on IPv6 connections will have their log lines with an IPv6 address as in:

fe80::8c9a:3ff2:9980:2297 - - [23/Feb/2012:14:26:46 +0100] "GET /hello HTTP/1.1" 200 1400 "http://[fe80::8c9a:3ff2:9980:2297]/" "Mozilla/5.0 (Windows NT 6.0; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"

Binding only to IPv6 on a network interface

To listen only to IPv6 connections on a given network interface, Bind to IP should be set to the IPv6 address of that interface.

To listen only to IPv6 connections on all available network interfaces, Bind to IP should be set to the special IPv6 address ::0 (which could be further abbreviated to :: .)

Binding only to IPv4 on a network interface

To listen only to IPv4 connections on a given network interface, Bind to IP should be set to the IPv4 address of that interface.

To listen only to IPv4 connections on all available network interfaces, Bind to IP should be set to the special IPv4 address 0.0.0.0.