自备ovs-vsctl命令详解


ovs-vsctl  用于查询和配置ovs-vswitchd的工具 ovs-vsctl  [options]  -- [options] command [args] [-- [options] command [args]]... Open vSwitch命令    这些命令以开放的vSwitch作为一个整体。    init    初始化打开虚拟交换机的数据库,如果它是空的。如果数据库已经被初始化,则该命令没有影响。任何成功的OVS-vsctl命令会自动初始化打开vSwitch的数据库,如果它是空的。提供此命令不执行任何其他命令初始化数据库。    show 打印的数据库内容的简要概述。    emer-reset  重置配置到一个干净的状态。它解除配置OpenFlow的控制器,OVSDB服务器和SSL,并且删除端口镜像,FAIL_MODE,的NetFlow,sFlow和IPFIX配置。                该命令还可以删除所有数据库记录所有other-config键,基地的记录,除非其他other-config:hwaddr被保存存在于桥的纪录。其他网络配置留原样。 桥命令    这些命令检查和处理Open vSwitch的桥梁。    [--may-exist] add-br bridge    创建一个名为桥新的桥梁。最初,桥将没有端口(比桥本身除外)。如果没有--may并存,试图创建一个真实存在的桥是错误的。随着--may并存,该命令不执行任何操作,如果桥已经存在作为一个真正的桥梁。    [--may-exist] add-br bridge parent vlan     创建中现有打开``假桥'命名的桥梁vSwitch的桥梁家长,必须已经存在,且不能本身是假的桥梁。 新的假大桥将在802.1Q VLAN的VLAN,它必须是0和4095之间的整数。父桥不能已具有VLAN假的桥梁。最初,桥将没有端口(除了桥本身除外)。           如果没有--may-exist,试图创建一个真实存在的桥梁是错误的。随着--may-exist,该命令不执行任何操作,如果桥已经存在,作为下一个父VLAN桥VLAN。    [--if-exists] del-br bridge    删除桥梁和它的所有端口。如果桥是一个真正的桥,此命令还会删除是假的桥梁与桥梁创建为母公司,包括他们所有的端口。           如果没有--if-exists,试图删除不桥梁存在是错误的。随着--if-exists,试图删除不存在桥没有效果。    [--real | --fake] list-br    在标准输出上列出了所有现有的真假桥梁,人们每行。随着--real或--fake,只有该类型桥梁是返回。    br-exists bridge   测试桥是否存在一个真的假的桥梁。如果是这样,OVS-vsctl退出代码为0。如果没有成功退出,ovs-vsctl退出代码为第二不成功退出    br-to-vlan bridge    如果桥是假的桥梁,打印桥的802.1Q VLAN作为十进制整数。如果桥是一个真正的桥梁,打印0。    br-to-parent bridge    如果桥是假的桥梁,打印其父的名字桥。如果桥是一个真正的桥,桥打印。    br-set-external-id bridge key [value]    设置或清除了``外部ID'桥梁值。这些值可用于识别外部打开vSwitch上与实体它桥梁关联,例如,在桥的标识符虚拟化管理平台。OpenvSwitch数据库架构指定知名的键值,但键和值是否则任意的字符串。           如果指定的值,然后键被设置为桥的价值,覆盖任何先前的值。如果省略值,那么关键从桥的一套外部ID的删除(如果它是当下)。即时桥梁,该命令的效果是类似的一组或在其外部的IDS列中删除命令大桥表。对于假桥梁,它实际上修改与键通过fake-bridge-在端口表前缀名。    br-get-external-id bridge [key]    查询桥梁的外部ID。如果指定键,输出是该密钥或空字符串值,如果是关键未设置。如果省略键时,输出是key=value的输出,每行,为每个key=value对。           即时桥梁,该命令的效果是类似的在桥梁表的外部IDS列get命令。对于假的桥梁,它查询与前缀名键fake-bridge- 在端口表。 端口命令    这些命令检查和处理开放的vSwitch端口。这些命令治疗保税港区作为一个单一的实体。    list-ports bridge     列出所有的端口上的标准输出,每一个桥内线。本地端口网桥不包括在列表中。    [--may-exist] add-port bridge port [column[:key]=value]...   桥梁创建从网络设备的新命名端口port同名。可选参数设置列值的端口记录通过创建命令。例如,tag=9将使端口的对VLAN 9.语法接入端口是相同的,对于set命令(参见下面的数据库命令)。           如果没有--may-exist,试图创建一个存在是一个港口一个错误。随着--may-exist,该命令不执行任何操作,如果端口已经存在的桥梁,是不是一个保税港区。    [--fake-iface] add-bond bridge port iface... [column[:key]=value]...   对桥梁创建一个新的端口指定端口粘合在一起网络设备给每个IFACE。至少两个接口必须命名。如果接口DPDK启用则交易将需要包括行动明确地设置接口类型为“DPDK”。           可选参数设置列值的端口记录通过创建命令。语法是相同的组命令(见下数据库命令)。随着--fake-iface,名为端口假的接口创建。这应该只被用于与遗留兼容性软件需要它。           如果没有--may并存,试图创建一个存在是一个港口一个错误。随着--may并存,该命令不执行任何操作,如果端口对桥梁和债券已经存在在一起完全的指定接口。     [--if-exists] del-port [bridge] port    删除端口。如果省略桥梁,港口从乜删除如果没有桥包含它; 如果指定桥,它必须是包含端口真的假的桥梁。           如果没有--if-exists,试图删除不端口存在是错误的。随着--if-exists,试图删除不存在端口没有任何效果。    [--if-exists] --with-iface del-port [bridge] iface   删除端口命名IFACE或有一个名为接口我面对。如果省略桥梁,港口从任何删除桥梁包含它; 如果指定桥,它必须是真实的还是假的桥梁,它包含的端口。           如果没有 --if-exists,试图删除端口的接口不存在面是一个错误。随着存在--IF-,试图删除的端口,这并不接口存在没有效果。    port-to-br port  打印桥包含在标准端口名称输出。 接口命令    这些命令检查连接到一个开放vSwitch的接口桥。这些命令为两个集合或更多的接口,而不是作为单个端口。    list-ifaces bridge   列出所有在标准输出上桥内的接口,每行一个。本地端口桥不包含在名单。    iface-to-br iface    打印桥包含在标准IFACE名输出。   OpenFlow的控制器连接OVS-vswitchd可以执行所有配置桥接和本地切换,或者它可以被配置成与一个或多个外部OpenFlow 控制器。交换机通常被配置为连接到一个主控制器,负责桥梁的流量表来实施网络策略。另外,该开关可以被配置收听从服务控制器的连接。服务控制器通常用于偶尔支持和维护,例如ovs-ofctl。    get-controller bridge    打印配置控制器的目标。    del-controller bridge     删除配置的控制器的目标。    set-controller bridge target...    设置配置控制目标或目标。每个目标可以使用任何下列形式:         ssl:ip[:port]         tcp:ip[:port]            在给定的IP,主机上的指定端口其中必须表示为在一个IP地址(不是DNS名称)IPv4或IPv6地址格式。裹在IPv6的地址方括号,例如TCP:[:: 1]:6653。对于SSL,在 --private-key, --certificate, and --ca-cert 选项强制性的。            如果没有指定端口,默认为6653。         UNIX:file            在POSIX,一个名为Unix域服务器套接字。            在Windows上,连接到本地命名管道是代表通过在路径文件以模仿创建的文件sented一个Unix域套接字的行为。         pssl:[port][:ip]         ptcp:[port][:ip]            监听端口OpenFlow的连接。默认端口6653.默认情况下,连接都是允许使用任何IPv4地址。指定IP作为IPv4地址或括号内的IPv6地址(如PTCP:6653:[:: 1])。DNS名称可以不使用。对于PSSL的--private-key,--certifi‐cate, and --ca-cert 选项是强制性的。         punix:file            侦听Unix域OpenFlow的连接服务器套接字命名的文件。  控制器故障设置    当一个控制器配置,它是,通常,负责设置交换机上的所有流量。因此,如果连接到    控制器发生故障,没有新的网络连接可以被建立。如果连接到控制器停留下来足够长的时间,任何包穿过开关的。    如果该值是独立的,或者,如果没有这些设置被设置,OVS-vswitchd将接管负责设立流动时,没有    消息已被从控制器接收对于三次不活动的一探测时间间隔。在这种模式下,OVS-vswitchd导致数据通路    行事像一个普通的MAC-learning开关。OVS-vswitchd将继续重试连接到控制器在后台,并且当连接成功,它中止其独立的行为。    如果此选项设置为安全,OVS-vswitchd不会建立在流动当控制器连接失败了自己。    get-fail-mode bridge           打印配置的故障模式。    del-fail-mode bridge           删除配置的故障模式。    set-fail-mode bridge standalone|secure           设置配置的故障模式。 经理连接    这些命令操纵manager_options列中的Open_vSwitch表和行的经理表。当ovsdb服务器被配置为使用用于OVSDB连接manager_options柱(如在INSTALL.Linux和在设置有启动脚本描述开放的vSwitch),这允许管理员使用OVS-vsctl到CON组    图数据库连接。    get-manager           打印配置管理器(S)。    get-manager           删除配置管理器(S)。    set-manager target...           设置配置管理器目标或目标。每组目标可           使用任何以下几种形式:           ssl:ip:port                  在给定的IP,主机上的指定SSL端口其中必须表示为在一个IP地址(不是DNS名称)                  IPv4或IPv6地址格式。如果IP是IPv6地址,然后换IP用方括号,例如:SSL:[:: 1]:6640。                  该--private键,--certificate和--ca证书选项当使用这种形式是强制性的。           tcp:ip:port                  连接到指定的TCP端口上的IP,其中ip可以是IPv4或IPv6地址。如果IP是IPv6地址,则IP包                  用方括号,如:TCP:[:: 1]:6640。           unix:file                  在POSIX,连接命名Unix域套接字服务器文件。                  在Windows上,连接到本地命名管道是表象通过在路径文件以模仿创建的文件sented一个Unix域套接字的行为。           pssl:port[:ip]                  监听给定的SSL端口连接上。通过默认情况下,连接没有绑定到特定的本地IP地址,而且只在IPv4上监听(但不支持IPv6)地址,但要指定这些IP的连接限制从给定的IP,IPv4或IPv6地址。如果ip是IPv6地址,然后换用方括号,如IP:PSSL:6640:[:: 1]。该--private-key,  --certificate,  and --ca-cert选项当使用这种形式是强制性的。           ptcp:port[:ip]                  监听连接指定的TCP端口上。通过默认情况下,连接没有绑定到特定的本地IP地址,而且只在IPv4上监听(但不支持IPv6)地址,但IP可能被指定为只侦听连接到给定的IP,IPv4或IPv6地址。                  如果IP是IPv6地址,然后换用方IP方括号,例如:PTCP:6640:[:: 1]。           punix:file                  在POSIX,听命名Unix域服务器套接字文件进行连接。                  在Windows上,听上的本地命名管道。文件是创建路径文件中的模仿一个Unix的行为域套接字。 SSL配置    当OVS-vswitchd配置为通过SSL连接进行管理或控制器连接,需要以下参数:    private-key           指定用作支持为含有私钥的PEM文件虚拟换机的SSL连接到控制器的身份。    certificate           指定包含一个证书的PEM文件,由签署由控制器和管理器使用的证书颁发机构(CA)这证明了虚拟交换机的私钥,标识值得信赖的开关。    ca-cert           指定包含用于ver-的CA证书的PEM文件校验虚拟交换机连接到一个可信赖的控制器。    这些文件只读一次,OVS-vswitchd启动时间。如果他们的内容的变化,OVS-vswitchd必须被杀死并重新启动。    这些SSL设置适用于虚拟的所有SSL连接开关。    get-ssl           打印SSL配置。    del-ssl           删除当前SSL配置。    [--bootstrap] set-ssl private-key certificate ca-cert           设置SSL配置。该--bootstrap选项描述下面。  CA证书引导    通常情况下,所有的SSL配置命名的文件必须存在当OVS-vswitchd开始。然而,如果CA证书文件不存在    而--bootstrap给出选项,然后OVS-vswitchd将尝试获得了其第一SSL控制器CA证书连接并将它保存到指定的PEM文件。如果成功的话,它会马上断开连接,重新连接,并从那时起所有SSL连接必须由CA签名的证书进行身份验证由此获得的证书。    此选项暴露了SSL连接到中间人攻击获得初始CA证书,但它可以是用于自举有用魁梧。    如果控制器发送它的CA证书,此选项才有用作为SSL证书链的一部分。SSL协议不要求控制送CA证书。 自动附加命令    IETF的自动连接SPBM标准草案描述了一个紧凑的方法使用IEEE 802.1AB链路层发现协议(LLDP)连同    IEEE 802.1aq中最短路径桥接(SPB)网络自动附加在SPB网络的网络设备,以个别服务。该这里的意图是允许使用OVS到网络应用程序和设备能够轻松地利用行业提供的功能优势,标准SPB网络。自动安装功能的一个基本要素是映射传统的VLAN到SPB I_SIDs。这些命令管理自动连接I-SID / VLAN映射。    add-aa-mapping bridge i-sid vlan           在创建桥I-SID和VLAN一个新的自动连接映射。    del-aa-mapping bridge i-sid vlan           在删除一个桥自动连接映射I-SID和VLAN。    get-aa-mapping bridge           列出所有的标准桥内自动连接映射输出。 数据库命令    这些命令查询和修改ovsdb表的内容。他们是这样的ovsdb接口和轻微的抽象,他们在运作比其他OVS-vsctl命令一个较低的水平。  识别表,记录和列    每个这些命令具有表参数来标识中的表数据库。他们中许多人也采取identi-记录参数外商投资企业在表中特定记录。该记录参数可以是的UUID记录,许多表提供更多的方式来iDEN的tify记录。一些命令需要标识列参数在表中的记录中的特定字段。    下表中当前定义:    Open_vSwitch   对于OVS-vswitchd全局配置。此表包含一个记录,确定了指定。作为记录名称。    Bridge   配置一个开放的vSwitch内的桥梁。记录可能由桥名标识。    Port   网桥端口。记录可能由端口名称标识。   Interface   网络设备连接到一个端口。记录可以被识别按名字。    Flow_Table   配置为特定的OpenFlow流表。记录可能名称标识。     QoS   质量的业务配置的端口。记录可能是按照端口名称标识。     Queue   队列配置的QoS配置中的一个队列。记录只能由UUID来鉴定。    Mirror   连接到桥端口镜像配置。记录可以通过反射镜名称来识别。    Controller   配置一个OpenFlow的控制器。连接控制器到一个特定的桥可以由桥的名字来识别。    Manager    配置一个OVSDB连接。记录可能是identi-通过田间目标(如TCP:1.2.3.4)。   NetFlow   是NetFlow配置连接到一个桥梁。记录可能是由桥名标识。    SSL  为OVS-vswitchd全局SSL配置。记录附着到Open_vSwitch表可由须指明被识别。作为记录名称。    sFlow    配置sFlow出口配置连接到一个桥梁。记录可通过桥名称来识别。    IPFIX    IPFIX出口配置连接到一个桥梁。记录可通过桥名称来识别。    Flow_Sample_Collector_Set    连接到桥SAM-的IPFIX出口配置使用OpenFlow的采样操作的每个流的基础上耦包。    AutoAttach   对于自动配置的桥梁中附加。    记录名称必须完整,并且大小写正确指定。表和列名不区分大小写,以及 -- 和_交替治疗。独特缩写是可以接受的,例如,net或n为足以识别的NetFlow表。  数据库值    数据库中的每个列接受固定类型的数据。该电流rently定义的基本类型,以及它们的表示,分别是:    integer    在范围内的十进制整数-2 ** 63到2 ** 63-1,包容性。      real   浮点数字。    Boolean           真的还是假的,分别写true或false。    string   任意Unicode字符串,除了空字节不允许的。行情是可选的,与最开始的字符串英文字母或下划线并且只能由字母,下划线,连字符和句号。然而,真假匹配的UUID的语法的字符串(见下文)必须双引号括起来,从其他的基本区别开来类型。当使用双引号,语法是,在JSON字符串,如反斜线可用于转义指定字符。空字符串必须表示为一对双引号(“”)。    UUID  无论是在RFC 4122的风格一个全局唯一标识符,如f81d4fae-7dec-11D0-a765-00a0c91e6bf6,或定义的@name由同一OVS-vsctl调用内获得或创建命令。    在一列的多个值可以由空格或一个赎罪分离GLE逗号。当有多个值出现,重复不允许的,和顺序并不重要。相反,一些数据库列可以有一个空集的值,表示为[],以及方括号可选择包围等非空集或单个值也是如此。    一些数据库列``键 - 值对地图',其中关键和的值各自是某一固定数据库类型。这些规定形式键= value,其中key和value遵循的语法列的主要类型和价值类型,分别为。当多对存在(用空格或逗号分隔),重复键不允许的,并再次顺序并不重要。重复值允许的。一个空的地图被表示为{}。大括号可选项 - 盟友包围非空的地图,以及(但使用引号来防止从扩大其他-配置= {0 = X,1 = Y}到其他-配置= 0 =壳层X其他-配置= 1 = Y,其可能不具有所需的效果)。  数据库命令格式    [--if-exists] [--columns=column[,column]...] list table [record]...           列出了在各指定的记录中的数据。如果没有记录规定,列出表中的所有记录。           如果指定--columns,只有被请求的列上市,按照指定的顺序。否则,所有列按列名称列出,按字母顺序排列。           如果没有--IF-存在,这是一个错误,如果任何指定的记录呢不存在。随着--IF-存在,命令忽略任何记录不存在,不产生任何输出。    [--columns=column[,column]...] find table [column[:key]=value]...           列出在表中每个记录其列等于值的数据或者,如果指定键,其列包含与一个键指定的值。以下运算符可以用在=是           写在语法总结:           =!= <> <=> =                  选择记录中列[:密钥]等于,不等于,小于,大于,小于或等于或大于或等于值,个别。                  考虑column[:key]和值组元素。                  同一组被认为是相等的。否则,如果套有元件的不同的数字,则该组与多个元件被认为是较大的。其他-                  明智的,考虑每一组两两一元,在每一组中的递增顺序。第一对那不同确定的结果。(对于组列                  包含键 - 值对,首先键进行比较,和值被认为只有当两组含有相同的密钥。)           {=} {!=}                  测试分别设置相等或不等。           {<=}选择的记录,其中列[:键]的一个子集值。例如,洪水的VLAN {<=} 1,2选择记录在洪水的VLAN列是空集或包含 1或2或两者。           {<}选择的记录,其中列[:密钥]是一个子集的值。例如,洪水的VLAN {<} 1,2选择记录在洪水的VLAN列是空集或包含1或2,但不能同时使用。           {> =} {>}                  相同{<=}和{<},分别不同的是关系反转。例如,洪水的VLAN {> = 1,2}选择在洪水的VLAN列包含记录两个图1和2。           对于算术运算符(=!= <> <=> =),指定键时但某条记录的列不包含键,记录总是从结果被删去。因此,该条件其他-配置:MTU有一个的关键MTU = 1500场比赛的记录!值不是1500,而不是那些缺乏的MTU关键。           对于集合运算,当密钥被指定,但特定的记录的列不包含键,比较完成           对一个空集。因此,该条件以外,other-con‐fig:mtu{!=}1500场比赛记录是不是1500和那些缺乏的MTU关键。           不要被shell忘记逃跑<或>的解释。           如果指定--columns,只有被请求的列上市,按照指定的顺序。否则,所有列按列名称列出,按字母顺序排列。           为在同一个创建的行中所示的UUID OVS-vsctl invoca-化将是错误的。    [--if-exists] [--id=@name] get table record [column[:key]]...           打印在给定记录中的每个指定列的值表。为地图列,密钥可任选地指明,在           这种情况下,与键列关联的值印而不是整个地图。           如果没有--if-exists,这是一个错误,如果记录不存在或关键是指定的,如果key不存在的记录。同           --if-exists,缺少记录产生任何输出,并缺少关键打印空白行。           如果指定@name,然后作记录的UUID可以被称为由该名后来在IN连接同一OVS-vsctl调用文凡UUID的预期。           既--id和列参数是可选的,但通常在至少一个或另一个应该被指定。如果两者都omit-泰德,然后得到了,除了以验证记录存在无影响在表中。           --id和--if-exists 不能同时使用。    [--if-exists] set table record column[:key]=value...           设置在给定的记录中的每个指定列的值表中的值。为地图列,密钥可任选试样田间,在这种情况下,与主要在该列相关联的值被改变(或增加,如果不存在),而不是整个地图。           如果没有--if-exists,这是一个错误,如果记录不存在。           随着--if-exists,该命令不执行任何操作,如果记录不存在。    [--if-exists] add table record column [key=]value...           添加指定的值或键值对在记录列在表中。如果列是一个映射,那么关键是必需的,否则它是禁止的。如果键已经存在于地图栏,然后当前值不会被替换(使用set命令替换现有值)。           如果没有--if-exists,这是一个错误,如果记录不存在。           随着--if-exists,该命令不执行任何操作,如果记录不存在。    [--if-exists] remove table record column value...    [--if-exists] remove table record column key...    [--if-exists] remove table record column key=value...           移除列指定的值或键 - 值对的记录表。第一种形式适用于不列地图:每个指定值从柱中除去。在第二和第三形式适用于映射列:如果只有一个关键是指定的,然后用给定的任何键 - 值对被删除,不管它的价值; 如果一个给定的值,然后一对是去除只有当两个键和值相匹配。           这不是一个错误,如果列不包含指定键或值或对。           如果没有--if-exists,这是一个错误,如果记录不存在。           随着--if-exists,该命令不执行任何操作,如果记录不存在。    [--if-exists] clear table record column...           集在记录中每一列在表为空集或空图,根据。该命令只适用于该列允许为空。           如果没有--if-exists,这是一个错误,如果记录不存在。           随着--if-exists,该命令不执行任何操作,如果记录不存在。    [--id=@name] create table column[:key]=value...           创建在表中的一个新的记录,并设置的初始值每一列。列没有明确设定将收到默认值。输出新行的UUID。           如果指定@name,然后为新的行的UUID可以是该名称在其他地方同样提到OVS-vsctl 调用 在化语境其中UUID的预期。这种提法可能之前或之后创建命令。           注意事项(ovs-vsctl为〔实施例)                  在打开的vSwitch数据库记录只是显著时,他们可以直接或间接从该到达Open_vSwitch表。除了在QoS记录或队列表,记录那些无法到达的距离Open_vSwitch表将自动从已删除数据库。此删除立即发生,而不等待其他OVS-vsctl命令或其他数据 - 基地的活动。因此,创建命令通常必须内同一伴有额外的命令OVS-vsctl调用添加到引用链从顶层新创建的记录Open_vSwitch 记录。示例部分给出了一些例子,展示了如何做到这一点。    [--if-exists] destroy table record...           从删除表中的每个指定的记录。除非--IF存在,是指定的,必须存在于每个记录。    --all destroy table           从表中删除所有记录。           注意事项(ovs-vsctl为〔实施例)                  该销毁命令只对QoS的记录有用或队列表。其他表中的记录是自动从数据库中删除,当他们成为unreach-                  能够从Open_vSwitch表。这意味着它删除的最后引用了创纪录足以删除记录本身。对于这些表中的记录,                  摧毁被自动忽略。请参阅示例部分下面以获取更多信息。    wait-until table record [column[:key]=value]...           等待,直到表包含一个名为记录记录其列等于值或者,如果指定的键,其列包含键与指定的值。任何的经营者!=,<,>,           <=或> =可以被取代为=测试对于不等式,少比,大于,小于或等于,或大于或等于分别。(不要忘了逃跑<或>从由shell解释。)           如果没有column[:key]=value给出参数,该命令等待只有等到存在的记录。如果有多于一个这样的参数是给定,命令一直等待,直到所有的人都满意。           注意事项(ovs-vsctl为〔实施例)                  通常等待,直到应放在一个开始集OVS-vsctl命令。例如,等待,直到桥br0的 - 让桥br0的datapath_id等待,直到一个一个名为br0的创建桥,然后打印其datapath_id列,而得到桥梁BR0 datapath_id  - 等待,直到如果不存在名为br0的桥时,桥BR0将中止ovs-vsctl最初连接直到数据库。           考虑--wait-until指定--timeout = 0,预防止OVS-vsctl仅等待最多5终止后秒。    comment [arg]...           此命令对行为没有影响,但任何数据库日志由命令生成的记录将包括命令和它的参数。 例子    创建一个新的桥梁名为BR0和添加端口为eth0吧:           ovs-vsctl add-br br0           ovs-vsctl add-port br0 eth0    可替换地,执行在单个原子事务两个操作:          ovs-vsctl add-br br0 -- add-port br0 eth0    删除桥br0的,如果它不存在报告错误:           ovs-vsctl del-br br0    如果它存在删除桥BR0:           ovs-vsctl --if-exists del-br br0    设置端口记录的服务质量列的eth0指向一个新的QoS记录,这与它的队列0到一个新的队列记录转点:           ovs-vsctl  --  set  port eth0 qos=@newqos -- --id=@newqos create           qos         type=linux-htb         other-config:max-rate=1000000           queues:0=@newqueue  --  --id=@newqueue  create  queue other-con‐           fig:min-rate=1000000 other-config:max-rate=1000000 配置目录 端口配置    添加``内部端口'VLAN10弥合BR0作为一个VLAN的接入端口VLAN 10,并用一个IP地址配置:           ovs-vsctl  add-port  br0  vlan10  tag=10 -- set Interface vlan10 type=internal           ifconfig vlan10 192.168.0.123    添加GRE隧道口gre0到远程IP地址1.2.3.4弥合BR0:           ovs-vsctl add-port br0  gre0  --  set  Interface  gre0  type=gre options:remote_ip=1.2.3.4 端口镜像    镜接收或在eth0或eth1的发送到ETH2,假设所有的数据包    所有这些端口存在于桥br0的(作为一个副作用此    导致在eth2收到任何数据包被忽略):          ovs-vsctl -- set Bridge br0 mirrors=@m \           -- --id=@eth0 get Port eth0 \           -- --id=@eth1 get Port eth1 \           -- --id=@eth2 get Port eth2 \           --    --id=@m    create    Mirror    name=mymirror   select-dst-           port=@eth0,@eth1 select-src-port=@eth0,@eth1 output-port=@eth2    取下上面BR0创建镜像,这也破坏了的镜像记录(因为它是现在未引用):          ovs-vsctl -- --id=@rec get Mirror mymirror \           -- remove Bridge br0 mirrors @rec    下面简单的命令也适用:           ovs-vsctl clear Bridge br0 mirrors 服务质量(QoS)    创建指向一个linux-HTB的QoS记录到几个队列和使用它的    eth0和eth1:           ovs-vsctl -- set Port eth0 qos=@newqos \           -- set Port eth1 qos=@newqos \           --   --id=@newqos   create   QoS    type=linux-htb    other-con‐           fig:max-rate=1000000000 queues=0=@q0,1=@q1 \           --   --id=@q0   create   Queue   other-config:min-rate=100000000           other-config:max-rate=100000000 \           -- --id=@q1 create Queue other-config:min-rate=500000000    解除配置从上面的eth1只QoS的记录:           ovs-vsctl clear Port eth1 qos    从eth0和eth1,然后删除取消配置QoS的记录QoS的纪录(必须明确地完成,因为未引用的QoS    记录不会被自动销毁):           ovs-vsctl -- destroy QoS eth0 -- clear Port eth0  qos  --  clear Port eth1 qos    (此命令将在数据 - 假两件未引用队列记录基础。要删除它们,请使用“OVS-vsctl列表队列”中找到自己的UUID,    然后在“OVS-vsctl破坏队列UUID1 UUID2”摧毁他们每个人或用“ovs-vsctl -- --all destroy Queue”删除所有记录)。 连接监控    显示器连接在eth0远程维修点。           ovs-vsctl set Interface eth0 cfm_mpid=1    解除配置连接从上面监测:           ovs-vsctl clear Interface eth0 cfm_mpid NetFlow    配置桥BR0将NetFlow记录发送到UDP端口5566上的主机    192.168.0.34,以30秒的活性超时:           ovs-vsctl clear Interface eth0 cfm_mpid    更新由以前的命令创建到NetFlow配置而是使用60秒的活性超时:           ovs-vsctl set NetFlow br0 active_timeout=60    解除配置从BR0,这也破坏了网络的NetFlow的设置流记录(因为它是现在未引用):           ovs-vsctl clear Bridge br0 netflow sFlow    配置桥BR0到sFlow的记录发送到收集器上10.0.0.1    在端口6343,使用eth1's IP地址作为源,具体采样参数:           ovs-vsctl   --   --id=@s   create    sFlow    agent=eth1    tar‐           get=\"10.0.0.1:6343\" header=128 sampling=64 polling=10 \           -- set Bridge br0 sflow=@s    解除配置的sFlow从BR0,这也破坏了sFlow的记录(自它是目前未引用):           ovs-vsctl -- clear Bridge br0 sflow IPFIX    配置桥br0的每个数据包样本发送一个IPFIX流量记录在主机192.168.0.34,以观察域ID 123和UDP端口4739    观测点号456,1分钟的流缓存活跃超时(6013流动秒),最大流高速缓冲存储器的大小,以及流取样上    与隧道信息(采样的输入和输出端口输出端口默认情况下启用,如果没有禁用):           ovs-vsctl -- set Bridge br0 ipfix=@i \           --    --id=@i    create    IPFIX   targets=\"192.168.0.34:4739\"           obs_domain_id=123    obs_point_id=456    cache_active_timeout=60           cache_max_flows=13 \           other_config:enable-input-sampling=false    other_config:enable-           tunnel-sampling=true    解除配置从BR0,这也破坏了IPFIX的IPFIX设置记录(因为它是现在未引用):           ovs-vsctl clear Bridge br0 ipfix 802.1D生成树协议(STP)    配置桥BR0参加一个802.1D生成树:           ovs-vsctl set Bridge br0 stp_enable=true    BR0的桥优先级设置为0x7800:           ovs-vsctl set Bridge br0 other_config:stp-priority=0x7800    配置端口的eth0的路径开销为10:           ovs-vsctl set Port eth0 other_config:stp-path-cost=10    解除配置STP从上面:           ovs-vsctl set Bridge br0 stp_enable=false 组播侦听    配置桥br0的启用组播侦听:           ovs-vsctl set Bridge br0 mcast_snooping_enable=true    配置组播侦听老化时间BR0为300秒:           ovs-vsctl   set  Bridge  br0  other_config:mcast-snooping-aging- time=300    该组播侦听表的大小BR0设置为2048条目:           ovs-vsctl  set  Bridge  br0   other_config:mcast-snooping-table-size=2048    禁止未注册的多播数据包的泛滥到所有端口。什么时候设置为true,交换机将只发送未注册的多播数据包    连接到多播路由器端口。当它设置为false,交换机将它们发送到所有的端口。此命令禁用洪水在桥br0的未注册的包。           ovs-vsctl  set  Bridge  br0 other_config:mcast-snooping-disable-flood-unregistered=true    启用一个特定的组播数据包的泛滥(除了报告)港口。          ovs-vsctl set Port eth1 other_config:mcast-snooping-flood=true    开启指定端口上的报告的泛滥。           ovs-vsctl   set   Port  eth1  other_config:mcast-snooping-flood-reports=true    解除配置组播从上面窥探:           ovs-vsctl set Bridge br0 mcast_snooping_enable=false 802.1D-2004快速生成树协议(RSTP)    配置桥BR0参加一个802.1D-2004快速生成树:             ovs-vsctl set Bridge br0 rstp_enable=true    设置BR0桥地址为00:AA:AA:AA:AA:AA:           ovs-vsctl       set      Bridge      br0      other_config:rstp-address=00:aa:aa:aa:aa:aa    BR0的桥优先级设置为0x7000。必须指定值十进制数,并应的4096的倍数(如果不是,它是舍入为4096最接近的倍数)。默认优先级值是为0x800(32768)。           ovs-vsctl       set      Bridge      br0      other_config:rstp-address=00:aa:aa:aa:aa:aa    设置桥BR0老化时间为1000秒。老化时间值应该是10秒到1000000秒之间。默认值是300秒。           ovs-vsctl set Bridge br0 other_config:rstp-ageing-time=1000    设置BR0的桥力协议版本为0强制协议版本有两个可接受值:0(STP兼容模式)和2(普通手术)。           ovs-vsctl set Bridge  br0  other_config:rstp-force-protocol-ver‐sion=0    BR0桥最大年龄设置为10秒。最大年龄值应为6之间秒和40秒。默认值是20秒。           ovs-vsctl set Bridge br0 other_config:rstp-max-age=10    BR0桥转发延迟设置为15秒。此值应在4秒和30秒。默认值是15秒。           ovs-vsctl set Bridge br0 other_config:rstp-forward-delay=15    设置BR0桥发送保持计数至7秒。此值应间1秒和10秒。默认值是6秒。           ovs-vsctl set Bridge br0 other_config:rstp-transmit-hold-count=7    在端口为eth0启用RSTP:           ovs-vsctl set Port eth0 other_config:rstp-enable=true    禁用RSTP的端口为eth0:           ovs-vsctl set Port eth0 other_config:rstp-enable=false    端口接口eth0的优先级为32的值必须在指定十进制表示法和应为16的倍数(如果没有,它是圆形的下降到16的最接近的倍数)。默认优先级值为0x80的(128)。          ovs-vsctl set Port eth0 other_config:rstp-port-priority=32    配置端口的eth0的端口号为3:           ovs-vsctl set Port eth0 other_config:rstp-port-num=3    设置端口为eth0 150的路径开销:           ovs-vsctl set Port eth0 other_config:rstp-path-cost=150    配置端口的eth0的管理边缘值:           ovs-vsctl set Port eth0 other_config:rstp-port-admin-edge=true    配置端口的eth0的自动边缘值:          ovs-vsctl set Port eth0 other_config:rstp-port-auto-edge=true    设置管理员点对点接口eth0的MAC地址的价值。可接受的值是0(不点对点),1(点对点,默认值)或2(自动检测)。自动检测模式不是目前imple-mented,值2具有0相同的效果(未点对点)。          ovs-vsctl set Port eth0 other_config:rstp-admin-p2p-mac=1    配置端口的eth0的管理端口状态值。真正是默认值。           vs-vsctl set Port eth0 other_config:rstp-admin-port-state=false    配置端口的eth0的执行本值:           ovs-vsctl set Port eth0 other_config:rstp-port-mcheck=true    解除配置RSTP从上面:           ovs-vsctl set Bridge br0 rstp_enable=false OpenFlow的版本    配置网桥BR0来支持OpenFlow的版本1.0,1.2和1.3:           ovs-vsctl  set  bridge br0 protocols=OpenFlow10,OpenFlow12,Open‐Flow13 流程表配置    使桥梁流量表0 BR0拒绝接受超过100个流:           ovs-vsctl -- --id=@ft  create  Flow_Table  flow_limit=100  over‐           flow_policy=refuse -- set Bridge br0 flow_tables=0=@ft    制作流程表0桥BR0逐出流通,公平基础上,匹配的输入端口,当有100余:           ovs-vsctl -- --id=@ft  create  Flow_Table  flow_limit=100  over‐           flow_policy=evict  groups='"NXM_OF_IN_PORT[]"' -- set Bridge br0           flow_tables:0=@ft 退出状态    0成功执行程序。    1用法,语法或配置文件错误。    2桥参数BR-存在指定的桥名不存在。 推荐:       ovsdb-server(1), ovs-vswitchd(8), ovs-vswitchd.conf.db(5). OPTIONS    --db =server 设置服务器为OVS-vsctl数据库服务器查询或修改配置。默认值是UNIX:/usr/local/var/run/openvswitch/db.sock。服务器必须采取下列形式之一:       SSL:IP:port              给定的IP,主机上的指定SSL端口其中必须表示为在一个IP地址(不是DNS名称)              IPv4或IPv6地址格式。如果IP是IPv6地址,然后换IP用方括号,例如:SSL:[:: 1]:6640。              该--private键,--certificate和--ca-cert选项使用这种形式是强制性的。       TCP:IP:port              连接到指定的TCP端口上的IP,其中ip可以是IPv4或IPv6地址。如果IP是IPv6地址,则IP包              用方括号,如:TCP:[:: 1]:6640。       UNIX:file              在POSIX,连接命名Unix域套接字服务器文件。              在Windows上,连接到本地命名管道是表象通过在路径文件以模仿创建的文件发送的              一个Unix域套接字的行为。       PSSL:port[:IP]              监听给定的SSL端口连接。通过默认情况下,连接没有绑定到特定的本地              IP地址,而且只在IPv4上监听(但不支持IPv6)地址,但要指定这些IP的连接限制              从给定的IP,IPv4或IPv6地址。如果ip是IPv6地址,然后换用方括号,如IP:              PSSL:6640:[:: 1]。该--private键,--certificate和当使用这种形式--ca-cert选项是强制性的。       PTCP:port[:IP]              监听连接指定的TCP端口上。通过默认情况下,连接没有绑定到特定的本地              IP地址,而且只在IPv4上监听(但不支持IPv6)地址,但IP可能被指定为只侦听              连接到给定的IP,IPv4或IPv6地址。              如果IP是IPv6地址,然后换用方括号 IP ETS,例如:PTCP:6640:[:: 1]。       punix:file              在POSIX,监听命名Unix域服务器套接字文件进行连接。              在Windows上,监听的本地命名管道。文件是创建路径文件中的模仿一个Unix的行为域套接字。    --no-wait           防止ovs-vsctl从等待ovs-vswitchd 2重新配置本身根据修改的数据库。该选项           可能被用到,如果ovs-vswitchd没有运行; 否则,ovs-vsctl将不会退出,直到OVS-vswitchd开始。           此选项无效,如果指定的命令不更改数据库。    --no-syslog           默认情况下,OVS-vsctl记录其参数和任何细节改变,它使系统日志。该选项禁用这个记录。           此选项等同于--verbose = vsctl:syslog:warn。    - oneline           修改输出格式,使得输出为每个命令上印有一行。换行字符会否则单独的行打印成\ n和任何情况下,           \,否则将出现在输出中增加了一倍。打印一个空行对于没有输出每个命令。此选项不从列表中影响           输出的格式或者找命令; 参见下面的表格式选项。    --dry-run           从实际修改数据库防止OVS-vsctl。    -t secs    --timeout =secs           默认情况下,或为0秒,OVS-vsctl永远等待数据库响应。此选项限制运行时约秒秒。如果超时,OVS-vsctl           将与SIGALRM信号退出。(超时通常会发生仅当数据库无法联系,或者如果系统过载)。    --retry  没有这个选项,如果OVS-vsctl向外连接到数据库服务器(默认值),然后OVS-vsctl将尝试连接一次,如果连接失败,错误退出(通常意味着ovsdb-server没有运行)。           使用此选项,或者如果--db指定OVS-vsctl应侦听从数据库服务器传入连接,然后           OVS-vsctl将等待永远与数据库连接。           不管此设置,总是--timeout限制多久ovs-vsctl将等待。 表格式选项    这些选项从列表控制输出的格式和发现的命令    -f format    --format =format           设置表格格式的类型。以下类型的用户资格式可用:           表2-D表格的文字对齐列。           list(默认) 每行一列和行列表由分离空行。           html  HTML表格。           csv   在RFC 4180中定义逗号分隔值。           json   JSON格式如RFC 4627.所述的输出是一个JSON对象的序列,其每一个对应于                  一个表。每个JSON对象有以下成员与记录的值:                  caption                         该表的标题。该成员如果省略                         该表没有标题。                  headings                         每个表列一个元素的数组。每数组元素是给相应的字符串列的标题。                  data 每表行一个元素的数组。每元件也与每TA-一个元素的表列。该第二级中的元素                         阵列是构成该表的单元格。                         表示OVSDB数据或数据类型的细胞是在OVSDB描述的格式表示规范;                          其它细胞被简单地表示为文本字符串。    -d format    --data =format           设置输出表中的单元格的格式。在后续格式可供选择:           string(缺省)                  在数据库值描述的简单格式仲下面和灰。           bare 标点符号简单格式扒掉:[]和{}围绕套,地图和空列省略,集和地图中的项目是空间分隔,                  字符串从不引用。这种格式可以是用于更容易脚本解析。           json   JSON。JSON的输出格式总是输出单元JSON格式,忽略这一选项。    --no-heading           此选项将禁止,否则会出现在标题行第一行表的输出。    --pretty           默认情况下,JSON输出作为紧凑印刷成为可能。           此选项将导致JSON输出更读数要打印能时尚。对象的成员和数组元素打印每行一个,与缩进。           此选项在表中不影响JSON,这始终是紧凑打印。    --bare等同于--format =list --data =bare --no-heading。 公钥基础设施的选项    -p privkey.pem    --private-key= privkey.pem           指定包含用作私钥PEM文件OVS-vsctl的身份传出SSL连接。    -c cert.pem    --certificate = cert.pem           指定包含在认证的证书PEM文件在-p或--private键指定的私钥是值得信赖的。           该证书必须由证书颁发机构进行签名(CA)在SSL连接同行将用于验证它。    -C cacert.pem    --ca-cert= cacert.pem           指定包含CA证书的PEM文件OVS-vsctl应当使用核实提交给它的证书           SSL同行。(这以验证-c或--certificate,或指定的证书它可以是一个不同的,这取决于所使用的PKI设计)。    -C none    --ca-cert=none           禁用通过SSL同行颁发证书的验证。           这引入了安全风险,因为它意味着证书无法验证是那些已知受信任主机。    --bootstrap-ca-cert= cacert.pem           当cacert.pem存在,此选项与-C还是一样的效果--ca-cert。如果它不存在,则OVS-vsctl将尝试           获得来自同行的SSL CA证书在连接并将其保存到指定PEM文件。如果是成功的,它会立即断开连接,           重新连接,并从那时起所有SSL连接必须由认证获得的CA证书签名认证。           此选项暴露了SSL连接到一个人在这方面的中间人攻击获得初始CA证书,但它可能是使用的引导。           如果SSL端发送其CA 认证选项才有用美食作为SSL证书链的一部分。           SSL协议不需要服务器发送CA证书。           此选项与-C和--ca-cert相互排斥的。    --peer-ca-cert=peer-cacert.pem           指定包含一个或多个额外认证一个PEM文件发送给SSL同行。同行cacert.pem应           CA证书用于签署OVS-vsctl自己的证书,即是,在-c或--certificate指定的证书。如果           OVS-vsctl的证书是自签名,然后--certificate和--peer-ca-cert应指定相同的文件。           此选项在正常操作很有用,因为SSL同行必须已经CA证书为同行有           任何信心OVS-vsctl的身份。然而,这提供了一个新安装来引导CA证书它的第一个SSL连接。    -v [spec]    --verbose = [spec]           设置日志记录级别。没有任何规范,设置日志级别每个模块和目的地dbg。否则,spec是一个列表           从用空格或逗号或冒号分隔,最多一个词下面每个类别:           ·有效的模块名称,由视频博客/列表中显示的命令在ovs-appctl(8),限制了日志级别的变化直到                  指定的模块。           ·系统日志,控制台或文件,以限制日志级别变化到仅到系统日志,控制台,或者到一个文件,                  分别。(如果指定--detach,OVS,vsctl关闭了它的标准文件描述符,所以记录到                  控制台不会有任何效果。)                  在Windows平台上,系统日志被接受为一个词,是仅与--syslog-target选项一起有用的(在                  词有否则没有效果)。           ·off, emer, err, warn, info, or dbg,控制日志水平。给定的严重程度或更高的消息将被                  记录下来,并降低严重性消息将被过滤出。关过滤掉的所有消息。见OVS-appctl(8)                  每个日志级别的定义。           案例不规范之内显著。           无论日志级别的设置文件,记录到文件除非还指定--log-file将不会发生(见下面)。           为了与旧版本OVS的兼容性,任何被接受为一个字,但没有效果。    -v    --verbose           设置最大日志记录的级别,相当于--ver-bose= DBG。    -vPATTERN:destination:pattern    --verbose=PATTERN:destination:pattern           设置目的地模式日志模式。请参阅OVS-appctl(8)为模式的有效语法的描述。    -vFACILITY:facility    --verbose=FACILITY:facility           设置日志消息的RFC5424设施。工厂可kern, user, mail, daemon, auth, syslog, lpr, news,  uucp,           clock,  ftp,  ntp, audit, alert, clock2, local0, local1, local2,local3, local4, local5, local6 or local7。       如果这个选项不指定,守护进程用作默认为本地系统syslog和local0到在发送一消息到目标使用通过--syslog目标选项提供。    --log-file[=file]           将日志记录到文件中。如果指定的文件,则它是用作用于记录文件的确切名称。默认的日志文件           如果省略文件名中使用是/usr/local/var/log/open‐vswitch/ovs-vsctl.log.    --syslog-target=host:port           发送系统日志消息的UDP端口主机,除了系统日志。该主机必须是一个数字IP地址,而不是主机名。    --syslog-method=method           指定方法syslog消息应如何发送到系统日志守护程序           周一 以下形式的支持:           ·libc,使用libc的系统日志()函数。这是默认行为。使用此选项的缺点是,libc中                  增加了固定前缀的每一个消息之前,它实际上是过的/ dev /日志UNIX域发送到syslog守护进程插座。           ·UNIX:file,直接使用UNIX域套接字。这是可能提取使用此选项指定任意的消息格式。                  然而,rsyslogd 8.9和旧版本使用硬编码解析器函数反正限制UNIX域套接字使用。                  如果你想使用任意的消息格式较旧版本的rsyslogd,然后使用UDP套接字为localhostIP地址来代替。           ·UDP:IP:port,使用UDP套接字。用这种方法,可能也使用任意的报文格式与旧rsyslogd。当发送了UDP套接字syslog消息额外的预防措施需要被考虑在内,为例如,syslog进程需要被配置为侦听指定的UDP端口上,意外iptables规则可以与本地syslog流量,并有会干扰是适用于UDP一些安全注意事项sockets,但并不适用于UNIX域套接字。    -H    --help打印简短的帮助信息到控制台。    -V    --version  打印版本信息发送到控制台。 来自:http://openvswitch.org/support/dist-docs/ovs-vsctl.8.txt

你可能感兴趣的:(linux)