Open vSwitch安装使用


本文主要介绍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虚拟机。

在这里插入图片描述

  • 重启网络后有线连接没有了,如果新建一个的话会在/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 设置网络连接

  • 物理机

在这里插入图片描述

  • 虚拟机
    在这里插入图片描述

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,二者可以互通。
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值