[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#497528: openvz: Multiple bridges crashing when second veth device configured in the container.



Package: linux-image-2.6.26-1-openvz-amd64
Version: 2.6.26-4

I'm trying to get openvz working in a somewhat complex networking 
environment, and hitting a hard lock-up when using multiple bridges.

I attach /etc/network/interfaces from CT0, plus the CT100 config and a 
script used (manually at the moment) to bring up the bridges once the 
CT100 has been started.

CT0 is networked to three separate subnets, called "main", "deploy" and 
"ilom" respectively.

"deploy": this is physically plumbed into eth0.
"main": this is physically plumbed into bond0 (eth1 and eth2).
"ilom": this is physically plumbed into eth3.

There are three bridge devices created (and assigned IP addresses) 
within CT0, named as above - see the attached interfaces for details. 
The only subtle thing here is that the "main" bridge is on a bonded 
interface.

This all works, and the box boots and can see its attached networks.

I can do the following:

	vzctl start 100

and the zone comes up. The zone itself only has its ethIlom configured 
and allocated a network address.

Once the vzbridge script (attached) is run, the veth devices of the new 
CT100 are attached to their respective bridges.

All good so far: I have visibility to the ILOM network from CT0 and from 
the VE.

However, once I attempt to bring up ethDeploy within the VE, the host 
locks up hard:

	vzctl enter 100
	ifconfig ethDeploy up
	[hard lockup]

I've a requirement to multiply-connect these containers, so any help 
here would be appreciated. Certainly a hard lockup doesn't sound like 
the correct behaviour.

Cheers,
jan


-- 
jan grant, ISYS, University of Bristol. http://www.bris.ac.uk/
Tel +44 (0)117 3317661   http://ioctl.org/jan/
ioctl(2): probably the coolest Unix system call in the world
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto deploy
iface deploy inet static
	bridge_ports eth0
	bridge_maxwait 8
        address 172.16.4.10
        netmask 255.255.255.0
        network 172.16.4.0
        broadcast 172.16.4.255
        # gateway 172.16.4.128
	metric 20
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 99.99.99.99
        dns-search example.org
        up route add -net 224.0.0.0/4 dev deploy
        down route del -net 224.0.0.0/4 dev deploy

#auto bond0
iface bond0 inet manual
	slaves eth1 eth2

auto main
iface main inet static
        address 172.16.9.31
        netmask 255.255.255.0
        network 172.16.9.0
        broadcast 172.16.9.255
        gateway 172.16.9.250
	metric 5
	bridge_ports bond0
	bridge_maxwait 8
	pre-up /sbin/ifconfig bond0 up
	pre-up /sbin/ifenslave bond0 eth1 eth2

auto ilom
iface ilom inet static
        address 10.0.0.38
        netmask 255.255.255.0
        network 10.0.0.0
        broadcast 10.0.0.255
	metric 20
	bridge_ports eth3
	bridge_maxwait 8
#!/bin/sh
# /etc/vz/scripts/vzbridge
# a script to add virtual network interfaces (veth's) in a CT to a bridge on CT0

if [ -z "$VEID" ]; then
	VEID="$1"
fi

CTID=$VEID

CONFIGFILE=/etc/vz/conf/$CTID.conf
. $CONFIGFILE

echo "$NETIF" | tr ';' '\n' | while read line
do
	HOSTIF=$( echo "$line" | tr ',' '\n' | grep '^host_ifname=' | sed -e 's/^host_ifname=//' )
	BRIDGE=$( echo "$line" | tr ',' '\n' | grep '^bridge=' | sed -e 's/^bridge=//' )
	if [ -n "$HOSTIF" -a -n "$BRIDGE" ]; then
		echo "Adding interface $HOSTIF to bridge $BRIDGE on CT0 for CT$CTID"
		/sbin/ifconfig $HOSTIF 0
		echo 1 > /proc/sys/net/ipv4/conf/$HOSTIF/proxy_arp
		echo 1 > /proc/sys/net/ipv4/conf/$HOSTIF/forwarding
		/usr/sbin/brctl addif $BRIDGE $HOSTIF
	fi
done

exit 0

KMEMSIZE="14372700:14790164"
LOCKEDPAGES="256:256"
PRIVVMPAGES="65536:69632"
SHMPAGES="21504:21504"
NUMPROC="240:240"
PHYSPAGES="0:9223372036854775807"
VMGUARPAGES="33792:9223372036854775807"
OOMGUARPAGES="26112:9223372036854775807"
NUMTCPSOCK="360:360"
NUMFLOCK="188:206"
NUMPTY="16:16"
NUMSIGINFO="256:256"
TCPSNDBUF="1720320:2703360"
TCPRCVBUF="1720320:2703360"
OTHERSOCKBUF="1126080:2097152"
DGRAMRCVBUF="262144:262144"
NUMOTHERSOCK="360:360"
NUMFILE="9312:9312"
DCACHESIZE="3409920:3624960"
NUMIPTENT="128:128"
AVNUMPROC="180:180"
CPUUNITS="1000"
ONBOOT="no"
ORIGIN_SAMPLE="vps.basic"
DISKSPACE="10485760:11530240"
DISKINODES="2000000:2200000"
QUOTATIME="0"
OSTEMPLATE=debian-4.0
NETIF="ifname=ethDeploy,mac=00:18:51:34:B3:C1,host_ifname=veth100.0,host_mac=00:18:51:13:2C:58,bridge=deploy;ifname=ethIlom,mac=00:18:51:B6:34:B4,host_ifname=veth100.3,bridge=ilom,host_mac=00:18:51:FD:E6:FF;ifname=ethMain,mac=00:18:51:26:A5:1F,host_ifname=veth100.1,host_mac=00:18:51:5B:81:87"
# CONFIG_CUSTOMIZED="yes"

Reply to: