2

I have been trying to set up a Windows 10 VM in my current Arch Linux (5.13.12-arch1-1) host system. I set up the VM using libvirt and KVM/QEMU using virt-manager as GUI.

The NIC card has been setup with "Virtual Network 'Default' NAT" and using "virtio" settings. However even after updating the drivers on Windows, it is not able to connect to the internet and shows "Unidentified Network- No Internet Access".

Output of ipconfig /all in Windows 10 output

Output of ip link in Arch

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
    altname wlp0s20f3
10: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether bb:bb:bb:bb:bb:bb brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether cc:cc:cc:cc:cc:cc brd ff:ff:ff:ff:ff:ff

Output of virsh net-dumpxml default in Arch

<network connections='1'>
  <name>default</name>
  <uuid>a145acdf-7624-40c5-af1f-b88bfc33bcc6</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='dd:dd:dd:dd:dd:dd'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
      <host name='Windows10' ip='192.168.122.2'/>
    </dhcp>
  </ip>
</network>

Already done-

sudo pacman -S iptables-nft nftables dhclient
sudo systemctl enable/start libvirt.service
sudo systemctl enable/start dnsmasq.service
virsh net-autostart default
virsh net-start default

virsh net-dhcp-leases default shows that no ip has been allocated to the VM. As of now, I am clueless on how to fix this.

*MAC addresses have been changed

3 Answers 3

3

Same problem here, appears to be a driver problem. This fixed it for me:

  1. If you haven't done yet, download Windows VirtIO Driver ISO ('Stable virtio-win ISO' worked for me) and attach to guest CD drive: https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md

  2. In Win 10 guest, open Device Manager and look for a network adapter with a yellow triangle. If it appears as 'Ethernet Controller', skip to step 3. Otherwise, if it's recognized as 'Red Hat VirtIO Ethernet Adapter' with a yellow triangle: right-click -> Remove Device and check 'delete drivers'. Refresh Device Manager. Now it should appear as just "Ethernet Controller", probably at the top.

  3. Still in Device Manager, right-click "Ethernet Controller" -> Update Update Driver -> Search my computer. When asked for a path, navigate to your CD drive -> NetKVM -> w10 -> whatever architecture you may have (in my case the full path was D:\NetKVM\w10\amd64).

Should now install the correct driver for virtio network adapter and give you internet access. For reference, see: https://access.redhat.com/articles/2470791

2

Aparently libvirt does not handle nftables well [1].

You need to use the legacy backend [2]. These are the necessary packages

iptables ebtables dnsmasq firewalld

I had to also enable firewalld to get the network working.

  1. https://blog.zentria.company/posts/its-2021-nftables-still-does-not-integrate/
  2. libvirt: "Failed to initialize a valid firewall backend"
1

In virt-manager make sure virbr0 is active and autostart on boot is selected

enter image description here

For more info check this out VirtualNetworking

3
  • Thanks but those options have already been set on my system.
    – Sam
    Aug 28, 2021 at 9:57
  • @Sam have you installed virtio drivers in win 10 guest ?
    – Madhubala
    Aug 28, 2021 at 10:06
  • Yep, ethernet and display drivers have been upgraded to the vertio Red Hat versions.
    – Sam
    Aug 28, 2021 at 10:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.