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流表分析
浙公网安备 33010602011771号