[libvirt] what determines the type of virtual NIC in libvirt (veth or tap)?

Hi All, I'd like to know what determines the type of virtual NIC in libvirt ? There was a problem I encountered, the vm can't get the mirror traffic while the virtual port in openvswitch is veth, If the virtual port is tun, the everything is fine. [root@allinone-247 ~]# ethtool -i vn62f717800 driver: veth version: 1.0 firmware-version: expansion-rom-version: bus-info: supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no I uninstall the veth kernel module, then restart vm, then the vm can receive the mirror traffic [root@allinone-247 ~]# ethtool -i vn62f717800 driver: tun version: 1.6 firmware-version: expansion-rom-version: bus-info: tap supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no so, I'm wondering if there are configuration options which can be configured to use which type of virtual NIC(tap or veth). Any comments would be appreciate.

On 09/20/2018 04:52 AM, Frank Wang wrote:
Hi All,
I'd like to know what determines the type of virtual NIC in libvirt ? There was a problem I encountered, the vm can't get the mirror traffic while the virtual port in openvswitch is veth, If the virtual port is tun, the everything is fine.
[root@allinone-247 ~]# ethtool -i vn62f717800 driver: veth version: 1.0 firmware-version: expansion-rom-version: bus-info: supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
I uninstall the veth kernel module, then restart vm, then the vm can receive the mirror traffic
[root@allinone-247 ~]# ethtool -i vn62f717800 driver: tun version: 1.6 firmware-version: expansion-rom-version: bus-info: tap supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
so, I'm wondering if there are configuration options which can be configured to use which type of virtual NIC(tap or veth).
Any comments would be appreciate.
From IRC, here is the <interface> you posted:
<interface type="bridge"> <mac address="00:16:3e:73:30:07"/> <source bridge="managevSwitch"/> <vlan> <tag id="0"/> </vlan> <virtualport type="openvswitch"> <parameters interfaceid="8a344c7762a32b2d0162db9d09f42efa"/> </virtualport> <target dev="vnfa3b798b1"/> <model type="virtio"/> <address type="pci" domain="0x0000" bus="0x0" function="0x0" slot="0x11"/> </interface> If you are creating a qemu/kvm virtual machine, the above interface config will *always* get you a tap device, and if you are creating an LXC virtual machine it will always get you a veth device. This is a necessity of the way the two technologies expose the network device in the guest; if you are getting a veth device for use with qemu/kvm, or a tap device for use with LXC, then there is something going on that I don't understand.
participants (2)
-
Frank Wang
-
Laine Stump