[Users] IPv6 on veth interface (almost)SOLVED

Jan Tomasek jan at tomasek.cz
Tue Jul 3 10:12:27 EDT 2007


Hi,

with help Vitaliy and Kirill I managed to get my setup working. In final 
it works, but it is very tricky to me. I'm not going to use this. To 
save time of anyone who will decide to play this I will try to sumarize 
my experiences. I'm using Debian etch systems.

HW node have addresses
	195.113.233.4
	2001:718:1:e::23:3004

VE should have
	195.113.233.12
	2001:718:1:e::23:3012

I created VE 233012 without IP addres after that issued command:

vzctl set 233012 \
    --netif_add eth0,00:0C:29:63:A6:73,veth012.0,00:0C:29:63:A6:74

MAC adreses are created by easymac.sh [1] program. After that I had to 
edit /etc/network/interfaces for VE:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
         address 195.113.233.12
         netmask 255.255.255.0
         network 195.113.233.0
         broadcast 195.113.233.255
         gateway 195.113.233.4
         dns-nameservers 195.113.144.233 195.113.144.194
         dns-search cesnet.cz


eth0 inet6 static
         iface eth0 inet6 static
         address 2001:718:1:e::23:3012
         post-up /sbin/sysctl -w "net.ipv6.conf.eth0.autoconf=0"
         gateway 2001:718:1:e::23:3004
         netmask 64

Note: sysctl is not going to work it says "Operation not permitted", I 
was not trying to solve that. So VE have autoconfigured IP 
2001:718:1:e:20c:29ff:fe63:a673 and static 2001:718:1:e::23:3004.

On HW node is situation bit more complicated. I had to comment out all 
/etc/network/interfaces and configure it manualy. I created script 
/etc/init.d/bridged-networking which is started when machine starts. It 
is doing this:

   brctl addbr br0
   ifconfig eth0 0.0.0.0
   ifconfig eth0 add 2001:718:1:e::23:3004/64
   brctl addif br0 eth0

   ifconfig br0 195.113.233.4
   ifconfig br0 broadcast 195.113.233.255
   ifconfig br0 netmask 255.255.255.0

   /sbin/sysctl -w "net.ipv6.conf.br0.autoconf=0"
   /sbin/sysctl -w "net.ipv6.conf.eth0.autoconf=0"

   route add default gw 195.113.233.1

The reason why IPv4 address is assigned to bridge br0 is that when I 
leave it on eth0 then system quickly lost IPv4 connectivity because ARP 
stops working. Network specialist here says me that no IP should be on 
bridge Vitaliy and my experiences from home bridge networking show that 
at least for IPv4 IP address is needed on bridge.

IPv6 address on eth0 work just fine. It works as sort of backup when 
IPv4 failure. ;) Actually it have problems when in br0 is only eth0 
interface, it simply doesn't work.

After starting VE I have to execute `brctl addif br0 veth012.0` I didn't 
figured how to do it automatically. <VEID>.start script is started in 
context of VE and <VEID>.mount script is started before veth012.0 is 
created. Document [2] seams to provide guide.

It is posible to create another VE with similar setup, with just another 
IP addresses. Bit problematic is when last VE using veth is stopped, at 
that moment IPv4 hangs approximately for 1 minute. After that period 
system start to be responsible again. IPv6 is not affected by this.

Problems come when I try to mix veth and venet VE. When last VE using 
veth is stoped than venet enabled VE stops responding on IPv4 (no IPv6 
there). I didn't figure how to workaround this. Maybe some ARP ping to 
right place?

[1]http://www.easyvmx.com/software/easymac.sh
[2]http://wiki.openvz.org/Virtual_Ethernet_device#Making_a_veth-device_persistent


Uff... that is all I managed to discover. As I said on beginning I'm 
writing this just for record. I'm not going to use this setup, it is 
complicated and mistakes can simply take down all VE including HW node.

Best regards
-- 
-----------------------
Jan Tomasek aka Semik
http://www.tomasek.cz/



More information about the Users mailing list