威廉希尔官网

新一代开源网络操作系统SONiC 之一

0. 引言

0. 引言

网络设备治理的一大烦恼来自于分歧厂商的设备使用分歧的操作系统, ,这些系统号令体式不统一 , 对和谈的支持水平不一致,甚至在系统逻辑上也不一致. 笔者所治理的网络有十几个品牌的系统, ,在系统升级 ,版本治理 , 缝隙与安全治理上都要破费较多的功夫和精力。

SONiC 的出现 ,较好地缓解了这些疾苦, 它的统一系统、不宕机升级、高度定造化等等个性, 援手笔者节约了大量的功夫和精力 。

正文起头前 , 请允许我介绍一下开源、盛开网络和 SDN。后续的文章中会对其概想有较多的引用 ,把握这些概想 , 我们上手 SONiC 的速度就快了好多。

1.开源、盛开网络和 SDN 概想

什么是开源 ,什么是盛开型网络 ,什么是软件界说网络 ,他们又有若何的关系 ,有哪些分歧呢?我们先来看一下下面的这个图:

英国·威廉希尔(williamhill)唯一中文官方网站

能够看出 ,它们三者互为关系 ,但是又有好多一样和分歧点。我们先来相识一下概想吧。

1.1.SDN (SoftWare-Defined Networking, 软件界说网络)?[1]

SDN (软件界说网络, SoftWare-Defined Networking )通常被以为是一种将节造平面与网络内的包转发(数据)平面解耦的系统结构。在这种情况下 ,能够从中心地位进行网络配置和治理 ,而不是通过网络衔接每个特定的互换机或服务器。这使得企业和服务提供商可能急剧响应业务需要的变动。

SDN 的重要组成部门之一是SDN节造器。它通过利用法式编程接口 (api) 与利用法式通讯。与此同时 ,它还使用OpenFlow 等接口与互换机或路由器通讯。由于 OpenFlow 和谈是网络中普遍存在的开源组件的一个例子 ,所以有些人以为 SDN 和开源软件是一样的。现实上 ,大无数 SDN 架构依然在第三方或贸易硬件上使用关源软件或开源软件。

1.2.开源 (Open Sources)??[2]

“开源」剽个术语指的是人们能够批改和共享的器材 ,由于它的设计是公开可接见的。这个术语发源于软件开发中 ,指创建推算机法式的特定步骤。然而今天 ,“开源”代表了更宽泛的价值 ,我们称之为“开源方式”?捶绞娇伤韵钅俊⒉坊虼蛩 ,具备以下准则 ,盛开的互换、合作参加、急剧的原型设计、通明的、可被治理的和面向社区的开发过程。

1.3.开源软件 (Open Source Software)?[3]

开源软件即是盛开源代码的软件 ,是任何人都能够查抄、批改和加强源代码的软件。“源代码”是大无数推算机用户从未见过的软件的组成;它是推算机法式员能够把持的代码 ,以扭转软件(法式或利用法式)的工作方式D芄唤蛹扑慊ㄊ皆创氲姆ㄊ皆蹦芄煌ü龀じ鲂曰蚪ǜ床荒苷9ぷ鞯牟棵爬锤慕ㄊ。“开源软件”是相对于“关源软件”而言的 ,有些软件的源代码只有创建它的幼我、团队或组织能力批改 ,并且维持对它的独占节造。人们称这种软件为“专有的”或“关源的”软件。

但是此刻我们在互联网领域听到的大无数 Open Source 多指开源软件 ,其实已经远远缩幼了 Open Source 的概想了。

在相识盛开型网络之前 ,必要相识一下盛开型网络是若何来的 ,发源来自于一个盛开推算项目。

1.4. 盛开推算项目 (Open Compute Project)?[4]

盛开推算项目 (OCP ,Open Compute Project) ,盛开推算项目 (OCP) 是一个合作社区 ,专一于重新设计硬件技术 ,以有效地支持对推算型基础设施不休增长的需要。 故事源于2009年 ,Facebook 为数百万人提供一种新的服务 ,这种服务是一个分享照片和视频的社交平台 ,平台呈指数级增长。瞻望将来 ,该公司意识到 ,它必须重新思考其基础设施的成本 ,通过节造成本和能源亏损来承载大量涌入的新用户和数据。就在那时 ,Facebook 启动了一个项目 ,设计世界上最节能的数据中心 ,以尽可能低的成本处置前所未有规模的数据。一个由工程师组成的幼团队花了两年功夫重新起头设计和建造数据中心 ,涉及内容蕴含:软件、服务器、机架、电源和冷却系统。目前这个数据中心着落在俄勒冈州的普林维尔。与该公司之前的设施相比 ,这个全新的数据中心节能率提高了38% ,运营成本降低了24% ,与此同时带来了更大的创新。 2011年 ,Facebook 与 Intel 和 Rackspace、高盛和 Andy Bechtolsheim 共同提议了盛开推算项目 ,并成立了盛开推算项目基金会。五名成员但愿在硬件领域提议一场活动 ,就像我们在开源软件中看到的那种创造力和合作 ,这就是在发生的事件。

1.5.盛开型网络 (Open Networking)??[5]

1.5.1.什么是盛开型网络?

盛开型网络的根基必要几个前提 ,首先是成立在盛开尺度之上 ,通常我们常听到的盛开尺度例如 OpenFlow 和谈等 ,再有就是可能支持盛开网络的硬件 ,我们称之为“裸设备” ,再其次就是能够自由选择自主装置的网络操作系统 ,只有具备这些能力突破软件和硬件在网络层面的固有个性 ,使我们可能拿到一个可交付的、矫捷的、可伸缩的、可编程的以及适应各类需要的网络。

1.5.2.盛开型网络简史?[6]

我们把盛开型网络界说为从2013年起头 ,为什么盛开型网络界说为从2013起头?在互联网上一向存在着某种水平的盛开型网络 ,这次我们能够把重点放在 ,什么时辰盛开型网络硬件和软件成为主流和易于使用 ,什么时辰盛开型网络装置环境的界说和颁布。首先我们来看一下盛开型网络中比力重点的界说:

1.5.3. 盛开性网络装置环境 (ONIE)??[7]

盛开性网络装置环境, ONIE – Open Network Install Environment
轻量级 Linux 环境 ,允许装置、卸载、调试的网络操作系统 ,盛开性网络装置环境使得盛开型网络成为可能。
我们通过一个例子来对比一下盛开性网络装置环境在界说前后威廉希尔官网使用上有何分歧。
盛开性网络装置环境未界说前 ,我们对网络设备装置调试可能的步骤:
1)? 开打互换机移除 CF/SD卡
2)? 在 CF/SD 卡上造作镜像文件
3)? 把 CF/SD 卡放回互换机
4)? 启动互换机进入对话模式
5)? 挂载 CF/SD卡
6)? 拷贝/解压镜像在 CF/SD/卡上
7)? 设置启动参数
8)? 保留和重置新的镜像

盛开性网络装置环境界说后 ,我们对网络设备装置调试可能的步骤:
1)? 通过 USB 装置盛开性网络装置环境 (若是预先未装置盛开性网络装置环境的情况)
2)? 启动互换机并在盛开网络装置环境当选择必要的操作
a)? 装置操作系统
b)? 打开号令行模式
c)? 卸载操作系统
3)? 升级盛开网络装置环境
4)? 实现

能够看出 ,通过盛开性网络装置环境 ,可更为方便地治理网络设备 ,省去了频仍的硬件操作 ,从盛开性网络装置环境层面实现了网络操作系统的调换。

当然 ,要组成盛开型网络 ,除相识决了装置环境 ,还必要硬件支持 ,当然盛开型网络必要蕴含盛开的推算硬件/盛开的网络硬件 (Switches)。

1.5.4. 盛开的网络硬件(Open Switches)??[8]

1.5.4.1.怎么理解硬件盛开?
盛开能够代表好多器材 ,从装置分歧的网络操作系统到向公家提供齐全的设计包 ,最具代表的是“源于盛开推算项目网络组” ,对 ,就是我们前面提到的那个组织 Open Compute Project (OCP) ,网络组成立于2013年 ,硬件设计贡献者蕴含 Edge-Core, Quanta, Facebook, Mellanox 等。其中所有提交的设计都是盛开的 ,蕴含构建网络设备所需的数据。

1.5.4.2.常见的盛开硬件

我们常见的盛开硬件有以下两种:
1)? Brite-BOX
Dell ON Series, HPE Altoline, Arista, Broadcom
由戴尔和 HPE 等驰名厂商销售的品牌支持互换机
通常带有厂商的网络操作系统 ,但也能够运行其他网络操作系统, 好多这类型互换机是由白牌互换机刷新而来。

2) White-Box
Mellanox, Edge-Core, Quanta 通用的互换机和硬件支持通常具备盛开型网络装置环境。

1.5.5. 盛开的网络软件 (Open Networking Software)??[9]

1.5.5.1. 开源网络操作系统
前面我们讲了盛开性网络装置环境 ,它是给盛开网络操作系两全备的 ,此刻我们来相识一下它。
盛开网络 Linux (ONL, Open Networking Linux), 即互换机平台支持的网络操作系统。
ONL 由于优良的阐发出现了跨多平台传布景象 ,NTT, Facebook, Google, Cord, Stratum 等多家公司的平台都提供了支持 ,并且分歧的网络设备都起头支持 ONL。

1.5.5.2. 什么使得网络软件盛开?
网络操作系统 Linux化 ,使得 Linux 为基础的网络 ,其提供了硬件和网络的抽象的逻辑 ,并使用开源的网络栈。
例如: FRR, BIRD
固然大无数厂商都有一些非盛开的依赖 ,如硬件指令集 ,转发 ASIC API/SDK ,以及一些抽象的网络节造集 ,通常普遍基于 Debian Linux,
例如: OPX, SONIC, ONL, 等等。
OpenSwitch(OPX), Dell OS10 Open Edition (Debian + CPS) + Quagga/FRR, focused on Dell Open Networking switches
CoRD, ONOS Controller with Indigo agent on switchesFRR, Routing suite used by most open networking software
这里出格提出 SAI 是第一个跨平台的开源互换机抽象。(后面我们会诠释什么是 SAI)

1.6.开源网络操作系统分析??[10]
我们先来看一个架构逻辑来理解一下开源网络操作系统道理:

英国·威廉希尔(williamhill)唯一中文官方网站

这里 ,我们能够看出绿色部门属于开源部门 ,紫色部门使关源部门 ,青色部门 Linux ,浅蓝色为硬件层 ,大体分为硬件 ,平台 ,利用层三个层面 ,而平台层面的驱动和硬件节造接口是关源的 ,但是利用层面已经把传感器过程 ,网络治理 ,网络节造和谈层抽象出来。

1.7.盛开的网络操作系统 (Network Operating System)??[11]

固然网络操作系统组件并不是齐全开源 ,固然好多芯片厂商对于互换机的抽象接口还是只支持二进造 ,但是随着SAI和P4的出现 ,我们发现了一些变动 ,我们也有理由相信将来会越来越好 ,下面给各人做一个对比:

OpenNSL

非开源 仅盛开API
OF-DPA 非开源 兼容OpenFlow vX 尺度
SAI 非开源 兼容SAI vX 尺度
P4 Runtime 非开源 兼容P4 vX 尺度
SDKLT 开源SDK
OtherCavium OpenXPS 开源

兼容 SAI 尺度

说到盛开的网络操作系统 ,不得不提到以下几个例子:Microsoft Azure SonicOpen Network Linux, Network API (SAI, OpenNSL), OpenSwitch (OPX).
这个我们发现好多支持SAI尺度 ,那么什么是 SAI?

1.8.SAI (Switch Abstraction Interface)??[12]

互换机抽象接口 (SAI) , 他是跨平台的互换机平台接口 ,能够当作是一个用户级的驱动 ,互换机抽象接口 (SAI) 是一种尺度化的 API ,API 涵盖多种职能 ,使用者不必要不安硬件厂商的约束 ,不用关切其互换专用集成电路、网络处置单元或其是一个软件互换机 ,都可选取统一的方式治理。其主张都是萦绕简化厂商 SDK。
互换机抽象接口 (SAI) 在所有硬件上运行一样的利用法式仓库 ,这使得 SAI 接口具备单一性 ,一致性。使用者不必要关切网络硬件供给商的硬件系统结构的开发和改革 ,通过始终一致性的编程接口能够很容易的利用最新最好的硬件 ,并且新的利用法式可移植性更强 ,bug 更低。这其中以 Microsoft, Dell, Facebook, Broadcom, Intel, Mellanox为代表。

1.8.1.SAI 发展迅速

英国·威廉希尔(williamhill)唯一中文官方网站

1.8.2.SAI 抽象的互换机系统的系统架构

英国·威廉希尔(williamhill)唯一中文官方网站

我们能够看到 SAI 是成立在盛开的 ASIC 抽象之上的 ,API 通过 C 说话接口与网络专用芯片通讯 ,接口大体分为几类职能:
必要职能 ,选配职能 ,自界说职能

1.8.3.SAI 支持的职能提要
我们来看一下 SAI 支持的职能提要:

必要职能 描述
sai_switch_api_t Top-level switch object
sai_port_api_t Port management
sai_fdb_api_t Forwarding database
sai_vlan_api_t VLAN management
sai_vr_api_t Virtual router
sai_route_interface_api_t Routing interface
sai_route_api_t Routing table
sai_neighbor_api_t Neighbor table
sai_next_hop_t Next hop table
sai_next_hop_api_t Next hop group
sai_qos_api_t Quality of service
sai_acl_api_t ACL management
LAG, STP, Control packet send/recevie

参考文件:
[1] https://en.wikipedia.org/wiki/Software-defined_networking
[2] https://en.wikipedia.org/wiki/Open_source
[3] https://en.wikipedia.org/wiki/Open-source_software
[4] https://www.opencompute.org/about
[5] https://aptira.com/what-is-open-networking/
[6] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[7] https://www.opencompute.org/wiki/Networking/ONIE
[8] https://www.openswitch.net/about/
[9] http://opennetlinux.org/
[10] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[11] https://events19.linuxfoundation.org/wp-content/uploads/2017/11/Open-Hardware-and-Open-Networking-Software-How-We-Got-Here-and-Where-We-are-Going-Steven-Noble-Big-Switch-Networks-_-NetDEF.pdf
[12] https://www.opencompute.org/documents/switch-abstraction-interface
[13] https://github.com/Azure/SONiC/wiki/Architecture
[14] https://github.com/Azure/SONiC/wiki/Sonic-Roadmap-Planning

下一篇
新一代开源网络操作系统SONiC 之二
上一篇
专访威廉希尔官网 CEO 柯文达:治理是平衡的艺术
【网站地图】