11月25日,深信服云計算架構(gòu)師Eason在信服云《云集技術(shù)學(xué)社》系列直播課上進(jìn)行了《軟件SDN技術(shù)原理》的分享,繼上周介紹了SDN技術(shù)發(fā)展與應(yīng)用后,Eason本周又詳細(xì)介紹了SDN架構(gòu)、OpenFlow相關(guān)技術(shù)和網(wǎng)絡(luò)虛擬化相關(guān)技術(shù)。以下是他分享內(nèi)容摘要,想要了解更多可以關(guān)注“深信服科技”公眾號觀看直播回放。
看點一:SDN架構(gòu)
SDN的整體架構(gòu)是一個比較清晰的層次結(jié)構(gòu)。一個SDN架構(gòu)通常分成三個平面。
第一個是管理平面,它的作用是負(fù)責(zé)處理來自用戶的請求,并轉(zhuǎn)換為內(nèi)部網(wǎng)絡(luò)配置,通過北向接口(NBI)下發(fā)到控制平面。常見的云管理平面有OpenStack、NSX、Sangfor Cloud Platform等。另外,管理平面也可以基于開放平臺構(gòu)建用戶自己的云管理平臺。
第二個是控制平面,由SDN控制軟件構(gòu)成,負(fù)責(zé)將內(nèi)部網(wǎng)絡(luò)配置轉(zhuǎn)換成數(shù)據(jù)平面可理解的語義??刂破矫姹毕蛲ㄟ^NBI和應(yīng)用層對接,南向可通過標(biāo)準(zhǔn)化協(xié)議(例如OpenFlow的一些協(xié)議)與數(shù)據(jù)平面通信。
第三個是數(shù)據(jù)平面,主要為轉(zhuǎn)發(fā)設(shè)備,根據(jù)控制平面的控制邏輯進(jìn)行轉(zhuǎn)發(fā)和處理數(shù)據(jù)。
這三個平面之間通過兩種類型的接口進(jìn)行通信,一個是北向接口,負(fù)責(zé)管理平面和控制平面之間的通信,一個是南向接口,負(fù)責(zé)數(shù)據(jù)平面和控制平面之間的通信。
通過這樣的分層結(jié)構(gòu),用戶就可以將一些用戶請求轉(zhuǎn)化成數(shù)據(jù)平面可以實現(xiàn)的數(shù)據(jù)轉(zhuǎn)發(fā)邏輯,從而通過軟件的方式來集中式的管理數(shù)據(jù)平面的網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備。通過這些接口,數(shù)據(jù)平面也同樣可以把統(tǒng)計數(shù)據(jù)、行為數(shù)據(jù)等上報給控制平面或者上報給管理平面,讓管理平面或者用戶可以拿到這些數(shù)據(jù)做更多的處理。
看點二:OpenFlow相關(guān)技術(shù)
談到SDN就不得不談OpenFlow相關(guān)技術(shù),因為OpenFlow是SDN誕生后的第一個開源協(xié)議。數(shù)據(jù)平面有一個比較著名的實現(xiàn)叫做OVS。OVS包括3個主要模塊:運行在內(nèi)核態(tài)的datapath,以及運行在用戶態(tài)的vswitchd和ovsdb-server。
第一個是Datapath,是負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)的內(nèi)核模塊,屬于快路(fast path)轉(zhuǎn)發(fā)。該模塊從網(wǎng)絡(luò)接口收取數(shù)據(jù)報文,并根據(jù)報文頭部匹配流表(Flow table)中的流表項,如果成功則直接轉(zhuǎn)發(fā),否則將報文遞交到vswitchd處理。內(nèi)核模塊在初始化和端口綁定的時候會注冊回調(diào)函數(shù),從而接管端口的報文處理。
第二個是vswitchd,vswitchd是一個用戶態(tài)守護(hù)進(jìn)程,是本地OVS的管理和控制服務(wù),屬于慢路(slowpath)轉(zhuǎn)發(fā),可以處理內(nèi)核模塊未匹配的報文。vswitchd通過unix socket和ovsdb交互,并通過netlink和內(nèi)核模塊交互。vswitchd北向通過OpenFlow協(xié)議與控制平面對接。
第三個模塊是ovsdb-server,ovsdb是OVS的數(shù)據(jù)庫,用于保存OVS的配置信息。ovsdb-server對外提供RPC接口。
OVS工作依賴的核心數(shù)據(jù)結(jié)構(gòu)是Flow table。Flow table是存儲Flow的數(shù)據(jù)結(jié)構(gòu),Datapath根據(jù)Flowtable進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。Flow Table里面有一些字段,OVS通過將這些字段與數(shù)據(jù)報文進(jìn)行匹配,并執(zhí)行相應(yīng)的動作就實現(xiàn)了報文轉(zhuǎn)發(fā)。
在OVS里面,流表的核心處理流程是報文依次匹配多張表,并執(zhí)行相應(yīng)的指令。其中的單表也有對應(yīng)的匹配流程。當(dāng)一個報文進(jìn)來的時候,它就會找到滿足匹配條件的優(yōu)先級最高的表項,接下來會執(zhí)行指令動作,然后發(fā)送匹配數(shù)據(jù)和動作指令到下一張表。下一張表收到報文和指令后,會緊接著做后續(xù)的處理,直到整個流水線都運行完畢后,就會將報文從某一個端口輸出或者是丟棄。通過這樣的一個流程,OVS就完成了一次報文轉(zhuǎn)發(fā)。
而在控制平面,也有一個開源實現(xiàn)叫做OVN(Open Virtual Network)。通常情況下,OVN分為四個模塊。
第一個是Northbound DB,它接收并存儲來自云管平臺(CMS,Cloud Management System)的邏輯網(wǎng)絡(luò)配置(邏輯交換機、路由器、ACL等)信息,目前基于ovsdb-server實現(xiàn)。它有兩個客戶端:OVN/CMS插件,ovn-northd。
第二個是ovn-northd,它是集中式控制器,同時連接Northbound DB和SouthboundDB,并負(fù)責(zé)把云管平臺寫入Northbound DB的基于傳統(tǒng)網(wǎng)絡(luò)概念的邏輯網(wǎng)絡(luò)配置轉(zhuǎn)換成Southbound DB的數(shù)據(jù)表。
第三個是Southbound DB,它也是基于ovsdb-server,包含三類數(shù)據(jù):物理網(wǎng)絡(luò)信息(PhysicalNetwork),它包括了所有overlay封裝的必要信息,如IP地址,支持的封裝類型等;邏輯網(wǎng)絡(luò)信息(Logical Network),比如邏輯交換機、路由器的拓?fù)?、ACL、防火墻規(guī)則等;物理網(wǎng)絡(luò)和邏輯網(wǎng)絡(luò)的綁定關(guān)系信息(Binding)。這些數(shù)據(jù)由各個ovn-controller消費。
第四個是ovn-controller,它是OVN的本地控制進(jìn)程,是運行在每臺主機上的本地SDN控制器。它北向通過ovsdb協(xié)議與OVN SouthboundDB通信,南向通過ovsdb協(xié)議與本地ovsdb-server通信,以及通過OpenFlow協(xié)議與ovs-vswitchd通信。
看點三:網(wǎng)絡(luò)虛擬化技術(shù)
了解網(wǎng)絡(luò)虛擬化技術(shù)首先要理解什么是虛擬網(wǎng)絡(luò)或者什么是Overlay。Overlay網(wǎng)絡(luò)是一種建立在另一個網(wǎng)絡(luò)之上的計算機網(wǎng)絡(luò)。Overlay網(wǎng)絡(luò)節(jié)點可以被認(rèn)為是通過虛擬或邏輯鏈接相連。節(jié)點之間通過下層網(wǎng)絡(luò)(Underlay)中的多個物理連接實現(xiàn)相連。通過Overlay網(wǎng)絡(luò)可以實現(xiàn)網(wǎng)絡(luò)虛擬化,從而將虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)解耦。
虛擬網(wǎng)絡(luò)實現(xiàn)有幾種比較常見的方式:
第一個是VLAN(802.1Q),通過在物理交換機上劃分VLAN實現(xiàn)多個虛擬的交換機。VLAN的限制是最大只支持4096個劃分,并且Underlay網(wǎng)絡(luò)不支持跨三層。
第二個是VPN(虛擬專用網(wǎng)絡(luò)),通過隧道協(xié)議將分支或個人與總部網(wǎng)絡(luò)連通的技術(shù)。Underlay網(wǎng)絡(luò)一般用于在互聯(lián)網(wǎng)上分支與總部間的點對點的連接。
第三個是VXLAN,可以在三層連通的Underlay網(wǎng)絡(luò)上實現(xiàn)虛擬的二層連通性。這個二層連通性是在分布式虛擬交換機上實現(xiàn)的。
報文轉(zhuǎn)發(fā)流程首先是虛擬機VM1發(fā)送ARP請求虛擬機VM2(IP=192.168.5.22)的MAC地址;其次VTEP1封裝ARP請求為多播報文,并且將VNI設(shè)置為121;VTEP2收到報文后,將VTEP1和虛擬機VM1的映射關(guān)系加入VXLAN表格;VTEP2解封裝報文,提取VNI信息,并把ARP請求發(fā)送到虛擬機VM2;虛擬機VM2回復(fù)ARP請求;VTEP2根據(jù)之前學(xué)習(xí)到VTEP1和VM1的映射關(guān)系和VNI信息封裝VM2回復(fù)的ARP請求,并以單播方式發(fā)送給VTEP1;VTEP1收到來自VTEP2的報文,解封裝,提取VNI信息,并把解封后的來自VM2回復(fù)ARP請求發(fā)送給VM1。
理解網(wǎng)絡(luò)虛擬化技術(shù)的另一個重要的方面了解控制面的工作原理。在由控制面的情況下,主機1會將VTEP1和虛擬機VM1的映射關(guān)系上送控制器(VNI=121,VM MAC = 00:AC:AA:55:20:C1,VTEP IP = 10.0.0.163),同時主機2也會將VTEP2和虛擬機VM2的映射關(guān)系上送控制器(VNI=121,VM MAC = 00:AC:BB:77:44:C2,VTEP IP = 10.0.0.192)??刂破髟诰酆细髦鳈C信息后會將完整的映射關(guān)系分別同步到主機1和主機2。
通過網(wǎng)絡(luò)虛擬化技術(shù),可以實現(xiàn)虛擬路由器。虛擬路由器實現(xiàn)上有兩種形態(tài):分布式虛擬路由和集中式虛擬路由。這樣實現(xiàn)的好處是虛擬路由器既有分布式路由性能和擴展性方面的優(yōu)勢,也有集中式路由功能服務(wù)方面的優(yōu)點。
分布式虛擬路由器主要處理東西向流量,它可以在源端完成路由計算,實現(xiàn)物理上的一跳轉(zhuǎn)發(fā);集中式虛擬路由器主要處理南北向流量,負(fù)責(zé)與物理網(wǎng)絡(luò)連通,實現(xiàn)集中式服務(wù)(NAT、DHCP、DNS、集中式防火墻、負(fù)載均衡)。
最后,通過網(wǎng)絡(luò)虛擬化技術(shù),可以實現(xiàn)軟件定義防火墻。
軟件定義防火墻分成兩種,集中式防火墻和分布式防火墻。
集中式的防火墻有四個特點:第一個是中心化的管理;第二是集中式的防火墻部署在邊界節(jié)點;第三是它主要用來防護(hù)的是南北向的流量;第四是通過集中式的防火墻,可以很容易集成第三方的服務(wù)。
分布式防火墻同樣也是中心化管理,但分布式防火墻直接部署在虛擬機的網(wǎng)絡(luò)接口上,它主要防護(hù)東西向流量,易于水平擴展。
來自外部或者互聯(lián)網(wǎng)上的流量,通常會經(jīng)過集中式路由或集中式的防火墻,進(jìn)入內(nèi)部網(wǎng)絡(luò)。來自內(nèi)部的流量在沒有分布式防火墻之前也是通過集中式的防火墻來控制,有了分布式防火墻之后,就可以在虛擬機之間或者在主機之間直接進(jìn)行防護(hù),而不用再繞行到集中式防火墻的節(jié)點上,性能和安全性上會有很大的提升。
以上就是本期直播的主要內(nèi)容,還想了解更多有關(guān)云計算相關(guān)的知識與應(yīng)用嗎?敬請關(guān)注云集技術(shù)學(xué)社,信服云還將邀請更多行業(yè)大咖來分享云計算干貨。
?
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )