一種面向云數(shù)據(jù)中心的多租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方法
【專利摘要】本發(fā)明屬于云計(jì)算和新型網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體為一種面向云數(shù)據(jù)中心的多租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方法。具體步驟包括:租戶策略定義,限定用戶自定義策略的權(quán)限,策略沖突解決,策略文件解析與執(zhí)行;本發(fā)明通過(guò)策略定義來(lái)配置網(wǎng)絡(luò),租戶能夠以直觀的方式來(lái)定義自己的虛擬網(wǎng)絡(luò)、虛擬防火墻等,而不必通過(guò)編寫程序或者利用軟件定義網(wǎng)絡(luò)控制器所提供的編程接口;將云計(jì)算平臺(tái)的管理和SDN控制器的管理統(tǒng)一起來(lái);通過(guò)策略的解析來(lái)管理網(wǎng)絡(luò),能夠獲得更好的效率,節(jié)省軟件定義網(wǎng)絡(luò)控制器的CPU等計(jì)算資源,并減少控制器處理租戶請(qǐng)求的時(shí)間。本發(fā)明在保證用戶友好性的前提下,能夠接近本地API調(diào)用的性能,同時(shí)大大優(yōu)于RESTAPI調(diào)用的性能。
【專利說(shuō)明】-種面向云數(shù)據(jù)中心的多租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方 法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于云計(jì)算和數(shù)據(jù)中心網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種面向云數(shù)據(jù)中心的多 租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方法。
【背景技術(shù)】
[0002] 在當(dāng)前將軟件定義網(wǎng)絡(luò)運(yùn)用于云數(shù)據(jù)中心管理的研究中存在若干問(wèn)題,主要是管 理員管理邏輯復(fù)雜、不易實(shí)現(xiàn),SDN控制器效率不高,租戶不能定義自己的網(wǎng)絡(luò)策略等。而參 考亞馬遜等一些公有云平臺(tái),大多都是通過(guò)租戶自定義策略的方式來(lái)管理云計(jì)算中租戶的 各項(xiàng)資源。所以,本發(fā)明設(shè)計(jì)的出發(fā)點(diǎn)在于云數(shù)據(jù)中心對(duì)于網(wǎng)絡(luò)的管理同樣可以使用策略 驅(qū)動(dòng)的方式,并且,將原有的策略進(jìn)行擴(kuò)展后,很容易對(duì)不同類型的策略進(jìn)行統(tǒng)一的整合, 并進(jìn)行統(tǒng)一的解析與執(zhí)行。這樣,就簡(jiǎn)化了云數(shù)據(jù)中心平臺(tái)的管理,將所有的策略平臺(tái)統(tǒng)一 為一個(gè)策略解析平臺(tái),將原來(lái)的SDN控制器與云控制器進(jìn)行有效的整合,使得整個(gè)云數(shù)據(jù) 中心平臺(tái)只有一個(gè)統(tǒng)一的管理器,以達(dá)到統(tǒng)一管理、方便使用的目的。
[0003] 在當(dāng)前的SDN管理中,可以通過(guò)兩種方式來(lái)管理網(wǎng)絡(luò),即通過(guò)本地API調(diào)用的方式 和通過(guò)REST API調(diào)用的方式。但是,這兩種方式均存在一定的問(wèn)題。通過(guò)本地API調(diào)用的 方式,其擴(kuò)展性不強(qiáng),且要求專業(yè)性較強(qiáng),需要管理員通過(guò)編寫程序的方式來(lái)管理網(wǎng)絡(luò),這 就使得普通的租戶不能參與自定義的網(wǎng)絡(luò)管理;而基于REST API的方式,雖然用戶友好性 有一定的提高,但是仍然達(dá)不到使得租戶能夠自定義策略的程度,同時(shí),通過(guò)REST API調(diào)用 時(shí),客戶端會(huì)將同一種類型的OpenFlow指令仍然拆分為多個(gè)HTTP請(qǐng)求來(lái)發(fā)送,這樣就限制 了其處理能力,同時(shí)造成了很大的處理延時(shí)。
[0004] 所以,我們的設(shè)計(jì)提出基于多租戶的策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)解決方法,通過(guò)對(duì) 已有的存儲(chǔ)、計(jì)算策略等進(jìn)行擴(kuò)展,定義出了網(wǎng)絡(luò)管理策略?;贔loodlight控制器,將網(wǎng) 絡(luò)管理策略與原有策略的整合,達(dá)到了策略統(tǒng)一定義、統(tǒng)一解析、統(tǒng)一執(zhí)行的目的。并且,支 持租戶可以自定義策略,并不需要每個(gè)管理請(qǐng)求都發(fā)送給管理員,再由管理員進(jìn)行操作,這 樣就創(chuàng)造了更大的靈活性。同時(shí),因?yàn)镾DN相關(guān)的策略與原有策略可以整合到同一個(gè)策略 文件中,這樣就將SDN的管理與原有云數(shù)據(jù)中心平臺(tái)的管理整合了起來(lái),形成了一個(gè)統(tǒng)一 管理平臺(tái),這樣也能大大降低管理復(fù)雜性。
[0005] 因此,本發(fā)明側(cè)重于面向云數(shù)據(jù)中心的多租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方法。
[0006] 經(jīng)對(duì)現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),在SDN概念提出之后不久,Ν0Χ項(xiàng)目剛剛提出 之時(shí),Tavakoli等提出要將Ν0Χ應(yīng)用于數(shù)據(jù)中心[Tavakoli A,Casado M,Koponen T,et al. Applying Ν0Χ to the Datacenter[C]HotNets. 2009·]。Tavakoli 在該文獻(xiàn)中指出數(shù) 據(jù)中心的網(wǎng)絡(luò)面臨的主要需求有以下幾點(diǎn):可擴(kuò)展性;資源位置獨(dú)立性;高服務(wù)質(zhì)量;中間 件支持;監(jiān)控與排錯(cuò)的支持。傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)不能很好地同時(shí)支持這些特性,而將 Ν0Χ稍加擴(kuò)展即可將其很好地應(yīng)用于數(shù)據(jù)中心網(wǎng)絡(luò),并且能很好地支持以上所述的各類特 性。Banikazemi 等在文獻(xiàn)中[Banikazemi M, Olshefski D, Shaikh A, et al. Meridian: an sdn platform for cloud network services[J]. Communications Magazine, IEEE, 2013, 5 1 (2) :120-127.]中提出的Meridian則強(qiáng)調(diào)SDN在云計(jì)算整合過(guò)程中的服務(wù)功能。在云計(jì)算 應(yīng)用過(guò)程中,虛擬子網(wǎng)、多租戶隔離、路由路徑優(yōu)化等各種需求被提了出來(lái),而將SDN直接 應(yīng)用于云計(jì)算環(huán)境時(shí)卻沒(méi)有一個(gè)很好的協(xié)調(diào)機(jī)制來(lái)協(xié)調(diào)SDN控制器和云控制器。Meridian 是這樣一種模型,它對(duì)外隱藏內(nèi)部實(shí)現(xiàn),僅提供針對(duì)云計(jì)算平臺(tái)的API,用于云計(jì)算管理器 進(jìn)行相應(yīng)的操作,例如路徑優(yōu)化、訪問(wèn)控制策略設(shè)定等。但是,Meridian提供的API與云計(jì) 算管理器之間是緊耦合的關(guān)系,不夠靈活。
[0007] 云計(jì)算環(huán)境的一大特點(diǎn)是多租戶,而各租戶均希望自己的子網(wǎng)與其他租戶的子網(wǎng) 之間能有效地隔離,于是也有一些研究文軒專注于利用SDN來(lái)構(gòu)建云計(jì)算環(huán)境中的虛擬網(wǎng) 絡(luò)[Azodolmolky S, ffieder P, Yahyapour R. SDN-based cloud computing networking[C] Transparent Optical Networks (ICT0N), 201315th International Conference on.IEEE, 2013:l-4〇
[0008] Malik M S, Montanari M, Huh J H, et al. Towards SDN enabled network control delegation in clouds[C]Dependable Systems and Networks(DSN), 201343rd Annual IEEE/IFIP International Conference on. IEEE, 2013:1-6 ;Bakshi K. Considerations for Software Defined Networking(SDN):Approaches and use cases[C]Aerospace Conference, 2013IEEE. IEEE, 2013:1-9.]綜合這些論文,其基本論點(diǎn)都是通過(guò)SDN來(lái)管理 物理網(wǎng)絡(luò),利用SDN靈活、方便管理的特點(diǎn),調(diào)用SDN控制器的API,在SDN之上來(lái)構(gòu)建虛擬 網(wǎng)絡(luò)。利用SDN來(lái)構(gòu)建虛擬網(wǎng)絡(luò)有多方面的優(yōu)點(diǎn),首先,云管理員可方便地進(jìn)行子網(wǎng)的劃 分:云管理員只需要定義好虛擬網(wǎng)絡(luò)各子網(wǎng)、網(wǎng)關(guān)等信息,再將這些配置信息通過(guò)SDN控制 器下發(fā)到OpenFlow交換機(jī)建立相應(yīng)的流表即可,這正是SDN中"軟件定義"的優(yōu)勢(shì)。而在 傳統(tǒng)網(wǎng)絡(luò)環(huán)境中,則需要云管理員直接對(duì)各個(gè)路由器和交換機(jī)進(jìn)行配置,而通過(guò)SDN,云管 理員同樣可通過(guò)"軟件定義"的方式來(lái)設(shè)置各虛擬子網(wǎng)的安全策略,因?yàn)镾DN控制器掌握了 全網(wǎng)絡(luò)的所有信息,所以可用來(lái)方便地進(jìn)行安全策略規(guī)則的驗(yàn)證工作,并且可以很容易地 將規(guī)則在底層的交換機(jī)、路由機(jī)和防火墻等中間件上建立起來(lái)。但是目前的問(wèn)題是SDN控 制器提供的API接口還沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),因此上層網(wǎng)絡(luò)管理軟件需要與多個(gè)SDN控制器的 API進(jìn)行交互,這帶來(lái)了集成的難度。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的目的在于提出一種操作靈活性大、管理復(fù)雜性低的面向云數(shù)據(jù)中心的多 租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方法。
[0010] 本發(fā)明的提出的面向云數(shù)據(jù)中心的多租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方法。具體步 驟為:
[0011] 第一步:租戶策略自定義
[0012] 通過(guò)自定義的租戶策略,SDN控制器和云管理器不需要從不同的數(shù)據(jù)庫(kù)中讀取租 戶相關(guān)的管理數(shù)據(jù),而只需要通過(guò)統(tǒng)一的接口解析租戶的策略即可,這樣即達(dá)到了整合SDN 控制器和云管理器的目的。通過(guò)租戶自定義策略,自然地滿足租戶自定義、個(gè)性化策略的 需求,并且能夠?qū)⑻摂M機(jī)放置策略、存儲(chǔ)策略、網(wǎng)絡(luò)策略等整合到同一個(gè)策略文件中進(jìn)行定 義,方便了租戶的統(tǒng)一管理。
[0013] 為了在策略解析時(shí)獲得更大的自由度,本發(fā)明在定義策略時(shí)通過(guò)"繼承"對(duì)原有 Amazon 的 AWS 聲明進(jìn)行了擴(kuò)展,發(fā)展出了 SIStatement(SDN Integrated Statement,集成 了 SDN的聲明),聲明中各個(gè)部分的繼承關(guān)系如圖1所示。
[0014] 其中,新定義的SIStatement對(duì)于原有聲明是一種繼承關(guān)系,其中的子項(xiàng) "Condition"和"Effect"可以沿用與原有聲明相同的定義,所以沒(méi)有進(jìn)行擴(kuò)展。擴(kuò)展的子 項(xiàng)為"SIPrincipal"、"SIAction"、"SIResource"三項(xiàng),下面分別敘述對(duì)這三項(xiàng)的定義。
[0015] SIPrincipal:對(duì)于原有Principal的擴(kuò)展,其基本形式為:
[0016] "SIPricipal" : { "SDN,,:,,TenantUserXXX,,},
[0017] 其中的"SDN"關(guān)鍵字表明這項(xiàng)聲明是一項(xiàng)與SDN有關(guān)的操作,以示與原有聲明中 存儲(chǔ)等相關(guān)操作的區(qū)分,其后的租戶賬戶名可沿用原有賬戶定義,以實(shí)現(xiàn)與原有策略的統(tǒng) 〇
[0018] SIAction:對(duì)于原有可操作類型的擴(kuò)展,代表與網(wǎng)絡(luò)管理相關(guān)的可進(jìn)行的操作,例 如:創(chuàng)建虛擬網(wǎng)絡(luò)時(shí),定義為:
[0019] "SIAction" : " CreateVirtualNetwork,',
[0020] 創(chuàng)建虛擬防火墻訪問(wèn)控制列表ACL時(shí),定義為:
[0021] "SIAction" : " CreateFireWallACL"
[0022] 通過(guò)此方式進(jìn)行定義,"SIAction"項(xiàng)可以進(jìn)行任意的擴(kuò)展,比如如果需要進(jìn)行QoS 控制時(shí),只需要在此處定義相應(yīng)的操作項(xiàng),并在后續(xù)的策略解析模塊進(jìn)行解析即可,這樣就 增加了系統(tǒng)的可擴(kuò)展性。
[0023] SIResource :擴(kuò)展了原聲明中的"資源項(xiàng)",此處資源項(xiàng)的值與" SIAction"操作項(xiàng) 的值相關(guān),需要根據(jù)操作項(xiàng)進(jìn)行相應(yīng)的修改。舉例說(shuō)明如下,當(dāng)"SIAction"為創(chuàng)建虛擬網(wǎng) 絡(luò)時(shí),其后續(xù)的資源項(xiàng)例如:
[0024] "SIAction": "CreateVirtualNetwork", "SIResource": { guid ; aaa-aaa , ''networkName〃: ''TenantUserl-networkl 〃, ''gateway": "192. 168. 1. 1〃, "hosts": ["1A:CB:D6:CE:BF:6F","C6:CB:9E:3C:B8:E9"], }
[0025] 即在資源項(xiàng)中定義了當(dāng)創(chuàng)建虛擬網(wǎng)絡(luò)時(shí),與虛擬網(wǎng)絡(luò)相關(guān)的各項(xiàng)細(xì)節(jié)。其中包括 虛擬網(wǎng)絡(luò)的唯一標(biāo)識(shí)符guid,虛擬網(wǎng)絡(luò)的名字,虛擬網(wǎng)絡(luò)的網(wǎng)關(guān)和虛擬網(wǎng)絡(luò)中所包含的虛 擬機(jī)的MAC地址。
[0026] 同時(shí),SIResource項(xiàng)可以包含多個(gè)分段,也就是說(shuō),可以包含同一租戶下的多個(gè)虛 擬子網(wǎng)的定義。這樣,在同一個(gè)策略聲明中,就可以同時(shí)創(chuàng)建多個(gè)虛擬子網(wǎng),而不用分別創(chuàng) 建策略文件,這樣方便了租戶進(jìn)行管理。
[0027] 另一個(gè)典型例子是,當(dāng)"SIAction"為創(chuàng)建虛擬防火墻訪問(wèn)控制列表ACL時(shí),其后 續(xù)的資源項(xiàng)例如:
[0028] ''SIAction" : 〃CreateFireWallACL〃, "SIResource": { "rules":[ { "src-ip":〃l_0. 0. 0. 1/32", 〃dst-ip〃:"10. 0. 0. 2/32〃, nw-proto : ICr ,
[0029] 〃tp-dst〃:〃80〃, ''action": ''ALLOW", }, { "src-ip^V'lO. 0. 0. 2/32〃, "dst-ip〃:〃 10. 0. 0. 1/32' 〃nw-proto":〃ICMP〃, "action〃:〃DENY〃, }], }
[0030] 可以看出,此時(shí)SIResource中包含的資源說(shuō)明是防火墻ACL規(guī)則,上述示例中的 第一項(xiàng)規(guī)則為允許兩臺(tái)主機(jī)之間的TCP80端口的訪問(wèn),第二項(xiàng)規(guī)則為拒絕ICMP協(xié)議的所有 訪問(wèn)。
[0031] 通過(guò)在SIResource資源項(xiàng)中定義防火墻ACL規(guī)則,就實(shí)現(xiàn)了用戶自定義的訪問(wèn)控 制策略。
[0032] 同樣,在SIResource中定義的ACL規(guī)則項(xiàng)目也是可以無(wú)限擴(kuò)展的,租戶只需要添 加更多的ACL規(guī)則項(xiàng)即可,這些規(guī)則可在后續(xù)的策略解析模塊中進(jìn)行解析,并通過(guò)多線程 方式進(jìn)行實(shí)現(xiàn),以達(dá)到提升效率的目的。
[0033] 通過(guò)以上方式進(jìn)行繼承和擴(kuò)展,就構(gòu)成了與SDN相關(guān)的完整的策略定義。
[0034] 第二步:限定用戶自定義策略的權(quán)限
[0035] 當(dāng)策略被定義以后,一個(gè)很自然的問(wèn)題是,如何限制用戶自定義策略的權(quán)限,并且 保證管理員擁有對(duì)網(wǎng)絡(luò)的最終管理權(quán)。
[0036] 在OpenFlow協(xié)議白皮書中指出,在流表中建立的每一個(gè)流表項(xiàng)均包含一個(gè)"優(yōu)先 級(jí)(Priority)"值,優(yōu)先級(jí)的取值范圍為0?255,其中,數(shù)字越大,表示優(yōu)先級(jí)越高?;?此,同樣可以對(duì)各租戶策略賦予不同的優(yōu)先級(jí),同時(shí)預(yù)設(shè)一些管理員策略,并保證管理員策 略的優(yōu)先級(jí)總是大于租戶策略優(yōu)先級(jí),這樣就限制了租戶策略的權(quán)限和使用范圍。
[0037] 基于兩段式優(yōu)先級(jí)的定義與處理,并結(jié)合OpenFlow協(xié)議中優(yōu)先級(jí)的取值范圍,可 定義管理員策略的優(yōu)先級(jí)取值為[128, 255],定義租戶策略的優(yōu)先級(jí)取值范圍為(0, 127], 這樣,即使租戶的策略有任何越過(guò)權(quán)限的惡意行為,因?yàn)槠鋬?yōu)先級(jí)總是比管理員策略的優(yōu) 先級(jí)低,所以在OpenFlow流表中不會(huì)被匹配到,也就不會(huì)執(zhí)行,所以不會(huì)對(duì)整個(gè)網(wǎng)絡(luò)產(chǎn)生 損害。
[0038] 本發(fā)明中,除了租戶能定義相應(yīng)的策略,管理員同樣能定義一些管理策略。對(duì)管理 員策略的描述與租戶策略不同,管理員策略側(cè)重于原子操作(Atom Action)定義和默認(rèn)策 略描述。原子操作是指是網(wǎng)絡(luò)管理中的一些最基本的、不可被分割的操作,例如允許連接、 創(chuàng)建路由表項(xiàng)、鏈路帶寬設(shè)定、禁止某一端口通信等。而租戶策略是按應(yīng)用場(chǎng)景來(lái)定義,例 如租戶"創(chuàng)建虛擬子網(wǎng)"這一策略可分割成多個(gè)允許建立連接(虛擬子網(wǎng)的虛擬機(jī)之間)、 設(shè)置路由表項(xiàng)等多個(gè)原子操作。原子操作之間按實(shí)際操作順序和管理優(yōu)先級(jí)指定優(yōu)先級(jí)的 值,例如當(dāng)"創(chuàng)建虛擬子網(wǎng)"時(shí),"允許連接"的優(yōu)先級(jí)應(yīng)該于"設(shè)置路由表項(xiàng)",因?yàn)槿绻?允許連接,也就沒(méi)有必要再設(shè)置或查詢路由表項(xiàng)了。在"創(chuàng)建虛擬子網(wǎng)"完成后,如果租戶 同時(shí)疊加了訪問(wèn)控制列表策略,比如禁止80端口訪問(wèn),則可以設(shè)置一個(gè)優(yōu)先級(jí)比"設(shè)置路 由表項(xiàng)"更低的"禁止端口訪問(wèn)"項(xiàng),這樣,虛擬機(jī)之間除了 80端口以外,都能進(jìn)行正常的通 信。通過(guò)這種方式,管理員可以按需定制所有的原子操作類型及其優(yōu)先級(jí)。
[0039] 租戶策略的優(yōu)先級(jí)分為基本優(yōu)先級(jí)加偏移量(shift)兩部分。基本優(yōu)先級(jí)是根據(jù) 應(yīng)用場(chǎng)景預(yù)先設(shè)定的固定值,例如"創(chuàng)建虛擬子網(wǎng)"一般先于"創(chuàng)建訪問(wèn)控制列表"執(zhí)行,所 以可以設(shè)定"創(chuàng)建虛擬子網(wǎng)"的固定優(yōu)先級(jí)比"創(chuàng)建訪問(wèn)控制列表"高。
[0040] 當(dāng)租戶策略被解析時(shí),其策略文件被分解成為原子操作來(lái)執(zhí)行,實(shí)際最終優(yōu)先級(jí) 值為固定優(yōu)先級(jí)值加上偏移量。偏移量定義為管理員原子操作優(yōu)先級(jí)與基本值之差,因?yàn)?管理員策略的優(yōu)先級(jí)取值范圍是[128, 255],所以基本值固定為128。這樣產(chǎn)生的問(wèn)題是, 租戶策略固定優(yōu)先級(jí)值加上偏移量后,值可能大于128,超出了(0, 127]這一取值范圍。解 決方法是,將租戶策略固定優(yōu)先級(jí)和管理員策略優(yōu)先級(jí)同時(shí)再限定在一個(gè)更小范圍,例如 固定優(yōu)先級(jí)取值(〇, 32],原子策略優(yōu)先級(jí)取值[128, 223],這樣就可以保證租戶固定策略 優(yōu)先級(jí)加上偏移量后不大于128。將這一限定值命名為limit,則策略優(yōu)先級(jí)定義表如下所 示:
[0041]
【權(quán)利要求】
1. 一種面向云數(shù)據(jù)中心的多租戶策略驅(qū)動(dòng)型軟件定義網(wǎng)絡(luò)方法,其特征在于具體步驟 為: 第一步:租戶策略自定義 自定義租戶策略,使SDN控制器和云管理器不從不同的數(shù)據(jù)庫(kù)中讀取租戶相關(guān)的管理 數(shù)據(jù),只通過(guò)統(tǒng)一的接口解析租戶的策略;通過(guò)租戶自定義策略,自然地滿足租戶自定義、 個(gè)性化策略的需求,并且將虛擬機(jī)放置策略、存儲(chǔ)策略、網(wǎng)絡(luò)策略整合到同一個(gè)策略文件中 進(jìn)行定義,以方便租戶的統(tǒng)一管理; 在自定義策略時(shí)通過(guò)"繼承",對(duì)原有Amazon的AWS聲明進(jìn)行擴(kuò)展,發(fā)展出 SIStatement ;其中,新定義的SIStatement對(duì)于原有聲明是一種繼承關(guān)系,其中的子項(xiàng) "Condition"和"Effect"沿用與原有聲明相同的定義;擴(kuò)展的子項(xiàng)為"SIPrincipal "、 "SIAction"、"SIResource" 三項(xiàng),分別定義如下: SIPrincipal:對(duì)于原有Principal的擴(kuò)展,其基本形式為: "SIPricipal" : { "SDN" :,,TenantUserXXX,,}, 其中的"SDN"關(guān)鍵字表明這項(xiàng)聲明是一項(xiàng)與SDN有關(guān)的操作,以示與原有聲明中存儲(chǔ) 等相關(guān)操作的區(qū)分,其后的租戶賬戶名可沿用原有賬戶定義,以實(shí)現(xiàn)與原有策略的統(tǒng)一; SIAction:對(duì)于原有可操作類型的擴(kuò)展,代表與網(wǎng)絡(luò)管理相關(guān)的可進(jìn)行的操作,在創(chuàng) 建虛擬網(wǎng)絡(luò)時(shí),定義為: "SIAction" : " CreateVirtualNetwork" ; 在創(chuàng)建虛擬防火墻訪問(wèn)控制列表ACL時(shí),定義為: "SIAction" : "CreateFireWallACL" ; SIResource :擴(kuò)展了原聲明中的"資源項(xiàng)",此處資源項(xiàng)的值與" SIAction"操作項(xiàng)的值 相關(guān),需要根據(jù)操作項(xiàng)進(jìn)行相應(yīng)的修改; 同時(shí),SIResource項(xiàng)包含多個(gè)分段,即包含同一租戶下的多個(gè)虛擬子網(wǎng)的定義; 通過(guò)在SIResource資源項(xiàng)中定義防火墻ACL規(guī)則,實(shí)現(xiàn)用戶自定義的訪問(wèn)控制策略; 同樣,在SIResource中定義的ACL規(guī)則項(xiàng)目也可以無(wú)限擴(kuò)展,租戶只需要添加更多的 ACL規(guī)則項(xiàng)即可; 通過(guò)以上方式進(jìn)行繼承和擴(kuò)展,構(gòu)成了與SDN相關(guān)的完整的策略定義; 第二步:限定用戶自定義策略的權(quán)限 當(dāng)策略被定義以后,需要限制用戶自定義策略的權(quán)限,并且保證管理員擁有對(duì)網(wǎng)絡(luò)的 最終管理權(quán); 對(duì)各租戶策略賦予不同的優(yōu)先級(jí),同時(shí)預(yù)設(shè)一些管理員策略,并保證管理員策略的優(yōu) 先級(jí)總是大于租戶策略優(yōu)先級(jí),以限制租戶策略的權(quán)限和使用范圍; 基于兩段式優(yōu)先級(jí)的定義與處理,并結(jié)合OpenFlow協(xié)議中優(yōu)先級(jí)的取值范圍,定義管 理員策略的優(yōu)先級(jí)取值為[128, 255],定義租戶策略的優(yōu)先級(jí)取值范圍為(0, 127]; 其中管理員策略側(cè)重于原子操作定義和默認(rèn)策略描述; 租戶策略的優(yōu)先級(jí)分為基本優(yōu)先級(jí)加偏移量?jī)刹糠郑? 當(dāng)租戶策略被解析時(shí),其策略文件被分解成為原子操作來(lái)執(zhí)行,實(shí)際最終優(yōu)先級(jí)值為 固定優(yōu)先級(jí)值加上偏移量;偏移量定義為管理員原子操作優(yōu)先級(jí)與基本值之差; 首先計(jì)算原子操作偏移量,再在處理租戶策略的過(guò)程中,先判斷其固定優(yōu)先級(jí),通過(guò)固 定優(yōu)先級(jí)加上偏移量,產(chǎn)生租戶策略中每一項(xiàng)原子操作的最終優(yōu)先級(jí),這一優(yōu)先級(jí)的值能 確保屬于(〇, 127],這個(gè)值必定比管理員所定義的策略的優(yōu)先級(jí)值?。? 第三步:策略沖突解決 當(dāng)租戶之間策略發(fā)生沖突時(shí),需要用管理員默認(rèn)策略進(jìn)行處理,處理租戶策略沖突的 算法如下: 當(dāng)檢測(cè)到策略沖突后,首先判斷這個(gè)沖突是否是被管理員預(yù)定義策略所解決的;當(dāng) 租戶所申請(qǐng)的保留帶寬超過(guò)物理鏈路帶寬時(shí),管理員可定義將所有租戶的實(shí)際帶寬按 申請(qǐng)帶寬的比例分配,這樣就解決了某一個(gè)沖突問(wèn)題;而當(dāng)有一些沖突沒(méi)有辦法被管理 員策略所解決時(shí),則直接應(yīng)用管理員所定義的全局默認(rèn)策略,即策略優(yōu)先級(jí)的值范圍在 (255-limit,255]之間的策略;最后,如果管理員也未定義相應(yīng)的最終管理策略,則賦予某 一項(xiàng)操作的優(yōu)先級(jí)為〇,在OpenFlow流表中優(yōu)先級(jí)為0表示流表中最后被匹配的項(xiàng),它能保 證整體策略對(duì)網(wǎng)絡(luò)的影響最低; 第四步:策略文件解析與執(zhí)行 設(shè)計(jì)一個(gè)策略模塊,該策略模塊包括策略文件讀取、策略文件解析、策略文件執(zhí)行3個(gè) 子模塊;策略文件被解析后,最終還是調(diào)用本地Java API在物理網(wǎng)絡(luò)上執(zhí)行相應(yīng)的操作; 策略模塊中維護(hù)著一個(gè)策略文件系統(tǒng),策略文件系統(tǒng)可以從云管理器中直接讀取策 略,也可以接受租戶直接向策略文件系統(tǒng)中寫入策略;策略模塊的工作流程是,由策略文件 維護(hù)系統(tǒng)維護(hù)整個(gè)策略文件系統(tǒng),同時(shí)有策略文件監(jiān)控模塊對(duì)策略文件的變化進(jìn)行監(jiān)控; 當(dāng)監(jiān)控到文件系統(tǒng)變化時(shí),即意味著有相關(guān)操作需要執(zhí)行,此時(shí),策略文件解析模塊讀取發(fā) 生變化的策略文件,對(duì)策略文件進(jìn)行解析,將解析后的相關(guān)參數(shù)傳到策略文件執(zhí)行模塊,由 策略文件執(zhí)行模塊進(jìn)行最終的執(zhí)行; (1) 系統(tǒng)總體處理流程 首先,由策略文件監(jiān)控系統(tǒng)循環(huán)監(jiān)控文件變化情況,當(dāng)策略文件未發(fā)生變化時(shí),繼續(xù)循 環(huán)監(jiān)控;當(dāng)策略文件發(fā)生變化時(shí),則通知策略文件解析與執(zhí)行模塊,并調(diào)用策略文件解析模 塊進(jìn)行解析與執(zhí)行;在策略文件解析模塊中,判斷操作類型,并執(zhí)行相應(yīng)的操作;策略解析 模塊的解析與執(zhí)行操作完成后,返回監(jiān)控流程,并進(jìn)行下一次的監(jiān)控循環(huán); (2) 策略文件解析與執(zhí)行 策略文件解析子模塊開(kāi)始工作時(shí),首先讀取發(fā)生變化的策略文件,再對(duì)其進(jìn)行初步解 析,將其中與SDN相關(guān)的操作提取出來(lái),交由后續(xù)流程進(jìn)行執(zhí)行,再將其它原有AWS系統(tǒng)的 操作交由原有的云管理器進(jìn)行執(zhí)行; 在策略解析子模塊提取出SDN操作后,再判斷相關(guān)的操作,操作類型可以是"創(chuàng)建虛擬 子網(wǎng)"或"創(chuàng)建虛擬防火墻ACL",也可以是其它新增的自定義的操作類型;對(duì)于每一種操 作,在線程池中開(kāi)啟一個(gè)新的線程來(lái)執(zhí)行;在線程池中,有一個(gè)任務(wù)統(tǒng)一執(zhí)行器對(duì)所有線程 進(jìn)行管理,任務(wù)統(tǒng)一執(zhí)行器中定義了一個(gè)統(tǒng)一的任務(wù)執(zhí)行接口,不管是"創(chuàng)建虛擬子網(wǎng)",還 是"創(chuàng)建虛擬防火墻ACL",均實(shí)現(xiàn)這個(gè)接口;每個(gè)操作子模塊通過(guò)實(shí)現(xiàn)任務(wù)統(tǒng)一執(zhí)行器的 執(zhí)行接口來(lái)實(shí)現(xiàn)系統(tǒng)的良好擴(kuò)展性; 最后,各實(shí)際任務(wù)執(zhí)行器再調(diào)用本地Java API,實(shí)現(xiàn)相關(guān)任務(wù)的最終執(zhí)行。
【文檔編號(hào)】H04L29/08GK104092565SQ201410286442
【公開(kāi)日】2014年10月8日 申請(qǐng)日期:2014年6月24日 優(yōu)先權(quán)日:2014年6月24日
【發(fā)明者】呂智慧, 陳實(shí), 吳杰 申請(qǐng)人:復(fù)旦大學(xué)