[[installing-virtualization-software]]
= Installing virtualization software
include::{partialsdir}/attributes.adoc[]
:experimental:

When installing Fedora, you can install the virtualization packages by
selecting *Virtualization* in the *Base Group* in the installer. See xref:f{MAJOROSVER}@fedora:install-guide:install/Installing_Using_Anaconda.adoc[Installing Using Anaconda].

For existing Fedora installations, you can install the virtualization tools via the command line using the Virtualization Package Group. To view the packages, run:

[source,shell,subs="attributes"]
----
$ dnf groupinfo virtualization

Group: Virtualization
 Description: These packages provide a graphical virtualization environment.
 Mandatory Packages:
   virt-install
 Default Packages:
   libvirt-daemon-config-network
   libvirt-daemon-kvm
   qemu-kvm
   virt-manager
   virt-viewer
 Optional Packages:
   libguestfs-tools
   python3-libguestfs
   virt-top
----

. Run the following command to install the mandatory and default packages in the virtualization group:
+
[source,shell,subs="attributes"]
----
# sudo dnf install @virtualization
----
+
Alternatively, to install the mandatory, default, and optional packages, run:
+
[source,shell,subs="attributes"]
----
# sudo dnf group install --with-optional virtualization
----
+
. After the packages install, start the `libvirtd` service:
+
[source,shell,subs="attributes"]
----
# sudo systemctl start libvirtd
----
+
To start the service on boot, run:
+
[source,shell,subs="attributes"]
----
# sudo systemctl enable libvirtd
----
+
. To verify that the KVM kernel modules are properly loaded:
+
[source,shell,subs="attributes"]
----
$ lsmod | grep kvm
kvm_amd               114688  0
kvm                   831488  1 kvm_amd
----
+
If this command lists `kvm_intel` or `kvm_amd`, KVM is properly configured.


[[networking-support]]
== Networking Support

By default, libvirt will create a private network for your guests on the host machine. This private network will use a 192.168.x.x subnet and not be reachable directly from the network the host machine is on. However, virtual guests can use the host machine as a gateway and can connect out via it. If you need to provide services on your guests that are reachable via other machines on your host network you can use iptables DNAT rules to forward in specific ports, or you can set up a bridged environment.

See the https://wiki.libvirt.org/page/Networking[libvirt networking setup page] for more information on how to setup a bridged network.
