[libvirt-users] Use libvirt to create an NIC on the guest machine and connect to an existing TAP interface
Laine Stump
laine at laine.org
Tue Aug 30 18:40:44 UTC 2016
On 08/29/2016 03:37 AM, Marina Danial wrote:
> Hello,
>
> I am facing the following issue.
>
> I have several TAP interfaces that are created by the following method
> on OpenVSwitch:
>
> /
> /
> /ovs-vsctl add-br br1
> /
> /
> /
> /sudo /usr/sbin/tunctl -t tap01 -p -u root/
> /
> /
> /sudo /sbin/ip link set tap01 up
> /
> /
> /
> /# Disable multicast/
> /sudo /sbin/ifconfig tap01 -multicast/
> /
> /
> /ovs-vsctl add-port br1 tap01/
Aside from the part about disabling multicast, this is all handled
(including creation of the tap device, and destroying it when the guest
is terminated) by libvirt's <interface type='bridge'> with a
<virtualport type='openvswitch'> subelement. This page has more details
and an example:
http://www.libvirt.org/formatdomain.html#elementsNICSBridge
As far as turning off multicast, this is the first time I've seen anyone
request that. Unfortunately the network hooks
(https://www.libvirt.org/hooks.html ) that are run for each interface
happen prior to the creation of the tap devices, so you can't just add a
network hook script to do it. If you *really* need multicast disabled,
with current libvirt you would need to add a *qemu* hook script that
looked for the tap device name in the guest's xml and set -multicast, or
you would need to use "<interface type='ethernet'> (which just creates a
tap device, then calls a script to "connect it to the network") with a
"<script path='some script that sets -multicast *and* adds the tap to
the ovs bridge'/>". type='ethernet' and its script are also described a
bit further down in the same link I posted above.
> /
> /
> /
> /
> /
> /
> /
> /
>
> I need to launch a qemu VMs and have its NIC card that is created
> using libvirt to be connected to tap01 or other taps that are created
> with the above method.
>
> I need a way that libvirt only creates the new NIC on either eth0 or
> eht1 on the guest machine and connect it to tap01.
>
> Please help me in the best way to do so whether using the C++ APIs
> that libvirt provides or use the domain and/or network XMLs to achieve
> this.
>
>
> Thanks a lot
> Marina
>
>
>
>
>
> _______________________________________________
> libvirt-users mailing list
> libvirt-users at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20160830/e90f635c/attachment.htm>
More information about the libvirt-users
mailing list