要求
- 宿主机平台:CentOS Linux 7
- 计算环境的处理器平台及结构:x86、SMP结构、CPU数量>=2
- 虚拟网络:在2个宿主机之间建立二层网络,使用VxLAN技术
- 虚拟网络要求与物理网络互通
- 虚拟计算环境:分别在2个宿主机上创建计算资源,并互通
- 虚拟存储:不做要求
- 虚拟机的远程管理:通过VNC协议实现
- 网络安全:通过SDN技术,实现2个计算资源的单向访问
- 通过sflow技术对虚拟机之间的流量进行采集与分析
分析
- 需要两个宿主机需要搭建两台openswitch交换机
- 两台openswitch交换机通过VxLAN技术互通
- SDN实现两个虚拟机的单向访问(下发控制策略,控制只能实现单向访问)
- 配置sflow技术
openswitch交换机步骤
1. 宿主机安装相关软件
两台宿主机都需要执行此操作
-
安装EPEL软件仓库
yum install -y epel-release
-
安装openstack软件仓库
yum install -y centos-release-openstack-queens.noarch
-
安装openvswitch软件包
yum install -y openvswitch.x86_64
-
启动openvswitch
systemctl start openvswitch.service
2. 创建虚拟交换机
ovs-vsctl add-br cxx1
ovs-vsctl add-br cxx2
3. 配置vxlan
vxlan原理
通过对L2层的打包和解包实现不同的L2网络,使其感觉在同一个L2层网络中
作用
利用IP网传输,使局域网无地域限制
虚拟交换机接口配置
/etc/sysconfig/network-scripts/ifcfg-mgmt0
创建一个mgmt0接口配置vxlan
DEVICE=mgmt0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSIntPort
OVS_BRIDGE=cxx1
USERCTL=no
BOOTPROTO=none
HOTPLUG=no
IPADDR0=192.168.2.3
PREFIX0=24
/etc/sysconfig/network-scripts/ifcfg-cxx1
配置ovs桥
DEVICE=cxx1
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
HOTPLUG=no
USERCTL=no
vxlan配置
ovs-vsctl add-port cxx1 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=192.168.25.25
ovs-vsctl add-port cxx2 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=192.168.25.42
4. 结果
两台虚拟交换机实现互通
抓取数据包进行分析
tcpdump -i ens33 -vnn icmp -w /cxx/cxx_vxlan.pcap
抓取接口ens33中icmp数据包存在/cxx/cxx_vxlan.pcap
将/cxx/cxx_vxlan.pcap文件下载到本地通过wireshark打开可以看到
创建计算资源步骤
此处利用libvirt创建计算资源
注意:
- 利用libvirt创建计算资源如果采用的是调用iSCSI存储资源,需要提前将iSCSI存储池配置好。
- 两台虚拟机如果同时采用iSCSI存储资源,不能使用同一块盘。需要新建target。此处建议,两台虚拟机采用不同的存储方式。
例如一台采用iSCSI存储,一台采用file存储。以下步骤便采用此方法
iSCSI存储资源相关准备参考文章
https://blog.csdn.net/qq_45755030/article/details/120194126?spm=1001.2014.3001.5501
宿主机(192.168.25.42)-openvswitch桥名cxx2上创建的相关参数:
<domain type='kvm'>
<name>cxx_openvswitch</name> //域名-虚拟机名称
<uuid>f5b8c05b-9c9a-3211-49b9-2bd635f7e2aa</uuid>
<memory>524288</memory> //内存大小,以K为单位
<currentMemory>524288</currentMemory>
<vcpu>2</vcpu> //虚拟CPU个数
<os>
<type arch='x86_64' machine='pc'>hvm</type> //x86_64架构的hvm(全虚拟化)虚拟机
<boot dev='cdrom'/> //从光盘启动
<boot dev='hd'/>//从硬盘启动
<bootmenu enable='yes' timeout='3000'/>//启动菜单,,用于选择启动方式若没有此配置,则每次启动虚拟机都会进入安装界面
</os>
<features>
<acpi/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash> //供virsh使用
<devices>
//调用的资源池中的虚拟磁盘
<disk type='volume