Grokking Technology

IPv6 on openSuSE

We are fortunate to have several of our servers hosted by [Hetzner] in their data centres in southern Germany. Since 2009, all Hetzner systems could have IPv6 connectivity, all you had to do was ask for a subnet and you would receive a /64 subnet allocation and a gateway address; these might look like this:

IPs: 2a01:4f8:145:4243::/64
Gateway: 2a01:4f8:145:4240::1 /59

We have also deployed IPv6 locally using tunnels and subnets provided through Sixxs or Hurricane Electric. For some time we have tunnelled internal services over IPv6. Using Sixxs connectivity requires tunnels to be connected via Points of Presence (POPs); generally these tunnels are managed by the aiccu tool and local IPv6 addresses through radvd. Most of the time this has worked well requiring almost no configuration. However, when we looked at providing IPv6 networking from our Hetzner systems we had to figure how to actually get IPv6 configured correctly on our openSuSE boxes.

Usually openSuSE provides good configuration support for networking through its Yast tool. Not so for IPv6, it is necessary to work at a lower level. There are plenty of excellent resources on the Internet that explain how everything should work and how to configure your network, at least to test it: the definitive documentation is the Linux IPV6 Howto. There is some specific SuSE information at Cyberciti which provides a couple of commands to setup IPv6 quickly for testing. Using our addresses above for the eth0 interface, we can do this:

This is enough to get IPv6 working but this will not survive a reboot, we need something that will persist

The IPv6 address can be assigned to your network card easily enough; either add it as an Additional Address to your Network Device within Yast or add it directly to appropriate file below /etc/sysconfig/network, ifcfg-eth0 in the example above. Add 2 lines like:


The label should be a unique name for the interface

A permanent route can be added to the routes file in the same folder with these 2 lines

2a01:4f8:145:4240::1 - 59 eth0
default 2a01:4f8:145:4240::1 - eth0

Restarting your network with service network restart should then do the trick

Page created on Sat 30 Jan 2021 by Andy Ferguson