Online.net Proxmox v.4.x Ipv6 Howto for KVM virtual servers.

Hello,
I better write this in English and help people all around the world to setup their ipv6 ip addresses easy and fast on Online.net dedicated servers with Proxmox v.4.x installed.

Facts:
1- have an online.net dedicated server
2- Installed Proxmox v.4.x onto it.
3- Need to have 2 seperate KVM virtual machines on it. 1 centos with DirectAdmin, and the other one with Debian and virtualmin. Don’t ask why.
4- Both server and KVM servers need to have ipv4 and ipv6 ip addressess.
5- So in total Server will have 3 ipv4 and /56 ipv assigned to it.
*This is important that you have to understand you can not use this tutorial to create ipv6 only KVM instances.
To do this you must first create another bridge let’s say vmbr2 and assing ipv6 to it.
Other way if you follow my tutorial, Online.net will disable your network port for using unauthorized mac address on their switches.

Anyway Let’s go to the tutorial:
1- Grab a server and install default Proxmox v4.x onto it. In my case Dedibox classic 2016 With Xeon-D and 2x250Gb RAID1 SSD and 32Gb ram.
2- Order additional 2 IPv4’s from online.net
3- Make a /56 subnet froum your assigned /48 ipv6 from your console on online.net. Do not forget to grab/copy your DUID for your newly created /56 ipv6 subnet.
4- On Proxmox host create your KVM servers and assign them ipv4 ips as usual.
5- After everything finished. On proxmox host node do these steps

1-1)

nano /etc/modprobe.d/local.conf
insert:

####
options ipv6 disable=0

2-2- Get IPv6 to start on boot

nano /etc/module

insert:
###
ipv6

3-3)
nano /etc/sysctl.conf

and insert lines below to bottom of this file:

# ONLINE IPv6
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_from_local = 0
net.ipv6.conf.all.accept_ra_min_hop_limit = 1
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.accept_ra_rtr_pref = 1

4-4)
nano /etc/dhcp/dhclient6.conf

insert:

####
interface "vmbr0" {
        send dhcp6.client-id "THE-DUID-OF-YOUR-/56-IPV6-BLOCK";
        request;
}
####

5-5)

nano /etc/network/interfaces

insert below:

####
iface vmbr0 inet6 auto
####

6-6)

nano /root/startipv6.sh

insert below:
####
sleep 30
dhclient -1 -cf /etc/dhcp/dhclient6.conf -pf /run/dhclient6.eth0.pid -v -nw -6 -P vmbr0
ip -6 addr add 2001:bc8:aaa:aaa::/56 dev vmbr0 
#### write your own /56 block above please ###

and then make this script executable:

chmod +x startipv6.sh

7-7)

nano /etc/rc.local

insert right before exit 0 line

####
/bin/sh /root/startipv6.sh
####

THE END OF THE CONFIGURATION FOR YOUR PROXMOX INSTALLATION.

now you better reboot to make things fine...

NOTES FOR MUCH KNOWING GEEKS:

1- yes I know I can use pre-up post-down etc,etc… in /etc/network/interfaces
BUT they do not work in my case. Why I don’t know…
2- yes I know I can add static /56 to my vmbr0 using /etc/network/interfaces. Only if IT WORKS 🙂

so don’t be a fool and don’t follow my guide if you know better than me 🙂

NOW THE KVM part:

In your newly created KVM server of Ubuntu 16.04:

1-1)

nano /etc/network/interfaces

insert below:

###
iface ens18 inet6 static
       address 2001:bc8:aaa:aaa:9:9::
       netmask 64
       gateway 2001:bc8:aaa:aaa::
       up ip -6 route add 2001:bc8:aaa:aaa::/56 dev ens18
       up ip -6 route add default via 2001:bc8:aaa:aaa::

###DO NOT FORGET TO CHANGE TO YOUR OWN DESIRED IPV6's ABOVE###

2-2)

nano /root/startipv6.sh

insert:
######
sleep  10
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:a:b00b/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:beef:ca1f/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:ea75:ca75/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:9:555/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:16:26/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:6:6/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:9:9/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:666:666/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:dead:beef/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:5a11:a:b0a7/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:c01a:cafe/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:be:be5t/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:fa7:10af/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:388d:2001/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:1234:5678/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:f:a/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:e:0c/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:ee:ee/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:dd:99/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:c:7356/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:999:555/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:ddaa:eebb/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:2001:dead/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:f:8912/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:1ce:babe/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:f:b00b/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:b00b:dead/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:6:d00f/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:4:1/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:c:00b/128
ifconfig ens18 add 2001:bc8:aaa:aaa:9:9:e:fa11/128

##These are JUST for example. 
#you can add whatever ipv6 ip addresses as you like,
#in your own /64 which you created on your /etc/network/interfaces

3-3)

chmmod +x /root/startipv6.sh

and

4-4)

nano /etc/rc.local

/bin/sh /root/startipv6.sh

###
DONE!...

AGAIN: This way works for me. Without any problems at all.
Almost ZERO problems for me.
No ipv6 drops etc.

So Although I know there are better ways to do these.
I prefer to make my ipv6 appear on my own adapters like that.

Thats’s all folks.

If you have anything to ask
shoot me an email at shukko at shukko.com address.

Regards and Happy IPV6 for all..