0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

认识Open vSwitch的基础与原理

汽车电子技术 来源:码农与软件时代 作者: 码农与软件时代 2023-02-14 14:44 次阅读

一、概况

随着服务器虚拟化技术的发展,网络虚拟化也需要解决从NIC到虚机的“最后一公里”问题,便产生了许多虚拟交换机开源方案:Open vSwitch、Snabb Switch 和 Lagopus,其中Open vSwitch的知名度最高。

Open vSwitch项目早在2009年,就已孵化诞生,于2012年7月30日发布第一个开源版本V1.7.0,内核datapath已经被纳入Linux内核作为发行版的一部分。

二、工作原理

1.组件

l ovsdb-server将配置信息保存在conf.db中,并通过db.sock提供服务,ovs-vswitchd通过这个db.sock从这个进程读取配置信息。

l ovs-vswitchd: OVS守护进程,实现基于流的交换(flow-based switching)。与controller通信使用OpenFlow协议,与ovsdb-server通信使用OVSDB协议,与内核模块使用netlink机制通信。

l ovsdb-server: OVS轻量级的数据库服务器,用于保存整个OVS的配置信息。

l Forwarding Path(数据通路):Datapath把流的match和action结果缓存,避免后续同样的流继续upcall到用户空间进行流表匹配。

图片

2.工作流程

①OVS的datapath接收到从OVS连接的某个网络设备发来的数据包,从数据包中提取源/目的IP、源/目的MAC、端口等信息。

②OVS在内核状态下查看流表结构(通过Hash),观察是否有缓存的信息可用于转发这个数据包。

③假设数据包是这个网络设备发来的第一个数据包,在OVS内核中,将不会有相应的流表缓存信息存在,那么内核将不会知道如何处置这个数据包。所以内核将发送upcall给用户态。

④位于用户态的ovs-vswitchd进程接收到upcall后,将检查数据库以查询数据包的目的端口是哪里,然后告诉内核应该将数据包转发到哪个端口,例如eth0。

⑤内核执行用户此前设置的动作。即内核将数据包转发给端口eth0,进而数据被发送出去。

三、命令接口

1.Open vSwitch提供了ovs-vsctl、ovs-ofctl、ovs-dpctl等命令,详情如下:

图片

l ovs-vsctl:管理ovsdb-server的配置,提供OVSDB的配置方法,包括创建和删除网桥、端口等;

l ovs-ofctl:提供ovs-vswitchd的流表配置方法;

l ovs-dpctl:配置OVS内核模块,提供缓存流表的操作方法;

l ovsdb-tool:创建和管理OVSDB。

  1. 命令示例

(1)网桥管理

命令 功能
ovs-vsctl show 显示OVS信息
ovs-vsctl add-brbr-name 添加新的网桥br-name
ovs-vsctl del-brbr-name 删除br-name
ovs-vsctl list-br 显示网桥br-name信息
ovs-vsctl list-portsbr-name 显示网桥br-name中所有port信息
ovs-vsctl add-portbr-name port-no br-name添加端口
ovs-vsctl del-portbr-name port-no 删除br-name上的端口
ovs-vsctl get-controllerbr-name 获取br-name连接控制器的信息
ovs-vsctl del-controllerbr-name 删除br-name连接控制器的信息
ovs-vsctl set-controller *br-name *tcp: [ip] : [port] br-name网桥连接控制器controller

(2)流表管理

命令 功能
ovs-ofctl showbr-name 输出OpenFlow信息。
ovs-ofctl add-flowbr-name flow 添加流表项。
ovs-ofctl add-flowsbr-name filename 以文件形式批量添加流表项。
ovs-ofctl del-flowsbr-name flow 删除交换机的流表项。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 交换机
    +关注

    关注

    21

    文章

    2622

    浏览量

    99228
  • 服务器虚拟化

    关注

    0

    文章

    6

    浏览量

    7709
  • NIC
    NIC
    +关注

    关注

    0

    文章

    23

    浏览量

    12382
  • 网络虚拟化
    +关注

    关注

    0

    文章

    11

    浏览量

    2937
收藏 人收藏

    评论

    相关推荐

    怎样在ls1046的板子上安装Open vSwitch软件呢

    我想在ls1046的板子上安装Open vSwitch 软件,要怎么做呢?用户手册上提到一个单独编译app的命令flex-builder -c apps -m ls1046ardb,但还是不懂怎么安装第三方软件
    发表于 01-13 09:36

    Open Universal Serial Bus Driv

    Open Universal Serial Bus Driver Interface (OpenUSBDI) Specification This document specifies
    发表于 04-11 19:16 15次下载

    介绍OVN中的新功能

    本文档主要是关于2017年8月底发布的Open vSwitch 2.8中添加的内容,重点介绍OVN中的新功能。同时也涵盖了即将在2018年2月发布的Open vSwitch和OVN 2
    发表于 03-06 10:05 2202次阅读

    在单独的Docker容器中运行TestPMD和PKTGEN

    In this video you'll build and launch two Docker containers that use Open vSwitch with DPDK support.
    的头像 发表于 10-23 06:24 3103次阅读

    用DPDK构建开放式V交换机并准备启动开放式交换机

    In this video you'll learn how to build DPDK, and then build Open vSwitch* with DPDK support. Then prepare the host system to run
    的头像 发表于 10-18 03:03 3112次阅读

    用DPDK打开虚拟交换机创建NFV的要求和步骤

    This video demonstrates the requirements and steps to run Open vSwitch with DPDK on the host
    的头像 发表于 09-12 05:01 4052次阅读

    用DPDK启动VCwitter并配置端口

    In this video you'll learn to launch Open vSwitch* with DPDK support and then configure the bridge ports and flows.
    的头像 发表于 09-11 05:51 3389次阅读

    用DPDK支持构建和启动DOCKER容器

    In this video you'll build and launch two Docker containers that use Open vSwitch with DPDK support.
    的头像 发表于 09-10 04:22 4993次阅读

    使用DPDK打开VSwitch:架构和性能

    使用DPDK打开VSwitch:架构和性能
    的头像 发表于 11-08 06:20 3447次阅读

    Xilinx 宣布加入 Open RAN 政策联盟

    2020年7月30日,中国北京 自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ: XLNX))今日宣布加入 Open RAN 政策联盟( Open RAN
    的头像 发表于 07-30 11:49 2729次阅读

    四家运营商携手把open RAN作为未来通信网络的首选技术部署

    雄心勃勃的合作,但是却并未给出具体的open RAN部署时间表,由此可见,这四大运营商对于open RAN面临的巨大技术挑战有着非常清醒的认识。“雷声很大”的open RAN尚处于开发
    的头像 发表于 01-29 10:48 1458次阅读
    四家运营商携手把<b class='flag-5'>open</b> RAN作为未来通信网络的首选技术部署

    基于Linux的虚拟交换机Open vSwitch项目

      要点: Open vSwitch 是一个著名的基于 Linux 的虚拟交换机的开源项目。作为 Cisco 和 VMware 解决方案的替代方案,它是主要的创新平台和公认的标准开放式交换机,可与 OpenFlow 一起使用。
    的头像 发表于 06-22 14:31 2347次阅读

    open函数-打开文件并返回文件对象

    open() 函数的作用open函数语法参考open()函数参数说明
    的头像 发表于 02-23 10:06 9122次阅读
    <b class='flag-5'>open</b>函数-打开文件并返回文件对象

    SDNLAB技术分享:Open vSwitch匹配处理流程和拓展性

    相比在ovs源码中添加自定义action,自定义匹配域显得关系更为复杂凌乱一些。为了让和匹配域相关的模块条理更加清楚明了,我尽量将要提到的相关模块关系化,防止漏掉和匹配域相关的部分。这里先给出总体架构图:
    发表于 06-16 09:30 501次阅读
    SDNLAB技术分享:<b class='flag-5'>Open</b> <b class='flag-5'>vSwitch</b>匹配处理流程和拓展性

    2195亿!open RAN

    11月2日消息,一家市场调研公司counterpoint research预计,到2030年,电信网络运营啥将在open RAN方面花费300亿美元(约合人民币2195.58亿元)。2025年之后移动网络运营商的open RAN投资将开始同比增长。
    的头像 发表于 11-02 16:26 597次阅读