本發(fā)明屬于無線網(wǎng)絡(luò)管理領(lǐng)域,涉及SDN的網(wǎng)絡(luò)管理,具體涉及一種基于SDN控制器的集中式WLAN系統(tǒng)的網(wǎng)絡(luò)管理與用戶認(rèn)證方式。
背景技術(shù):
無線局域網(wǎng)技術(shù)由于其廉價(jià)高效的特性越來越得到廣泛的應(yīng)用,目前基于802.11協(xié)議的無線接入點(diǎn)(Access Point,AP)已經(jīng)成為現(xiàn)階段無線通信網(wǎng)絡(luò)不可或缺的重要組成部分。無線網(wǎng)絡(luò)流量的迅猛增加和用戶需求的提升使得大量企業(yè)與場所開始布置自己的無線局域網(wǎng),而一個(gè)無線接入節(jié)點(diǎn)的布網(wǎng)方式早已不能滿足中大型場景的需要,基于802.11協(xié)議族的WLAN組網(wǎng)方式由于其方便部署、高性價(jià)比的特點(diǎn),是現(xiàn)在各個(gè)客戶的首選方案。目前大多數(shù)使用的WLAN架構(gòu)是基于分布式的自主管理架構(gòu),即胖AP架構(gòu)。AP直接控制WLAN用戶的接入和認(rèn)證過程,可以完成用戶數(shù)據(jù)加密、用戶認(rèn)證、QOS等功能。由于每個(gè)AP都是一個(gè)單獨(dú)的節(jié)點(diǎn),獨(dú)立于配置、其信道和功率,安裝十分簡便。然而,由于頻段受限與MAC競爭機(jī)制的限制,以及無線接入點(diǎn)的快速增長;分布式的無線接入點(diǎn)之間干擾嚴(yán)重,難以管理。因此許多企業(yè)級WLAN系統(tǒng)引入了基于接入控制(Access Control,AC)的瘦AP架構(gòu),所有無線接入功能由AP和AC共同完成,AC實(shí)現(xiàn)網(wǎng)絡(luò)的QoS,移動性管理,資源分配,負(fù)載均衡等高級網(wǎng)絡(luò)功能;AP則將工作重點(diǎn)放在無線功能上。AC與AP之間則通過國際標(biāo)準(zhǔn)的CAPWAP和LWAPP協(xié)議通信。這種集中管理的瘦AP結(jié)構(gòu)能夠提供統(tǒng)一的認(rèn)證與安全設(shè)置,高效的網(wǎng)絡(luò)管理以及區(qū)域內(nèi)用戶的切換與漫游服務(wù),適用于較大型場景的應(yīng)用。然而,這些瘦AP的解決方案通常是閉源的、專有的、昂貴的,且主要依靠硬件實(shí)現(xiàn)的,因而限制了整個(gè)網(wǎng)絡(luò)的靈活性和擴(kuò)展型。
其中基于Floodlight控制器的企業(yè)級SDN-WLAN系統(tǒng)成為改變現(xiàn)狀的一種有效解決方案。軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN),是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),是網(wǎng)絡(luò)虛擬化的一種實(shí)現(xiàn)方式,其核心技術(shù)OpenFlow通過將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能??偟膩碚f,SDN網(wǎng)絡(luò)分成三層,即數(shù)據(jù)層,控制層和應(yīng)用層。數(shù)據(jù)層的網(wǎng)絡(luò)設(shè)備只負(fù)責(zé)單純的數(shù)據(jù)轉(zhuǎn)發(fā),可以采用通用的硬件,專注于提升數(shù)據(jù)轉(zhuǎn)發(fā)能力;而原來負(fù)責(zé)控制的操作系統(tǒng)將提煉為獨(dú)立的網(wǎng)絡(luò)操作系統(tǒng),劃分為控制層,負(fù)責(zé)對不同業(yè)務(wù)特性進(jìn)行適配,而且網(wǎng)絡(luò)操作系統(tǒng)和業(yè)務(wù)特性以及硬件設(shè)備之間的通信都可以通過編程實(shí)現(xiàn)。Floodlight就是基于JAVA開發(fā)的模塊化OpenFlow控制器,可以選擇Floodlight啟動時(shí)候所加載的模塊,也可以加入你自己定義的功能的模塊。而最上面的應(yīng)用層,可以收集利用控制層獲取的底層資源與信息,做出全局化,高層次的控制管理與網(wǎng)絡(luò)優(yōu)化,實(shí)現(xiàn)以需求為主導(dǎo)的網(wǎng)絡(luò)應(yīng)用。這種基于通用硬件和可編程軟件的組網(wǎng)方式讓網(wǎng)絡(luò)具有更好的拓展性,造價(jià)更加低廉,升級更加方便,管理更加靈活。
在基于軟件定義網(wǎng)絡(luò)的WLAN中,AP只是作為實(shí)現(xiàn)無線接收和數(shù)據(jù)轉(zhuǎn)發(fā)的單元,不具備網(wǎng)絡(luò)智能,上層的功能需要控制器來實(shí)現(xiàn),包括用戶接入、安全認(rèn)證、轉(zhuǎn)發(fā)路徑、移動性管理、功率控制等。并且控制器只是提供類似于操作系統(tǒng)一樣的資源抽象化流程,具體更高級的無線網(wǎng)絡(luò)管理由應(yīng)用層編寫的軟件程序代碼實(shí)現(xiàn)。本發(fā)明將基于Floodlight控制器,實(shí)現(xiàn)網(wǎng)絡(luò)的管理與用戶的認(rèn)證接入。在參考文獻(xiàn)[1][2][3]中,已經(jīng)提出了基于SDN的WLAN具體組網(wǎng)方案。整個(gè)WLAN網(wǎng)絡(luò)都處于控制器的統(tǒng)一管理之中,網(wǎng)絡(luò)管理者可以根據(jù)自身的需求動態(tài)改變管理方案,以適應(yīng)網(wǎng)絡(luò)狀態(tài)的變化。由于大規(guī)模WLAN系統(tǒng)對于接入管理有著更為嚴(yán)格的要求,統(tǒng)一管理下的網(wǎng)絡(luò)平臺能夠方便的提供更加多樣化的網(wǎng)絡(luò)管理服務(wù)和多層次的權(quán)限管理。因此大大降低網(wǎng)絡(luò)受到配置錯(cuò)誤和錯(cuò)誤操作帶來的損失。這些方案的重點(diǎn)在于實(shí)現(xiàn)SDN網(wǎng)絡(luò)的在無線體系中的實(shí)現(xiàn),以達(dá)成控制的集中化,接入側(cè)的簡化,并沒有實(shí)際的實(shí)現(xiàn)管理無線網(wǎng)絡(luò)平臺的系統(tǒng)。同時(shí),在簡化接入側(cè)的同時(shí)忽略了許多AP本身可用的管理功能,大大浪費(fèi)了AP的固有管理能力。SDN思想應(yīng)對的是傳統(tǒng)的變化較少的有線網(wǎng)絡(luò),而在無線網(wǎng)絡(luò)中用戶的進(jìn)入和離開都是隨機(jī)且頻繁的。雖然SDN網(wǎng)絡(luò)可以使用負(fù)載均衡,流量管理技術(shù)很好的應(yīng)對網(wǎng)絡(luò)中流量的波動,但是對于網(wǎng)絡(luò)用戶本身的變化,它的管理近乎失敗。在參考文獻(xiàn)[1][2]中,控制器甚至需要重新啟動,來讀取用戶列表的變化,每次控制器的重新啟動都要花費(fèi)數(shù)秒,無論是無線網(wǎng)絡(luò)的QoS,還是用戶體驗(yàn),都是無法接受的。此外,目前的SDN控制器都是以實(shí)時(shí)獲取數(shù)據(jù)為主,往往數(shù)據(jù)信息的請求都會帶來急劇增大的控制器開銷,此時(shí)網(wǎng)絡(luò)的性能會有明顯的下降,具體體現(xiàn)在網(wǎng)絡(luò)響應(yīng)時(shí)間的增加,傳輸抖動加劇,服務(wù)器CPU與內(nèi)存使用率波動等方面。因此導(dǎo)致的網(wǎng)絡(luò)穩(wěn)定性問題也亟待解決。
參考文獻(xiàn)如下:
[1]Vestin J,Dely P,Kassler A,et al.CloudMAC:towards software defined WLANs[J].Acm Sigmobile Mobile Computing&Communications Review,2013,16(4):42-45.
[2]Suresh L,Schulz-Zander J,Merz R,et al.Towards programmable enterprise WLANS with Odin[C]//Proceedings of the first workshop on Hot topics in software defined networks.ACM,2012:115-120.
[3]Lei T,Lu Z,Wen X,et al.SWAN:An SDN based campus WLAN framework[C]//Wireless Communications,Vehicular Technology,Information Theory and Aerospace&Electronic Systems(VITAE),2014 4th International Conference on.IEEE,2014:1-5.
技術(shù)實(shí)現(xiàn)要素:
針對基于SDN的無線網(wǎng)絡(luò)缺乏有效管理措施的現(xiàn)狀,本發(fā)明提出了一種基于Floodlight的SDN無線網(wǎng)絡(luò)管理平臺及認(rèn)證方法,更改了SDN控制器在無線側(cè)的管理架構(gòu),采用REST API接口,將floodlight的控制功能加以改進(jìn),把REST API擴(kuò)展到AP端;通過數(shù)據(jù)庫技術(shù)存儲統(tǒng)計(jì)控制器的數(shù)據(jù),降低控制器的負(fù)載并對數(shù)據(jù)做出分析預(yù)測;同時(shí)增加了用戶管理的線程,使得可以進(jìn)行實(shí)施的用戶管理與認(rèn)證。
本發(fā)明提供了一種基于Floodlight的SDN無線網(wǎng)絡(luò)管理平臺,在Apache服務(wù)器上實(shí)現(xiàn),所應(yīng)用網(wǎng)絡(luò)中的SDN控制器為Floodlight。SDN控制器的編程接口包括JAVA接口和REST API接口。所述的管理平臺包括系統(tǒng)管理模塊、拓?fù)涔芾砟K、配置管理模塊、用戶管理模塊、AP管理模塊和數(shù)據(jù)統(tǒng)計(jì)模塊。
所述的系統(tǒng)管理模塊獲取Apache服務(wù)器和Floodlight控制器本身的信息。
所述的拓?fù)涔芾砟K利用交換機(jī)的連接關(guān)系和用戶的附著關(guān)系,繪制網(wǎng)絡(luò)邏輯拓?fù)鋱D,根據(jù)布置的AP位置,繪制網(wǎng)絡(luò)的物理拓?fù)鋱D。
所述的配置管理模塊包括兩個(gè)方面的配置管理,一是SDN的配置管理,包括REST API操作控制器的配置和JAVA接口的應(yīng)用配置;二是AP的配置管理,利用OpenWRT提供的URI(統(tǒng)一資源標(biāo)識符)模擬REST流程,以統(tǒng)一的方式管理AP。
所述的用戶管理模塊在控制器中增加用于周期性地監(jiān)視用戶信息變化的線程。用戶信息通過管理平臺的WEB UI(用戶界面)配置,用戶信息變化通過數(shù)據(jù)庫的觸發(fā)器實(shí)現(xiàn)。用戶信息存儲在分布式數(shù)據(jù)庫中,當(dāng)網(wǎng)絡(luò)中某一SDN控制器的數(shù)據(jù)庫發(fā)生改變時(shí),觸發(fā)網(wǎng)絡(luò)中SDN控制器的數(shù)據(jù)庫的同步操作,保持整個(gè)網(wǎng)絡(luò)中用戶信息的一致。
所述的AP管理模塊用于管理無線交換機(jī)數(shù)據(jù),實(shí)現(xiàn)兩方面功能,一是作為無線AP,將所有AP的操作指令存儲到管理平臺上,管理平臺通過統(tǒng)一的遠(yuǎn)程操作調(diào)用AP的無線管理功能。二是作為網(wǎng)絡(luò)中的數(shù)據(jù)面交換機(jī),利用floodlight的交換機(jī)控制能力,實(shí)現(xiàn)流表配置與防火墻設(shè)置,實(shí)現(xiàn)通用的OpenFlow交換機(jī)功能。
所述的數(shù)據(jù)統(tǒng)計(jì)模塊周期性地獲取用戶數(shù)量、交換機(jī)負(fù)載和用戶使用情況數(shù)據(jù),并進(jìn)行分別存儲,更新統(tǒng)計(jì)數(shù)據(jù),存儲的數(shù)據(jù)可以放在每一個(gè)控制器上,也可以集中放在數(shù)據(jù)中心里。數(shù)據(jù)統(tǒng)計(jì)模塊通過建立的數(shù)據(jù)分析模型,根據(jù)獲得的數(shù)據(jù)預(yù)測網(wǎng)絡(luò)的狀態(tài),反饋下一時(shí)段中的網(wǎng)絡(luò)參數(shù)給配置管理模塊。
本發(fā)明還提出了一種基于所述管理平臺的用戶認(rèn)證方法。該方法包括:
步驟1,管理員通過WEB UI在網(wǎng)絡(luò)中某一個(gè)SDN控制器上添加/修改用戶信息,WEB UI通過PHP接口連接到數(shù)據(jù)庫;
步驟2,數(shù)據(jù)庫檢驗(yàn)管理員添加/修改的用戶信息的合理性,駁回非法修改,更新合理的修改請求;
步驟3,分布式數(shù)據(jù)庫之間彼此同步添加/修改的用戶信息,保持整個(gè)網(wǎng)絡(luò)的用戶信息的一致,在同步未完成時(shí),到來的該用戶認(rèn)證請求作為認(rèn)證失敗處理;
步驟4,AP接收到用戶認(rèn)證請求,上傳給Floodlight控制器,控制器將用戶的認(rèn)證數(shù)據(jù)包轉(zhuǎn)化成認(rèn)證事件,激活用戶管理線程;
步驟5,控制器根據(jù)認(rèn)證用戶的MAC地址或其他統(tǒng)一標(biāo)識符,在數(shù)據(jù)庫中查詢用戶信息是否存在,對于沒有用戶信息的用戶不予接入網(wǎng)絡(luò);存在用戶信息,但是用戶屬性或者用戶權(quán)限異常,則將繼續(xù)聯(lián)結(jié)操作,接入后給予訪問權(quán)限受控,并提示異常信息;存在用戶信息,并且用戶屬性與用戶權(quán)限都正常,繼續(xù)聯(lián)結(jié)與認(rèn)證操作,完成MAC層的接入,并給AP下發(fā)對應(yīng)的流表;
步驟6,在用戶狀態(tài)發(fā)生改變之后,由控制器修改對應(yīng)數(shù)據(jù)庫中的用戶信息,同時(shí)用戶管理模塊獲取該用戶信息;
步驟7,分布式數(shù)據(jù)庫之間彼此同步用戶信息,保持整個(gè)網(wǎng)絡(luò)的用戶信息一致,以使得用戶在不同AP/控制器間切換時(shí)不會重復(fù)認(rèn)證和斷開連接,完成用戶認(rèn)證流程。
相對于現(xiàn)有技術(shù),本發(fā)明的優(yōu)點(diǎn)和積極效果在于:
(1)增加SDN網(wǎng)絡(luò)中無線管理功能。SDN的核心功能在于路由轉(zhuǎn)發(fā)與流控制,對于無線側(cè)的管理功能近乎沒有。本發(fā)明因此在控制平臺中集成了AP固有的無線管理功能指令,將AP的管理分成SDN交換機(jī)管理和無線AP管理,分別以O(shè)F config協(xié)議和帶外信令的方式管理AP;同時(shí)修改了SDN控制器的結(jié)構(gòu),增加了處理無線用戶的線程和數(shù)據(jù)庫操作線程,將用戶數(shù)據(jù)從文件管理轉(zhuǎn)變?yōu)閿?shù)據(jù)庫管理,實(shí)時(shí)處理頻繁的用戶變化,更加適應(yīng)無線網(wǎng)絡(luò)的管理需求,如無縫切換。
(2)增加了SDN控制器數(shù)據(jù)存儲與反饋能力。為了避免網(wǎng)絡(luò)性能的波動,較大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)操作可以在網(wǎng)絡(luò)負(fù)載較輕時(shí)進(jìn)行,管理員可以先請求最近的歷史數(shù)據(jù),以免在重負(fù)載下,繼續(xù)增加控制器負(fù)擔(dān)。通常,SDN控制器只是根據(jù)當(dāng)前的網(wǎng)絡(luò)狀態(tài)實(shí)現(xiàn)網(wǎng)絡(luò)的管理,在本管理平臺中,網(wǎng)絡(luò)管理應(yīng)用程序?qū)⑼ㄟ^結(jié)合分析歷史數(shù)據(jù)和當(dāng)前網(wǎng)絡(luò)情況,反饋給配置管理模塊,做出更加合理的網(wǎng)絡(luò)應(yīng)用參數(shù)預(yù)測。
(3)實(shí)現(xiàn)網(wǎng)絡(luò)用戶認(rèn)證的統(tǒng)一。本發(fā)明采用的Floodlight配合分布式數(shù)據(jù)庫系統(tǒng)模式,彌補(bǔ)了當(dāng)前大多數(shù)SDN控制器缺乏東西向接口的不足??刂破鞯耐卣剐砸恢笔荢DN網(wǎng)絡(luò)的軟肋,由于用戶認(rèn)證中使用的是用戶數(shù)據(jù),因此多個(gè)控制器之間可以通過數(shù)據(jù)同步來實(shí)現(xiàn)統(tǒng)一的用戶認(rèn)證;這種變化并不需要對控制器做出更改,用戶在某一控制器下的狀態(tài)變化對于其他控制器是透明的,用戶在移動過程中,用戶認(rèn)證操作不需要重新進(jìn)行。
附圖說明
圖1是本發(fā)明的基于Floodlight的WLAN管理與認(rèn)證平臺的架構(gòu)圖;
圖2是本發(fā)明的管理平臺各模塊協(xié)作與反饋關(guān)系圖;
圖3是本發(fā)明的用戶統(tǒng)一接入認(rèn)證的流程圖。
具體實(shí)施方式
下面將結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。
本發(fā)明提出了一種基于Floodlight的SDN無線網(wǎng)絡(luò)管理平臺及認(rèn)證方法,其實(shí)現(xiàn)基于改進(jìn)的模塊化OpenFlow控制器Floodlight、分布式數(shù)據(jù)庫系統(tǒng)、上層管理應(yīng)用以及基于WEB的可視化用戶界面。其中,以改進(jìn)的Floodlight控制器為核心,向下連接物理網(wǎng)絡(luò),完成基于SDN的WLAN系統(tǒng)搭建,在SDN控制器上實(shí)現(xiàn)各種管理應(yīng)用。管理平臺實(shí)現(xiàn)在Apache服務(wù)器上,通過控制器和編程抽象網(wǎng)絡(luò)參數(shù)、AP參數(shù)、用戶參數(shù)、管理參數(shù),提供給管理者以方便快捷的管理能力;并通過分布式數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)無線用戶認(rèn)證與權(quán)限管理,彌補(bǔ)了一般的SDN控制器缺乏WLAN管理能力的缺點(diǎn),提升了網(wǎng)絡(luò)的整體性能與可控性。
圖1為本發(fā)明的基于Floodlight的WLAN管理與認(rèn)證平臺的架構(gòu)圖。根據(jù)本發(fā)明提出的管理與認(rèn)證架構(gòu),其基本原理是通過數(shù)據(jù)接口實(shí)現(xiàn)網(wǎng)絡(luò)信息的收集和網(wǎng)絡(luò)參數(shù)的配置,提供對于無線SDN網(wǎng)絡(luò)的管理能力。本發(fā)明提供的一個(gè)具體實(shí)施例如下。
網(wǎng)絡(luò)管理平臺的運(yùn)行環(huán)境為ThinkServer RD640S2620v2 4/300A2HROD;
主要參數(shù)有:
CPU型號:Xeon E5-2620v2; 標(biāo)配CPU數(shù)量:1顆;
內(nèi)存類型:DDR3; 內(nèi)存容量:4GB;
硬盤接口類型:SAS; 標(biāo)配硬盤容量:300GB;
運(yùn)行操作系統(tǒng):Ubuntu 14.04操作系統(tǒng);
SDN控制器為Floodlight V1.0(無線功能為后添加);
WEB環(huán)境:Apache 2.0+PHP 5.5+MySQL 5.5.44
AP環(huán)境:OpenWRT 12.09+OVS 2.3
網(wǎng)絡(luò)部署的方式可參考文獻(xiàn)[2][3],這里主要介紹管理平臺的架構(gòu)與流程。Floodlight控制器是整個(gè)OpenFlow網(wǎng)絡(luò)體系架構(gòu)的控制中心,對整個(gè)OpenFlow網(wǎng)絡(luò)具有全局的視野??刂破髫?fù)責(zé)為數(shù)據(jù)流制定邏輯規(guī)則,并通過下發(fā)流表的方式實(shí)現(xiàn)數(shù)據(jù)流在指定路徑上的傳輸。管理平臺與WLAN網(wǎng)絡(luò)控制器的交互主要是通過表述性狀態(tài)傳遞接口(Representational State Transfer Application Programming Interface,REST API)實(shí)現(xiàn),REST利用簡單的HTTP、URI標(biāo)準(zhǔn)和XML語言構(gòu)建起輕量級的Web服務(wù),REST的框架下,控制層所有能夠提供的信息都被抽象成REST的資源,每一個(gè)資源都被分配一個(gè)唯一的統(tǒng)一資源標(biāo)識符(Uniform Resource Identifier,URI)。Floodlight提供了REST SERVER模塊,將可供操作的模塊將REST API接口暴露給用戶,開發(fā)者通過對基于URI的操作,實(shí)現(xiàn)與網(wǎng)絡(luò)的互操作,其操作方式可以參考文獻(xiàn)[4]:路兆銘,王魯晗,溫向明,軟件定義的無線接入網(wǎng)絡(luò)架構(gòu)與關(guān)鍵技術(shù),北京郵電大學(xué)出版社,2015:170-174。
管理平臺中的系統(tǒng)管理模塊、拓?fù)涔芾砟K、配置管理模塊、AP管理模塊、數(shù)據(jù)統(tǒng)計(jì)模塊的大多數(shù)信息都是通過SDN控制器的編程接口來獲取。SDN控制器的編程接口包括JAVA接口和REST API接口。REST API通過在服務(wù)器中注冊服務(wù),獲取SDN控制器的網(wǎng)絡(luò)信息。管理平臺需要對Floodlight控制器提供的數(shù)據(jù)進(jìn)行篩選,剔除無法利用的網(wǎng)絡(luò)信息,甄別出管理人員可用的網(wǎng)絡(luò)信息,并以格式化的模式輸出,形成用戶友好的WEB UI。JAVA接口則直接與應(yīng)用層/控制層相關(guān)聯(lián),獲取網(wǎng)絡(luò)數(shù)據(jù)。
系統(tǒng)管理模塊獲取的是服務(wù)器和Floodlight控制器本身的信息,包括目前服務(wù)器的CPU,內(nèi)存,IO使用狀況,控制器的總體狀態(tài),工作模式,開啟時(shí)長,控制器的模塊信息,網(wǎng)絡(luò)部件概述,連接交換機(jī)概述,流統(tǒng)計(jì)概述防火墻配置。服務(wù)器信息由Linux的shell指令獲取,控制器信息則由REST API獲取。
拓?fù)涔芾砟K通過REST API收集OpenFlow交換機(jī)的連接關(guān)系和用戶的附著關(guān)系,繪制網(wǎng)絡(luò)邏輯拓?fù)鋱D,拓?fù)鋽?shù)據(jù)通過數(shù)據(jù)統(tǒng)計(jì)信息或者實(shí)時(shí)查詢獲取。拓?fù)涔芾砟K還根據(jù)所布置的AP位置信息,繪制網(wǎng)絡(luò)的物理拓?fù)鋱D,可作為用戶定位的大致參考。
配置管理模塊分為兩個(gè)方面的配置管理,一是SDN的配置管理,包括REST API操作控制器的配置和JAVA接口的應(yīng)用配置。根據(jù)Floodlight的開發(fā)者文檔,本發(fā)明采取了部分與WLAN網(wǎng)絡(luò)相關(guān)的REST API配置接口,例如設(shè)備管理,交換機(jī)信息獲取,流表配置等,JAVA接口主要給管理員編寫的應(yīng)用層管理應(yīng)用提供代碼參數(shù)輸入。二是AP的配置管理,本發(fā)明將REST API從控制器端擴(kuò)展到AP端,利用OpenWRT提供的URI模擬REST流程,以統(tǒng)一的方式管理AP。從上層用戶來看,并不需要區(qū)分REST API是來自Floodlight,還是AP。
圖1右側(cè)的數(shù)據(jù)統(tǒng)計(jì)模塊的收集功能是獨(dú)立于Floodlight控制器的,基于Linux的crontab命令實(shí)現(xiàn),crond是Linux下用來周期性地執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程,crond進(jìn)程每分鐘會定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動執(zhí)行該任務(wù)。同時(shí),管理平臺根據(jù)網(wǎng)絡(luò)負(fù)載情況決定是否真正執(zhí)行數(shù)據(jù)采集。在WLAN網(wǎng)絡(luò)規(guī)模較大時(shí),一個(gè)控制器下可能會有十幾個(gè)甚至幾十個(gè)AP節(jié)點(diǎn),獲取全網(wǎng)信息會成為消耗大量CPU資源和內(nèi)存資源的操作,例如獲取拓?fù)湫畔?,全網(wǎng)交換機(jī)信息等。當(dāng)控制器負(fù)載已經(jīng)很大時(shí),典型值:CPU利用率大于70%,內(nèi)存使用率大于65%,此時(shí)數(shù)據(jù)統(tǒng)計(jì)模塊的收集功能將會被抑制,如果管理員請求較大規(guī)模數(shù)據(jù)也會優(yōu)先使用既存的數(shù)據(jù),因?yàn)橐坏┓?wù)器資源使用過高,一些WLAN網(wǎng)絡(luò)突發(fā)操作致使網(wǎng)絡(luò)性能迅速下降,響應(yīng)時(shí)間過長。因此數(shù)據(jù)統(tǒng)計(jì)作為低優(yōu)先級線程,可以被推遲操作。數(shù)據(jù)將會被存放在數(shù)據(jù)倉庫中,在此基礎(chǔ)上可以建立數(shù)據(jù)分析模型,例如態(tài)勢感知模型、數(shù)據(jù)挖掘模型,預(yù)測網(wǎng)絡(luò)的狀態(tài),并通過判決算法,控制配置管理模塊決定下一段時(shí)段網(wǎng)絡(luò)的參數(shù)。
針對Floodlight缺乏管理用戶的缺點(diǎn),本發(fā)明對Floodlight的架構(gòu)進(jìn)行改進(jìn),提供了用戶管理模塊,在控制器中添加了實(shí)時(shí)監(jiān)控用戶數(shù)據(jù)庫的線程,用于周期性地監(jiān)視用戶數(shù)據(jù)的變化。管理人員可以通過管理平臺的WEB UI修改用戶信息,用戶信息變化通過數(shù)據(jù)庫的觸發(fā)器實(shí)現(xiàn)。觸發(fā)器是一種特殊的存儲過程。一般的存儲過程是通過存儲過程名直接調(diào)用,而觸發(fā)器主要是通過事件(增、刪、改)進(jìn)行觸發(fā)而被執(zhí)行的,其在表中數(shù)據(jù)發(fā)生變化時(shí)自動強(qiáng)制執(zhí)行。因此,如圖1中當(dāng)用戶信息表有變動,觸發(fā)器會在用戶數(shù)據(jù)庫里新建一張用戶改動項(xiàng)的新表USER_CHANGE,F(xiàn)loodlight的用戶管理線程一旦發(fā)現(xiàn)USER_CHANGE這個(gè)表有新的數(shù)據(jù)就會更新控制器里的用戶信息;每次用戶線程查詢完USER_CHANGE表后,都會將其清空,表示更新操作已經(jīng)完成。
同時(shí),某一SDN控制器的數(shù)據(jù)庫的改變將會觸發(fā)網(wǎng)絡(luò)中所有相關(guān)聯(lián)數(shù)據(jù)庫的同步操作,需要將控制器之間的用戶數(shù)據(jù)庫做同步操作。目前MySQL數(shù)據(jù)庫支持兩個(gè)數(shù)據(jù)庫之間的互為主從關(guān)系。通常稱變動的數(shù)據(jù)庫為主數(shù)據(jù)庫(Master),采取同步的數(shù)據(jù)庫為從數(shù)據(jù)庫(Slave)。Slave上面的IO線程會連接上Master,并請求從指定日志文件的指定位置之后的日志內(nèi)容;然后Master接收到來自Slave的IO線程的請求后,通過負(fù)責(zé)復(fù)制的IO線程根據(jù)請求信息讀取指定日志指定位置之后的日志信息。之后,Slave的IO線程接收到信息后,將接收到的日志內(nèi)容依次寫入到Slave端的中繼日志Relay Log文件的最末端,Slave的SQL線程檢測到Relay Log中新增加了內(nèi)容后,便會做出與Master一致的操作實(shí)現(xiàn)數(shù)據(jù)庫的同步。這樣就保證了整個(gè)WLAN網(wǎng)絡(luò)中用戶信息的一致性。
參照圖1,管理平臺不僅僅直接管理著Floodlight控制器,還在邏輯上直接與AP相連。這主要是為了完善管理平臺的無線管理功能,SDN網(wǎng)絡(luò)的核心在于簡化路由轉(zhuǎn)發(fā)網(wǎng)絡(luò),其本質(zhì)上是路由管理和流管理,因而Floodlight的無線側(cè)管理近乎沒有。但是,基于SDN的WLAN系統(tǒng)所用的AP通常是基于OpenWRT的,OpenWRT具有一定的無線管理功能以支持在胖AP模式下工作。因此本發(fā)明提供了AP管理模塊,合理利用既有的AP功能以增加WALN網(wǎng)絡(luò)的管理能力。AP管理模塊作為無線AP,側(cè)重于無線AP固有的管理功能,將所有AP的操作指令存儲到管理平臺上,管理平臺通過統(tǒng)一的遠(yuǎn)程操作,這種操作在SDN網(wǎng)絡(luò)體系之外,屬于帶外信令,調(diào)用AP特有的管理功能。AP管理模塊還作為SDN網(wǎng)絡(luò)中的數(shù)據(jù)面交換機(jī),側(cè)重于有線側(cè)的路由轉(zhuǎn)發(fā)管理和流管理,它利用floodlight的交換機(jī)控制能力,實(shí)現(xiàn)流表配置與防火墻設(shè)置,作為通用的OpenFlow交換機(jī)功能。AP管理模塊的這兩個(gè)功能在邏輯上是兩條線路。在WLAN中,AP的IP地址一般不會變化,因此本發(fā)明的管理平臺采用IP作為AP的標(biāo)識符,集成OpenWRT提供的LUCI模塊用戶接口,統(tǒng)一進(jìn)行AP管理。由于每一個(gè)AP都需要獨(dú)立的登錄,并且每一次登錄都會產(chǎn)生新的session,因此整個(gè)網(wǎng)絡(luò)在配置時(shí),網(wǎng)絡(luò)中每一個(gè)AP的管理密碼需要被所述管理平臺獲知;在登錄之后需要對登錄的session信息進(jìn)行截獲,在操作同一個(gè)AP時(shí),采用對應(yīng)的session id與之通信。與REST API類似的,AP的控制命令被封裝成URI+參數(shù)的形式,AP管理模塊采用GET方式,獲取AP的數(shù)據(jù),更改AP的配置參數(shù)。管理平臺將這些命令集成到模塊中,配合IP地址與截取的session id,拼接成完整的請求URI實(shí)現(xiàn)對不同AP的統(tǒng)一管理。AP的路由轉(zhuǎn)發(fā)則是由Floodlight控制器的轉(zhuǎn)發(fā)模塊負(fù)責(zé),轉(zhuǎn)發(fā)模塊根據(jù)OpenFlow協(xié)議自動下發(fā)流表,實(shí)現(xiàn)AP的OpenFLow交換機(jī)功能,AP的交換機(jī)層面管理通過Floodlight控制器提供的流表推入接口實(shí)現(xiàn)。
圖2是本發(fā)明提出的管理認(rèn)證平臺在運(yùn)行時(shí),各模塊之間的協(xié)作關(guān)系示意圖,管理平臺各模塊的協(xié)作關(guān)系主要分為三個(gè)部分:數(shù)據(jù)采集、分析決策和反饋執(zhí)行。參考圖2的層次結(jié)構(gòu),最下面的是數(shù)據(jù)采集層,這一層的功能是收集網(wǎng)絡(luò)數(shù)據(jù),為上次提供分析來源。其主要包括模塊有系統(tǒng)管理模塊、拓?fù)涔芾砟K、AP管理模塊和用戶管理模塊,分別對應(yīng)收集Floodlight控制器與服務(wù)器、網(wǎng)絡(luò)結(jié)構(gòu)描述、無線交換機(jī)數(shù)據(jù)、無線用戶信息四個(gè)方面。數(shù)據(jù)采集的方式有兩種,一是用戶實(shí)時(shí)請求,二是使用Linux內(nèi)核的crontab命令周期性獲取;采集的數(shù)據(jù)可以按照時(shí)間、用戶、占用資源三個(gè)維度劃分。數(shù)據(jù)請求完畢后,會存儲到數(shù)據(jù)統(tǒng)計(jì)模塊的數(shù)據(jù)倉庫中。
圖2所示的分析決策層是由數(shù)據(jù)統(tǒng)計(jì)模塊組成,它連接了數(shù)據(jù)采集層和反饋執(zhí)行層,起到承上啟下的作用,數(shù)據(jù)采集模塊利用統(tǒng)計(jì)出來的數(shù)據(jù)進(jìn)行數(shù)學(xué)建模分析,最后通過判決算法決定接下來WLAN網(wǎng)絡(luò)要如何調(diào)整參數(shù)。需要指出的是,統(tǒng)計(jì)的分析結(jié)果利用fusion chart工具繪制成圖表,可供管理人員直接閱讀。
圖2的頂層中主要是配置管理模塊,也包括AP管理模塊和用戶管理模塊、WLAN應(yīng)用。其中AP管理模塊和用戶管理模塊既屬于數(shù)據(jù)采集層,又屬于反饋執(zhí)行層,因?yàn)檫@兩個(gè)模塊不僅具有從網(wǎng)絡(luò)底層獲取信息的能力,還能夠更改這些信息。配置管理模塊通過分析決策層制定的網(wǎng)絡(luò)參數(shù),配置WLAN應(yīng)用,獲得更好的網(wǎng)絡(luò)性能。例如,當(dāng)某一個(gè)AP的負(fù)載較大時(shí),分析決策層就會調(diào)整負(fù)載均衡應(yīng)用的參數(shù),使負(fù)載較重的AP進(jìn)行范圍收縮,周邊的AP范圍擴(kuò)增,將部分用戶分流到其他的AP上,從而達(dá)到反饋的效果。再例如,當(dāng)整個(gè)網(wǎng)絡(luò)中的用戶十分稀少時(shí),分析決策層就會啟用節(jié)能應(yīng)用,查詢數(shù)據(jù)庫中每一個(gè)用戶的附著情況,使沒有用戶附著的AP節(jié)點(diǎn)休眠,以降低網(wǎng)絡(luò)的整體功耗。此外,配置管理模塊還可配置系統(tǒng)管理模塊和數(shù)據(jù)統(tǒng)計(jì)模塊,在服務(wù)器資源利用率不同時(shí)決定是否執(zhí)行數(shù)據(jù)采集操作。反饋執(zhí)行層還是管理員之間對網(wǎng)絡(luò)管理的空間,這一層的功能模塊需要向管理員提供友好的操作界面,并能夠識別出危險(xiǎn)操作,對管理員提出警告。
本發(fā)明提出的模塊化的管理平臺增強(qiáng)了管理的靈活性和可擴(kuò)展性,各模塊各司其職有相互協(xié)作,使網(wǎng)絡(luò)具有智能,提升了網(wǎng)絡(luò)的可管理性和穩(wěn)定性。分析決策層的引入,解決了人工判別網(wǎng)絡(luò)情況的復(fù)雜性,降低了判決錯(cuò)誤帶來的負(fù)面影響。
圖3為本發(fā)明提出的基于Floodlight的WLAN用戶認(rèn)證流程,下面說明各個(gè)步驟。
步驟301,管理員通過WEB UI在網(wǎng)絡(luò)中的某一臺控制器上添加/修改用戶信息。該步驟是用戶加入WLAN網(wǎng)絡(luò)的初始化步驟,需要管理員進(jìn)行操作,一般用戶不具有該步驟的權(quán)限。WLAN用戶的數(shù)據(jù)結(jié)構(gòu)包括用戶標(biāo)志、用戶屬性和用戶權(quán)限。WEB UI通過PHP(超文本預(yù)處理器)接口連接到數(shù)據(jù)庫。
步驟302,數(shù)據(jù)庫檢驗(yàn)管理員添加/修改的用戶信息是否合法,駁回非法修改,更新合理的修改請求。這一步驟是需要管理員操作的權(quán)限。
步驟303,分布式數(shù)據(jù)庫之間彼此同步添加/修改的用戶信息,保持整個(gè)網(wǎng)絡(luò)的用戶信息一致。在同步未完成時(shí),到來的該用戶認(rèn)證請求作為認(rèn)證失敗處理;未被修改的用戶不受同步過程的影響。拒絕未同步用戶的接入是考慮到用戶信息不一致會導(dǎo)致控制器出現(xiàn)異常,如果未同步用戶接入了網(wǎng)絡(luò),同時(shí)用戶又更改了自身的屬性,則在重新接入其他控制器下屬的AP時(shí),過去保存的用戶信息會全部丟失,例如計(jì)費(fèi)信息或充值信息等。
步驟304,AP接收到用戶認(rèn)證請求,上傳給Floodlight控制器,控制器將用戶的認(rèn)證數(shù)據(jù)包轉(zhuǎn)化成認(rèn)證事件,激活用戶管理線程。這個(gè)功能通過FloodlightProvider核心模塊完成,其負(fù)責(zé)將收到的OF Packet(OpenFlow數(shù)據(jù)包)轉(zhuǎn)換為一個(gè)個(gè)事件,而控制器的轉(zhuǎn)發(fā)模塊、鏈路學(xué)習(xí)模塊、設(shè)備管理模塊、統(tǒng)計(jì)模塊向FloodlightProvider進(jìn)行注冊,注冊后成為一個(gè)service,然后就可以處理相應(yīng)的事件。
步驟305,控制器根據(jù)認(rèn)證用戶的MAC地址或其他的統(tǒng)一標(biāo)識符,調(diào)用用戶數(shù)據(jù)庫中查詢用戶信息與用戶權(quán)限,根據(jù)用戶的不同屬性與權(quán)限做出不同的應(yīng)對方案。對于沒有用戶信息的用戶不予接入網(wǎng)絡(luò),對于有用戶信息,但是用戶接入權(quán)限異常的用戶將繼續(xù)聯(lián)結(jié)(association)操作,接入后給予訪問權(quán)限受控,并提示異常信息。
步驟305進(jìn)一步包括一下三個(gè)子步驟:
步驟305-1,當(dāng)用戶第一次接入WLAN網(wǎng)絡(luò)時(shí),OpenFlow交換機(jī)中沒有該用戶對應(yīng)的流表項(xiàng),OpenFLow交換機(jī)會將這個(gè)數(shù)據(jù)包作為packet-in消息上傳給Floodlight控制器。Floodlight控制器解析Packet-in數(shù)據(jù)包的內(nèi)容,提取用戶標(biāo)志,然后觸發(fā)用戶管理線程到用戶數(shù)據(jù)庫中查詢用戶標(biāo)識符對應(yīng)的用戶數(shù)據(jù),對比用戶屬性和用戶權(quán)限。
步驟305-2,如果用戶不存在,在直接結(jié)束認(rèn)證;如果用戶存在,但是用戶屬性或者用戶權(quán)限出現(xiàn)異常,整套認(rèn)證流程依然會繼續(xù),AP也允許用戶接下來的聯(lián)結(jié)操作。在完整接入后,控制器會根據(jù)用戶權(quán)限,限定用戶的訪問范圍;或是用戶屬性出現(xiàn)異常,控制器將會以WEB頁面的方式推送錯(cuò)誤信息。
步驟305-3,如果用戶屬性與權(quán)限都正常,控制器會告知AP繼續(xù)完成聯(lián)結(jié)操作,完成MAC層的接入,并給AP下發(fā)所需流表。此時(shí)如果AP直接連在匯聚交換機(jī)上,接下來的數(shù)據(jù)包都不需要Packet-in流程,直接被OpenFlow交換機(jī)轉(zhuǎn)發(fā);如果AP到匯聚路由器之間還有多條,同樣會觸發(fā)packet-in流程,但是Floodlight控制器會發(fā)現(xiàn)該用戶標(biāo)志為已接入狀態(tài),無需再次認(rèn)證。
步驟306,在用戶狀態(tài)發(fā)生改變之后,由控制器修改對應(yīng)于本控制器的數(shù)據(jù)庫中的用戶信息,同時(shí)管理平臺的用戶管理模塊將該用戶信息獲取。
步驟307,各控制器對應(yīng)的分布式數(shù)據(jù)庫之間彼此同步用戶信息,保持整個(gè)網(wǎng)絡(luò)的用戶一致,以保證用戶在不同AP/控制器間切換時(shí)不會重復(fù)認(rèn)證和斷開連接,完成用戶認(rèn)證流程。
本發(fā)明提出的用戶認(rèn)證方式是SDN認(rèn)證接入移動用戶的方式,避免了傳統(tǒng)SDN控制器讀取用戶配置文件的操作,使得用戶管理更加的靈活,同時(shí)提高了用戶體驗(yàn)。數(shù)據(jù)同步的引是整個(gè)網(wǎng)絡(luò)的用戶信息一致化,彌補(bǔ)了當(dāng)前大多數(shù)SDN控制器缺乏東西向接口的缺點(diǎn),防止因用戶移動性而導(dǎo)致數(shù)據(jù)沖突,為基于Floodlight的SDN-WLAN網(wǎng)絡(luò)實(shí)際管理提供了可行的解決方案。
以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。