一、实验说明

本次实验系统版本为CentOS7.3,host主机IP地址为172.16.10.10/24,在该主机之上采用桥接模式创建一台KVM虚拟机,IP地址为172.16.10.100/24,桥接模式下网络的实现原理后文中有详细描述,网络拓扑如下图所示:
初识openstack之1——安装KVM虚拟机

二、操作步骤

  1. 安装图形界面和字体
    [root@node1 ~]# yum install dejavu-sans-fonts.noarch
    [root@node1 ~]# yum groupinstall "X Window System"
    初识openstack之1——安装KVM虚拟机
  2. 确认CPU是否支持虚拟化,KVM模块是否加载
    [root@node1 ~]# grep vmx /proc/cpuinfo
    初识openstack之1——安装KVM虚拟机
    [root@bogon ~]# lsmod | grep kvm
    初识openstack之1——安装KVM虚拟机
    [root@bogon ~]# ll /dev/kvm
    初识openstack之1——安装KVM虚拟机
  3. 安装并启动服务
    [root@node1 ~]# yum install libvirt virt-manager virt-viewer qemu-kvm
    [root@node1 ~]# systemctl start libvirtd.service
  4. 创建桥接模式(要先关闭NetworkManager)
    [root@node1 ~]# systemctl stop NetworkManager
    [root@node1 ~]# systemctl disable NetworkManager
    [root@node1 ~]# virsh iface-bridge ens32 br0 --no-stp
    初识openstack之1——安装KVM虚拟机
    [root@node1 network-scripts]# cat ifcfg-br0
    DEVICE="br0"
    ONBOOT="yes"
    TYPE="Bridge"
    BOOTPROTO="none"
    IPADDR="172.16.10.10"
    NETMASK="255.255.255.0"
    GATEWAY="172.16.10.1"
    STP="off"

    [root@node1 network-scripts]# cat ifcfg-ens32

    DEVICE=ens32
    ONBOOT=yes
    BRIDGE="br0"
  5. 启动图形界面创建虚拟机
    [root@node1 ~]# virt-manager
    如果虚拟机鼠标键盘无法使用需要将Display改为VNC并添加一个Input设备,至此,操作完成
    初识openstack之1——安装KVM虚拟机
    初识openstack之1——安装KVM虚拟机

三、虚拟机的网络模式

虚拟机的网络分为以下几种模式:
1.虚拟机间通信
每个vm的vNIC都在hypervisor上有一个对应的Tap设备,它与vNIC是成对出现,当选择网络模式是vm间通信时,此时是将需要通信的vm的Tap设备都连接到了同一个虚拟交换机设备上。
初识openstack之1——安装KVM虚拟机
2.仅主机通信
仅主机通信是指vm可以与host之间进行通信,他的实现方式是为host创建了一个虚拟网卡(workstation上表现为vmnet1之类)并于虚拟交换机进行连接
初识openstack之1——安装KVM虚拟机
3.NAT模式
所谓NAT模式就是在仅主机通信模式上将host主机的虚拟网卡与物理网卡相关联,并且启用内核间转发功能,将vm的网关指向host的虚拟网卡,此时vm与外界通信时就通过SNAT的方式完成
初识openstack之1——安装KVM虚拟机
开启dncp功能后每一个vm都会获取到一个IP地址但又不会和host主机冲突,他的实现方式是在host主机上启动启动了一个dhcp服务进程,将vm划分成一个个独立的网络名称空间,不同的空间之间相互隔离
初识openstack之1——安装KVM虚拟机
4.桥接模式
桥接模式是将host的物理网卡当成一个交换机,并且为host创建出一个桥设备,该设备的tpye类型为bridge,拥有原host的IP和mac地址,vm的虚拟网卡直接关联到交换机上,交换机工作在混杂模式(二层通信是基于mac地址进行,如果交换机不工作在混杂模式,则不会接收非自己mac地址外的信息,vm就无法和外界PC通信),之所以桥设备与原host拥有相同的mac地址原因是通过这样,在二层广播时方便判断哪些时发送给自己的
初识openstack之1——安装KVM虚拟机