Open Vswitch部署

CentOS7安装openvswitch

yum install epel-release -y
wget --no-check-certificate https://www.openvswitch.org/releases/openvswitch-2.11.1.tar.gz
# 生成rpmbuild目录
rpmbuild -bb --nocheck /root/rpmbuild/SOURCES/openvswitch-2.11.1/rhel/openvswitch-fedora.spec
# 移动并解压openvswitch包打指定目录
mv /root/openvswitch-2.11.1.tar.gz /root/rpmbuild/SOURCES/
tar xf /root/rpmbuild/SOURCES/openvswitch-2.11.1.tar.gz -C /root/rpmbuild/SOURCES/
# 显示openvswitch需要的依赖包
rpmbuild -bb --nocheck /root/rpmbuild/SOURCES/openvswitch-2.11.1/rhel/openvswitch-fedora.spec
# 安装依赖包
yum install -y openssl-devel python-devel desktop-file-utils groff graphviz checkpolicy selinux-policy-devel python-sphinx python-twisted-core python-zope-interface libcap-ng-devel unbound unbound-devel
# 生成rpm安装包
rpmbuild -bb --nocheck /root/rpmbuild/SOURCES/openvswitch-2.11.1/rhel/openvswitch-fedora.spec
# 安装openvswitch
yum localinstall /root/rpmbuild/RPMS/x86_64/openvswitch-2.11.1-1.el7.x86_64.rpm
# 启用openvswitch服务
service openvswitch start|systemctl start openvswitch
systemctl status openvswitch
systemctl enable openvswitch
# 查看openvswitch版本
ovs-vsctl -V

Open Vswitch常用命令

# 查询vswitch中有哪些数据库
ovsdb-client list-dbs
# 查询Open_vSwitch库中的有哪些表
ovsdb-client list-tables Open_vSwitch
# 查询Interface表中有哪些字段
ovsdb-client list-columns Interface
# 获取Interface表中的全部数据
ovsdb-client dump Interface
# 查看openvswitch配置
ovs-vsctl list Open_vSwitch .
# 修改openvswitch配置
ovs-vsctl set Open_vSwitch . other_config:flow-limit=1000000
ovs-vsctl set Open_vSwitch . other_config:emc-insert-inv-prob=1
ovs-vsctl set Open_vswitch . other_config:n-handler-threads=4
ovs-vsctl set Open_vSwitch . other_config:n-revalidator-threads=4
ovs-vsctl set Open_vSwitch . other_config:max-idle=30000
# 删除ovs相关配置
ovs-vsctl remove Open_vSwitch . other_config flow-limit
ovs-vsctl remove Open_vSwitch . other_config emc-insert-inv-prob
ovs-vsctl remove Open_vSwitch . other_config n-handler-threads
ovs-vsctl remove Open_vSwitch . other_config n-revalidator-threads
ovs-vsctl remove Open_vSwitch . other_config max-idle
# 查看所有接口
ovs-vsctl list interface
# 查看eth1口的详细信息
ovs-vsctl list interface eth1
# json格式输出eth1接口信息
ovs-vsctl --format=json list interface eth1     # 输出格式有:table、html、csv、json
# openvswitch连接pod的端口名称(-B 1表示输出匹配行之前的一行,-A 1表示输出匹配行后面的一行)
ovs-vsctl list interface | grep -Ew "name|external_ids" | grep -A 1 [podname]
ovs-vsctl --columns=name,mac_in_use,external_ids,ifindex --format=table list interface | grep busybox
# 查看桥br-int上的所有流规则
ovs-ofctl dump-flows br-int
ovs-appctl dpctl/dump-flows system@ovs-system
ovs-appctl bridge/dump-flows br-int
# 过滤所有入站到指定端口的流规则
ovs-ofctl dump-flows br-int in_port=<port-number>
# 按优先级或目的IP降序排列流表
ovs-ofctl dump-flows br-int table=4 --rsort=priority/nw_dst
# 按优先级或目的IP升序排列流表
ovs-ofctl dump-flows br-int table=4 --sort=priority/nw_dst
# 过滤桥br-int中符合table=4,协议为ip,目的ip为10.147.6.26的流表
ovs-ofctl dump-flows br-int table=4,ip,nw_dst=10.147.6.26 --sort
# 查看桥br-int中符合table=2且in_port=probe的所有流
ovs-ofctl dump-flows br-int table=2,in_port=probe --sort
# 过滤桥br-int中符合table=2,协议为tcp,目的ip为10.233.0.3的流表
ovs-ofctl dump-flows br-int table=2,tcp,nw_dst=10.233.0.3 --sort
# 查看当前OVS网桥的端口信息
ovs-vsctl show
33b95fbb-acf0-4d24-98c8-40e942328e69
    Bridge br-int
        Port "699068eaebe2_h"
            tag: 1166
            Interface "699068eaebe2_h"
# 说明:
    # UUID:第一行的长字符串是OVS配置的唯一标识符。
    # Bridge:表示一个虚拟交换机桥,例子中是br-int。
    # Port:桥上的端口,如:6a87e29866ce_h(用于连接pod的eth0口)
    # tag:端口所属vlan
    # Interface:端口对应的接口名称,同端口名,可能带有类型属性
# 查看br-int桥的端口信息和状态
ovs-ofctl show br-int  
OFPT_FEATURES_REPLY (xid=0x2): dpid:000020658e9337aa
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 155(699068eaebe2_h): addr:1a:69:a5:1d:16:6d
     config:     0
     state:      0
     current:    10GB-FD COPPER
     speed: 10000 Mbps now, 0 Mbps max
# 说明:
    # dpid:数据路径ID,是该桥的唯一标识符。
    # 155:bridge中端口的编号。
    # 699068eaebe2_h:端口的名字。
    # addr:端口MAC地址。
    # config:端口配置状态,0表示正常。
    # state:端口状态,0表示端口是启用的。
    # current:当前链路速率和模式(如10GB-FD,表示10Gbps全双工)。
    # speed:当前速度和最大速度

参考链接:
      https://www.openvswitch.org/download/         # openvswitch安装包下载
      https://sflow-rt.com/intro.php                          # sflow-rt安装
      http://mininet.org/download/                          # mininet安装
      https://blog.csdn.net/m0_37770302/article/details/124149999       # mininet环境搭建
      https://www.cnblogs.com/FlyerBird/p/10458579.html                     # mininet+floodlight使用
      https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/overview       # Floodlight安装指南
      https://blog.csdn.net/rocson001/article/details/51897775           # Floodlight(v1.2)+OpenFlow交换机测试环境搭建
      https://www.osgeo.cn/sphinx/usage/installation.html                  # sphinx安装
      https://blog.csdn.net/goog_man/article/details/108799019        # JDK1.8安装
      https://cloud.tencent.com/developer/article/2046695                # Open vSwitch简介
      https://www.cnblogs.com/goldsunshine/p/10959199.html        # Open Vswitch
      https://www.kancloud.cn/digest/openvswitch/117245               # openVswitch(OVS)源代码分析
      https://www.cnblogs.com/zqyanywn/p/10501590.html            # ovs-appctl命令合集
      https://www.cnblogs.com/lht333/p/16702833.html                 # ovs命令
      https://forum.huawei.com/enterprise/cn/zh/thread/blog/580931940318593024        # ovs流表分析

posted @ 2024-12-03 17:24  風£飛  阅读(269)  评论(0)    收藏  举报