Router advertisements are used for automatic IPv6 configuration of IPv6 traffic. For example, router advertisements ensure that your VPS gets a link local IPv6 address. This is an automatically assigned IPv6 address within your available IP range that might look like "2a01:7c8:aabb:3d:3045:ff:fec2:abe/64".
Suppose you use a static IPv6 configuration, you will still be assigned such a link local address by router advertisements. If an application that you host does not give you a choice of which IPv6 address you use, it may be desirable to disable router advertisements. In this tutorial, we'll show you how to accept or deny router advertisements.
Please note: If you're reading this tutorial as a result of a network maintenance mail you should enable router advertisements using the instructions in this article.
Link local IPv6-gateway
When there is an important change on the TransIP network, such as replacing a switch, it is important that your VPS accepts router advertisements. This way, your VPS receives the new MAC address of the new switch and can use it without issues.
However, if you use a link-local as your IPv6 gateway, that will cause problems with your VPS's IPv6 connectivity regardless of your Router Advertisement configuration. You can check if this is the case for your VPS using the following commands:
Linux:
ip -6 route show default
If you see a short IPv6 address that looks like fe80::d000:1, then you are using a link-local address as your IPv6 gateway. In that case, consult this tutorial to set a static IPv6 address and IPv6 gateway for your operating system.
Windows (CMD):
Start de command prompt CMD via de Windows Start-knop > cmd en gebruik het volgende commando:
route print -6
If you see a short IPv6 address under the "gateway" column that looks like fe80::d000:1, then you are using a link-local address as your IPv6 gateway. In that case, consult this tutorial to set a static IPv6 address and IPv6 gateway for your operating system.
BSD:
netstat -rn -f inet6 | grep vtnet0 | head -n 1
If you see a short IPv6 address that looks like fe80::d000 with gateway ::1, then you are using a link-local address as your IPv6 gateway. In that case, consult this tutorial to set a static IPv6 address and IPv6 gateway for your operating system, or use DHCP by changing the ifconfig_vtnet0 option in the /etc/rc.conf file to:
ifconfig_vtnet0="DHCP
Linux: checking if your VPS accepts router advertisements
Before changing whether or not to accept router advertisements it is useful to check your current configuration. This can be done using a single command:
sudo sysctl net.ipv6.conf.default.accept_ra
Is the output a 0? Then you're rejecting router advertisements. Is the output a 1? Then router advertisements are accepted.
Linux: accepting/denying router advertisements
You can easily change your configuration for accepting or denying router advertisements using a single command:
accepting router advertisements:
sudo sysctl net.ipv6.conf.default.accept_ra=1
denying router advertisements:
sudo sysctl net.ipv6.conf.default.accept_ra=0
Windows Server: controleren of je VPS router advertisements accepteert
Before changing whether or not to accept router advertisements it is useful to check your current configuration. Start the command prompt CMD using the Windows Start button> cmd and use the command:
netsh interface ipv6 show int "Ethernet"
In the output, search for the option 'Router Discovery'. Does this show 'Disabled'? Then router advertisements are denied. Do you however see 'Enabled'? Then router advertisements are accepted.
Would you like to check a different network interface? You can check the available interfaces using the command:
netsh interface ipv6 show interfaces
Windows: accepting/denying router advertisements
You can easily change your configuration for accepting or denying router advertisements using a single command:
router advertisements accepteren:
netsh interface ipv6 set interface "Ethernet" routerdiscovery=enabled
router advertisements weigeren:
netsh interface ipv6 set interface "Ethernet" routerdiscovery=disabled
FreeBSD/OpenBSD: checking if your VPS accepts router advertisements
Before changing whether or not to accept router advertisements it is useful to check your current configuration. This can be done using a single command:
cat /etc/rc.conf | grep accept_rtadv
Does the output look like 'ifconfig_vtnet0_ipv6="inet6 accept_rtadv"'? Then router advertisements are accepted. Are you not seeing any output? Then router advertisements are denied.
FreeBSD/OpenBSD: accepting/denying router advertisements
To change whether you accept or deny router advertisements you open the file /etc/rc.conf and change the line that starts with ifconfig_vtnet0_ipv6=
accepting router advertisements (DHCP):
ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
accepting router advertisements (static):
ifconfig_vtnet0_ipv6="inet6 <youripv6address>/48 accept_rtadv"
Simply enabling this option isn't enough. BSD by default does not forward IPv6 packets, a requirement for router advertisements. In order to enable them, use the command:
echo
net.inet6.ip6.forwarding=1>> /etc/sysctl.conf
denying router advertisements:
ifconfig_vtnet0_ipv6="inet6 no_radr"
Restart your network to process the changes:
service netif restart
In order to enable router advertisements without having to restart your network, you can use the following commands:
sysctl -w net.inet6.ip6.forwarding=1 sysctl net.inet6.ip6.accept_rtadv