隨著互聯(lián)網(wǎng)和數(shù)據(jù)中心流量的爆炸式增長萄传,SDN已經(jīng)逐步取代靜態(tài)路由交換設(shè)備成為構(gòu)建網(wǎng)絡(luò)的主流方式剥纷,本系列是免費(fèi)電子書《Software-Defined Networks: A Systems Approach》的中文版醉拓,完整介紹了SDN的概念、原理查吊、架構(gòu)和實(shí)現(xiàn)方式醋界。原文: Software-Defined Networks: A Systems Approach
第3章 基本架構(gòu)
SDN是一種利用可編程的商用硬件構(gòu)建網(wǎng)絡(luò)的方法,從而通過軟件實(shí)現(xiàn)智能的包轉(zhuǎn)發(fā)控制以及其他網(wǎng)絡(luò)操作坡脐。實(shí)現(xiàn)這樣的設(shè)計(jì)不依賴任何特定協(xié)議棧泄私,而是需要一組開放API以及支持這些API的新軟件組件。本章將介紹SDN軟件棧的基本架構(gòu)备闲。
本章定義了這種軟件棧的一般架構(gòu),介紹了符合該架構(gòu)的一個(gè)示例集合捅暴,不過能夠集成到該架構(gòu)中的特定組件和工具其實(shí)有多種選擇恬砂。我們這樣做只是為了使討論更加具體,我們介紹的組件有兩個(gè)重要屬性蓬痒。第一泻骤,它們是開源的,可以在GitHub上免費(fèi)獲得梧奢。第二狱掂,它們旨在共同努力,提供全面的解決方案亲轨,覆蓋我們需要的所有場(chǎng)景趋惨。這兩個(gè)屬性使得任何人都可以構(gòu)建出在生產(chǎn)網(wǎng)絡(luò)中運(yùn)行的相同的端到端系統(tǒng)。
3.1 軟件棧(Software Stack)
圖15給出了軟件棧的概覽惦蚊,包括一個(gè)運(yùn)行本地交換機(jī)操作系統(tǒng)(Switch OS) 的裸金屬交換機(jī)(Bare-Metal Switch)器虾,由一組控制應(yīng)用程序(Control Applications) 控制讯嫂,這些控制程序托管在全局網(wǎng)絡(luò)操作系統(tǒng)(Network OS) 上。圖15右邊顯示了一組對(duì)應(yīng)的范例開源組件(SD-Fabric, ONOS和Stratum)兆沙,左邊顯示了相關(guān)的P4工具鏈欧芽。本章將介紹這些組件,后面章節(jié)將給出更多細(xì)節(jié)葛圃。
請(qǐng)注意此圖與第1章中的圖2之間的相似性千扔。兩幅圖都包含兩個(gè)開放接口: 一個(gè)在控制程序和網(wǎng)絡(luò)操作系統(tǒng)之間,另一個(gè)在網(wǎng)絡(luò)操作系統(tǒng)和底層可編程交換機(jī)之間库正。在圖15中昏鹃,這兩個(gè)接口被描述為“API shims”,在示例組件的上下文中诀诊,第一種接口對(duì)應(yīng)于gNMI洞渤、gNOI和FlowObjective的組合,第二種接口對(duì)應(yīng)于gNMI属瓣、gNOI和P4Runtime或OpenFlow的組合载迄。gRPC是這些API的傳輸協(xié)議,這是一種常規(guī)的實(shí)現(xiàn)選擇抡蛙。(注意护昧,與其他協(xié)議不同,OpenFlow不會(huì)在gRPC上運(yùn)行粗截。)
重要的是要記住熊昌,圖15中列出的軟件組件都對(duì)應(yīng)于活躍開源項(xiàng)目绽榛,因此會(huì)繼續(xù)發(fā)展(就像它們的API一樣)。每個(gè)組件的特定版本(及其相關(guān)API)已經(jīng)集成并部署到試驗(yàn)和生產(chǎn)環(huán)境中婿屹。例如灭美,雖然圖中顯示P4Runtime是Switch OS導(dǎo)出的候選控制接口,但也有一些部署的解決方案使用OpenFlow昂利。(包括Comcast的部署届腐。)類似的,雖然圖中顯示gNMI/gNOI作為交換機(jī)的配置/操作接口蜂奸,但也有使用NETCONF的解決方案犁苏。
本書的目的不是要試圖跟蹤所有可能的組合的組件版本和API,而是在圖15中選擇專注于單一一致的堆棧扩所,因?yàn)檫@代表了迄今為止我們基于早期軟件棧所能做出的關(guān)于"正確"方法的最佳判斷。
3.1.1 交換機(jī)實(shí)現(xiàn) vs 主機(jī)實(shí)現(xiàn)(Switch vs Host Implementation)
圖15顯示了從單一交換機(jī)視角出發(fā)的軟件棧視圖碌奉,但是從網(wǎng)絡(luò)視角分析也很重要寒砖。圖16通過關(guān)注連接虛擬機(jī)(VM)的網(wǎng)絡(luò)端到端路徑給出了這樣一個(gè)視角嫉拐。
這一視圖突出了系統(tǒng)的兩個(gè)重要方面概行。首先強(qiáng)調(diào)了網(wǎng)絡(luò)操作系統(tǒng)(如ONOS)是網(wǎng)絡(luò)范圍內(nèi)的盖呼,而交換機(jī)操作系統(tǒng)(如Stratum)在每個(gè)交換機(jī)內(nèi)儒鹿。
其次,SDN軟件棧的一部分運(yùn)行在終端主機(jī)上约炎。尤其是需要在服務(wù)器管理程序中運(yùn)行虛擬交換機(jī)(vSwitch, Virtual Switch) 軟件蟹瘾,負(fù)責(zé)將數(shù)據(jù)包轉(zhuǎn)發(fā)到VM以及轉(zhuǎn)發(fā)從VM返回的包。(當(dāng)然狸捕,并不是每個(gè)終端主機(jī)都運(yùn)行VM众雷,但類似架構(gòu)同樣適用于容器主機(jī)或裸金屬服務(wù)器。)就像物理交換機(jī)一樣鸡岗,vSwitch將數(shù)據(jù)包從輸入端口轉(zhuǎn)發(fā)到輸出端口纯蛾,但這些是連接到VM(或容器)的虛擬端口,而不是連接到物理機(jī)器的物理端口。
幸運(yùn)的是碰煌,可以把vSwitch看作物理交換機(jī)绅作,包括其支持的API。注意一個(gè)實(shí)現(xiàn)細(xì)節(jié)个少,即vSwitch是在通用處理器上而不是在專用集成電路(ASIC)上通過軟件實(shí)現(xiàn)的。因此作為軟件交換機(jī)壳澳,大大降低了引入額外功能的障礙茫经,從而能夠提供豐富、動(dòng)態(tài)的功能集抹镊。例如荤傲,OVS(Open vSwitch) 是一款應(yīng)用廣泛的開源vSwitch,支持OpenFlow作為北向API终佛,構(gòu)成了原有Nicira網(wǎng)絡(luò)虛擬化平臺(tái)的數(shù)據(jù)平面妓湘。OVS可以與一系列補(bǔ)充工具集成榜贴,比如另一個(gè)開源組件DPDK(數(shù)據(jù)平面開發(fā)工具包, Data Plane Development Kit),從而優(yōu)化x86處理器上的數(shù)據(jù)包轉(zhuǎn)發(fā)操作鹃共。雖然這是一個(gè)重要的主題驶拱,但本書不會(huì)探討vSwitch(如OVS或其他終端主機(jī)優(yōu)化)的所有可能性蓝纲,而是像對(duì)待端到端路徑上的任何其他交換機(jī)一樣對(duì)待vSwitch。
圖16顯示的另一個(gè)實(shí)現(xiàn)細(xì)節(jié)是永丝,主機(jī)可能用智能網(wǎng)卡(SmartNIC, Smart Network Interface Card) 來輔助(甚至取代)vSwitch箭养。廠商將內(nèi)核功能卸載到網(wǎng)卡上已經(jīng)有很長的歷史了(例如,從計(jì)算TCP/IP checksum到支持VM)喝检,但在SDN環(huán)境中,一種可能的有趣應(yīng)用是復(fù)制網(wǎng)絡(luò)交換機(jī)上的轉(zhuǎn)發(fā)流水線澡谭。這同樣有一系列可能的實(shí)現(xiàn)選擇译暂,包括FPGA和ASIC撩炊,以及網(wǎng)卡是固定功能還是可編程(使用P4)。就我們的目的而言伯顶,將把這種智能網(wǎng)卡當(dāng)作端到端路徑上的另一個(gè)交換組件祭衩。
主機(jī)中心視角
本書采用面向網(wǎng)絡(luò)的SDN視角阅签,將終端主機(jī)(運(yùn)行在主機(jī)操作系統(tǒng)中的虛擬交換機(jī)和連接主機(jī)到網(wǎng)絡(luò)的網(wǎng)卡)視為網(wǎng)絡(luò)的擴(kuò)展,在網(wǎng)絡(luò)操作系統(tǒng)的控制下運(yùn)行路克。不過以主機(jī)為中心的觀點(diǎn)同樣有效养交,更重要的是碎连,其附帶了一個(gè)健壯的開源軟件生態(tài)系統(tǒng),作為主機(jī)操作系統(tǒng)的一部分運(yùn)行廉嚼。
DPDK是其中一個(gè)例子倒戏,但另一個(gè)受到關(guān)注的是eBPF(擴(kuò)展伯克利包過濾器, extended Berkeley Packet Filter)和XDP(快速數(shù)據(jù)路徑, eXpress Data Path)的組合峭梳,它們提供了一種方法來在OS內(nèi)核(甚至可能在SmartNIC上)中編程通用的Match-Action規(guī)則。這在精神上與OpenFlow和P4相似捂寿,只是它們?cè)试SAction部分是任意程序孵运。相比之下,OpenFlow定義了一組固定的動(dòng)作驳概,而P4是表達(dá)動(dòng)作的特定語言(例如顺又,不包括循環(huán))等孵。當(dāng)Action必須在固定周期內(nèi)執(zhí)行時(shí),這是必要的果录,例如基于交換機(jī)的轉(zhuǎn)發(fā)流水線咐熙。它還使數(shù)據(jù)平面的形式化驗(yàn)證(formal verification)成為可能棋恼,這是第10章討論的一個(gè)很有前途的機(jī)會(huì)。
3.2 裸金屬交換機(jī)(Bare-Metal Switch)
我們從圖15和圖16所示軟件棧從下往上介紹琉苇,底層的網(wǎng)絡(luò)數(shù)據(jù)平面是由一組互連的裸金屬交換機(jī)實(shí)現(xiàn)悦施。我們現(xiàn)在重點(diǎn)關(guān)注單個(gè)交換機(jī)抡诞,整個(gè)網(wǎng)絡(luò)拓?fù)涫怯蛇\(yùn)行在軟件棧頂層的控制程序決定,后面我們會(huì)介紹一個(gè)管理葉脊拓?fù)涞目刂茟?yīng)用程序肴熏。
該架構(gòu)與交換機(jī)供應(yīng)商無關(guān)顷窒,本章介紹的完整軟件棧運(yùn)行在基于Tofino和Tomahawk交換芯片構(gòu)建的交換機(jī)上,分別由Barefoot Networks(現(xiàn)在是英特爾)和博通制造励烦。Tofino芯片實(shí)現(xiàn)了基于PISA的可編程轉(zhuǎn)發(fā)流水線泼诱,而Tomahawk芯片實(shí)現(xiàn)了固定功能流水線。
兩種芯片都通過兩個(gè)P4程序定義轉(zhuǎn)發(fā)流水線屉栓,第一個(gè)(forward.p4
)指定轉(zhuǎn)發(fā)行為友多,第二個(gè)(arch.p4
)指定目標(biāo)轉(zhuǎn)發(fā)芯片的邏輯架構(gòu)句灌。P4編譯器生成加載到網(wǎng)絡(luò)操作系統(tǒng)和交換機(jī)中的目標(biāo)文件,圖15中我們沒有指出這些目標(biāo)文件(后面將在第4章和第5章中介紹詳細(xì)信息)胰锌,但是兩個(gè)組件都需要感知輸出邏輯资昧,因?yàn)橐粋€(gè)實(shí)現(xiàn)轉(zhuǎn)發(fā)行為(交換機(jī)),而另一個(gè)控制轉(zhuǎn)發(fā)行為(網(wǎng)絡(luò)操作系統(tǒng))撤缴。
我們將在第4章介紹編譯器工具鏈的細(xì)節(jié)∵闯現(xiàn)在棺亭,我們將只回答為什么在有固定功能交換芯片的情況下,還需要一個(gè)P4程序(我們沒有使用P4來修改其固定行為)嗽桩。簡(jiǎn)單總結(jié)一下凄敢,因?yàn)槲覀冃枰降霓D(zhuǎn)發(fā)流水線規(guī)范來生成數(shù)據(jù)平面API涝缝。P4程序提供了轉(zhuǎn)發(fā)流水線的抽象模型譬重,無論芯片的實(shí)際硬件流水線是固定的還是可編程的害幅,我們?nèi)匀恍枰廊绾螌⒊橄罅魉€映射到物理流水線上岂昭,這就是arch.p4
起作用的地方约啊。對(duì)于可編程芯片佣赖,forward.p4
實(shí)際上定義了流水線,而對(duì)于固定功能芯片外傅,僅僅只是通過forward.p4
描述流水線俩檬。我們?nèi)匀恍枰?code>forward.p4,因?yàn)樵趦煞N情況下工具鏈都需要使用它以及arch.p4
生成位于控制平面和數(shù)據(jù)平面之間的API技竟。
3.3 交換機(jī)操作系統(tǒng)(Switch OS)
從基本硬件往上看屈藐,每個(gè)交換機(jī)運(yùn)行一個(gè)本地交換機(jī)操作系統(tǒng)联逻。不要與管理交換機(jī)網(wǎng)絡(luò)的網(wǎng)絡(luò)操作系統(tǒng)混淆,這個(gè)交換機(jī)操作系統(tǒng)運(yùn)行在交換機(jī)內(nèi)部的商品處理器上(圖15中沒有顯示)锨推。它負(fù)責(zé)處理發(fā)送給交換機(jī)的API調(diào)用箫踩,例如來自網(wǎng)絡(luò)操作系統(tǒng)的調(diào)用境钟,以及對(duì)交換機(jī)內(nèi)部資源采取適當(dāng)?shù)牟僮鳎袝r(shí)會(huì)影響交換機(jī)芯片洞渔。
有多種開源交換機(jī)操作系統(tǒng)(包括最初由Microsoft Azure開發(fā)的SONiC)磁椒,但我們使用Stratum和Open Network Linux(ONL) 的組合作為主要示例。ONL是Linux的交換機(jī)發(fā)行版(最初由Big Switch Networks提供)本辐,而Stratum(最初由谷歌開發(fā))主要負(fù)責(zé)外部API和內(nèi)部交換機(jī)資源之間的轉(zhuǎn)換医增。因此叶骨,我們有時(shí)把Stratum稱為瘦交換機(jī)操作系統(tǒng)(Thin Switch OS) 忽刽。
Stratum在交換機(jī)與外部世界的所有交互中起到中介作用,包括加載P4編譯器生成的目標(biāo)文件今膊,該文件定義了數(shù)據(jù)平面和控制平面之間的契約歉甚。契約有效的用自動(dòng)生成的規(guī)范替換了OpenFlow的流規(guī)則抽象纸泄。其他Stratum管理API定義如下:
- P4Runtime: 控制轉(zhuǎn)發(fā)行為的運(yùn)行時(shí)接口,是填充轉(zhuǎn)發(fā)表和操作轉(zhuǎn)發(fā)表狀態(tài)的關(guān)鍵雪营。P4Runtime獨(dú)立于任何特定P4程序献起,并且與底層硬件無關(guān)镣陕。這與OpenFlow形成了鮮明對(duì)比呆抑,OpenFlow對(duì)轉(zhuǎn)發(fā)模型以及如何與控制平面交互有著相當(dāng)明確的規(guī)定。(為了完整起見厌殉,圖15還列出了OpenFlow作為另一個(gè)控制接口。)
- gNMI(gRPC Network Management Interface): 用于設(shè)置和檢索配置狀態(tài)器紧。gNMI通常與OpenConfig YANG模型配對(duì)铲汪,后者定義配置和狀態(tài)樹的結(jié)構(gòu)摩桶。
- gNOI(gRPC Network OperationsInterfaces): 用于設(shè)置和檢索運(yùn)行狀態(tài)硝清,如證書管理转晰、設(shè)備測(cè)試查邢、軟件升級(jí)、組網(wǎng)故障處理等缓苛。
如果你還記得在第一章中介紹的控制和配置之間的區(qū)別未桥,那么你會(huì)認(rèn)出P4Runtime就是控制API芥备,而gNMI/gNOI組合在一起就是交換機(jī)傳統(tǒng)配置API的現(xiàn)代版本萌壳。后一種API在歷史上被稱為OAM接口(即"Operations, Administration, and Maintenance"),通常被實(shí)現(xiàn)為命令行接口(當(dāng)然缤骨,這不是真正的API)绊起。
3.4 網(wǎng)絡(luò)操作系統(tǒng)(Network OS)
網(wǎng)絡(luò)操作系統(tǒng)是配置和控制交換機(jī)網(wǎng)絡(luò)的平臺(tái)褐望,作為邏輯上集中的SDN控制器在交換機(jī)之外運(yùn)行,并在全網(wǎng)范圍內(nèi)管理一組交換機(jī)荡碾。這個(gè)角色的核心是負(fù)責(zé)監(jiān)控交換機(jī)狀態(tài)(例如局装,檢測(cè)端口和鏈路故障)铐尚,維護(hù)反映網(wǎng)絡(luò)當(dāng)前狀態(tài)和拓?fù)涞娜忠晥D,并為任何感興趣的控制程序提供該視圖玫膀。這些控制程序反過來"指示"網(wǎng)絡(luò)操作系統(tǒng)根據(jù)它們提供的服務(wù)來控制底層交換機(jī)的數(shù)據(jù)包流爹脾,這些"控制指令"的表達(dá)方式是網(wǎng)絡(luò)操作系統(tǒng)API的關(guān)鍵方面。
我們基于ONOS(開放網(wǎng)絡(luò)操作系統(tǒng), Open Network Operating System) 這一特定網(wǎng)絡(luò)操作系統(tǒng)作為范例來完整描述這一概念解阅,ONOS在性能泌霍、可伸縮性和可用性方面是最好的朱转。簡(jiǎn)單來說,ONOS負(fù)責(zé)三件事情:
- 管理拓?fù)?Managing Topology): 跟蹤網(wǎng)絡(luò)基礎(chǔ)設(shè)施及其互聯(lián)設(shè)備锈津,為平臺(tái)和其他應(yīng)用程序提供網(wǎng)絡(luò)環(huán)境的共享視圖琼梆。
- 管理配置(Managing Configuration): 幫助在多個(gè)網(wǎng)絡(luò)設(shè)備上執(zhí)行窿吩、跟蹤纫雁、回滾和驗(yàn)證原子配置操作。這可以有效反映每個(gè)交換機(jī)的配置和操作接口(也使用gNMI和gNOI)刽脖,但是在網(wǎng)絡(luò)級(jí)別而不是設(shè)備級(jí)別上實(shí)現(xiàn)的曲管。
- 控制交換(Controlling Switches): 控制網(wǎng)絡(luò)交換機(jī)的數(shù)據(jù)平面數(shù)據(jù)包處理流水線,并對(duì)流水線內(nèi)的流規(guī)則腊徙、組撬腾、監(jiān)控等構(gòu)建塊進(jìn)行后續(xù)控制民傻。
關(guān)于最后一個(gè)角色场斑,ONOS導(dǎo)出了一個(gè)北向FlowObjectives抽象和簸,以一種獨(dú)立于流水線的方式泛化流規(guī)則接口(在第6章中有更詳細(xì)的描述)碟刺,但不像獨(dú)立交換機(jī)導(dǎo)出的控制接口那樣標(biāo)準(zhǔn)化[1]半沽。與傳統(tǒng)服務(wù)器操作系統(tǒng)一樣者填,基于ONOS API上的應(yīng)用程序不容易移植到另一個(gè)網(wǎng)絡(luò)操作系統(tǒng)上。對(duì)這個(gè)接口的需求是開放的以及定義良好的心墅,當(dāng)前并不是只有一個(gè)這樣的接口怎燥。如果隨著時(shí)間的推移蜜暑,如果業(yè)界對(duì)網(wǎng)絡(luò)操作系統(tǒng)接口達(dá)成了共識(shí)肛捍,那么應(yīng)用程序?qū)⒏菀妆灰浦病5拖穹?wù)器操作系統(tǒng)一樣棺禾,在軟件棧中層級(jí)越高的操作系統(tǒng)悍手,就越難以達(dá)成這樣的共識(shí)坦康。
[1] 我們沒有說FlowObjectives是控制交換機(jī)的理想接口。API會(huì)出于實(shí)際需要而發(fā)展古胆,允許開發(fā)人員處理不同的流水線逸绎。定義通用接口是正在進(jìn)行的研究的主題棺牧。
最后朗儒,盡管圖15沒有顯示關(guān)于ONOS內(nèi)部的任何細(xì)節(jié)醉锄,但為了更好的理解其在更高層面上所扮演的角色恳不,我們注意到在任何網(wǎng)絡(luò)操作系統(tǒng)中最關(guān)鍵的子系統(tǒng)是可伸縮鍵/值存儲(chǔ)(Scalable Key/Value Store)。由于ONOS提供了一個(gè)邏輯上集中的網(wǎng)絡(luò)視圖规求,其性能颓哮、可伸縮性和可用性的關(guān)鍵在于如何存儲(chǔ)這些狀態(tài)鸵荠。在ONOS中,這個(gè)存儲(chǔ)是由一個(gè)名為Atomix的開源項(xiàng)目提供的哨坪,該項(xiàng)目實(shí)現(xiàn)了RAFT共識(shí)算法当编。像Atomix這樣的存儲(chǔ)服務(wù)是當(dāng)今幾乎所有水平可伸縮云服務(wù)的基石忿偷,我們將在第6章中詳細(xì)介紹臊泌。
3.5 葉棘網(wǎng)絡(luò)(Leaf-Spine Fabric)
由于我們使用ONOS作為網(wǎng)絡(luò)操作系統(tǒng),所以僅限于使用ONOS托管的SDN控制應(yīng)用程序渠概。為了說明問題茶凳,我們使用SD-Fabric作為控制應(yīng)用程序,它在可編程交換機(jī)網(wǎng)絡(luò)上實(shí)現(xiàn)了葉棘網(wǎng)絡(luò)播揪。意思是贮喧,SD-Fabric定義了特定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),特別是數(shù)據(jù)中心集群常見的葉脊拓?fù)浣Y(jié)構(gòu)猪狈。如2.3節(jié)所述箱沦,該拓?fù)浒ㄒ唤M葉交換機(jī),每一個(gè)都作為ToR交換機(jī)(即連接單個(gè)機(jī)架中的所有服務(wù)器)雇庙,然后葉交換機(jī)再由一組脊交換機(jī)互連。
從架構(gòu)上來說状共,SD-Fabric扮演了三個(gè)角色。首先谁帕,提供了一個(gè)交換結(jié)構(gòu)峡继,在多機(jī)架集群中將服務(wù)器和運(yùn)行在這些服務(wù)器上的虛擬機(jī)相互連接。其次匈挖,使用BGP將集群作為整體連接到對(duì)等網(wǎng)絡(luò)碾牌,包括Internet(也就是說,其行為很像路由器)儡循。最后舶吗,將集群作為整體連接到下游接入網(wǎng)(即PON、RAN等接入網(wǎng))择膝。換句話說誓琼,與其將SD-Fabric看作傳統(tǒng)的在數(shù)據(jù)中心內(nèi)部構(gòu)建的葉脊網(wǎng)絡(luò),不如將其看作是運(yùn)行在網(wǎng)絡(luò)邊緣的互連系統(tǒng),幫助連接訪問特定邊緣云和基于IP的數(shù)據(jù)中心云腹侣。
在實(shí)現(xiàn)方面叔收,SD-Fabric實(shí)際上對(duì)應(yīng)一套運(yùn)行在ONOS上的控制程序,而不是單一應(yīng)用程序傲隶。該套件支持多種控制平面特性饺律,包括:
- VLAN和L2橋接
- IPv4和IPv6單播/組播路由
- DHCP L3中繼
- 服務(wù)器和上行路由器的雙歸屬冗余
- QinQ轉(zhuǎn)發(fā)/終止
- 基于MPLS的偽連接
對(duì)于每個(gè)特性,都有相應(yīng)的控制程序與ONOS交互跺株,通過觀察網(wǎng)絡(luò)拓?fù)涞淖兓l(fā)出Flow Objective而實(shí)現(xiàn)复濒,而不是基于任何傳統(tǒng)路由器/交換機(jī)的標(biāo)準(zhǔn)協(xié)議實(shí)現(xiàn)。只有當(dāng)SD-Fabric需要與外部通信(例如乒省,上游城市/核心路由器)時(shí)巧颈,才會(huì)涉及到傳統(tǒng)協(xié)議,這時(shí)需要使用標(biāo)準(zhǔn)BGP(由開源Quagga服務(wù)器實(shí)現(xiàn))作儿。這實(shí)際上是SDN環(huán)境的共同特征: 內(nèi)部或在新領(lǐng)域避免傳統(tǒng)路由協(xié)議洛二,但與外部世界的交互仍然需要。
最后,SD-Fabric有時(shí)部署在一個(gè)站點(diǎn)娶吞,多個(gè)RAN基站通過SD-Fabric葉交換機(jī)連接垒迂。但是,SD-Fabric還可以使用多層棘網(wǎng)絡(luò)擴(kuò)展到多個(gè)站點(diǎn)妒蛇,如圖17所示机断。第7章會(huì)更詳細(xì)介紹這部分內(nèi)容。
你好绣夺,我是俞凡吏奸,在Motorola做過研發(fā),現(xiàn)在在Mavenir做技術(shù)工作陶耍,對(duì)通信奋蔚、網(wǎng)絡(luò)、后端架構(gòu)烈钞、云原生泊碑、DevOps、CICD毯欣、區(qū)塊鏈馒过、AI等技術(shù)始終保持著濃厚的興趣,平時(shí)喜歡閱讀酗钞、思考腹忽,相信持續(xù)學(xué)習(xí)来累、終身成長,歡迎一起交流學(xué)習(xí)留凭。
微信公眾號(hào):DeepNoMind