Bug 1278317

Summary: [RFE] Provide functionality to attach user networking to a mcast domain to connect multiple VMs in userspace
Product: [Fedora] Fedora Reporter: Fabian Deutsch <fdeutsch>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED UPSTREAM QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: agedosier, berrange, clalancette, dyuan, honzhang, itamar, jforbes, laine, libvirt-maint, veillard, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-05 16:08:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Fabian Deutsch 2015-11-05 09:08:48 UTC
Description of problem:
Currently vms in userspace (qemu:///session) can not communicate with each other.
To enable this it would be nice if there was an option to set a mcast domain for the user networking, that way vms could communicate via that domain and would be connected.

I.e.:

    <qemu:arg value='-netdev'/>
    <qemu:arg value='socket,id=busnet0,mcast=230.0.0.1:1234'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='virtio-net-pci,netdev=busnet0,id=net1,mac=52:54:00:4b:9b:11'/>

Comment 1 Laine Stump 2015-11-05 16:08:39 UTC
Unless I'm missing some detail, this was recently implemented (in libvirt 1.2.20):

https://libvirt.org/formatdomain.html#elementsNICSMulticast

Fedora23 is at libvirt 1.2.18, but you can get newer packages (of libvirt and other virt packages e.g. qemu) by enabling the virt-preview repo:

https://fedoraproject.org/wiki/Virtualization_Preview_Repository

(Note that you can also connect qemu:///session guests to a bridge via the qemu-bridge-helper. Just add the proper line to /etc/qemu/bridge.conf, and configure the interfaces with <interface type='bridge'> ... This will allow them to not only communicate with each other, but also with the rest of the external network, if the bridge is properly connected to the outside).

Comment 2 Fabian Deutsch 2015-11-05 16:43:15 UTC
Awesome!

Thanks for this update.