SONIC架构简要分析(一)-数据库

2023-05-16

随着SONIC的日趋成熟,在互联网行业应用会越来越多,SONIC+白盒交换机的方式或许会成为将来数据中心的主流接入交换机。

为此,对SONIC的架构进行简要分析,看看与传统的网络操作系统的区别。

                               SONIC                                                                                                                            传统网络架构

LAG App,BGP App等都属于控制层,生成控制面的表项,SAI,ASIC Control Software相当于软转发层面,用来将控制面的数据转化为ASIC的数据,然后下发驱动。硬件转发层包含SDK和硬件,从上面的逻辑架构来看,两者并没有本质区别

但在实现上,有较大的差别,本次就讲讲引入数据库后的改变。在传统的交换机开发中,更注重流程,过程,引入数据库,实际带来思维的转变,将面向过程的开发转化为面向对象的开发。

引入数据库来非常多的好处

  1. 数据的处理清晰,避免了以前的在流程中多个地方对数据进行变更带来隐患。
  2. 模块间解耦。
  3. 实现方式与结果解耦。比如ACL,以前必须通过CLI或者MIB来实现,使用数据库后,不再关心实现方式,只要数据库中写入数据即可实现,那么ACL也可以是一个脚本,甚至可以远程写入。
  4. 借助数据库,可方便的实现同步,集群,备份等功能,简化了功能实现
  5. 有待大家发现

通常一个模块的处理通常如下:

在SONIC中则成为

在开发时,从关注流程,转变为关注数据,根据数据来进行相应的操作。数据库成为了整个系统的灵魂和核心。

我们来看如何通过数据库将数据从上到下串联起来

注意,此框图中的SONIC的Orcheestration Agent+SAI只相当于传统网络操作系统中的软转发层面的表项。在传统的网络操作系统中,软转发层面主要有两个作用,1)实现表项下发驱动的转换,将控制面的数据转化为ASIC SDK需要的数据。2)进行软转发操作。在SONIC中,软转发操作实际由内核完成。上图的操作流程为下发ASIC的流程。比如BGP协议产生的路由,会下发两份,1份路由下发到内核中,用于协议报文的收发。另一份则通过数据库通道下发到ASIC中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SONIC架构简要分析(一)-数据库 的相关文章

  • SONIC+P4

    SONIC简介 背景 微软于2015年先后发表了SAI和SONIC SONIC产业日益繁荣 xff0c 已超过六十家 创新 SONiC使用了大量现有的开源技术 xff1a Docker Redis Quagga和LLDPD以及自动化配置工具
  • SONiC中的config文件夹中的__init__.py文件和main.py文件,这两个文件的作用分别是什么...

    在SONiC中 xff0c config文件夹中的 init py文件和main py文件分别有以下作用 xff1a init py文件 xff1a 这个文件是一个Python包的初始化文件 xff0c 它的主要作用是定义这个包的结构和内容
  • SONiC中的SAI接口使用方法和原理

    SONiC是一款开源网络操作系统 xff0c SAI Switch Abstraction Interface 接口是用于与硬件交互的接口 SAI接口定义了硬件平台必须实现的功能 xff0c 使得软件能够与硬件无缝衔接 SAI接口使用方法如
  • Sonic测试架构介绍

    Sonic项目简介 Sonic Software for Open Networking in the CloudSonic是基于Linux的开源网络操作系统 xff0c 可以跑在多个不同芯片厂商交换机上Sonic在2016年OCP峰会上
  • sonic处理netlink事件

    sonic处理netlink事件 sonic在处理路由 xff0c 接口up down 接口地址变化 xff0c team等事件上极大的依赖内核 sonic通过监听rtnl事件来响应linux事件 从而感知相关信息变化 libnl soni
  • sonic配置team与实现机制

    sonic实现team代码框架图 xff1a sonic修改lag模式配置步骤 1 修改文件teamd j2 docker exec it teamd bash cd usr share sonic templates vim teamd
  • SONIC VLAN配置流程

    SONIC VLAN配置流程 sonic vlan配置通过订阅config db的键空间事件完成vlan配置信息从config db到内核和硬件 config db json格式如下 xff1a 34 VLAN 34 34 Vlan1000
  • SONiC中的config文件夹中的__init__.py文件和main.py文件,这两个文件的作用分别是什么...

    在SONiC中 xff0c config文件夹中的 init py文件和main py文件分别有以下作用 xff1a init py文件 xff1a 这个文件是一个Python包的初始化文件 xff0c 它的主要作用是定义这个包的结构和内容
  • 2020年12月30日 当SONiC遇到P4

    当SONiC遇到P4 SONiC P4 是SONiC中运行的P4虚拟交换机 xff0c 当前的SONiC P4是一个docker image xff0c 可以运行在任意的docker环境中 看看SONiC和P4能碰撞出什么火花 SONiC的
  • 2021-02-06 SONiC SAI结构 Adapter&Adapter Host

    SONiC SAI SAI 结构 SAI是SONiC系统最精华的部分 xff0c SAI spec对SAI如何定义的以及SAI如何被SONiC系统初始化和调用有一些具体的介绍 首先还是一个High Level Design的图 xff1a
  • 2021-02-07 SONiC SAI结构2 1D Bridge

    SONiC SAI结构2 1D Bridge 以太网交换流水线结构 SONiC SAI对交换机 路由器的报文处理流程建立了标准化的行为模型 即使不同的交换芯片内部实现报文处理的方式各不相同 xff0c 由于行为模型是报文处理过程的抽象描述
  • 2021-04-26 SONiC: 转发和管理平面接口SAI模型

    2021 04 26 SONiC 转发和管理平面接口SAI模型 SAI模型中转发平面和管理平面接口 转发平面和管理平面之间的接口是控制报文从转发平面传递到控制平面CPU处理的接口 对于各种类型的交换机而言 xff0c 大量不同种类的控制报文
  • 2021-06-25 SONiC 系统BGP配置命令

    2021 06 25 SONiC 系统BGP配置命令 SONiC系统BGP配置 SONiC系统所默认包含的BGP模块在201811版的SONiC之前是开源的Quagga软件 xff0c 之后改成了更流行的FRR FRR中的Show命令是以
  • 2021年8月14日 七夕节的相遇 SONiC+P4实现

    2021年8月14日 七夕节的相遇 SONiC 43 P4实现 ONF启动了PINS项目 xff0c P4 integrated network stack
  • 2021-08-29 SONiC中基于策略的哈希配置

    SONiC中基于策略的哈希配置 SONiC可以支持对不同类型的报文采取不同的Hash算法 对于多通道 多链路连接的情况 xff0c 如LAG和ECMP的接口上 xff0c 交换机和路由器采用Hash算法对报文中指定的字段进行Hash计算 x
  • sonic 编译

    本文是转载 xff0c sonic 编译 sonic编译过程讲解 xff0c 点击这里
  • sonic 架构学习

    射人先射马 xff0c 擒贼先擒王 在我们学习sonic的过程中 xff0c 无疑了解sonic的架构是非常重要的 xff0c 然后再去了解各个模块的细节 xff0c 总分学习模式 下面是我自我学习并翻译的链接https github co
  • SONIC架构简要分析(一)-数据库

    随着SONIC的日趋成熟 xff0c 在互联网行业应用会越来越多 xff0c SONIC 43 白盒交换机的方式或许会成为将来数据中心的主流接入交换机 为此 xff0c 对SONIC的架构进行简要分析 xff0c 看看与传统的网络操作系统的
  • 编译SONiC交换机镜像(转,参考2)

    sonic buildimage 编译SONiC交换机镜像 描述 以下是关于如何为网络交换机构建 ONIE 兼容网络操作系统 xff08 NOS xff09 安装程序镜像的说明 xff0c 以及如何构建在NOS内运行的Docker镜像 请注
  • sonic开发——修改内核配置

    参考 xff1a https github com Azure sonic linux kernel sonic 中的内核配置修改不需要编译menuconfig xff0c 而是直接修改 patch kconfig exclusions和p

随机推荐

  • vncserver too many security failures

    在服务器上开了几个虚拟机 xff0c 装了VNC之后 xff0c 经常遇到报错too many security failures 查了下相关资料 xff0c 原来是有人在暴力破解 xff0c 触发了VNC的黑名单机制 重置黑名单 xff0
  • Centos7 官方安装方法(略有修改),nextcloud-20.0.1版本亲测

    Centos7 官方安装方法 略有修改 nextcloud 20 0 1版本亲测 执行第一个脚本文件 文件内容如下 bin bash systemctl stop firewalld systemctl disable firewalld
  • SecureCRT_Python笔记

    文章目录 说明常用语法python脚本开头格式Sleep睡眠发送命令或文本弹出消息框 常用对象操作Application 应用程序对象属性ActivePrinter 活动打印机ScriptFullName 脚本名称Version 版本 方法
  • 常用Docker项目合集

    文章目录 使用说明docker官方一键安装脚本使普通用户可以使用Docker使用国内加速器Portainer 容器管理Portainer 官方 常用服务器备份同步使用docker部署backuppc文件备份adferrand backupp
  • Python习题(第2课)

    一 天天向上的力量 C 一年365天 xff0c 以第1天的能力值为基数 xff0c 记为1 0 当好好学习时 xff0c 能力值相比前一天提高N xff1b 当没有学习时 xff0c 由于遗忘等原因能力值相比前一天下降N 每天努力或放任
  • Openpyxl笔记

    文章目录 介绍工作薄操作创建工作薄对象打开工作薄工作薄属性工作薄方法遍历工作薄中的工作表 工作表操作创建工作表指定工作表删除工作表复制工作表获取工作表的总行数和总列数工作表的Table创建Table删除Table 工作表属性工作表方法获取工
  • xlwings笔记

    文章目录 介绍xlwings 常用实例读取 写入单元格将列表写入某个范围 xlwings 安装顶级函数顶级函数xlwings load顶级函数xlwings view appsapps 介绍apps属性查看Apps包含的所有App返回App
  • NextCloud 最新官方源代码安装包及客户端下载

    官方搬运 服务端 源代码安装包 大版本小版本V13V13 0 5下载V14V14 0 1下载V15V15 0 4下载V15V15 0 5下载V15V15 0 7下载V16V16 0 0下载V16V16 0 1下载V16V16 0 2下载V1
  • 河北保定电信家庭宽带获取原生IPv6地址,中兴F650光猫加MikroTik路由器

    先用电脑接光猫输入192 168 1 1 用户名 xff1a telecomadmin 密码 xff1a nE7jA 5mROS路由器设置
  • [翻译]Learning Deep Features for Discriminative Localization

    英文原文请点这里 摘要 在这项工作中 xff0c 我们重新审视了 Network in network 中提出的全局平均 池化层 xff08 global average pooling xff09 xff0c 并阐明了它是如何通过图片标签
  • 2. 嵌入式OpenWRT入门基础篇-----OpenWRT固件烧录

    OpenWRT固件烧录方式有很多种 xff0c 会逐渐更新烧录方法 一 此方法适用于OpenWRT 系统可以正常启动的情况 xff0c 用于OpenWRT 固件的升级 1 xff09 开发板上电 xff0c 至启动完成 2 xff09 登录
  • OpenCV源码中Haar训练及提取特征的代码

    我想计算Haar特征 xff0c 自己手动计算感觉挺麻烦 xff08 主要在取各个不同位置 不同scale的特征 xff09 xff0c 而且可能速度不够 OpenCV 的这个把所有东西都封装起来了 xff0c 由于我的online boo
  • 梯度向量、Jacobian矩阵、Hessian矩阵

    这里 xff0c 讨论三个概念 xff1a 梯度向量 Jacobian矩阵 Hessian矩阵 xff1b 由自变量x 61 x1 x2 xn T 因变量 xff1a 为一维f x 时 xff0c 此时其一阶导数构成的向量为梯度向量g x
  • linux查看当前加载的所有动态库

    在我们做Linux开发的时候 xff0c 往往会出现 某些库 can not found 的情况 xff0c 在我们添加了这些库之后 xff0c 如何查看这些库的路径是否被识别了呢 xff1f 下面介绍一个命令 xff1a ldconfig
  • 《软件工程》实训报告

    摘要 软件工程是一门研究用工程化方法构建和维护有效的 实用的和高质量的软件的学科 它涉及程序设计语言 数据库 软件开发工具 系统平台 标准 设计模式等方面 该论文主要回顾了本人在迪丽瑟斯网站开发中的实践经历和项目经验 xff0c 以及得出的
  • ERROR 1129 (00000): #HY000Host ‘*.*.*.*’ is blocked because of many connection errors;

    今天使用工具nvicat连接mysql的时候报错误 xff1a ERROR 1129 00000 HY000Host is blocked because of many connection errors unblock with mys
  • Win7使用附件中的远程桌面连接Ubuntu 15.04图形界面(xrdp方法)

    Ubuntu15 04下 以下命令行皆是在终端中运行 xff1a 安装xrdp span class hljs built in sudo span apt get install xrdp 安装vnc4server span class
  • Qt设置常见窗口背景色几种方式

    常见窗口背景色 总结qt 常见设置QWidget 类型窗口背景色几种方式 setStyleSheet ui span class token punctuation span widget span class token operator
  • 操作手册(GB8567——88)

    操作手册 xff08 GB8567 88 xff09 1 引言 1 1 编写目的 说明编写这份操作手册的目的 xff0c 指出预期的读者 1 2 前景 说明 xff1a a xff0e 这份操作手册所描述的软件系统的名称 xff1b b x
  • SONIC架构简要分析(一)-数据库

    随着SONIC的日趋成熟 xff0c 在互联网行业应用会越来越多 xff0c SONIC 43 白盒交换机的方式或许会成为将来数据中心的主流接入交换机 为此 xff0c 对SONIC的架构进行简要分析 xff0c 看看与传统的网络操作系统的