KVM: Difference between revisions

From Han Wiki
Jump to navigation Jump to search
→‎Install packages and start libvirtd: configure bridged networking
Line 44: Line 44:
----------------------------------------------------------
----------------------------------------------------------
  default              active    yes          yes
  default              active    yes          yes
</source>
Default configuration allows all VMs to access other VMs but not the network that the host machine is on. You can check the private network created by default:
<source lang="bash">
# virsh net-dumpxml default
<network>
  <name>default</name>
  <uuid>51beab57-eb0c-40b9-bb5e-957f31c1b489</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:f0:c0:2d'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>
</source>
Add the following line to <span class="package">/etc/sysconfig/network-scripts/ifconfig-enp3s0</span>:
<source lang="ini">
BRIDGE=br0
</source>
Create a new file <span class="package">/etc/sysconfig/network-scripts/ifcfg-br0</span>:
<source lang="ini">
DEVICE="br0"
# I am getting ip from DHCP server #
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"
</source>
Restart the networking service:
<source lang="bash">
# systemctl restart NetworkManager
</source>
Check with brctl command:
<source lang="bash">
# brctl show
</source>
</source>

Revision as of 16:00, 5 July 2018

Kernel-based Virtual Machine. A hypervisor technology featuring tight integration to Linux kernel.

Installation

Installing on CentOS 7.5

  • Tested on CentOS 7.5.1804

Install packages and start libvirtd

Install required packages:

# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install

Start the libvirtd service:

# systemctl enable libvirtd
# systemctl start libvirtd

Make sure KVM module loaded using lsmod command:

# lsmod | grep -i kvm
kvm_intel             178927  0
kvm                   578558  1 kvm_intel
irqbypass              13503  1 kvm

Configure bridged networking

Libvirtd configures a dhcpd-based network bridge by default. You can check in the following way:

# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.525400f0c02d       yes             virbr0-nic

# virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

Default configuration allows all VMs to access other VMs but not the network that the host machine is on. You can check the private network created by default:

# virsh net-dumpxml default
<network>
  <name>default</name>
  <uuid>51beab57-eb0c-40b9-bb5e-957f31c1b489</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:f0:c0:2d'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

Add the following line to /etc/sysconfig/network-scripts/ifconfig-enp3s0:

BRIDGE=br0

Create a new file /etc/sysconfig/network-scripts/ifcfg-br0:

DEVICE="br0"
# I am getting ip from DHCP server #
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"

Restart the networking service:

# systemctl restart NetworkManager

Check with brctl command:

# brctl show