Ok, after trying multiple different configurations I decided to play by
the book - I removed ifcfg script for creating the additional bridge and
set up an Xen script. So my new configuration is:
-> eth3 (my physical interface)
# NetXen Incorporated NX3031 Multifunction 1/10-Gigabit Server Adapter
DEVICE=eth3
BOOTPROTO=static
HWADDR= ...
ONBOOT=yes
IPADDR= ...
NETMASK= ...
NETWORK= ...
and the network-xen-multi-bridge script:
#!/bin/sh
# network-xen-multi-bridge
# Exit if anything goes wrong.
set -e
# First arg is the operation.
OP=$1
shift
script=/etc/xen/scripts/network-bridge.xen
case ${OP} in
start)
$script start vifnum=3 bridge=xenbr3 netdev=eth3
$script start vifnum=0 bridge=xenbr0 netdev=eth0
;;
stop)
$script stop vifnum=3 bridge=xenbr3 netdev=eth3
$script stop vifnum=0 bridge=xenbr0 netdev=eth0
;;
status)
$script status vifnum=3 bridge=xenbr3 netdev=eth3
$script status vifnum=0 bridge=xenbr0 netdev=eth0
;;
*)
echo 'Unknown command: ' ${OP}
echo 'Valid commands are: start, stop, status'
exit 1
esac
After I restart the physical server bridges are set up correctly:
# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
xenbr0 8000.feffffffffff no vif0.0
peth0
xenbr3 8000.feffffffffff no vif0.3
peth3
Unfortunately,
this did not solve the problem - I manage to start one VM (connected to
both of the bridges), but when I try to start the other one, it just
hangs when trying to bring up the second interface (connected to xenbr3)
:/
I'm currently completely out of ideas, but I'm not giving up ;)