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 ;)