准备虚拟机网络
概述
为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux网桥、Open vSwitch网桥等多种类型的网桥。如图1所示,数据传输路径为“虚拟机 -> 虚拟网卡设备 -> Linux网桥或Open vSwitch网桥 -> 物理网卡”。创建网桥,除了为虚拟机配置虚拟网卡设备外,为主机创建网桥是连接虚拟化网络的关键。
本节给出搭建Linux网桥和Open vSwitch网桥的方法,使虚拟机连接到网络,用户可以根据情况选择搭建网桥的类型。
搭建Linux网桥
以物理网卡eth0绑定到Linux网桥br0的操作为例,搭建Linux网桥的操作步骤如下:
安装bridge-utils软件包。
Linux网桥通常通过brctl工具管理,其对应的安装包为bridge-utils,安装命令如下:
# yum install -y bridge-utils
创建网桥br0。
# brctl addbr br0
将物理网卡eth0绑定到Linux网桥。
# brctl addif br0 eth0
eth0与网桥连接后,不再需要IP地址,将eth0的IP设置为0.0.0.0。
# ifconfig eth0 0.0.0.0
设置br0的IP地址。
如果有DHCP服务器,可以通过dhclient设置动态IP地址。
# dhclient br0
如果没有DHCP服务器,给br0配置静态IP,例如设置静态IP为192.168.1.2,子网掩码为255.255.255.0。
# ifconfig br0 192.168.1.2 netmask 255.255.255.0
搭建Open vSwitch网桥
Open vSwitch网桥,具有更便捷的自动化编排能力。搭建Open vSwitch网桥需要安装网络虚拟化组件,这里介绍总体操作。
一、安装Open vSwitch组件
使用Open vSwitch提供虚拟网络,需要安装Open vSwitch网络虚拟化组件。
安装Open vSwitch组件。
# yum install -y openvswitch-kmod
# yum install -y openvswitch
启动Open vSwitch服务。
# systemctl start openvswitch
二、确认安装是否成功
确认Open vSwitch组件是否安装成功,需要检查openvswitch-kmod和openvswitch这两个组件是否安装成功。
确认openvswitch-kmod组件是否安装成功。若安装成功,可以看到软件包相关信息,命令和回显如下:
# rpm -qi openvswitch-kmod
Name : openvswitch-kmod
Version : 2.11.1
Release : 1.oe3
Architecture: aarch64
Install Date: Thu 15 Aug 2019 05:07:49 PM CST
Group : System Environment/Daemons
Size : 15766774
License : GPLv2
Signature : (none)
Source RPM : openvswitch-kmod-2.11.1-1.oe3.src.rpm
Build Date : Thu 08 Aug 2019 04:33:08 PM CST
Build Host : armbuild10b175b113b44
Relocations : (not relocatable)
Vendor : OpenSource Security Ralf Spenneberg <ralf@os-s.net>
URL : http://www.openvswitch.org/
Summary : Open vSwitch Kernel Modules
Description :
Open vSwitch provides standard network bridging functions augmented with
support for the OpenFlow protocol for remote per-flow control of
traffic. This package contains the kernel modules.
确认openvswitch组件是否安装成功。若安装成功,可以看到软件包相关信息,命令和回显如下:
# rpm -qi openvswitch
Name : openvswitch
Version : 2.11.1
Release : 1
Architecture: aarch64
Install Date: Thu 15 Aug 2019 05:08:35 PM CST
Group : System Environment/Daemons
Size : 6051185
License : ASL 2.0
Signature : (none)
Source RPM : openvswitch-2.11.1-1.src.rpm
Build Date : Thu 08 Aug 2019 05:24:46 PM CST
Build Host : armbuild10b247b121b105
Relocations : (not relocatable)
Vendor : Nicira, Inc.
URL : http://www.openvswitch.org/
Summary : Open vSwitch daemon/database/utilities
Description :
Open vSwitch provides standard network bridging functions and
support for the OpenFlow protocol for remote per-flow control of
traffic.
查看Open vSwitch服务是否启动成功。若服务处于“Active”状态,说明服务启动成功,可以正常使用Open vSwitch提供的命令行工具,命令和回显如下:
# systemctl status openvswitch
● openvswitch.service - LSB: Open vSwitch switch
Loaded: loaded (/etc/rc.d/init.d/openvswitch; generated)
Active: active (running) since Sat 2019-08-17 09:47:14 CST; 4min 39s ago
Docs: man:systemd-sysv-generator(8)
Process: 54554 ExecStart=/etc/rc.d/init.d/openvswitch start (code=exited, status=0/SUCCESS)
Tasks: 4 (limit: 9830)
Memory: 22.0M
CGroup: /system.slice/openvswitch.service
├─54580 ovsdb-server: monitoring pid 54581 (healthy)
├─54581 ovsdb-server /etc/openvswitch/conf.db -vconsole:emer -vsyslog:err -vfile:info --remote=punix:/var/run/openvswitch/db.sock --private-key=db:Open_vSwitch,SSL,private_key --certificate>
├─54602 ovs-vswitchd: monitoring pid 54603 (healthy)
└─54603 ovs-vswitchd unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log --pidfile=/var/run/open>
三、搭建Open vSwitch网桥
以创建Open vSwitch一层网桥br0为例,介绍搭建方法。
创建Open vSwitch网桥br0。
# ovs-vsctl add-br br0
将物理网卡eth0添加到br0。
# ovs-vsctl add-port br0 eth0
eth0与网桥连接后,不再需要IP地址,将eth0的IP设置为0.0.0.0。
# ifconfig eth0 0.0.0.0
为OVS网桥br0分配IP。
如果有DHCP服务器,可以通过dhclient设置动态IP地址。
# dhclient br0
如果没有DHCP服务器,给br0配置静态IP,例如192.168.1.2。
# ifconfig br0 192.168.1.2