Open vSwitch操作手册
实验2:OpenvSwitch虚拟交换机实践
实验2:OpenvSwitch虚拟交换机实践
作业链接:
⼀、实验⽬的
1. 能够对Open vSwitch进⾏基本操作;
2. 能够通过命令⾏终端使⽤OVS命令操作Open vSwitch交换机,管理流表;
3. 能够通过Mininet的Python代码运⾏OVS命令,控制⽹络拓扑中的Open vSwitch交换机
⼆、实验环境
1. 下载虚拟机软件Oracle VisualBox 或 VMware;
2. 在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;
三、实验要求
(⼀)基本要求
1.创建OVS交换机,并以ovs-switchxxx命名,其中xxx为本⼈在选课班级中的序号,例如ovs-switch001, ovs-switch088等。在创建的交换机上增加端⼝p0和p1,设置p0的端⼝号为100,p1的端⼝号为101,类型均为internal;为了避免⽹络接⼝上的地址和本机已有⽹络地址冲突,需要创建虚拟⽹络空间(参考命令netns)ns0和ns1,分别将p0和p1移⼊,并分别配置p0和p1端⼝的ip地址为19
2.168.0.100、
192.168.0.101,⼦⽹掩码为255.255.255.0;最后测试p0和p1的连通性。
创建ovs交换机,并添加端⼝和配置虚拟空间
#创建ovs交换机
sudo ovs-vsctl add-br ovs-switch012
#添加p0、p1端⼝,并按要求配置
sudo ovs-vsctl add-port ovs-switch012 p0 -- set Interface p0 ofport_request=100 type=internal
ovs常用命令
OVS常用命令
概述
Open vSwitch(OVS)是一种开源的虚拟交换机软件,用于实现软件定义网络(SDN)。OVS提供了一系列的命令,用于管理和配置交换机。本文将介绍OVS常用命令的用法及其相关参数。
OVS命令的基本语法
OVS命令的基本语法如下所示:
ovs-ofctl <命令> <选项> <交换机名称> <参数>
其中,ovs-ofctl是使用OVS命令的基本命令,<命令>是具体的操作命令,<选项>是命令的可选参数,<交换机名称>是需要操作的交换机名称,<参数>是对应命令的参数。
OVS命令的常用操作
本节将介绍OVS命令的常用操作,包括添加流表、修改流表、删除流表等。
添加流表
使用ovs-ofctl命令可以向交换机添加流表。添加流表的命令如下:
ovs-ofctl add-flow <交换机名称> <流表规则>
其中,<流表规则>是要添加的流表规则,可以指定流表的匹配字段、动作等。
修改流表
使用ovs-ofctl命令可以修改交换机上已有的流表。修改流表的命令如下:
ovs-ofctl mod-flow <交换机名称> <旧流表规则> <新流表规则>
其中,<旧流表规则>是要修改的旧流表规则,<新流表规则>是修改后的新流表规则。
删除流表
使用ovs-ofctl命令可以删除交换机上的流表。删除流表的命令如下:
ovs-ofctl del-flows <交换机名称> [<流表规则>]
ovs常用命令
ovs常用命令
OVs(Open vSwitch)是一种开源的虚拟交换机,主要用于虚拟化环境中的网络管理。在使用 OVs 进行网络管理时,我们需要掌握一些常用的命令,以便更有效地进行网络配置和管理。以下是 OVs 常用的一些命令及其介绍:
1. ovs-vsctl add-br <bridge>:创建一个新的虚拟交换机。
2. ovs-vsctl show:显示当前 OVs 系统中所有交换机、端口和连接信息。
3. ovs-vsctl add-port <bridge> <port>:向虚拟交换机添加一个新的端口。
4. ovs-vsctl del-port <bridge> <port>:从虚拟交换机中删除一个
指定的端口。
5. ovs-ofctl add-flow <bridge> <flow>:添加一个新的流规则。
6. ovs-ofctl dump-flows <bridge>:显示指定交换机的流规则信息。
7. ovs-ofctl del-flows <bridge>:删除指定交换机的所有流规则。
8. ovs-ofctl mod-flows <bridge> <flow>:修改指定交换机的流规则信息。
9. ovs-ofctl add-group <bridge> <group>:添加一个新的组规则。
10. ovs-ofctl dump-groups <bridge>:显示指定交换机的组规则信息。
OpenvSwitch完全使用手册
OpenvSwitch完全使用手册
本文主要参考Overview of functionality and components以及Frequently Asked
Questions以及结合自己的理解。
/index.php/openv-switch-full-guide/
1 什么是OpenvSwitch
OpenvSwitch,简称OVS是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and VirtualBox多种虚拟化技术。OpenvSwitch还支持多个物理机
的分布式环境。
在这种某一台物理机器的虚拟化环境中,一个虚拟交换机(vswitch)主要有如下两个作用:
∙传递虚拟机VM之间的流量
∙以及实现VM和外界网络的通信
如下图所示:
整个OVS代码用C写的。目前有以下功能:
∙Standard 802.1Q VLAN model with trunk and access ports
∙NIC bonding with or without LACP on upstream switch
∙NetFlow, sFlow(R), and mirroring for increased visibility
∙QoS (Quality of Service) configuration, plus policing
∙GRE, GRE over IPSEC, VXLAN, and LISP tunneling
∙802.1ag connectivity fault management
openvswitch的安装与运行
How to Install Open vSwitch on Linux and FreeBSD
================================================
This document describes how to build and install Open vSwitch on a generic Linux or FreeBSD host. For specifics around installation on a specific platform, please see one of these files:
- INSTALL.Debian
- INSTALL.Fedora
- INSTALL.RHEL
- INSTALL.XenServer
Build Requirements
------------------
To compile the userspace programs in the Open vSwitch distribution, you will need the following software:
- GNU make.
- The GNU C compiler. We generally test with version 4.1, 4.2, or 4.3.
- libssl, from OpenSSL, is optional but recommended if you plan to connect the Open vSwitch to an OpenFlow controller. libssl is required to establish confidentiality and authenticity in the connections from an Open vSwitch to an OpenFlow controller. If libssl is installed, then Open vSwitch will automatically build with support for it.
Linux高级网络虚拟化技术使用OpenvSwitch和NFV
Linux高级网络虚拟化技术使用
OpenvSwitch和NFV
虚拟化技术是现代计算机技术中的重要组成部分,它通过将物理资源抽象为虚拟资源,提供了更高的资源利用率和灵活性。网络虚拟化技术是虚拟化技术的重要分支之一,它可以将物理网络资源划分为多个虚拟网络,从而满足不同用户和应用对网络资源的需求。在Linux操作系统中,OpenvSwitch和NFV是两种常用的高级网络虚拟化技术,本文将介绍它们的使用方法和优势。
1. OpenvSwitch
OpenvSwitch是一种基于软件的虚拟化交换机,它可以在Linux 内核中实现虚拟网络的划分和管理。OpenvSwitch可以通过创建虚拟网桥、虚拟端口等方式,将物理网络资源划分为多个虚拟网络,每个虚拟网络都可以独立配置和管理。OpenvSwitch还支持各种网络协议(如VLAN、OpenFlow等),可以实现更灵活的网络控制和管理。
2. NFV
NFV(Network Function Virtualization)是一种将网络功能虚拟化的技术,它可以将传统的网络设备(如路由器、防火墙等)以软件的形式运行在通用服务器上。NFV可以通过将网络功能虚拟化,提升网络设备的灵活性和可扩展性,降低网络设备的成本和维护复杂性。NFV技术通常和OpenvSwitch一起使用,通过将虚拟网络功能与虚拟网络结合,实现更高级的网络虚拟化。
3. OpenvSwitch和NFV的使用
在Linux系统中,可以通过以下步骤来使用OpenvSwitch和NFV
进行高级网络虚拟化:
OpenSwitch OPX 安装指南说明书
OpenSwitch OPX Installation Guide with Enhancement Package
Release 3.1.0
2018 - 9 Rev. A02
1 Getting started (4)
2 Hardware support (5)
3 Installation (6)
4 Automatic installation (7)
5 Manual installation (8)
6 Install enhancement package (9)
7 Log into switch (10)
8 Support resources (11)
Contents3
Getting started OpenSwitch OPX is implemented using a standard Linux distribution — Debian Stretch. OpenSwitch OPX is binary-compatible with Debian Linux packages.
Linux kernel Unmodified Linux kernel included with Debian distribution provides a robust base to support current state-of-the-art and future networking.
Linux IP stack Rich feature set provided by the Linux standard IP stack without vendor-specific changes.
openvswitch 参数
一、OpenvSwitch 简介
OpenvSwitch 是一个用于虚拟化的开源软件交换机,它可以在虚拟化环境中提供网络连接,可用于构建和管理虚拟化网络。它支持多层交
换功能、QoS 等多种网络功能,可以与虚拟化评台(如KVM、Xen、VMware等)进行集成,提供虚拟机间和虚拟机与物理网络之间的通信。
二、OpenvSwitch 参数介绍
1. Bridge 参数
在 OpenvSwitch 中,Bridge 是一个虚拟的二层交换机,它用于连接
不同的端口和虚拟机,通过设置 Bridge 参数可以对其进行配置和管理。- stp 参数:STP(Spanning Tree Protocol)是一种用于防止网络环路的协议,可以通过设置该参数来启用或者禁用 STP 功能。
- f本人l-mode 参数:当 Bridge 下的所有端口都失效时,可以通过
设置 f本人l-mode 参数来决定 Bridge 的行为,可以选择 secure 或
者 standalone 模式。
2. Port 参数
在 OpenvSwitch 中,Port 是 Bridge 的具体端口,用于连接外部网
络或虚拟机,通过设置 Port 参数可以对其进行配置和管理。
- tag 参数:可以为 Port 设置 VLAN 标签,用于实现 VLAN 的隔离和区分。
- trunks 参数:可以为 Port 设置可以通过的 VLAN ID,从而实现多
个 VLAN 的通信。
3. Controller 参数
Controller 是 OpenvSwitch 的控制器,用于控制交换机的行为,通过设置 Controller 参数可以对其进行配置和管理。
OpenvSwitch应用实践
OpenvSwitch应⽤实践
1. Open vSwitch简介
Open vSwitch(OVS)作为⼀款开源的OF软件交换机,基于与平台⽆关的C代码实现,容易移植到其他环境,既能够作为虚拟机管理平台的软件交换机,也可以作为交换芯⽚的控制堆栈。
1.1 OVS重要概念
Bridge代表⼀个以太⽹交换机(Switch);
交换机包含端⼝(Ports):Normal、Internal、Patch、Tunnel
⼀个端⼝可以有⼀个或多个接⼝,允许每个端⼝连接不⽌⼀个的接⼝
包是通过流转发的
1.2 OVS系统架构
OVS架构分为内核空间、⽤户空间、配置管理层三部分。
1.2.1 OVS内核空间
内核空间包含了流表和⼀个或多个datapath模块,datapath模块类似于⽹桥,主要负责对数据分组进⾏操作。另外,内核空间中维护的流表规定了针对数据分组应该进⾏的操作,datapath通过关联流表与其协同完成分组处理过程。
(1)datapath:主要负责实际的数据分组处理,它同时于vswitched和流表保持关联,使OVS上层可以对数据分组处理进⾏控制。
(2)流表:流表中存储着分组处理的依据----流表项,它指导datapath做出正确的分组处理判断,同时它还与vswitched上下关联,是OVS上层对底层分组处理过程进⾏管理的接⼝。
1.2.2 OVS⽤户空间
⽤户空间中运⾏着OVS的守护进程(vswitched)和数据库(ovsdb),它们是OVS的核⼼功能模块。vswitched类似于OVS的⼼脏,⽤来维持OVS的声明周期,⽽ovsdb就像OVS的⼤脑,它存储着OVS的配置信息和数据流信息,vswitched和ovsdb协调⼯作确保OVS健康的运⾏状态。
OpenvSwitch安装及配置
Open vSwitch 安装及配置
一、 O pen vSwitch 简介
1.1概述
Open vSwitch 是一个高质量的、多层虚拟交换机,使用开源Apache 2.0许可协议,由Nicira Networks 开发,主要实现代码为可移植的C 代码。
它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP , 802.1ag )。此外,它被设计位支持跨越多个物理服务器的分布式环境,类似于VMware 的vNetwork 分布式vswitch 或Cisco Nexus 1000 V 。 Open vSwitch 支持多种linux 虚拟化技术,包括Xen/XenServer , KVM ,和 VirtualBox 。
1.2模块介绍
当前最新代码包主要包括以下模块和特性:
ovs-vswitchd 主要模块,实现switch 的daemon ,包括一个支持流交换的Linux 内核模块; ovsdb-server 轻量级数据库服务器,提供ovs-vswitchd 获取配置信息;
ovs-brcompatd 让ovs-vswitch 替换Linux bridge ,包括获取bridge ioctls 的Linux 内核模块; ovs-dpctl 用来配置switch 内核模块;
一些Scripts and specs 辅助OVS 安装在Citrix XenServer 上,作为默认switch ; ovs-vsctl 查询和更新ovs-vswitchd 的配置;
openvswitch 规则
openvswitch 规则
在计算机网络中,OpenvSwitch(OVS)是一种开源的多层虚拟交换机软件。
它允许网络管理员通过软件定义网络(SDN)的原则来管理和控制网络流量。在OpenvSwitch中,规则(Rules)是控制交换机行为的一种方式,可以用来限制流量、实现流量重定向等。下面将介绍OpenvSwitch规则的使用方法。
要创建和管理OpenvSwitch规则,可以使用命令行工具ovs-ofctl(OpenFlow Control)。通过该工具,可以向OVS交换机添加、修改和删除规则,并且可以指
定规则的匹配条件和动作。
要添加规则,可以使用以下命令:
ovs-ofctl add-flow <switch名称> <匹配条件> <动作>
匹配条件是指指定流量的特征,可以根据报文的IP地址、端口号、协议等进
行匹配。动作是指对匹配到的流量进行的处理,例如将流量重定向到指定的端口,或者限制流量的带宽。
例如,要在OpenvSwitch中添加一条规则,将源IP地址为10.0.0.1的流量重定
向到端口2,可以使用以下命令:
ovs-ofctl add-flow myswitch ip_src=10.0.0.1,actions=output:2
同样地,可以使用ovs-ofctl命令来修改和删除规则。要修改规则,可以使用
ovs-ofctl mod-flow命令,指定要修改的规则的匹配条件和新的动作。要删除规则,可以使用ovs-ofctl del-flows命令,指定要删除的规则的匹配条件。
【个人总结系列-14】OpenvSwitch使用及XEN使用总结
OpenvSwitch使用及XEN使用总结
1.1 OpenvSwitch(OVS)的使用
⏹OVS网桥管理命令:
⏹ovsdb数据库操作:
ovsdb是一个非常轻量级的数据库,与其说它是一个数据库,不如说它是一个提供增删查改等功能的临时配置缓存,之所以这么说,是因为ovsdb数据库的根本就未使用多少数据库技术,如SQL语言查询、存储过程等等。ovsdb 数据库通过模式文件“openvswitch-1.1.0pre2/vswitchd/vswitch.ovsschema”,如要定制ovsdb数据库,可通过更改vswitch.ovsschema 文件实现。数据库操作的一般格式为:ovs-vsctl list/set/get/add/remove/clear/destroy table record column [value]
默认情况下ovsdb中有以下数据表:
bridge、controller、interface、mirror、netflow、open_vswitch、port、qos、queue、ssl、sflow。即table可为上面的任一个。record为数据表中name字段的值,column为数据表任一个字段的字段名,value字段值。
基本操作:
(1)查看bridge数据表中的所有记录
(2)获得bridge数据表_uuid字段的值
(3)设置bridge数据表datapath_type字段的值
(4)清除bridge数据表flood_vlans字段的值
ovs-vsctl remove bridge xenbr0 flood_vlans 23
open vswitch的工作流程
一、概述
Open vSwitch(OVS)是一个用于虚拟化网络的开源软件交换机。它通过软件定义网络(SDN)的方式,实现了对网络流量的灵活控制和管理。在Open vSwitch中,所有网络流量都会经过交换机进行处理和转发,因此了解其工作流程对于理解和使用Open vSwitch至关重要。
二、转发流程
在Open vSwitch中,数据包经过以下几个步骤进行处理和转发:
1. 接收数据包
当数据包到达交换机时,首先会被交换机的物理或虚拟端口所接收。
2. 网络流处理
接收到数据包后,交换机会根据其目标MAC位置区域进行流表匹配。如果匹配成功,则根据流表中配置的操作执行相应的动作,如转发到特定端口、执行安全策略等。
3. 数据包处理
交换机会根据流表中的指令对数据包进行处理,如修改源MAC位置区域、修改VLAN标签等。
4. 转发数据包
经过处理后的数据包会被转发到目标端口,继续传输。
5. 数据包统计
交换机会对转发的数据包进行统计,包括流量量、丢包率等信息。
三、流表管理
流表是Open vSwitch中非常重要的概念,它定义了对数据包的处理规则和动作。流表由控制器通过OpenFlow协议下发给交换机,并且可以动态修改和更新。流表包括以下几个重要的字段:
1. 匹配字段
用于匹配数据包的特征,如源MAC位置区域、目标MAC位置区域、IP位置区域、端口号等。
2. 动作字段
定义了当数据包匹配成功时,要执行的动作,如转发到特定端口、丢弃、执行安全策略等。
3. 优先级字段
用于定义流表的优先级,当数据包匹配多条流表时,会按照优先级高低依次匹配。
OpenvSwitch+OpenFlow中文
OpenvSwitch + OpenFlow:Let’s get start
在Fedora完成OpenvSwitch+OpenFLow部署所需要的用户空间工具、必备的内核模块都应经包含在Fedora的发布版中了。我在弄清楚这些包的时候花了很多时间,现在,这里有介绍了如何使用这些组件的信息。
*注:下文中简称OpenvSwitch为OVS
1、简介:
自从2.4版本以来,OVS对于内核中网桥模块来说是可选择的。OVS比标准的网桥模块有非常大的改进。这些改进都会在这个网站中进行了详细的阐述。然而在这些增强的功能中,有一项便是:支持OpenFlow协议。
从概念上来讲,交换机功能可以分成两个部分:控制层和数据层。而控制层是交换机处理发现、路由、通路计算,与其他交换机通信等功能的核心。控制层创建一个转发流表,数据层根据这些流表以线路速度处理进入交换机的数据包。OpenFlow协议可以将将交换机的控制层分离到控制器中,并且用软件定义整个网络的行为(也被称为SDN)。
与这种(OpenFlow)设置相区别,现有的交换机使用专有的下层工具/协议来进行管理。OpenFlow成为一种可以开放的标准,它可以不为下层绑定专有的工具而统一的标准管理来自不同供应商的交换机。
2、安装:
在Fedora中,OVS的实现分为两个部分:OVS内核模块(数据层data pane)和用户空间工具(控制层control pane)。由于输入的数据包要尽快处理,OVS的数据层被推送到内核空间。
为了使用OVS进行网络的虚拟化时,OVS服务必须启动,并且命令行工具必须已经正确的配置,OVS是架在网桥上的。在Fedora中,虚拟交换机工作在两种模式下:独立主机和OpenFlow模式。
Openvswitch研发白皮书v1.4
技术文件
技术文件名称:OVS安装部署维护使用说明书技术文件编号:
版本:V1.4
共XX页
(包括封面)
拟制
审核
批准
修改记录
目录
(包括封面) (1)
1引言 (3)
1.1编写目的 (3)
1.2术语、定义 (3)
1.3缩略语 (3)
1.4参考资料 (3)
1.4.1きりんさん日記: / (3)
1.4.2Openvswitch-1.4.1中README.RHEL (3)
1.4.3《Network Warrior》中文版 (3)
2安装 (3)
2.1安装概述 (3)
2.2环境配置 (3)
2.3部署流程 (4)
2.3.1 CentOS 6.2编译环境的安装及部署 (4)
2.3.2 CentOS6.2 下Openvswitch编译安装及部署 (4)
2.3.3 Ubuntu12.04 下Openvswitch编译安装及部署 (7)
2.3.4 NoX 的编译与安装部署 (8)
3常用虚机操作 (9)
3.1创建和启动虚拟机 (9)
3.1.1 创建虚拟机 (9)
3.1.2 启动虚拟机 (9)
3.2VLAN配置 (9)
3.2.1 Host VLAN配置(以vlan 号61为例) (9)
3.2.2 虚机VLAN配置 (10)
3.2.3 虚机VLAN测试 (11)
3.3GRE配置与测试 (13)
3.3.1 Host 上的GRE配置 (13)
3.3.2 GRE隧道的测试 (14)
3.4GRE+VLAN配置与测试 (14)
4疑难问题 (15)
1引言
1.1编写目的
本文档编写目的是详细描述产品OVS安装部署方法,预期的读者和阅读建议预期的读者和阅读建议参见表1.1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1、Open vSwitch各模块简要介绍如下: (1)
2、基于 Open vSwitch 的 OpenFlow 实践(ubuntu 14.04) (1)
2.1 OpenvSwitch安装 (1)
2.2 OpenFlow 命令 (3)
2.4修改数据包 (9)
2.5重定向数据包 (10)
2.6修改vlan tag (11)
3、Open vSwitch连接到OpenDaylight (14)
4、Open vSwitch常用操作 (17)
1、OVS各模块简要介绍如下:
ovs-vswitchd:主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;ovsdb-server:轻量级数据库服务器,提供ovs-vswitchd获取配置信息;
ovs-dpctl:用来配置switch内核模块;
一些Scripts and specs 辅助OVS安装在Citrix XenServer上,作为默认switch;
ovs-vsctl:查询和更新ovs-vswitchd的配置;
ovs-appctl:发送命令消息,运行相关daemon。
OVS提供了支持OpenFlow的特性实现,包括:
ovs-ofctl:查询和控制OpenFlow交换机和控制器;
ovs-pki:OpenFlow交换机创建和管理公钥框架;
ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息。
2、基于Open vSwitch 的OpenFlow 实践(ubuntu 14.04)
1.OpenFlow 命令如何创建交换机?
2.如何将一个端口添加到交换机上?
3.如何查看ovs结构?
2.1 OpenvSwitch安装
查看ubuntu版本:
Ubuntu 14.04的OVS版本,已经是2.02,所以默认安装就可以。不过不同的发行版,ovs 的名字会有点不同。
本次实验我们选择openvswitch-switch安装。
成功安装时在命令行可看到openvswich-switch start/running的字样。
执行
查看OVS运行情况
OVS中最重要的组件是ovs-vswitchd,它实现了OpenFlow交换机的核心功能,并且通过netlink协议直接和OVS的内核模块进行通信。交换机运行过程中,ovs-vswitchd还会将交换机的配置、数据流信息及其变化保存到数据库ovsdb中,因为这个数据库由ovsdb-server直接管理,所以ovs-vswitchd需要和ovsdb-server通过UNIX socket机制进行通信以获得或者保存配置信息。数据库ovsdb的存在,使得OVS交换机的配置能够被持久化存储,即便设备被重启后相关的OVS配置仍旧能够存在。
查看OVS版本,ubuntu默认的OVS版本是2.0.2。
查看OVS 支持的OpenFlow 协议的版本,其中0x1代表OpenFlow1.0,0x4代表OpenFlow1.3
2.2 OpenFlow 命令
创建一个OVS交换机
创建一个端口p0
,设置端口p0 的OpenFlow 端口编号为100。
设置网络接口设备类型为”internal”。
创建一个name space:ns0,把p0端口接入到ns0里,并且配置ip地址192.168.1.100/24
重复步骤创建p2
查看创建的交换机信息,获得dpid,端口openflow端口编号。
获取openflow端口编号
查看datapath 的信息互ping测试。
查看mac地址,然后运行。
有253个table;
查看交换机中的所有流表项。
执行时如果出现图示错误,将
openvswitch-switch重启一次。
输出如下信息:
表示此时actions=NORMAL表示ovs采用匹配MAC地址的形式转发包。
2.3流规则管理
每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分。
基本字段包括:
•生效时间duration_sec
•所属表项table_id
•优先级priority、
•处理的数据包数n_packets
•空闲超时时间idle_timeout 等空闲超时时间idle_timeout 以秒为单位,超过设置的空闲超时时间后该流规则将被自动删除,空闲超时时间设置为0 表示该流规则永不过期,idle_timeout 将不包含于ovs-ofctl dump-flows brname 的输出中。
条件字段包括:
•输入端口号in_port
•源目的mac 地址dl_src/dl_dst
•源目的ip 地址nw_src/nw_dst
•数据包类型dl_type
•网络层协议类型nw_proto
这些字段可以任意组合,但在网络分层结构中底层的字段未给出确定值时上层的字段不允许给确定值,即一条流规则中允许底层协议字段指定为确定值,高层协议字段指定为通配符
(不指定即为匹配任何值),而不允许高层协议字段指定为确定值,而底层协议字段却为通配符(不指定即为匹配任何值),否则,ovs-vswitchd 中的流规则将全部丢失,网络无法连接。动作字段包括正常转发normal、定向到某交换机端口output:port、丢弃drop、更改源目的mac 地址mod_dl_src/mod_dl_dst 等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
2.4修改数据包
屏蔽所有进入OVS 的以太网广播数据包
屏蔽STP 协议的广播数据包
修改数据包,添加新的OpenFlow 条目,修改从端口p0 收到的数据包的源地址为9.181.137.1
从端口p0
(192.168.1.100)发送测试数据到端口p1(192.168.1.101),就是没啥响应。
新开一个终端,进入根目录,执行如下指令。
等几分钟,会出现如下结果。说明下发的OpenFlow流生效了,端口p0收到的数据包源地