For cPanel & WHM version 11.52
cPanel & WHM currently offers selective support of IPv6, to facilitate the hosting industry's movement toward full IPv6 use.
If you disable IPv6 on your server at the kernel level, do not remove (or blacklist) the kernel modules.
- Instead, we recommend that you use the kernel's
sysctl disable_ipv6knob to disable IPv6 on your server.
- If you remove the kernel modules, your operating system will generate warnings in cPanel & WHM, may prevent account creation, and may cause service failures.
Internet Protocol (IP) is the communications protocol that routes traffic across the Internet. Currently, IPv4 (Internet Protocol version 4) carries the vast majority of Internet traffic. However, a shortage of IPv4 addresses currently exists because IPv4 only allows approximately four billion addresses. Prices for dedicated IPv4 addresses have risen due to this shortage, and the Internet Assigned Numbers Authority (IANA) currently requires justification and audits of IPv4 addresses to avoid waste. IPv6 (Internet Protocol version 6) addresses the problem of IPv4 address exhaustion, because the limit to the number of IPv6 addresses is exponentially higher than the IPv4 limit.
For more information about IPv6, read the following third-party resources:
- Wikipedia provides an in-depth explanation of IPv6. This article includes a brief history of IPv6, some comparisons between IPv4 and IPv6, and a technical explanation of IPv6 implementation.
- Google provides a brief history and the logic behind IPv6.
- You can test your current IPv4 and IPv6 status and availability.
IPv4 and IPv6
The following table compares IPv4 and IPv6:
|Format||A 32-bit address that consists of four period-separated octets.|
A 128-bit address that consists of eight colon-separated groups of four hexadecimal digits.
For more information, read the IPv6 address formatting section below.
|Availability||4.2 billion possible addresses.||340 undecillion possible addresses. This is equivalent to 3.4 x 1038 addresses, or 2128 possible addresses.|
|Accessibility||Anyone can access an IPv4 address.||You can only access an IPv6 address if you use an IPv6-enabled network and server.|
IPv6 address formatting
IPv6 addresses are 128-bit addresses that consist of eight colon-separated groups of four digits each. Unlike IPv4 addresses, which only consist of integers, IPv6 addresses use hexadecimal digits (the numerals
9 and the letters
Often, IP addresses collapse (hide)
0's that start an octet, or completely collapse octets that only include the digit
0. In collapsed IPv6 addresses, a double colon (
::) indicates a collapsed section. However, IPv6 addresses cannot contain more than one double colon.
The following table lists several correct formats for the same IPv6 address:
|The fully-expanded version of the IPv6 address.|
|The same IPv6 address, partially collapsed to hide octets that only contain |
|The same IPv6 address, fully collapsed to hide octets that only contain |
To use IPv6 on your cPanel & WHM server, you must perform the necessary steps to acquire IPv6 addresses, add them to your server, and then assign IPv6 addresses to the desired users.
Currently, when you use IPv6 on your server, the server will use both an IPv6 address and an IPv4 address. Most browsers attempt to access the IPv6 address first, but implement a very short fail time. If the page does not load in that time, the browser accesses the IPv4 address for the site.
Acquire an IPv6 address range
To acquire an IPv6 address range, contact your Internet Service Provider (ISP). Most ISPs assign IPv6 addresses in large blocks or ranges.
We recommend that you request IPv6 addresses for the following purposes:
- A single IPv6 address for the server itself, which you can assign to individual accounts as a shared IP address.
- An IPv6 range to use to assign individual dedicated IPv6 addresses to accounts.
We recommend that you request an IPv6 address range with a
/64 network portion, the most common network portion for the shared hosting industry. However, network portions may be as low as
/48, or as high as
/128, which represents a single IPv6 address.
Confirm that IPv6 functions on your server
To confirm that IPv6 functions on your server, run the following command as the
If IPv6 functions on your server, this command's output resembles the following example:
If the command's output does not resemble this example, IPv6 does not function on your server. You must resolve this issue before you can use cPanel & WHM with IPv6.
Enable IPv6 for individual accounts
To assign IPv6 addresses to individual accounts on the server, perform the following steps:
- Use WHM's IPv6 Ranges interface (Home >> IP Functions >> IPv6 Ranges) to add IPv6 ranges to the server.
- Use WHM's Enable IPv6 interface (Home >> IP Functions >> Enable IPv6) to assign addresses to individual users.
Services with IPv6 support
Command-line IPv6 tools and utilities
IPv6 requires new command-line tools and scripts that IPv4-only servers do not require.
Traditionally, IPv4 tools (for example,
netstat) used the
net-tools package. Servers that use IPv6 must include the the
iproute2 package. This package adds the
ss tools, which you can use with IPv4 and IPv6.
IPv6 firewall configuration
configure_rh_ipv6_firewall_for_cpanel script to set up your IPv6 firewall.
service network restartcommand removes the IPv6 addresses that cPanel & WHM added from the network device. You must run the
/etc/init.d/cpipv6 restartcommand after you restart the network service, in order to ensure that the system adds those addresses again. For more information, read our The cpipv6 Script documentation.
What does IPv6 affect on cPanel & WHM servers?
Before you enable IPv6, consider the following effects that this action causes on your server:
IPv4 address retention and high IP volume adjustments
When you enable IPv6, each account retains ownership of its IPv4 address and the original IPv4 address remains fully functional in the WHM interface. If you assign an IPv6 address to an account, you essentially double the number of IP addresses that you assigned to that account.
The IPv6 RFCs allow a large number of IP addresses on each server. However, the system's available resources limit the Linux kernel, userland tools, and daemons, and they cannot handle large assignments of IP addresses. You can bind up to 512 IP addresses (both IPv4 and IPv6 addresses) to a server before the server overloads.
If you use 512 or fewer IP addresses, use the BIND nameserver. The BIND nameserver binds to all IP addresses on a server and does not clutter the
We strongly recommend that you use BIND if you assign more than 512 IPv6 addresses, or if you require cached nameservers.
If you use 2,000 or more IP addresses, you may need to adjust the
sysctlvalue in the
This value defaults to
- To increase this number, run the
sysctl net.ipv6.route.max_size=VALUEcommand, where
VALUErepresents the new maximum value.
When you use IPv6 on a server, the system sets the
Listen directive to
Listen[::]:80, which listens on all IPv6 addresses on the server. Apache sets a
NameVirtualHost directive, and then adds the IPv6 address for a domain to the
VirtualHost directives for each domain. The virtual hosts change from
VirtualHost IPv4 address:port to
VirtualHost IPv4 address [IPv6 address]:port.
For more information about the Apache configuration, read our Apache documentation.
When you use IPv6 on a server, your DNS zone files retain the IPv4 address, but the system adds an IPv6 AAAA entry to the DNS zone file. For example:
The system assigns an IPv6 address to an account and deploys it to each domain. MyDNS and NSD both support up to 512 IP addresses. This is sufficient for a VPS with limited IP addresses.
- Currently, BIND is the only daemon that fully supports IPv6.
- For more information, read our Advanced DNS Zone Editor documentation.
Userdata files list the current IPv4 address for each account on the server.
- When you enable IPv6, the system also includes IPv6 addresses in this file.
- When you enable IPv6 for an account, all of the account's users, resellers, subdomains, and addon domains share the same IPv6 address.
The system uses the
/etc/cpanel/ipv6/range_allocation_data file to configure the