ovs-vsctl简明用户手册(基于版本openvswitch-2.11.0-4.el7.x86_64)
ovs-vsctl简明用户手册(基于版本openvswitch-2.11.0-4.el7.x86_64) ovs-vsctl 是一个用户命令行界面,可以用来操作ovs-vswitchd这个后台程序
1 #/usr/share/openvswitch/scripts/ovs-ctl start
1 操作虚拟网桥的命令. 1.1 初始化OVS数据库 (这个命令没有输出)
例子
1.2 输出当前OVS的状态, 比如你可以看到OVS网桥,端口(port),接口(interface)和对应的类型.
例子1 2 3 4 5 6 7 8 # ovs-vsctl show Bridge "samlee_br1" Port "samlee_br1" Interface "samlee_br1" type: internal Port "ens12" Interface "ens12" ovs_version: "2.11.0"
1.3 重新启动OVS网桥 (这个命令没有输出)
例子
1.4 创建一个OVS网桥 (这个命令没有输出) 1 # ovs-vsctl add-br BRIDGE_NAME
例子 (add a bridge, named samlee_br1)1 # ovs-vsctl add-br samlee_br1
1.5 通过OVS父网桥创建一个桥中桥,并配上VLAN号(这个命令没有输出) 1 # ovs-vsctl add-br BRIDGE_NAME PARENT_BR_NAME VLAN
例子1 # ovs-vsctl add-br samlee_fake_br1 samlee_br1 200
1.6 删除OVS网桥并同时删除附在上面的端口与接口(这个命令没有输出) 1 # ovs-vsctl del-br BRIDGE_NAME
例子1 # ovs-vsctl del-br tobedeleted_br1
1.7 列出所有OVS网桥的名字
例子1 2 3 # ovs-vsctl list-br samlee_br1 samlee_fake_br1
1.8 查询指定的OVS网桥是否存在,存在返回0,否则返回2(这个命令没有输出,我们通过echo来获得输出) 1 # ovs-vsctl br-exists BRIDGE_NAME
例子1 2 # ovs-vsctl br-exists samlee_br1 ; echo $? 0
1 2 # ovs-vsctl br-exists samlee_br2 ; echo $? 2
1.9 查看指定的VLAN在那个OVS网桥上面(这个命令输出VLAN ID) 1 # ovs-vsctl br-to-vlan BRIDGE_NAME
例子1 2 # ovs-vsctl br-to-vlan samlee_fake_br1 200
1.10 查看指定OVS网桥的父网桥名字(这个命令会输出父网桥的名字) 1 # ovs-vsctl br-to-parent BRIDGE_NAME
例子1 2 # ovs-vsctl br-to-parent samlee_fake_br1 samlee_br1
1.11 给指定的OVS网桥设置键值对; 这些键值对可以用来给指定OVS网桥作为标示(这个命令没有输出) 1 # ovs-vsctl BRIDGE_NAME KEY VALUE
例子1 # ovs-vsctl br-set-external-id samlee_fake_br1 priority 3
1.12 清除指定OVS网桥的键值对(这个命令没有输出) 1 # ovs-vsctl br-set-external-id BRIDGE_NAME KEY
例子1 ovs-vsctl br-set-external-id samlee_fake_br1 priority
1.13 输出指定OVS网桥的键值对的值 (这个命令输出键值) 1 # ovs-vsctl br-get-external-id BRIDGE_NAME KEY
例子1 2 # ovs-vsctl br-get-external-id samlee_fake_br1 priority 3
1.14 输出指定OVS网桥的键值对 (这个命令输出键值对) 1 # ovs-vsctl br-get-external-id BRIDGE_NAME
例子1 2 # ovs-vsctl br-get-external-id samlee_fake_br1 priority=3
2 端口操作命令(注意:默认每一个OVS网桥都有一个与之同名的端口, 一个聚合端口(bond)被看做一个端口)
2.1 列出指定OVS网桥上面的所有的端口(这个命令将输出端口的名字) 1 # ovs-vsctl list-ports BRIDGE_NAME
例子1 2 # ovs-vsctl list-ports samlee_br1 ens12
2.2 给指定的OVS网桥添加一个端 (这个命令没有输出) 1 # ovs-vsctl add-port BRIDGE_NAME PORT
例子1 # ovs-vsctl add-port samlee_br1 ens12
2.3 给指定的OVS网桥添加一个聚合端口(bond)并且将指定的接口加入聚合端口(这个命令没有输出) 1 # ovs-vsctl add-bond BRIDGE_NAME PORT_NAME IFACE...
例子1 # ovs-vsctl add-bond samlee_br1 sam_bond0 ens11 ens12
2.4 查看指定聚合端口(bond)的参数(这个命令将输出端口的参数)
1 # ovs-appctl bond/show BOND_PORT
例子1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # ovs-appctl bond/show sam_bond0 ---- sam_bond0 ---- bond_mode: active-backup bond may use recirculation: no, Recirc-ID : -1 bond-hash-basis: 0 updelay: 0 ms downdelay: 0 ms lacp_status: off lacp_fallback_ab: false active slave mac: 52:54:00:cf:9f:59(ens12) slave ens11: enabled may_enable: true slave ens12: enabled active slave may_enable: true
2.5 从指定的OVS网桥上删除指定的端口(这个命令没有输出) 1 # ovs-vsctl del-port [BRIDGE_NAME] PORT
例子1 # ovs-vsctl del-port samlee_br1 ens12
2.6 通过指定端口查询它所在的OVS网桥(这个命令将输出网桥的名字) 1 # ovs-vsctl port-to-br PORT
例子1 2 # ovs-vsctl port-to-br ens12 samlee_br1
2.7 给端口指定一个接口类型, 类型可以是常规类型,内部类型,对接类型和隧道类型(这个命令没有输出) 1 # ovs-vsctl set Interface PORT_NAME type=TYPE_NAME
例子1 # ovs-vsctl set Interface samlee_br1 type=internal
TBD 2.8 给指定OVS网桥添加一个隧道. 隧道的类型可以是gre或者vxlan(比如,给网桥samlee_br1添加一个名字为samlee_tunnel的隧道.并且指定这个隧道的端口,接口名字为samlee_tunnel. 并且给接口指定IP地址. 其中vxlan的默认端口号是4789). (这个命令没有输出) 1 # ovs-vsctl add-port BRIDGE_NAME PORT_NAME -- set Interface INTERFACE_NAME type=TUNNEL_TYPE options:remote_ip=IPADDRESS
例子1 # ovs-vsctl add-port samlee_br1 samlee_tunnel -- set Interface samlee_tunnel type=gre options:remote_ip=200.200.200.200
1 # ovs-vsctl add-port samlee_br1 samlee_vxlan -- set Interface samlee_vxlan type=vxlan options:remote_ip=100.100.100.100 options:dst_port=4789
3 接口操作命令(注意: 一个聚合端口(bond)包含多个接口):
3.1 列出指定OVS网桥上面的所有接口(这个命令将输出接口的名字) 1 # ovs-vsctl list-ifaces BRIDGE_NAME
例子1 2 # ovs-vsctl list-ifaces samlee_br1 ens12
3.2 输出指定接口所在的OVS网桥(这个将输出网桥的名字) 1 # ovs-vsctl iface-to-br IFACE
例子1 2 # ovs-vsctl iface-to-br ens12 samlee_br1
4 控制OVS网桥的相关命令.
ovs-vswitchd这个后台程序可以实现对OVS网桥,OVS交换机的本地管理. 同时,它也可以支持符合Open-Flow规范的外部Open‐Flow控制器的远程管理. 如果这个外部的Open‐Flow控制器失效,会造成OVS网桥和OVS交换机的丢包. 但是我们可以通过相应的配置来避免此类情况. 我们可以将fail-mode模式设置为standalone或者是secure. 在standalone模式下面,如果Open‐Flow控制器失效,在一个指定的时间间隔内,重试3次都没有收到Open‐Flow控制器的数据包,ovs-vswitchd这个后台程序将会重新接管,并以本地模式运行,此时OVS网桥和OVS交换机将不受影响. 而如果设置为secure模式,在Open‐Flow控制器失效时,ovs-vswitchd这个后台程序将不会重新接管, 而此时OVS网桥和OVS交换机将受到影响
4.1 查询当前OVS网桥的Open‐Flow控制器(这个命令将输出Open‐Flow控制器的名字) 1 # ovs-vsctl get-controller BRIDGE_NAME
例子1 2 # ovs-vsctl get-controller samlee_br1 tcp:127.0.0.1:6633
4.2 删除当前OVS网桥的Open‐Flow控制器(这个命令没有输出) 1 # ovs-vsctl del-controller BRIDGE_NAME
例子1 # ovs-vsctl del-controller samlee_br1
4.3 指定当前OVS网桥的Open‐Flow控制器 (这个命令没有输出) 1 # ovs-vsctl set-controller BRIDGE_NAME TARGET...
例子1 # ovs-vsctl set-controller samlee_br1 tcp:127.0.0.1:6633
4.4 查询当前OVS网桥的Open‐Flow控制器的失效模式(这个命令将输出Open‐Flow控制器失效模式的名字) 1 # ovs-vsctl get-fail-mode BRIDGE_NAME
例子1 2 # ovs-vsctl get-fail-mode samlee_br1 standalone
4.5 删除当前OVS网桥的Open‐Flow控制器的失效模式 (这个命令没有输出) 1 # ovs-vsctl del-fail-mode BRIDGE_NAME
例子1 # ovs-vsctl del-fail-mode samlee_br1
4.6 设置当前OVS网桥的Open‐Flow控制器的失效模式 (这个命令没有输出) 1 # ovs-vsctl set-fail-mode BRIDGE_NAME FAIL_MODE_NAME
例子1 # ovs-vsctl set-fail-mode samlee_br1 standalone
5 OVS交换机的命令:
5.1 重新启动ovs交换机 (这个命令没有输出)
好, ovs-vsctl简明用户手册(基于版本openvswitch-2.11.0-4.el7.x86_64)就介绍完毕了. 想要了解更多? 也欢迎关注 addos
微信公众号获取更多 :-)