Using the WIDE DHCPv6 Client on Online.net dedicated servers

Initially published on 2014-08-29

Pre-requisites

Debian-only.

Check the file /etc/modprobe.d/local.conf, it may contain a line like this one:

options ipv6 disable=1

Since the default Debian kernel has IPv6 built-in rather than as a module, that line will not take effect. However it's better to remove or comment it out anyway, in case you install a different kernel later.

Installing WIDE DHCPv6

setup-dhcpv6.sh
#!/bin/bash
 
DUID=$1
IFACE=$2
 
if [ "$DUID" == "" ]||[ "$IFACE" == "" ]; then
  echo "Please specify your DUID and network interface!"
  exit 1
fi
 
apt-get install -y wide-dhcpv6-client vim-common
 
/etc/init.d/wide-dhcpv6-client stop
 
echo 'profile default { script "/etc/wide-dhcpv6/dhcp6c-script"; };' > /etc/wide-dhcpv6/dhcp6c.conf
echo "id-assoc pd { prefix-interface $IFACE { }; };" >> /etc/wide-dhcpv6/dhcp6c.conf
echo "id-assoc na { };" >> /etc/wide-dhcpv6/dhcp6c.conf
echo "interface $IFACE { send ia-na 0; send ia-pd 0; };" >> /etc/wide-dhcpv6/dhcp6c.conf
echo $DUID | awk '{ gsub(":"," "); printf "0: 0a 00 %s\n", $0 }' | xxd -r > /var/lib/dhcpv6/dhcp6c_duid
 
/etc/init.d/wide-dhcpv6-client start

Download and run this with the online.net DUID for the subnet you want to use specified, and the uplink interface name, for example:

wget -O setup-dhcpv6.sh https://version6.ru/_export/code/en/online.net-wide-dhcpv6?codeblock=1
chmod +x setup-dhcpv6.sh

./setup-dhcpv6.sh 00:03:00:01:23:45:67:89:ab:cd eth0

When the WIDE setup screen appears and asks on which interfaces to listen for DHCPv6, leave that at its default value and just press Enter.

Startup failure

Sometimes, for whatever reason, after running the above script, the DHCPv6 client fails to start. Just try:

/etc/init.d/wide-dhcpv6-client restart

…and this time it should start up properly.

Prevent outgoing request flood

Very rarely (happened just once yet, in months), WIDE can fail in a mysterious way and start sending SOLICIT requests continuously, without any back-off time in between. This can be detected by upstream as malicious flood and make them unhappy.

To prevent this issue, add the following into your ip6tables configuration:

ip6tables -A OUTPUT -p udp --dport 547 -m limit --limit 10/min  --limit-burst 5 -j ACCEPT
ip6tables -A OUTPUT -p udp --dport 547 -j DROP

…or just add this into /etc/rc.local if you don't use any other ip6tables rules.

Other HOWTOs


en/online.net-wide-dhcpv6.txt · Last modified: 2024-04-08 01:23 UTC by rm
Personal Tools