趙開新,魏 勇
(1.河南工學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南 新鄉(xiāng) 453003;2.新鄉(xiāng)市智能工業(yè)大數(shù)據(jù)應(yīng)用工程技術(shù)研究中心,河南 新鄉(xiāng) 453003)
傳統(tǒng)網(wǎng)絡(luò)需求相對明確且穩(wěn)定,應(yīng)用與業(yè)務(wù)變化較小或可預(yù)期,在規(guī)劃設(shè)計(jì)時(shí),雖留有部分冗余,但擴(kuò)展性與業(yè)務(wù)彈性不好,后期調(diào)整和應(yīng)對新業(yè)務(wù)空間有限。設(shè)備部署和維護(hù)以人工為主,自動(dòng)為輔,并且網(wǎng)絡(luò)設(shè)備多樣性,廠家來源多樣性,導(dǎo)致管理和維護(hù)不靈活、不方便。
隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)技術(shù)的發(fā)展,多元、多變的網(wǎng)絡(luò)上層應(yīng)用與業(yè)務(wù)、相對穩(wěn)定的網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)以及系統(tǒng)運(yùn)維之間的矛盾日益突出。上層應(yīng)要求規(guī)模擴(kuò)展和服務(wù)能力靈活,能夠體現(xiàn)以客戶為中心,實(shí)現(xiàn)客戶的應(yīng)用服務(wù)和業(yè)務(wù)的自適應(yīng)性和動(dòng)態(tài)性。而底層傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)擴(kuò)展性差,不能適應(yīng)像微信、抖音等“殺手級(jí)”突發(fā)性的網(wǎng)絡(luò)應(yīng)用,新的軟件定義網(wǎng)絡(luò)技術(shù)(Soft Define Network,SDN)應(yīng)運(yùn)而生。SDN能夠彈性響應(yīng)上層應(yīng)用的網(wǎng)絡(luò)可編程,引入一個(gè)集中統(tǒng)一的控制與管理層,實(shí)現(xiàn)全局控制管理以及應(yīng)對上層業(yè)務(wù)的動(dòng)態(tài)響應(yīng)。
2006年斯坦福大學(xué)主導(dǎo),聯(lián)合NSF及多個(gè)工業(yè)界廠商共同啟動(dòng)Clean-Slate課題項(xiàng)目。該項(xiàng)目研究組提出了一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu)SDN,是網(wǎng)絡(luò)虛擬化的一種實(shí)現(xiàn)方式[1]。其核心是通過OpenFlow技術(shù),實(shí)現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)平面和控制平面的分離,并且實(shí)現(xiàn)網(wǎng)絡(luò)可編程,為網(wǎng)絡(luò)的智能管理、擴(kuò)展性和彈性變化帶來了方便。接著國外Cisco、Juniper、HPE、NEC、ARISTA、IBM等廠商先后發(fā)布了支持OpenFlow的SDN交換機(jī),國內(nèi)華為、中興、盛科等設(shè)備廠商也快速研發(fā)了SDN相關(guān)產(chǎn)品,移動(dòng)、聯(lián)通、電信等運(yùn)營商也相繼提出了SDN在互聯(lián)網(wǎng)上的解決方案。SDN網(wǎng)絡(luò)采用層次化結(jié)構(gòu),共劃分應(yīng)用層、控制層和基礎(chǔ)設(shè)施層3層,主要包括4個(gè)平面和2個(gè)接口,分別是應(yīng)用平面、控制平面、管理平面、數(shù)據(jù)平面、南向接口和北向接口,數(shù)據(jù)平面和控制平面通過南向接口通信,控制平面和應(yīng)用平面通過北向接口通信。
1.1.1 數(shù)據(jù)平面
數(shù)據(jù)平面主要執(zhí)行網(wǎng)絡(luò)控制邏輯,數(shù)據(jù)包的轉(zhuǎn)發(fā)主要通過查詢由控制平面所生成的FIB表來完成[2],SDN網(wǎng)絡(luò)在數(shù)據(jù)平面的主要變化為:在SDN數(shù)據(jù)平面包處理流程所有模塊中實(shí)現(xiàn)了可編程和協(xié)議無關(guān);把傳統(tǒng)網(wǎng)絡(luò)設(shè)備中的二層或三層轉(zhuǎn)發(fā)表抽象成流表,給用戶提供一種可通過軟件編程、任意定義網(wǎng)絡(luò)的特定流進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)的依據(jù)包括物理層的出入端口,數(shù)據(jù)鏈路層的源MAC地址、目的MAC地址、以太網(wǎng)類型、VLAN標(biāo)簽、VLAN優(yōu)先級(jí),網(wǎng)絡(luò)層的源IP地址、目的IP地址、IP協(xié)議類型,IP服務(wù)類型,傳輸層的TCP/UDP源端口號(hào)、TCP/UDP目的端口號(hào)等,可以實(shí)現(xiàn)更精細(xì)的轉(zhuǎn)發(fā),并且通過OpenFlow的計(jì)量表,還可以實(shí)現(xiàn)簡單的QoS功能。
1.1.2 控制平面
SDN控制平面由一個(gè)或多個(gè)SDN控制器組成,是網(wǎng)絡(luò)的控制中心,對底層網(wǎng)絡(luò)交換設(shè)備進(jìn)行集中管理,狀態(tài)監(jiān)測、轉(zhuǎn)發(fā)決策以及處理和調(diào)度數(shù)據(jù)平面的流量,并且向上層應(yīng)用開放多個(gè)層次的可編程能力??刂破矫嬗杀毕蚪涌诖?、SDN控制邏輯(Control Logic)和控制數(shù)據(jù)平面接口驅(qū)動(dòng)組成,目前開源SDN控制器有NOX、POX、FloodLight、RYU、OpenDayLight、ONOS等。
控制平面主要通過南向接口協(xié)議與數(shù)據(jù)平面進(jìn)行交互,利用上行通道對底層交換設(shè)備上報(bào)信息進(jìn)行統(tǒng)一監(jiān)控和統(tǒng)計(jì),實(shí)現(xiàn)鏈路發(fā)現(xiàn)和拓?fù)涔芾?利用下行通道對網(wǎng)絡(luò)設(shè)備實(shí)施統(tǒng)一控制,實(shí)現(xiàn)策略制定和流表項(xiàng)下發(fā)。并且通過北向接口為上層業(yè)務(wù)應(yīng)用以及資源管理系統(tǒng)提供靈活的網(wǎng)絡(luò)資源抽象。控制器定時(shí)發(fā)送帶LLDP(Link Layer Discovery Protocol)數(shù)據(jù)包的Packet_out消息,根據(jù)收到交換機(jī)發(fā)送的Packet_in消息來發(fā)現(xiàn)鏈路,獲得交換機(jī)狀態(tài)信息,實(shí)現(xiàn)網(wǎng)絡(luò)地址、VLAN、路由學(xué)習(xí),監(jiān)測交換機(jī)工作狀態(tài),完成網(wǎng)絡(luò)拓?fù)湟晥D更新。然后根據(jù)全局的網(wǎng)絡(luò)資源視圖和一定的定制策略生成流表,并下發(fā)流表到數(shù)據(jù)平面各網(wǎng)絡(luò)設(shè)備。具體交互過程如圖1所示。
控制器是SDN網(wǎng)絡(luò)的大腦,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,單一控制器成為網(wǎng)絡(luò)性能的瓶頸[3]。為了提高網(wǎng)絡(luò)的可靠性,多控制器技術(shù)被提出,但各控制器保持分布式網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)的一致性是亟須解決的關(guān)鍵問題,國內(nèi)外許多學(xué)者也提出了許多負(fù)載均衡網(wǎng)絡(luò)控制器的算法。
1.1.3 應(yīng)用平面
應(yīng)用平面包括SDN應(yīng)用邏輯與北向接口驅(qū)動(dòng),通過北向接口與SDN控制器交互,使用應(yīng)用邏輯提高應(yīng)用的交互能力,可以降低系統(tǒng)的開支和成本,實(shí)現(xiàn)網(wǎng)元的虛擬化和集中化控制;加快網(wǎng)絡(luò)的部署,遇到故障能快速發(fā)現(xiàn)與解決,是實(shí)現(xiàn)更高智能、自動(dòng)化運(yùn)作、應(yīng)用可感知的網(wǎng)絡(luò)。
1.1.4 管理平面
管理平面主要包括網(wǎng)元初始化配置,指定控制器、定義控制器及應(yīng)用的控制范圍,從傳統(tǒng)的通過命令行或圖形化界面對網(wǎng)絡(luò)設(shè)備配置和管理,過渡到通過編程語言來實(shí)現(xiàn)對網(wǎng)絡(luò)設(shè)備的管理和控制。
1.2.1 南向接口
南向接口是為控制平面的控制器和數(shù)據(jù)平面的交換機(jī)之間的信息交互而設(shè)計(jì),向上收集數(shù)據(jù)平面信息,向下下發(fā)控制策略,指導(dǎo)轉(zhuǎn)發(fā)行為,實(shí)現(xiàn)路徑計(jì)算和網(wǎng)絡(luò)的配置與管理,主要包括鏈路屬性、鏈路狀態(tài)、和拓?fù)湫畔⒌?主要負(fù)責(zé)轉(zhuǎn)發(fā)行為控制、設(shè)備性能查詢、統(tǒng)計(jì)報(bào)告、事件通知等。目前主流的南向接口協(xié)議有OpenFlow、OF-Config和NETCONF等。
其中,主流的南向接口協(xié)議OpenFlow主要架構(gòu)由3部分組成:流表、安全通道和OpenFlow協(xié)議。流表用來指導(dǎo)交換機(jī)進(jìn)行流的處理;OpenFlow交換機(jī)通過安全通道與遠(yuǎn)端控制器連接,負(fù)責(zé)控制器與交換機(jī)之間的交互;OpenFlow協(xié)議定義了一種南向接口標(biāo)準(zhǔn),為控制器與交換機(jī)之間的通信提供了一種開放標(biāo)準(zhǔn)的方式。
1.2.2 北向接口協(xié)議
北向接口是應(yīng)用平面與控制平面之間的接口,通過控制器向上層業(yè)務(wù)應(yīng)用開放的接口,為上層業(yè)務(wù)應(yīng)用和資源管理系統(tǒng)提供靈活的網(wǎng)絡(luò)資源抽象。北向接口協(xié)議需要滿足多樣性、合理性和開放性,目前未形成業(yè)界公認(rèn)標(biāo)準(zhǔn)。目前,對北向接口的研究組織包括ONF(Open Networking Foundation)北向接口工作組、IRTF (Internet Research Task Force)的SDN研究工作組和IETF (Internet Engineering Task Force)的SFC工作組。
由于SDN網(wǎng)絡(luò)的開源性和控制器的集中控制管理,SDN網(wǎng)絡(luò)會(huì)存在著控制器單點(diǎn)失效、DoS/DDoS(Denial of Service/Distributed Denial of Service)攻擊和信息泄露問題[4]。
控制器是SDN網(wǎng)絡(luò)的大腦,如果SDN控制器出現(xiàn)問題,整個(gè)網(wǎng)絡(luò)將會(huì)癱瘓??刂破鲉吸c(diǎn)失效的情況有兩種,一種是由于軟件故障或者Bug導(dǎo)致的節(jié)點(diǎn)失效,另一種是由于控制器被攻擊導(dǎo)致的單點(diǎn)失效。
針對控制器的單點(diǎn)失效問題,可以通過在網(wǎng)絡(luò)中部署多個(gè)控制器來實(shí)現(xiàn)。常用的方法有兩種,一種是設(shè)置多個(gè)備用控制器來實(shí)現(xiàn)可靠性;另外一種是建立控制器的集群,既可以避免單點(diǎn)失效,又可以實(shí)現(xiàn)負(fù)載分擔(dān),提高SDN網(wǎng)絡(luò)的健壯性。目前現(xiàn)有的OpenDaylight、ONOS控制器均支持集群技術(shù)來解決SDN網(wǎng)絡(luò)單點(diǎn)故障問題。
傳統(tǒng)網(wǎng)絡(luò)中DoS/DDoS攻擊是通過向服務(wù)器發(fā)送大量的報(bào)文耗盡服務(wù)器資源,從而導(dǎo)致服務(wù)器不能為合法用戶提供正常服務(wù)的一種攻擊方法。在具有集中控制的SDN網(wǎng)絡(luò)中,采用DoS/DDoS攻擊可以消耗控制器資源和通信信道帶寬,造成交換機(jī)過載甚至存儲(chǔ)容量不足[5]。
針對DoS/DDoS攻擊問題,目前現(xiàn)有的防御機(jī)制主要為防止交換機(jī)過載、控制器與交換機(jī)之間的通信信道擁塞以及控制器資源耗盡等。
SDN/OpenFlow架構(gòu)采用分層架構(gòu),信息泄露問題主要發(fā)生在層與層之間,即主要發(fā)生在控制平面的南向接口層與北向接口層[6]。OpenFlow協(xié)議目前成為南向接口事實(shí)上的標(biāo)準(zhǔn),但OpenFlow本身就存在安全隱患。雖然OpenFlow規(guī)范建議可在控制器和交換機(jī)之間的安全通道中使用SSL/TLS認(rèn)證來增強(qiáng)信道的安全性,但并非強(qiáng)制性規(guī)定,大部分控制器默認(rèn)情況下不開啟。若通信過程中數(shù)據(jù)沒有進(jìn)行加密,很容易被第三方截獲,從而攻擊者可以通過分析截獲數(shù)據(jù)修改甚至偽造報(bào)文進(jìn)行攻擊。
針對信息泄露問題,通過強(qiáng)制實(shí)施SSL/TLS(Secure Sockets Layer/Transport Layer Security)認(rèn)證實(shí)現(xiàn)控制器與交換機(jī)之間的雙向認(rèn)證以及對南向接口通信數(shù)據(jù)進(jìn)行加密保護(hù)。TLS使用數(shù)字證書對交換機(jī)和控制器的身份驗(yàn)證進(jìn)行,當(dāng)交換機(jī)與控制器之間成功認(rèn)證之后,交換機(jī)與控制器之間采用對稱加密算法進(jìn)行通信,防止了攻擊者竊聽或篡改數(shù)據(jù),保證了數(shù)據(jù)的機(jī)密性與完整性。
本文在SDN架構(gòu)的基礎(chǔ)上,分析了應(yīng)用平面、控制平面、管理平面、數(shù)據(jù)平面4個(gè)平面的組成與作用,給出了南向接口和北向接口兩大接口的主要開放協(xié)議、標(biāo)準(zhǔn)以及主要功能,最后指出了SDN網(wǎng)絡(luò)中存在的安全問題以及防范措施。