# libvirt error macvtap interface

## Rocky007

Ich versuche mit libvirt eine virtuelle Maschine zu erstellen, jedoch kann er kein NAT und einen Bridge mit enp1s0 geht auch nicht.

Folgender Fehler kommt:

error creating macvtap interface macvtap0@enp1s0

kann dies an einer Kernel Einstellung liegen?

----------

## musv

Das Problem kommt mir bekannt vor. Mal hier ein paar Kerneleinstellungen (für Intel-Host mit VX-T):

Kernel:

```
[*] Virtualization  --->

   [m] Kernel-based Virtual Machine (KVM) support (KVM)

      [m] KVM for Intel processors support (KVM_INTEL)

   [m] Host kernel accelerator for virtio net (VHOST_NET)

Networking support (NET)

   Networking options

      [x] Network packet filtering framework (Netfilter) (NETFILTER)

          [x] Advanced netfilter configuration (NETFILTER_ADVANCED)

              Core Netfilter Configuration

                 [x] Netfilter Xtables support (required for ip_tables) (NETFILTER_XTABLES)

                     [m] CHECKSUM target support (NETFILTER_XT_TARGET_CHECKSUM)

                     [m] "CONNMARK" target support (NETFILTER_XT_TARGET_CONNMARK) 

          [m] Ethernet Bridge tables (ebtables) support (BRIDGE_NF_EBTABLES)

             [m] ebt: nat table support (BRIDGE_EBT_T_NAT)

Device Drivers

   [*] Networking support  --->

         Networking options  --->

           <m> 802.1d Ethernet Bridging

       [*]   Network core driver support

         <m>     Universal TUN/TAP device driver support

     [m] MAC-VLAN support (MACVLAN)

         [m] MAC-VLAN based tap driver (MACVTAP)

   [*] IOMMU Hardware Support (IOMMU_SUPPORT)

      [*]   Support for Intel IOMMU using DMA Remapping Devices (INTEL_IOMMU)

         [x]     Enable Intel DMA Remapping Devices by default (INTEL_IOMMU_DEFAULT_ON)

      [*]   Support for Interrupt Remapping (IRQ_REMAP)

Kernel hacking  --->

      Compile-time checks and compiler options

         [*] Debug Filesystem (DEBUG_FS)
```

Weiß jetzt nicht, ob die bei den Device-Drivern die Reihenfolge stimmt. Ich kam damals irgendwie zu der Überzeugung, dass für die Netzwerkunterstützung in libvirt, egal ob Bridge oder NAT, generell das TUN/TAP-Device und das Ethernet-Bridging notwendig zu sein scheint. 

USE-Flags:

Von mir verwendete USE-Flags mit wirren Erklärungen aus meinem lokalen Wiki:

 aio

 caps

 filecaps

 libvitd: um den Daemon zu bauen.

 macvtap: experimentelle MAC-based TAP-Unterstützung

 nfs: Um Disk-Images über nfs zu speichern

 nls: Sprachunterstützung

 opengl

 parted: Unterstützung realer Festplattenpartitionen als Speicherort

 pcap: Routing

 policykit: ???

 python: Die ganzen Scripte von virt-manager und virsh greifen über Python auf libvirt zu

 qemu: Qemu-Support in Libvirt.

 spice

 systemd: Sockets Activation + Session Tracking, nur benötigt, wenn du Systemd statt openrc verwendest

 udev: ???

 vepa: wird von macvtap benötigt.

 virt-network: ganz wichtig. Ohne das Flag kann kein virtuelles Netzwerk (NAT) erstellt werden.

 vhost-net: Weiß nicht, ob das überflüssig ist durch virt-network.

Abhängigkeiten:

dnsmasq: DHCP-Server für das virtuelle Subnetz

ebtables: Filterregeln für NAT, Vlan, Bridge usw.

Zusätzlich hab ich noch installiert:

Samba: Zum Dateienaustausch mit Windows

bridge-utils: Management von Bridge-Netzwerkdevices

Systemd-Units:

```
[Unit]

Description=Virtualization daemon

Before=libvirt-guests.service

After=network.target

After=dbus.service

After=iscsid.service polkit.service

Needs=libvirtd.service

Wants=dnsmasq_libvirt.service smbd_libvirt.service 

[Service]

EnvironmentFile=-/etc/sysconfig/libvirtd

ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

# Override the maximum number of opened files

#LimitNOFILE=2048

[Install]

WantedBy=multi-user.target
```

```
[Unit]

Description=A lightweight DHCP and caching DNS server

BindsTo=libvirtd.service

Conflicts=dnsmasq.service

[Service]

Type=simple

ExecStartPre=/usr/sbin/dnsmasq --test

ExecStart=/usr/sbin/dnsmasq -k

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target
```

```
[Unit]

Description=Samba SMB/CIFS server

After=network.target nmbd.service winbindd.service

BindsTo=libvirtd.service

Conflicts=smbd.service

[Service]

Type=forking

PIDFile=/var/run/samba/smbd.pid

ExecStart=/usr/sbin/smbd -D 

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target
```

----------

## Rocky007

Ich habe den gebauten Kernel (/usr/src/linux make) nochmal genommen und mit genkernel neu gebaut nun geht es, allerdings kann er nun noch kein NAT aber Bridge geht.

Es gibt ja auch den Virt-Viewer für Windows der mir zugriff per Spice auf die Maschine gibt.

Wenn ich in /etc/libvirtd/qemu.conf "spice_listen=0.0.0.0" eintrage geht es auch, dann komme ich mit dem virt-manager aber nicht mehr drauf, von Linux...

----------

## Rocky007

Wenn es auf 0.0.0.0 stelle kommt folgender Fehler wenn ich über den Domain Namen gehe...

Fehlermeldung:

 *Quote:*   

> does not appear to be an IPv4 or IPv6 network

 

Wenn ich es über die IP mache geht es problemlos.

Wie kann man dies fixen?

----------

