云网牛站
所在位置:首页 > Linux教程 > 在CentOS/RHEL/Fedora上配置Open vSwitch的方法

在CentOS/RHEL/Fedora上配置Open vSwitch的方法

2020-06-07 17:39:36作者:令华稿源:云网牛站

本文将向您展示如何配置网络接口以用于Open vSwitch,将演示如何创建VLAN接口,如何通过手动编辑配置文件或使用辅助命令行工具(例如os-net-config)来使用Open vSwitch创建OVS Bridge和Bonds。我发现使用os-net-config脚本是配置Open vSwitch的最佳和有效方法,而不是在CentOS、RHEL或Fedora Linux系统中手动编辑配置文件。

 

一、在CentOS、RHEL、Fedora上安装Open vSwitch

您可能已经在要使用的计算机上安装了Open vSwitch。如果未安装,请参考在CentOS 8/RHEL 8上安装Open vSwitch的方法

对于CentOS 7,使用以下命令:

sudo yum install -y epel-release centos-release-openstack-train

sudo yum install openvswitch libibverbs

对于Fedora:

sudo dnf install openvswitch libibverbs

激活并启用openvswitch服务:

sudo systemctl enable --now openvswitch

通过检查服务状态进行验证,运行systemctl status openvswitch,会看到Active: active的回显信息。

 

二、安装os-net-config网络配置工具

接下来,让我们安装os-net-config CLI工具,该工具通过YAML或JSON文件格式提供主机网络的配置。

默认情况下,os-net-config使用位于/etc/os-net-config/config.yaml的YAML配置文件,但这可以通过--config-file(-c) CLI选项来自定义。

1、从OpenStack存储库安装os-net-config

如果已配置OpenStack存储库,则可以从中安装该工具:

sudo yum install os-net-config

查看有关包装的更多详细信息:

$ rpm -qi os-net-config

在CentOS/RHEL/Fedora上配置Open vSwitch的方法

2、使用Pip安装os-net-config

os-net-config网络配置工具作为python软件包分发,可以通过pip、pip3安装:

对于Fedora/CentOS 8:

sudo dnf install python3-pip

对于CentOS 7:

sudo yum install -y epel-release

sudo yum -y install python-pip

sudo pip install os-net-config

如果安装成功,您应该在末尾看到类似于以下内容的输出:

在CentOS/RHEL/Fedora上配置Open vSwitch的方法

安装后,确认命令是否在您的PATH中:

$ which os-net-config

/usr/bin/os-net-config

 

三、使用os-net-config配置开放式vSwitch

安装了openvswitch软件包和os-net-config命令行工具后,我们可以根据您的用例要求开始配置OVS接口、bridge和bonding。

示例1:具有静态IP地址的单接口配置

创建一个YAML配置文件:

$ vim ovs-interface.yml

如下配置:

network_config:

 - type: interface

  name: eth1

  use_dhcp: false

  use_dhcpv6: false

  addresses:

  - ip_netmask: 172.21.200.10/24

  routes:

   - ip_netmask: 0.0.0.0/0

    next_hop: 172.21.200.254

    default: true

这将为eth1接口配置静态IP地址172.21.200.10/24和网关172.21.200.254。

应用配置:

$ sudo os-net-config -c ovs-interface.yml

示例2:使用单个连接的接口(端口)配置OVS bridge

对于网桥创建,配置文件如下所示:

$ vim ovs-bridge-single-interface.yml

network_config:

 - type: ovs_bridge

  name: br-ex

  use_dhcp: false

  use_dhcpv6: false

  addresses:

  - ip_netmask: 172.21.200.10/24

  routes:

   - ip_netmask: 0.0.0.0/0

    next_hop: 172.21.200.254

    default: true

  members:

   -

    type: interface

    name: eth1

进行更改,然后应用配置os-net-config -c <yaml-file>。

示例3:在OVS绑定的顶部配置OVS bridge

这是在OVS绑定上创建的OVS bridge的配置:

network_config:

 - type: ovs_bridge

  name: br-ex

  use_dhcp: true

  members:

   - type: ovs_bond

    name: bond1

    members:

     - type: interface

      name: em1

     - type: interface

     name: em2

示例4:在OVS bridge顶部配置标记的VLAN接口

network_config:

 - type: ovs_bridge

  name: br-ctlplane

  use_dhcp: true

  members:

   - type: interface

    name: em1

   - type: vlan

    vlan_id: 20

    addresses:

     - ip_netmask: 192.0.2.1/24

示例5:创建一个OVS绑定

本示例将仅创建OVS绑定:

network_config:

 - type: ovs_bridge

  name: bond1

  use_dhcp: true

  members:

   - type: interface

    name: eno1

   - type: interface

    name: eno2

下面将检查OVS配置。

应用OVS配置后,网络配置脚本将自动添加到/etc/sysconfig/network-scripts/目录:

$ ls /etc/sysconfig/network-scripts/

您可以使用ovs-vsctl命令验证OVS设置和端口连接:

$ ovs-vsctl show

 

四、使用OVS创建KVM网络

如果您将Open vSwitch与KVM虚拟化一起使用,则需要定义虚拟机将使用的网络。

创建一个新的bridge XML文件:

$ vim kvm-ovs.xml

将网桥详细信息添加到文件:

<network>

 <name>ovs-bridge</name>

 <forward mode='bridge'/>

 <bridge name='br-ex'/>

 <virtualport type='openvswitch'/>

</network>

注:

ovs-bridge是要创建的libvirt网络的名称。

br-ex是创建的网络将使用的OVS桥的名称。

要从XML文件定义网络而不启动它,请使用:

sudo virsh net-define  kvm-ovs.xml

要启动(先前定义的)非活动网络,请使用:

sudo virsh net-start ovs-bridge

要将网络设置为在服务启动时自动启动:

sudo virsh net-autostart  ovs-bridge

检查以确认自动启动标志是否设置为“yes”,持久性也应显示为“yes”:

$ sudo virsh net-list --all

如下回显信息:

在CentOS/RHEL/Fedora上配置Open vSwitch的方法

根据上面的截图,可以看到Autostart和Persistent都是yes。

 

相关主题

在KVM/VirtualBox/VMWare/Parallels上使用Vagrant运行CentOS 8 VM

精选文章
热门文章