大力金刚我差点就信了第一季37集_隔壁的邻居在线_HD中文字幕在线播放,金钱味道,母亲的朋友9,母亲的朋友5

新一代開源網(wǎng)絡操作系統(tǒng)SONiC 之一

0. 引言

網(wǎng)絡設備管理的一大煩惱來自于不同廠商的設備使用不同的操作系統(tǒng),,這些系統(tǒng)命令格式不統(tǒng)一, 對協(xié)議的支持程度不一致,甚至在系統(tǒng)邏輯上也不一致. 筆者所管理的網(wǎng)絡有十幾個品牌的系統(tǒng),,在系統(tǒng)升級,版本管理, 漏洞與安全管理上都要花費較多的時間和精力。

SONiC 的出現(xiàn),較好地緩解了這些痛苦, 它的統(tǒng)一系統(tǒng)、不宕機升級、高度定制化等等特性, 幫助筆者節(jié)約了大量的時間和精力 。

正文開始前, 請允許我介紹一下開源、開放網(wǎng)絡和 SDN。后續(xù)的文章中會對其概念有較多的引用,掌握這些概念, 我們上手 SONiC 的速度就快了很多。

1.開源、開放網(wǎng)絡和 SDN 概念

什么是開源,什么是開放型網(wǎng)絡,什么是軟件定義網(wǎng)絡,他們又有如何的關系,有哪些不同呢?我們先來看一下下面的這個圖:

可以看出,它們?nèi)呋殛P系,但是又有很多相同和不同點。我們先來了解一下概念吧。

1.1.SDN (SoftWare-Defined Networking, 軟件定義網(wǎng)絡)?[1]

SDN (軟件定義網(wǎng)絡, SoftWare-Defined Networking )通常被認為是一種將控制平面與網(wǎng)絡內(nèi)的包轉發(fā)(數(shù)據(jù))平面解耦的體系結構。在這種情況下,可以從中心位置進行網(wǎng)絡配置和管理,而不是通過網(wǎng)絡連接每個特定的交換機或服務器。這使得企業(yè)和服務提供商能夠快速響應業(yè)務需求的變化。

SDN 的主要組成部分之一是SDN控制器。它通過應用程序編程接口 (api) 與應用程序通信。與此同時,它還使用OpenFlow 等接口與交換機或路由器通信。因為 OpenFlow 協(xié)議是網(wǎng)絡中普遍存在的開源組件的一個例子,所以有些人認為 SDN 和開源軟件是一樣的。實際上,大多數(shù) SDN 架構仍然在第三方或商業(yè)硬件上使用閉源軟件或開源軟件。

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

“開源”這個術語指的是人們可以修改和共享的東西,因為它的設計是公開可訪問的。這個術語起源于軟件開發(fā)中,指創(chuàng)建計算機程序的特定方法。然而今天,“開源”代表了更廣泛的價值,我們稱之為“開源方式”。開源方式可以是項目、產(chǎn)品或計劃,具備以下原則,開放的交流、協(xié)作參與、快速的原型設計、透明的、可被管理的和面向社區(qū)的開發(fā)過程。

1.3.開源軟件 (Open Source Software)?[3]

開源軟件即是開放源代碼的軟件,是任何人都可以檢查、修改和增強源代碼的軟件?!霸创a”是大多數(shù)計算機用戶從未見過的軟件的組成;它是計算機程序員可以操縱的代碼,以改變軟件(程序或應用程序)的工作方式??梢栽L問計算機程序源代碼的程序員可以通過添加特性或修復不能正常工作的部分來改進程序?!伴_源軟件”是相對于“閉源軟件”而言的,有些軟件的源代碼只有創(chuàng)建它的個人、團隊或組織才能修改,并且保持對它的獨占控制。人們稱這種軟件為“專有的”或“閉源的”軟件。

但是現(xiàn)在我們在互聯(lián)網(wǎng)領域聽到的大多數(shù) Open Source 多指開源軟件,其實已經(jīng)遠遠縮小了 Open Source 的概念了。

在了解開放型網(wǎng)絡之前,需要了解一下開放型網(wǎng)絡是如何來的,起源來自于一個開放計算項目。

1.4. 開放計算項目 (Open Compute Project)?[4]

開放計算項目 (OCP,Open Compute Project),開放計算項目 (OCP) 是一個協(xié)作社區(qū),專注于重新設計硬件技術,以有效地支持對計算型基礎設施不斷增長的需求。 故事源于2009年,F(xiàn)acebook 為數(shù)百萬人提供一種新的服務,這種服務是一個分享照片和視頻的社交平臺,平臺呈指數(shù)級增長。展望未來,該公司意識到,它必須重新考慮其基礎設施的成本,通過控制成本和能源消耗來承載大量涌入的新用戶和數(shù)據(jù)。就在那時,F(xiàn)acebook 啟動了一個項目,設計世界上最節(jié)能的數(shù)據(jù)中心,以盡可能低的成本處理前所未有規(guī)模的數(shù)據(jù)。一個由工程師組成的小團隊花了兩年時間從頭開始設計和建造數(shù)據(jù)中心,涉及內(nèi)容包含:軟件、服務器、機架、電源和冷卻系統(tǒng)。目前這個數(shù)據(jù)中心著落在俄勒岡州的普林維爾。與該公司之前的設施相比,這個全新的數(shù)據(jù)中心節(jié)能率提高了38%,運營成本降低了24%,與此同時帶來了更大的創(chuàng)新。 2011年,F(xiàn)acebook 與 Intel 和 Rackspace、高盛和 Andy Bechtolsheim 共同發(fā)起了開放計算項目,并成立了開放計算項目基金會。五名成員希望在硬件領域發(fā)起一場運動,就像我們在開源軟件中看到的那種創(chuàng)造力和協(xié)作,這就是正在發(fā)生的事情。

1.5.開放型網(wǎng)絡 (Open Networking)??[5]

1.5.1.什么是開放型網(wǎng)絡?

開放型網(wǎng)絡的根基需要幾個條件,首先是建立在開放標準之上,通常我們常聽到的開放標準例如 OpenFlow 協(xié)議等,再有就是能夠支持開放網(wǎng)絡的硬件,我們稱之為“裸設備”,再其次就是可以自由選擇自主安裝的網(wǎng)絡操作系統(tǒng),只有具備這些才能打破軟件和硬件在網(wǎng)絡層面的固有特性,使我們能夠拿到一個可交付的、靈活的、可伸縮的、可編程的以及適應各種需求的網(wǎng)絡。

1.5.2.開放型網(wǎng)絡簡史?[6]

我們把開放型網(wǎng)絡定義為從2013年開始,為什么開放型網(wǎng)絡定義為從2013開始?在互聯(lián)網(wǎng)上一直存在著某種程度的開放型網(wǎng)絡,這次我們可以把重點放在,什么時候開放型網(wǎng)絡硬件和軟件成為主流和易于使用,什么時候開放型網(wǎng)絡安裝環(huán)境的定義和發(fā)布。首先我們來看一下開放型網(wǎng)絡中比較重點的定義:

1.5.3. 開放性網(wǎng)絡安裝環(huán)境 (ONIE)??[7]

開放性網(wǎng)絡安裝環(huán)境, ONIE – Open Network Install Environment
輕量級 Linux 環(huán)境,允許安裝、卸載、調(diào)試的網(wǎng)絡操作系統(tǒng),開放性網(wǎng)絡安裝環(huán)境使得開放型網(wǎng)絡成為可能。
我們通過一個例子來對比一下開放性網(wǎng)絡安裝環(huán)境在定義前后我們的使用上有何不同。
開放性網(wǎng)絡安裝環(huán)境未定義前,我們對網(wǎng)絡設備安裝調(diào)試可能的步驟:
1)? 開打交換機移除 CF/SD卡
2)? 在 CF/SD 卡上制作鏡像文件
3)? 把 CF/SD 卡放回交換機
4)? 啟動交換機進入對話模式
5)? 掛載 CF/SD卡
6)? 拷貝/解壓鏡像在 CF/SD/卡上
7)? 設置啟動參數(shù)
8)? 保存和重置新的鏡像

開放性網(wǎng)絡安裝環(huán)境定義后,我們對網(wǎng)絡設備安裝調(diào)試可能的步驟:
1)? 通過 USB 安裝開放性網(wǎng)絡安裝環(huán)境 (如果預先未安裝開放性網(wǎng)絡安裝環(huán)境的情況)
2)? 啟動交換機并在開放網(wǎng)絡安裝環(huán)境中選擇需要的操作
a)? 安裝操作系統(tǒng)
b)? 打開命令行模式
c)? 卸載操作系統(tǒng)
3)? 升級開放網(wǎng)絡安裝環(huán)境
4)? 完成

可以看出,通過開放性網(wǎng)絡安裝環(huán)境,可更為方便地管理網(wǎng)絡設備,省去了頻繁的硬件操作,從開放性網(wǎng)絡安裝環(huán)境層面實現(xiàn)了網(wǎng)絡操作系統(tǒng)的變更。

當然,要組成開放型網(wǎng)絡,除了解決了安裝環(huán)境,還需要硬件支持,當然開放型網(wǎng)絡需要包含開放的計算硬件/開放的網(wǎng)絡硬件 (Switches)。

1.5.4. 開放的網(wǎng)絡硬件(Open Switches)??[8]

1.5.4.1.怎么理解硬件開放?
開放可以代表很多東西,從安裝不同的網(wǎng)絡操作系統(tǒng)到向公眾提供完整的設計包,最具代表的是“源于開放計算項目網(wǎng)絡組”,對,就是我們前面提到的那個組織 Open Compute Project (OCP),網(wǎng)絡組建立于2013年,硬件設計貢獻者包含 Edge-Core, Quanta, Facebook, Mellanox 等。其中所有提交的設計都是開放的,包括構建網(wǎng)絡設備所需的數(shù)據(jù)。

1.5.4.2.常見的開放硬件

我們常見的開放硬件有以下兩種:
1)? Brite-BOX
Dell ON Series, HPE Altoline, Arista, Broadcom
由戴爾和 HPE 等知名廠商銷售的品牌支持交換機
通常帶有廠商的網(wǎng)絡操作系統(tǒng),但也可以運行其他網(wǎng)絡操作系統(tǒng), 很多這類型交換機是由白牌交換機改造而來。

2) White-Box
Mellanox, Edge-Core, Quanta 通用的交換機和硬件支持通常具備開放型網(wǎng)絡安裝環(huán)境。

1.5.5. 開放的網(wǎng)絡軟件 (Open Networking Software)??[9]

1.5.5.1. 開源網(wǎng)絡操作系統(tǒng)
前面我們講了開放性網(wǎng)絡安裝環(huán)境,它是給開放網(wǎng)絡操作系統(tǒng)準備的,現(xiàn)在我們來了解一下它。
開放網(wǎng)絡 Linux (ONL, Open Networking Linux), 即交換機平臺支持的網(wǎng)絡操作系統(tǒng)。
ONL 由于良好的表現(xiàn)出現(xiàn)了跨多平臺傳播現(xiàn)象,NTT, Facebook, Google, Cord, Stratum 等多家公司的平臺都提供了支持,而且不同的網(wǎng)絡設備都開始支持 ONL。

1.5.5.2. 什么使得網(wǎng)絡軟件開放?
網(wǎng)絡操作系統(tǒng) Linux化,使得 Linux 為基礎的網(wǎng)絡,其提供了硬件和網(wǎng)絡的抽象的邏輯,并使用開源的網(wǎng)絡棧。
例如: FRR, BIRD
雖然大多數(shù)廠商都有一些非開放的依賴,如硬件指令集,轉發(fā) ASIC API/SDK,以及一些抽象的網(wǎng)絡控制集,一般普遍基于 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.開源網(wǎng)絡操作系統(tǒng)分析??[10]
我們先來看一個架構邏輯來理解一下開源網(wǎng)絡操作系統(tǒng)原理:

這里,我們可以看出綠色部分屬于開源部分,紫色部分使閉源部分,青色部分 Linux,淺藍色為硬件層,大致分為硬件,平臺,應用層三個層面,而平臺層面的驅(qū)動和硬件控制接口是閉源的,但是應用層面已經(jīng)把傳感器進程,網(wǎng)絡管理,網(wǎng)絡控制協(xié)議層抽象出來。

1.7.開放的網(wǎng)絡操作系統(tǒng) (Network Operating System)??[11]

雖然網(wǎng)絡操作系統(tǒng)組件并不是完全開源,雖然很多芯片廠商對于交換機的抽象接口還是只支持二進制,但是隨著SAI和P4的出現(xiàn),我們發(fā)現(xiàn)了一些變化,我們也有理由相信未來會越來越好,下面給大家做一個對比:

OpenNSL

非開源 僅開放API
OF-DPA 非開源 兼容OpenFlow vX 標準
SAI 非開源 兼容SAI vX 標準
P4 Runtime 非開源 兼容P4 vX 標準
SDKLT 開源SDK
OtherCavium OpenXPS 開源

兼容 SAI 標準

說到開放的網(wǎng)絡操作系統(tǒng),不得不提到以下幾個例子:Microsoft Azure SonicOpen Network Linux, Network API (SAI, OpenNSL), OpenSwitch (OPX).
這個我們發(fā)現(xiàn)很多支持SAI標準,那么什么是 SAI?

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

交換機抽象接口 (SAI) , 他是跨平臺的交換機平臺接口,可以看成是一個用戶級的驅(qū)動,交換機抽象接口 (SAI) 是一種標準化的 API,API 涵蓋多種功能,使用者不需要擔心硬件廠商的約束,不用關心其交換專用集成電路、網(wǎng)絡處理單元或其是一個軟件交換機,都可采用統(tǒng)一的方式管理。其目的都是圍繞簡化廠商 SDK。
交換機抽象接口 (SAI) 在所有硬件上運行相同的應用程序堆棧,這使得 SAI 接口具備簡單性,一致性。使用者不需要關心網(wǎng)絡硬件供應商的硬件體系結構的開發(fā)和革新,通過始終一致性的編程接口可以很容易的應用最新最好的硬件,而且新的應用程序可移植性更強,bug 更低。這其中以 Microsoft, Dell, Facebook, Broadcom, Intel, Mellanox為代表。

1.8.1.SAI 發(fā)展迅速

1.8.2.SAI 抽象的交換機系統(tǒng)的系統(tǒng)架構

我們可以看到 SAI 是建立在開放的 ASIC 抽象之上的,API 通過 C 語言接口與網(wǎng)絡專用芯片通信,接口大致分為幾類功能:
必要功能,選配功能,自定義功能

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

下一篇
新一代開源網(wǎng)絡操作系統(tǒng)SONiC 之二
上一篇
專訪藍云 CEO 柯文達:管理是平衡的藝術