KVM虚拟化平台搭建

前言

本次实验使用的操作系统镜像为ubuntu-18.04.2-desktop

第一章 安装操作系统

1.1 软件下载

使用官方提供的Ubuntu 18.04.2 Desktop 镜像,下载地址:https://ubuntu.com/download,官网下载较慢,可点击链接跳转指 ICTF 下载

1.2 软件安装

此步骤省略

1.3 登陆后输入以下命令,切入到 root 用户

rsecc@rsecc:~$ sudo -i
[sudo] password for rsecc:

第二章 初始化系统配置

2.1 临时配置网络

2.1.1 临时配置IP地址

root@rsecc:~# ip addr add 172.16.23.117/24 dev eno1

2.1.2 配置默认路由

root@rsecc:~# ip route add default via 172.16.23.254

2.1.3 配置dns

root@rsecc:~# echo "DNS=114.114.114.114" >> /etc/systemd/resolved.conf
root@rsecc:~# systemctl restart systemd-resolved.service

2.2 修改软件源

2.2.1 备份配置文件

root@rsecc:~# cp -a /etc/apt/sources.list{,.bak}

2.2.2 修改sources.list文件,将原来的源地址,替换成华为的源地址

root@rsecc:~# sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
root@rsecc:~# sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list

2.2.3 更新软件索引并更新软件

root@rsecc:~# apt-get update
root@rsecc:~# apt-get upgrade

2.3 安装 openssh 服务

2.3.1 安装软件

root@rsecc:~# apt-get install -y openssh-server

2.3.2 编辑配置文件,允许 root 用户使用密码 ssh 登陆

root@rsecc:~# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
root@rsecc:~# echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config

2.3.3 重启 ssh 服务并设置开机自启动

root@rsecc:~# systemctl restart sshd.service
root@rsecc:~# systemctl enable sshd.service

2.4 安装 vim 编辑器

root@rsecc:~# apt-get install -y vim

2.5 安装 net-tools 网络管理工具

root@rsecc:~# apt-get install -y net-tools

第三章 KVM安装和配置

3.1 安装kvm相关组件

root@rsecc:~# apt-get install -y qemu qemu-kvm libvirt-bin bridge-utils virt-manager

3.2 重新启动并设置开启自启动

root@rsecc:~# systemctl restart libvirtd.service
root@rsecc:~# systemctl enable libvirtd.service
Synchronizing state of libvirtd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable libvirtd

3.3 开启虚拟化嵌套

3.3.1 新建并编辑 /etc/modprobe.d/kvm_intel.conf 文件,修改虚拟化嵌套配置

root@rsecc:~# vim /etc/modprobe.d/kvm_intel.conf

3.3.2 添加如下内容到上一步新建的文件内

options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1

3.3.3 重新加载KVM虚拟化模块

root@rsecc:~# modprobe -r kvm_intel
root@rsecc:~# modprobe -a kvm_intel

3.3.4 检查虚拟化嵌套开启状态,输入为Y,表示已开启

root@rsecc:~# cat /sys/module/kvm_intel/parameters/nested
Y

第四章 网络配置

4.1 配置 bridge

4.1.1 查看网卡名称

root@rsecc:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 78:2b:cb:43:67:6d brd ff:ff:ff:ff:ff:ff
    inet 172.16.23.117/24 scope global eno1
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:14:5f:c5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:14:5f:c5 brd ff:ff:ff:ff:ff:ff

4.1.2 编辑 /etc/network/interfaces 文件,创建 br0 端口

root@rsecc:~# vim /etc/network/interfaces

4.1.3 在文件末尾添加如下内容

auto br0
iface br0 inet static
    address 172.16.23.117
    netmask 255.255.255.0
    gateway 172.16.23.254
    bridge_ports eno1
    bridge_stp off

4.1.4 重启网络服务,使br0配置生效,如果网络配置没生效,重启主机系统

root@rsecc:~# systemctl restart networking.service

4.2 配置 nat 网卡

4.2.1 查看默认存在 nat 网卡

root@rsecc:~# virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

4.2.2 以 default 网卡为模板创建虚拟网络 nat01 网卡的配置文件

root@rsecc:~# virsh net-dumpxml default > /etc/libvirt/qemu/networks/nat01.xml

4.2.3 编辑 /etc/libvirt/qemu/networks/nat01.xml 文件,删除 uuid 和 mac 条目,修改IP地址,修改 name 参数

root@rsecc:~# vim /etc/libvirt/qemu/networks/nat01.xml

4.2.4 修改后的 /etc/libvirt/qemu/networks/nat01.xml 文件内容参考如下

<network>
  <name>nat01</name>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='nat01' stp='on' delay='0'/>
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.2' end='192.168.100.254'/>
    </dhcp>
  </ip>
</network>

4.2.5 使用配置文件重新定义网卡

root@rsecc:~# virsh net-define /etc/libvirt/qemu/networks/nat01.xml
Network nat01 defined from /etc/libvirt/qemu/networks/nat01.xml

4.2.6 将 nat01 设置为自启动,并启动网卡

root@rsecc:~# virsh net-autostart nat01
Network nat01 marked as autostarted
root@rsecc:~# virsh net-start nat01
Network nat01 started

4.2.7 删除 default 网卡

root@rsecc:~# virsh net-destroy default
Network default destroyed
root@rsecc:~# virsh net-undefine default
Network default has been undefined

第五章 总结

至此,整个KVM虚拟化环境就搭建好了,当然这个我根据我的需求搭建的,有些步骤应该能给到大家一些帮助;同时,也会有不足的地方,敬请大家批评指正。


THE END