Linode provides native IPv6 support in all of our facilities. To enable IPv6, simply navigate to your Linode's "Remote Access" subtab and then click "Enable IPv6". You will be prompted to reboot your Linode.
Once you have been assigned an address, you will need to reboot in order for the IP to be routed to your Linode. Your new IPv6 address will be automatically configured, and you should be able to run the ifconfig command and see output that is similar to the following:
root@titan:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr f2:3c:91:8c:5b:84
inet addr:173.255.223.62 Bcast:173.255.223.255 Mask:255.255.255.0
inet6 addr: 2600:3c01::f03c:91ff:fe8c:5b84/64 Scope:Global
inet6 addr: fe80::f03c:91ff:fe8c:5b84/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:45790 errors:0 dropped:0 overruns:0 frame:0
TX packets:17471 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:51640371 (51.6 MB) TX bytes:31004894 (31.0 MB)
Interrupt:28
In this example, the IPv6 address associated with the Linode is "2600:3c01::f03c:91ff:fe8c:5b84", which is denoted by the "Scope:Global" declaration that follows it. The "/64" at the end of the addresses is part of the "CIDR" notation, which refers to the subnet that you are on. The "Scope:Link" declaration after the "fe80::f03c:91ff:fe8c:5b84/64" IP is indicative of a local link address.
To test the connection, you can use the ping6 utility:
root@titan ~ # ping6 ipv6.google.com -c 3 PING ipv6.google.com(2a00:1450:400b:c00::63) 56 data bytes 64 bytes from ipv6.google.com(2a00:1450:400b:c00::63): icmp_seq=1 ttl=55 time=17.9 ms 64 bytes from ipv6.google.com(2a00:1450:400b:c00::63): icmp_seq=2 ttl=55 time=18.0 ms 64 bytes from ipv6.google.com(2a00:1450:400b:c00::63): icmp_seq=3 ttl=55 time=17.9 ms --- ipv6.google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 17.924/17.977/18.010/0.037 ms
Additional blocks of 4096 addresses can be requested at no charge. Addresses in these pools can be used on any of your Linodes that reside in the same facility. For example, if you had four Linodes in Newark, you could assign each of them addresses from your Newark address pool. Once your pool has been allocated, you will need to reboot your Linode(s) in order for them to be able to bring up addresses in the pool.
Your pool will be visible under the "Remote Access Tab" of the Linode Manager in a manner similar to the following:
2600:3c01::02:6000/64 - 2600:3c01::02:6fff/64 (4096 addresses)
To attach an IP to your interface, issue the following command, making sure to replace the example IP with one of your pool addresses:
ip -6 addr add 2600:3c01::02:6000/64 dev eth0
You may then verify that the IP has been brought up by issuing the ip -6 addr show eth0 command:
root@debian:~# ip -6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2600:3c01::2:6000/64 scope global
valid_lft forever preferred_lft forever
inet6 2600:3c01::f03c:91ff:fe96:bae3/64 scope global dynamic
valid_lft 43115sec preferred_lft 43115sec
inet6 fe80::f03c:91ff:fe96:bae3/64 scope link
valid_lft forever preferred_lft forever
If you need to configure more than 16 IPv6 address, add a line to /etc/sysctl.conf that resembles the following:
File excerpt:/etc/sysctl.conf
net.ipv6.conf.eth0.max_addresses=32
If at any time you wish to see IPv6 addresses that are brought up on your Linode, issue the following command:
ip -6 addr show
Additionally, you can use the following command to see information about your network route:
ip -6 route show
Since addresses in your pool can be used on any of your Linodes in the same facility, you will not need to configure failover through the Linode Manager for any of your IPv6 addresses. However, you will still need to configure software on your Linode to handle the failover process.
IPv6 traffic to and from Linodes within the same facility is not counted towards your monthly transfer, so there is no need to request private IPv6 IPs.
This guide is licensed under a Creative Commons Attribution-NoDerivs 3.0 United States License.
Last edited by Matthew Cone on Tuesday, February 28th, 2012 (r2740).
