首页 > 其他分享 >1.2Open vSwitch流表管理

1.2Open vSwitch流表管理

时间:2023-06-08 09:12:18浏览次数:44  
标签:ovs 表项 1.2 流表 vSwitch Open ofctl

Open vSwitch流表管理

任务目的

1、了解Open vSwitch流表的基本概念。
2、掌握流表的基本命令,学会添加、删除、查看流表,为后续实验做准备。

任务环境
设备名称 软件环境 硬件环境
交换机 Ubuntu 14.04命令行版 Open vSwitch 2.3.1 CPU:1核 内存:2G 磁盘:20G

注:系统默认的账户为:
管理员权限用户名:root,密码:root@openlab;
普通用户用户名:openlab,密码:user@openlab。
可查看当前实验环境右侧“钥匙”img 按钮获取对应的密码。

任务内容

1、学习Open vSwitch流表的基本概念。
2、学习常用的流表命令,进行流表的添加、删除、查看等操作。

实验原理

OpenFlow是用于管理交换机流表的协议,ovs-ofctl是Open vSwitch提供的命令行工具。在没有配置OpenFlow控制器的模式下,用户可以使用ovs-ofctl命令通过OpenFlow协议连接Open vSwitch来创建、修改或删除Open vSwitch中的流表项,并对Open vSwitch的运行状况进行动态监控。ovs-ofctl关于流表管理的常用命令如下表所示。
image-20230524165237725
对于add-flow、add-flows和mod-flows这3个命令,还需要指定要执行的动作actions=[target],[target]…,一个流规则中可能有多个动作,按照指定的先后顺序执行。
常见的流表操作如下表所示。
image-20230524165247748
在OpenFlow白皮书中,Flow被定义为某个特定的网络流量。例如,一个TCP连接就是一个Flow,或者从某个IP地址发出来的数据包,都可以被认为是一个Flow。支持OpenFlow协议的交换机应该包括一个或多个流表,流表中的条目包含:数据包头的信息、匹配成功后要执行的指令和统计信息。当数据包进入OVS后,会将数据包和流表中的流表项进行匹配,如果发现了匹配的流表项,则执行该流表项中的指令集。相反,如果数据包在流表中没有发现任何匹配,OVS会通过控制通道把数据包发到OpenFlow控制器中。在OVS中,流表项作为ovs-ofctl的参数,采用如下的格式:字段=值,如果有多个字段,可以用逗号或空格分开,一些常用的字段列举如下表所示。
image-20230524165253045

实验步骤

一、实验环境检查

步骤1 登录交换机,执行以下命令,查看镜像中原有的网桥,如下图所示。

ovs-vsctl show

image-20230524165259103

步骤2 执行以下命令,删除当前网桥,并进行确认,如下图所示。

ovs-vsctl del-br br-sw
ovs-vsctl show

image-20230524165305436

二、流表管理

步骤1 执行以下命令,添加网桥,并查看虚拟交换机的基本信息,如下图所示。

# ovs-vsctl add-br br0
# ovs-ofctl show br0

image-20230524165347417
由上图可知,可以查看到交换机dpid、流表数量、性能参数、动作参数、MAC地址等信息。

步骤2 执行以下命令,查看虚拟交换机上各端口的状态,如下图所示。

# ovs-ofctl dump-flows br0

image-20230524165352169
由上图可知,输出的结果中包含了各端口上收到的数据包数,字节数,丢包数,错误数据包数等。

步骤3 执行以下命令,添加一条流表项,设置流表项生命周期为1000s,优先级为17,入端口为3,动作是output:2。

# ovs-ofctl add-flow br0 idle_timeout=1000,priority=17,in_port=3,actions=output:2

说明:这条流表项的作用是将端口3接收到的数据包从端口2输出。

步骤4 执行以下命令,查看交换机上所有流表信息,如下图所示。

# ovs-ofctl dump-flows br0

步骤5 执行以下命令,删除入端口为3的的流表项,删除后,再次查看流表信息,如下图所示。

# ovs-ofctl del-flows br0 in_port=3
# ovs-ofctl dump-flows br0

image-20230524165430578

标签:ovs,表项,1.2,流表,vSwitch,Open,ofctl
From: https://www.cnblogs.com/ChuenSan/p/17465170.html

相关文章

  • python opencv图片旋转任意角度
    pythonopencv图片旋转任意角度 importcv2#Loadtheimageimg=cv2.imread("20230222100736979.jpg")#Gettheimagedimensionsheight,width=img.shape[:2]#Settherotationangleangle=25#Calculatetherotationmatrixrotation_matrix=cv2......
  • OpenMP与MPI混合做方阵向量乘法
    按行分配1#include<stdio.h>2#include<mpi.h>3#include<stdlib.h>4#include<omp.h>56#defineN10078//time_tstart,end;//开始和结束时间9doublestart,end;1011intmain(intargc,char*argv[])12{13//......
  • OpenMP 归约和reduction子句
    简述归约归约操作在MPI里也学过,不过那时候还不太熟悉这种操作。当时只知道MPI_Reduce可以把全局求和和集合通信封装起来,非常方便。实际上将相同的二元归约操作符重复地应用到一个序列上得到结果的计算过程都可以称为归约。python里那个难理解的reduce()函数也就是归约:1......
  • OpenMP 传统形式的方阵向量并行乘法
    按行分配思路和MPI基本类似,不过OpenMP是共享内存的,不必做分发和聚集,申请的矩阵空间就不必是完全连续的。1#include<stdio.h>2#include<omp.h>3#include<stdlib.h>45#defineN400//规模(方针的阶数)6inti,j;//通用游标7double**mat=NULL;//矩阵对象......
  • Nginx V1.20.1部署
    https://mp.weixin.qq.com/s/i8XmjuW9yRXwqtiSvACpxg#下载二进制安装包wgethttp://nginx.org/download/nginx-1.20.1.tar.gz#解压tarzxvfnginx-1.20.1.tar.gzcdnginx-1.20.1#安装依赖包yuminstall-ygccgcc-c++pcrepcre-develzlibzlib-developensslopenssl......
  • 面向开发者的 ChatGPT 提示工程课程|吴恩达携手OpenAI 教你如何编写 prompt
    提示工程(PromptEngineering)是一门相对较新的学科,旨在开发和优化提示,从而高效地将语言模型(LM)用于各种应用和研究主题,并帮助开发人员更好地理解大型语言模型(LLM)的能力和局限。随着ChatGPT等大语言模型的爆火,提示工程在大模型中的重要性不言而喻。有效的提示工程需要考虑哪些......
  • OpenOCD : Error: Error connecting DP: cannot read IDR
    没有连接单片机或是连接单片机没有开机。Warn:Failedtoopendevice:LIBUSB_ERROR_NOT_SUPPORTED:这个警告表示OpenOCD无法打开设备,因为设备不受支持。这通常是由于使用的调试适配器与OpenOCD或计算机的驱动程序不兼容所致。您可以尝试以下方法解决该问题:确保您使用的调试......
  • openwrt 搭建halo
    1、openwrt中安装docker2、更具情况在自己安装的目录里新建目录mkdir-p/opt/docker/Configs/.halomkdir-p/data/docker/.halo3、进入安装目录cd/opt/docker/Config/.halo4.创建容器并拉取镜像dockerrun-it-d--namehalo -p8090:8090 -v/opt/docker/Configs/.......
  • haproxy.router.openshift.io/disable_cookies
    haproxy.router.openshift.io/disable_cookies是OpenShift中Route对象的一个注解,用于控制是否禁用HAProxy负载均衡器在请求和响应中添加Cookie。当该注解设置为true时,HAProxy负载均衡器将不会在请求和响应中添加Cookie。这对于一些特定的应用程序场景可能非常有用,例......
  • 【too many open files】解决方案
    在MacOS系统中,如果你遇到了「java.net.socketexception:toomanyopenfiles」错误,这通常是由于您的系统限制了文件打开数量。您可以通过以下方法解决这个问题:修改ulimit设置:您可以通过修改ulimit设置来提高文件打开数量的限制。您可以使用以下命令:ulimit-n2048修改/etc/lau......