OpenStackSFC的示例分析

這篇文章主要介紹了OpenStack SFC的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的10多年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如成都?jí)w彩繪等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致稱揚(yáng)。

SFC簡(jiǎn)介

傳統(tǒng)網(wǎng)絡(luò)都是物理設(shè)備,網(wǎng)絡(luò)高級(jí)服務(wù)和網(wǎng)絡(luò)拓?fù)鋸?qiáng)相關(guān)的,而且要配置復(fù)雜的路由策略或者ARP欺詐等特殊處理方法才能引導(dǎo)流量經(jīng)過(guò)這些高級(jí)服務(wù)功能單元,所有特殊處理請(qǐng)求都是針對(duì)報(bào)文的二層和三層頭,還有一個(gè)問(wèn)題就橫向擴(kuò)展困難。

OpenStack SFC的示例分析

計(jì)算虛擬化之后,對(duì)網(wǎng)絡(luò)也提出了虛擬化的要求,虛擬網(wǎng)卡,虛機(jī)交換機(jī),虛擬路由器,overlay網(wǎng)絡(luò)拓?fù)渥远x,虛擬機(jī)到處漂移,傳統(tǒng)網(wǎng)絡(luò)添加網(wǎng)絡(luò)高級(jí)服務(wù)的方法已經(jīng)無(wú)法應(yīng)對(duì)這多復(fù)雜多變的局面了。

SFC全稱Service Function Chain,RFC 7665 Service Function Chaining (SFC) Architecture對(duì)SFC的體系做了很詳細(xì)的介紹。end to end流量中間要有序經(jīng)過(guò)FW,NAT,IDS等網(wǎng)絡(luò)功能單元,對(duì)這些網(wǎng)絡(luò)功能的定義和管理,以及引導(dǎo)流量如何有序經(jīng)過(guò)這些網(wǎng)絡(luò)功能單元就是SFC。為什么現(xiàn)在需要SFC,是因?yàn)橐郧癋W,NAT,IDS等網(wǎng)絡(luò)功能單元是實(shí)體物理設(shè)備,它的部署位置是和網(wǎng)絡(luò)拓?fù)鋸?qiáng)相關(guān)的,所有流量共享這些設(shè)備,而且流量經(jīng)過(guò)這些設(shè)備的序列是固定死的,總結(jié)是不夠靈活,而SFC可以自定義網(wǎng)絡(luò)功能單元,自定義流量路徑,很好給SDN網(wǎng)絡(luò)提供了支撐。

SFC首先由classifier識(shí)別出要經(jīng)過(guò)這條chain的流量,然后再不斷地經(jīng)過(guò)這條chain上的service function,從classifier到第一個(gè)service function和從上一下service function到下一個(gè)service function,報(bào)文都要做封裝,目前主推的是RFC 8300 Network Service Header (NSH),封裝頭一般包含chain id和chain上的位置,就是這個(gè)報(bào)文走的是哪個(gè)chain,現(xiàn)在在chain上走了幾步了,這樣靠這個(gè)頭就可以保證報(bào)文走正確的chain,而且在chain上依次一個(gè)一個(gè)地走service function,不會(huì)重復(fù)走service function,也不會(huì)跳過(guò)一些service function。NSH頭可以包含更多字段,攜帶數(shù)據(jù)以便service function之間共享信息。

OpenStack SFC的示例分析

從上一個(gè)service function到下一個(gè)service function由sf forwarder來(lái)轉(zhuǎn)發(fā),service function又分為service function aware和service function unaware,service function aware可以正確解析報(bào)文攜帶的NSH頭,反之service function unaware就不能識(shí)別NSH等這樣的頭,需要proxy把NSH等這頭去掉,再發(fā)往service function中。

OpenStack SFC的示例分析

2

network-sfc

networking-sfc是openstack中實(shí)現(xiàn)sfc功能的一個(gè)項(xiàng)目,openstack neutron中port是一個(gè)很重要概念,所以networking-sfc就把port連在一起形成一條chain,就是service function chain,在opnestack中叫做port chain,RFC中并沒(méi)有說(shuō)SFF和SF怎么傳遞報(bào)文,port chain明確指出用port,而且分為ingress port和egress port。networking-sfc實(shí)現(xiàn)了neutron extension,對(duì)外提供api,service plugin負(fù)責(zé)真正干活,plugin又包含各種各樣的driver,其中就有ovs driver,ovs driver和計(jì)算節(jié)點(diǎn)上opensvswitch agent 中的sfc extension用rpc通信。

OpenStack SFC的示例分析

networking-sfc中有如下幾個(gè)重要概念:

port pair

port pair就是一個(gè)service function節(jié)點(diǎn)上一對(duì)口,一個(gè)port是ingress進(jìn)service function,另一個(gè)port是egress出service function,ingress和egress可以是同一個(gè)port,這個(gè)port能進(jìn)能出,是否需要proxy由參數(shù)創(chuàng)建port pair時(shí)的參數(shù)--service-function-parameters correlation=xxxx來(lái)指定。

port pair group

port pair group包含一個(gè)或者多個(gè)port pair,主要是為了做流量負(fù)載均衡,假如一條chain中有兩個(gè)firewall service function,流量可以走任意一個(gè)firewall就可以,port pair group就是干這事的,指導(dǎo)流量在這兩個(gè)firewall上負(fù)載均衡,創(chuàng)建port pair group時(shí)指定參數(shù),例如--port-pair-group-parameters lb_fields=ip_src&ip_dst。

port chain

port chain把一些port pair group按順序指定好,再加一個(gè)classifier識(shí)別出流量上第一個(gè)service function就形成了一個(gè)port chain。流量怎么裝由參數(shù)--chain-parameters correlation=<correlation-type>,symmetric=<boolean>]來(lái)指定。

service graph

service graph把幾條chain組合在一起形成一個(gè)復(fù)雜的流量多路徑,流量經(jīng)過(guò)一條chain后分叉,兩個(gè)分支分別走不同的chain,理論上這個(gè)graph不能形成環(huán)路。

3

networking-sfc模式

chain

OpenStack SFC的示例分析

流量只有一條路徑,從src依次經(jīng)過(guò)service function節(jié)點(diǎn)到dst,service function有一個(gè)ingress port和一個(gè)egress port,ingress和egress port可以是同一個(gè)port。

tap

OpenStack SFC的示例分析

這種模式適用于IDS等流量只進(jìn)不出的模式,流量復(fù)制一份到IDS,繼續(xù)流向下一個(gè)節(jié)點(diǎn)。

LB

OpenStack SFC的示例分析

流量在兩個(gè)service function節(jié)點(diǎn)之間做負(fù)載均衡,具體由openflow的group表來(lái)實(shí)現(xiàn),根據(jù)報(bào)文的信息(eth_src,eth_dst,ip_src,ip_dst,tcp_src,tcp_dst,udp_src,udp_dst)來(lái)hash。

service graph

OpenStack SFC的示例分析

這種模式由多條chain組成,一條分叉成幾條,分叉點(diǎn)由re-classifier來(lái)控制流量走向。這種模式適合于報(bào)文會(huì)被service function修改,如service function是NAT功能,報(bào)文的IP被修改后,原來(lái)的classifier有可能匹配不到,所以后續(xù)創(chuàng)建新的port chain,關(guān)聯(lián)新的classifier。

4

應(yīng)用

這是一個(gè)networking-sfc service graph的例子,分為四條port chain,每個(gè)service function是一條單獨(dú)的chain,service graph實(shí)現(xiàn)了分叉再合并。流量從src出來(lái)到sf1,分叉到sf2和sf3,sf4合并sf2和sf3出來(lái)的流量,最后送給dst。用的是networking-sfc的ovs driver,src,sf1,sf2,sf3,sf4,dst都是虛擬機(jī),分布在兩個(gè)不同的物理上,物理機(jī)之間用vxlan tunnel通信。由于ovs實(shí)現(xiàn)的NSH的bug,導(dǎo)致流量轉(zhuǎn)發(fā)不通,這里用MPLS做SFC封裝。

OpenStack SFC的示例分析

流表最大的特點(diǎn)就是分叉點(diǎn)或者合并點(diǎn)引進(jìn)了reg0,原來(lái)的流表match in_port=xxx和 flowclassifier,然后就到group table?,F(xiàn)在變成in_port前一個(gè)port chain的最后一個(gè)service function的egress port,把label暫存在reg0中,resubmit(,0),然后match reg0和flowclassifier送去group table,把原來(lái)的一條流表變成了多條。group table相同就合并,group table不同就分叉了。

OpenStack SFC的示例分析

OpenStack SFC的示例分析


感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“OpenStack SFC的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

新聞標(biāo)題:OpenStackSFC的示例分析
分享URL:http://bm7419.com/article6/pscsog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)小程序開發(fā)、網(wǎng)站收錄網(wǎng)站策劃、App設(shè)計(jì)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司