Set Up an IPv6 Tunnel on Your Linode
Traducciones al EspañolEstamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.


As IPv4 address exhaustion nears, many people are making the switch to IPv6. Linode offers native IPv6 addresses in all locations.
An IPv6 tunnel lets a system reach an IPv6 network using existing IPv4 connectivity. Follow this guide if you:
- Have a tunnel that you are migrating to your Linode.
- Don’t have IPv6 from your ISP, and want to interact with your Linode through its IPv6 address. By configuring the tunnel to a local computer instead of your Linode, you can connect to your Linode via the IPv6 address.
Before You Begin
You should have already signed up for an IPv6 tunnel through a tunnel broker. Wikipedia contains a list of tunnel brokers by region, and we encourage you to research each before you decide which to use. The steps outlined in this guide were performed using tunnels from Hurricane Electric (HE).
General Setup
Once you have signed up for a tunnel, you will need to issue a few commands on your Linode. Arch and Gentoo Linux users may need to install the iproute2 package before continuing.
Because some of these steps will temporarily disable networking on the Linode, begin by logging in using either the Lish or Glish interface.
Use the
iptool to add the tunnel device. Ours is calledhe-ipv6to match the device described in Hurricane Electric’s examples. Replace203.0.113.10with the endpoint of your tunnel, and198.51.100.5with your Linode’s IP address. The information for the endpoint can be found in your tunnel broker’s web interface, and your Linode’s IP address can be found under the Networking tab of the Linode Cloud Manager:ip tunnel add he-ipv6 mode sit remote 203.0.113.10 local 198.51.100.5 ttl 255 ip link set he-ipv6 upFor more information on how the
iptool configures tunnels, see the ip-tunnel documentation.Assign IPv6 address and routing information to your new tunnel device. Replace
2001:db8:1234:5678::2/64with the IPv6 address assigned to you. This information should be provided to you by your tunnel broker as your “Client IPv6 Address”:Important The
ifdowncommand will halt all network traffic to your Linode. This step is included to avoid an error when adding the IPv6 route. It may not be required on all Linux distributions.On Arch Linux, replace the
ifdownandifupcommands withip link set eth0 downandip link set eth0 upip addr add 2001:db8:1234:5678::2/64 dev he-ipv6 ifdown eth0 ip route add ::/0 dev he-ipv6 ifup eth0 ip -f inet6 addrThe final command in Line 5 will show all devices with IPv6 addresses, and should have a block similar to this:
13: he-ipv6@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 state UNKNOWN qlen 1 inet6 2001:db8:1234:5678::2/64 scope global valid_lft forever preferred_lft forever inet6 fe80::0000:0000/64 scope link valid_lft forever preferred_lft foreverTest the tunnel. Replace
he-ipv6with the name of your tunnel. On Arch Linux and other distributions withoutping6, useping -6instead.ping6 -I he-ipv6 irc6.oftc.netNote Your system must allow ICMPv6 in through the firewall for pings to be returned.
If everything is working, you should see ping replies. If not, go back and make sure that you haven’t made any errors.
Manual Configuration
The instructions in this section will allow you to manually configure your IPv6 tunnel. This can permanently affect your connectivity across reboots. Read the IPv6 documentation for your distribution before proceeding.
Debian and Ubuntu
Debian and Ubuntu users (versions before Ubuntu 16.04 are not covered here) can perform the following steps to set up a tunnel on their Linode.
In the following excerpt, replace the:
addressvalue with the “Client IPv6 address.”gatewayvalue with the “Server IPv6 address.”endpointvalue with the endpoint, or “Server IPv4 Address,” that your tunnel broker provides you. Generally this endpoint is in a geographical location that is close to your Linode.localvalue with your Linode’s IP address. If you have multiple IPs, make sure that this IP is set to the same address as the one you used to sign up for the tunnel.
Insert the following into your
/etc/network/interfacesfile:- File: /etc/network/interfaces
1 2 3 4 5 6 7 8auto he-ipv6 iface he-ipv6 inet6 v4tunnel address 2001:db8:1234:5678::2 netmask 64 endpoint 203.0.113.10 local 198.51.100.5 ttl 255 gateway 2001:db8:1234:5678::1
Restart networking services and test the tunnel. Replace
he-ipv6with the name of your tunnel:systemctl restart networking.service ping6 -I he-ipv6 irc6.oftc.netIf configuration was successful, you will receive ping replies. If not, check your network configuration for errors.
CentOS 7 and Fedora 22+
Create a file at
/etc/sysconfig/network-scripts/ifcfg-he-ipv6that contains the following:- File: /etc/sysconfig/network-scripts/ifcfg-he-ipv6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24NAME="he-ipv6" DEVICE=he-ipv6 ONBOOT=yes USERCTL=yes BOOTPROTO=none PEERDNS=no IPV6INIT=yes IPV6_AUTOTUNNEL=yes IPV6ADDR="2001:db8:1234:5678::2/64" IPV6_ROUTER=yes IPV6_AUTOCONF=no IPV6_CONTROL_RADVD=yes IPV6TUNNELIPV4=203.0.113.10 IPV6TUNNELIPV4LOCAL=45.79.171.199 PHYSDEV=eth0 TYPE=sit DEVICETYPE=sit NM_CONTROLLED=no IPV6_DEFAULTGW=2001:db8:1234:5678::1 IPV6_DEFAULTDEV=he-ipv6
In the above, replace the:
IPV6ADDRvalue with your “Client IPV6 Address.”IPV6TUNNELIPV4value with your “Server IPV4 Address.”IPV6TUNNELIPV4LOCALvalue with your “Client IPV4 Address.”IPV6_DEFAULTGWvalue with your “Server IPV6 Address.”
Start the
he-ipv6interface:ifup he-ipv6Test the tunnel. Replace
he-ipv6with the name of your tunnel:ping6 -I he-ipv6 irc6.oftc.netIf configuration was successful, you will receive ping replies. If not, check your network configuration for errors.
CentOS 6
Add the following lines to your
/etc/sysconfig/networkfile:- File: /etc/sysconfig/network
1 2NETWORKING_IPV6=yes IPV6_DEFAULTDEV=he-ipv6
Create a file at
/etc/sysconfig/network-scripts/ifcfg-he-ipv6that contains the following:- File: /etc/sysconfig/network-scripts/ifcfg-he-ipv6
1 2 3 4 5 6DEVICE=he-ipv6 BOOTPROTO=none ONBOOT=yes IPV6INIT=yes IPV6TUNNELIPV4=203.0.113.10 IPV6ADDR=2001:db8:1234:5678::2/64
Replace the
IPV6TUNNELIPV4value with your remote tunnel endpoint and theIPV6ADDRvalue with the “Client IPv6” address provided to you by your tunnel broker.Start the
he-ipv6interface:ifup he-ipv6Test the tunnel. Replace
he-ipv6with the name of your tunnel:ping6 -I he-ipv6 irc6.oftc.netIf configuration was successful, you will receive ping replies. If not, check your network configuration for errors.
Arch Linux
Refer to the Arch Linux Wiki for more information.
Gentoo Linux
Refer to the Gentoo Linux Wiki for more information.
This page was originally published on
