千家信息网

openvswitch的原理和常用命令介绍

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"openvswitch的原理和常用命令介绍"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2026年11月02日openvswitch的原理和常用命令介绍

本篇内容介绍了"openvswitch的原理和常用命令介绍"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一.Openvswitch工作原理

  openvSwitch是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议,由 Nicira Networks开发,主要实现代码为可移植的C代码。它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。此外,它被设计位支持跨越多个物理服务器的分布式环境,类似于VMware的vNetwork分布式vswitch或Cisco Nexus 1000 V。Open vSwitch支持多种linux 虚拟化技术,包括Xen/XenServer, KVM和VirtualBox。
  openvswitch是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer,KVM以及virtualBox多种虚拟化技术。在这种虚拟化的环境中,一个虚拟交换机主要有两个作用:传递虚拟机之间的流量,以及实现虚拟机和外界网络的通信。
  内核模块实现了多个"数据路径"(类似于网桥),每个都可以有多个"vports"(类似于桥内的端口)。每个数据路径也通过关联一下流表(flow table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础上映射的关键信息,一般的操作都是将数据包转发到另一个vport。当一个数据包到达一个vport,内核模块所做的处理是提取其流的关键信息并在流表中查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能会设置一个流用于以后碰到相同类型的数据包可以在内核中执行操作)。

1.OpenvSwitch的组成###

  • ovs-vswitchd:OVS守护进程是,OVS的核心部件,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换(flow-based switching)。它和上层 controller 通信遵从 OPENFLOW 协议,它与 ovsdb-server 通信使用 OVSDB 协议,它和内核模块通过netlink通信,它支持多个独立的 datapath(网桥),它通过更改flow table 实现了绑定和VLAN等功能。   

  • ovsdb-server:轻量级的数据库服务,主要保存了整个OVS 的配置信息,包括接口啊,交换内容,VLAN啊等等。ovs-vswitchd 会根据数据库中的配置信息工作。它于 manager 和 ovs-vswitchd 交换信息使用了OVSDB(JSON-RPC)的方式。

  • ovs-dpctl:一个工具,用来配置交换机内核模块,可以控制转发规则。  

  • ovs-vsctl:主要是获取或者更改ovs-vswitchd 的配置信息,此工具操作的时候会更新ovsdb-server 中的数据库。  

  • ovs-appctl:主要是向OVS 守护进程发送命令的,一般用不上。

  • ovsdbmonitor:GUI 工具来显示ovsdb-server 中数据信息。  

  • ovs-controller:一个简单的OpenFlow 控制器  

  • ovs-ofctl:用来控制OVS 作为OpenFlow 交换机工作时候的流表内容。

2. OpenvSwitch的工作流程###

  1.VM实例 instance 产生一个数据包并发送至实例内的虚拟网络接口 VNIC,图中就是 instance 中的 eth0.
  2.这个数据包会传送到物理机上的VNIC接口,如图就是vnet接口.
  3.数据包从 vnet NIC 出来,到达桥(虚拟交换机) br100 上.
  4.数据包经过交换机的处理,从物理节点上的物理接口发出,如图中物理机上的 eth0 .
  5.数据包从 eth0 出去的时候,是按照物理节点上的路由以及默认网关操作的,这个时候该数 据包其实已经不受你的控制了.
  注:一般 L2 switch 连接 eth0 的这个口是一个 trunk 口, 因为虚拟机对应的 VNET 往往会设置 VLAN TAG, 可以通过对虚拟机对应的 vnet 打 VALN TAG 来控制虚拟机的网络广播域. 如果跑多个虚拟机的话, 多个虚拟机对应的 vnet 可以设置不同的 vlan tag, 那么这些虚拟机的数据包从 eth0(4)出去的时候, 会带上TAG标记. 这样也就必须是 trunk 口才行。

3.OpenvSwitch简单应用实例###

  通过以下命令即可实现:

root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-br br0 root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-port br0 eth0 root[@localhost](https://my.oschina.net/u/570656):~# ovs-vsctl add-port br0 eth2

4.Openvswitch常见操作

  添加网桥:

ovs-vsctl add-br br0

  列出所有网桥:

ovs-vsctl list-br

  判断网桥是否存在:

ovs-vsctl br-exists br0

  将物理网卡挂载到网桥上:

ovs-vsctl add-port br0 eth0

  列出网桥中的所有端口:

ovs-vsctl list-ports br0

  列出所有挂载到网卡的网桥:

ovs-vsctl port-to-br eth0

  查看ovs的网络状态:

ovs-vsctl show

  删除网桥上已经挂载的网口:

ovs-vsctl del-port br0 eth0

  删除网桥:

ovs-vsctl del-br br0

  设置控制器:

ovs-vsctl set-controller br0 tcp:ip:6633

  删除控制器:

ovs-vsctl del-controller br0

  设置支持OpenFlow Version 1.3:

ovs-vsctl set bridge br0 protocols=OpenFlow13

  删除OpenFlow支持设置:

ovs-vsctl clear bridge br0 protocols

  设置vlan标签:

ovs-vsctl add-port br0 vlan3 tag=3 -- set interface vlan3 type=internal

  删除vlan标签:

ovs-vsctl del-port br0 vlan3

  查询 VLAN:

ovs-vsctl show ifconfig vlan3

  查看网桥上所有交换机端口的状态:

ovs-ofctl dump-ports br0

  查看网桥上所有的流规则:

ovs-ofctl dump-flows br0

  查看ovs的版本:

ovs-ofctl -V

"openvswitch的原理和常用命令介绍"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 网桥 交换机 信息 物理 控制 支持 内核 多个 接口 时候 模块 网络 命令 内容 处理 工作 通信 配置 原理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 深圳九邦互联网科技有限公司 科技股互联网 互联网金融监管科技数据 猪兼强互联网科技 中正互联网科技招聘 华中科技有哪些互联网大佬 老年人脱离互联网科技的作文 成都玖崟互联网科技有限公司乐商圈怎么样 中盈科技互联网信息有限公司 中国科技互联网公司收入 互联网科技热点资讯 崇明区互联网教育科技诚信经营 中国航天科技大学国际工业互联网 互联网科技产业特征 互联网方面的科技前沿 黑科技 体验场景 互联网大会 互联网科技接地气 科技和互联网行业的特点 数字科技和互联网金融哪个好 手冲咖啡和咖啡机区别 互联网新科技 极限挑战互联网科技 互联网金融 科技创新 左右互联网络科技 互联网科技大赛获奖感言 南博望互联网科技有限公司 互联网科技股为什么大涨 易租星互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司
0