本文主要介绍OvS编译安装和使用方法。
1 安装CentOS虚拟机
1.1 安装VMware
- 进入VMware官网:VMware官网官网地址
- 选择“资源”→“产品下载”→“VMware Workstation Pro”,下载产品→“VMware Workstation 17.0.0 Pro for Linux”,转至下载→“立即下载”
- 添加安装包运行权限:chmod a+x Vmware-Workstation-Full-*.x86_64.bundle
- 安装Vmware:sudo ./Vmware-Workstation-Full-*.x86_64.bundle
- 下载CentOS镜像:CentOS镜像下载地址
1.2 安装CentOS虚拟机
- 打开VMware Workstation
- 点击“Create a New Virtual Machine”→选择“Typical”→选择“I will install the operating system later”→选择“Linux”,版本选择“CentOS 7 64-bit”→设置安装路径→设置磁盘大小,50G→选择“Customize Hardware”
- “Memory”选择4GB
- “Processor”选择2×2
- “CD/DVD”选择“Use ISO image”,选择镜像文件
- “Network Adapter”中的“Network Connection”选择Bridged。
- 选择“Start up this guest operating system”→选择“Install CentOS 7”(安装期间鼠标无法使用,可按Ctrl+Alt回到桌面)→选择语言→进行下述设置后点击“Begin Installation”开始安装
- “DTAE & TIME”设置为“Shanghai”
- “SOFTWARE SELECTION”选择“GNOME Desktop”和“Development Tools”
- “INSTALLATION DESTINATION”,默认设置,点击Done回到主页。
- 设置“ROOT PASSWORD”和“USER CREATION”,安装完后Reboot
- 点击“LINCESE INFORMATION”,勾选“I accept the license agreement”,设置完成后点击“FINISH CONFIGURATION”
此CentOS虚拟机作为主机,在此虚拟机中安装OvS和两个虚拟机。为区分,后文将此虚拟机称为物理机。
1.3 安装KVM和QEMU
- 检测当前CPU是否支持虚拟化:grep -Ei ‘vmx|svm’ /proc/cpuinfo
若无输出,可关闭虚拟机,在虚拟机“Settings”→“Hardware”→“Processors”→勾选“Virtualize Intel VT-x/EPT or AMD-V/RVI”,点击确定后重启虚拟机。 - 安装KVM和QEMU
sudo yum install kvm qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer libgovirt –y
2 编译安装配置OvS
2.1 编译安装OvS
- 下载OvS安装包
执行uname -a查询CentOS内核版本为3.10.0,对应的OvS版本为2.9.x,内核版本与OvS版本对照参考版本匹配,OvS下载网址为OvS下载地址 - 安装OvS:创建安装脚本install_ovs.sh,内容如下
#!/bin/bash
tar -zxvf ./openvswitch-2.9.0.tar.gz &&
cd openvswitch-2.9.0 &&
./configure &&
make &&
make install &&
make modules_install ;
/sbin/modprobe openvswitch &&
/sbin/lsmod | grep openvswitch ;
echo 'export PATH=$PATH:/usr/local/share/openvswitch/scripts' > /etc/profile.d/ovs.sh &&
source /etc/profile.d/ovs.sh &&
ovs-ctl start &&
echo "openvswitch is installed and started successfully" &&
ps -e |grep ovs
- 添加权限:chmod +x install_ovs.sh
- 执行脚本:sudo ./ install_ovs.sh
2.2 配置网桥
配置网桥,将物理机网卡和虚拟机网卡接到网桥上
- 添加br0网桥:ovs-vsctl add-br br0
- 参考网卡配置网桥,内容如下:sudo gedit /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
STP=yes
BOOTPROTO=none
ONBOOT=yes
TYPE=OVSBridge
DEVICETYPE=ovs
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
IPADDR=xx.xx.xx.xx
NETMASK=xx.xx.xx.xx
GATEWAY=xx.xx.xx.xx
DNS1=xx.xx.xx.xx
NAME=br0
- 修改物理机网卡配置:sudo gedit /etc/sysconfig/network-scripts/ifcfg-ens33
- TPYE改为OVSPort
- BOOTPROTO改为none
- DEFROUTE改为no
- 删除IPADDR、PREFIX、DNS1和DNS2
- 添加DEVICETYPE=ovs
- 添加OVS_BRIDGE=br0
- 将虚拟机的网卡连接到br0网桥上并重启网络:ovs-vsctl add-port br0 ens33 && systemctl restart network
- 出现下图所示提示,这是因为Workstation 不允许虚拟网络适配器进入混杂模式,除非运行 Workstation 的用户有权进行这样的设置。
- 在Ubuntu中执行sudo chmod a+rw /dev/vmnet0,所有用户有修改vmnet的权限,重启CentOS虚拟机。
- 出现下图所示提示,这是因为Workstation 不允许虚拟网络适配器进入混杂模式,除非运行 Workstation 的用户有权进行这样的设置。
- 重启网络后有线连接没有了,如果新建一个的话会在/etc/sysconfig/network-scripts/中重新产生一个网络连接,并非连接到br0上的ens33网络。这个现象是正常的,执行ifconfig查看网络配置,测试网络是否正常。
- 将虚拟机网卡连接到网桥上
- 创建bro.xml文件,内容如下
<network>
<name>br0</name>
<bridge name="br0"/>
<forward mode="bridge"/>
<virtualport type="openvswitch"/>
</network>
- 创建虚拟网络:sudo virsh net-define ./br0.xml && virsh net-start br0 && virsh net-autostart br0 && virsh net-list -all
3 OvS虚拟机互通测试
3.1 创建虚拟机1和2
- 打开虚拟机管理器:sudo virt-manager
- 点击File→New Virtual Machine→Loacl install media→Forward→Use ISO image,点击Browse→Browse Local→选择镜像,Open→Forward→Memory:2048;CPUs:1→Disk:15GB→Name:centos-1,Network selection选择Virtual network ‘br0’: Bridge network (OpenVSwitch)→Finish,按照提示完成安装。
- 同样的方式创建虚拟机centos-2
- 查看物理机的网桥:ovs-vsctl show,ens33为物理机端口,vnet0和vnet1分别为虚拟机centos-1和centos-2的端口。
3.2 设置网络连接
- 物理机
文章来源:https://www.toymoban.com/news/detail-756544.html
- 虚拟机
3.3 添加流表
- 设置从vnet0端口进入的报文从vnet1端口出;从vnet1端口进入的报文从vnet0端口出
- 添加流表项:ovs-ofctl add-flow br0 in_port=vnet0,actions=output:vnet1
- 添加流表项:ovs-ofctl add-flow br0 in_port=vnet1,actions=output:vnet0
- 或者设置源mac为52:54:00:37:e0:17的报文从vnet1端口出;设置源mac为52:54:00:23:0a:40的报文从vnet0端口出
- 添加流表项:ovs-ofctl add-flow br0 dl_src=52:54:00:37:e0:17,actions=output:vnet1
- 添加流表项:ovs-ofctl add-flow br0 dl_src=52:54:00:23:0a:40,actions=output:vnet0
- 或者设置目的ip为10.159.11.21的报文从vnet0端口出;设置目的ip为10.159.11.22的报文从vnet1端口出
- 添加流表项:ovs-ofctl add-flow br0 arp,arp_tap=10.159.11.21,actions=output:vnet0
- 添加流表项:ovs-ofctl add-flow br0 ip,nw_dst=10.159.11.21,actions=output:vnet0
- 添加流表项:ovs-ofctl add-flow br0 arp,arp_tap=10.159.11.22,actions=output:vnet1
- 添加流表项:ovs-ofctl add-flow br0 ip,nw_dst=10.159.11.22,actions=output:vnet1
3.4 互联测试
最终形成的网桥如下图所示,使用ping命令测试centos-1和centos-2,二者可以互通。
文章来源地址https://www.toymoban.com/news/detail-756544.html
到了这里,关于Open vSwitch安装使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!