KVM, adding bridges
From Ubuntuwiki.net
Adding bridged network adapters to VMs in the host config
If you have already created VMs before, you can make them use bridged networking if you change the XML definition (in /etc/libvirt/qemu/) for the network interface, adjusting the mac address as desired from:
<interface type='network'>
<mac address='00:11:22:33:44:55'/>
<source network='default'/>
</interface>
to:
<interface type='bridge'>
<mac address='00:11:22:33:44:55'/>
<source bridge='br0'/>
</interface>
Note: Make sure the first octet in your MAC address is EVEN (eg. 00:) as MAC addresses with ODD first-bytes (eg. 01:) are reserved for multicast communication and can cause confusing problems for you. For instance, the guest will be able to receive ARP packets and reply to them, but the reply will confuse other machines. This is not a KVM issue, but just the way Ethernet works.
If you need to add NEW network interfaces to an existing VM, simply add a new <interface></interface> section as above - make sure the mac addresses are not identical (I typically just add one to the end of the MAC for the existing bridge; ie in the above example I would make the MAC for my second bridge 00:11:22:33:44:56.)
You do not need to restart libvirtd to reload the changes; the easiest way is to log into virsh (a command line tool to manage VMs), stop the VM, reread its configuration file, and restart the VM:
you@host:/etc/libvirt/qemu$ ls
networks vm0.xml
you@host:/etc/libvirt/qemu$ virsh --connect qemu:///system
Connecting to uri: qemu:///system
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # list
Id Name State
----------------------------------
10 vm0 running
virsh # shutdown vm0
Domain mirror is being shutdown
virsh # define vm0.xml
Domain vm0 defined from vm0.xml
virsh # start vm0
Domain vm0 started
The VM "vm0" is now using bridged networking.
Generating a KVM MAC
If you are managing your guests via command line, the following script might be helpful to generate a randomized MAC:
MACADDR="52:54:$(dd if=/dev/urandom count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4/')"; echo $MACADDR

