◆周凱
(南京藝術(shù)學(xué)院信息化建設(shè)管理中心 江蘇 210013)
軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)一種新型網(wǎng)絡(luò)架構(gòu),網(wǎng)絡(luò)虛擬化的一種實(shí)現(xiàn)方式。通過(guò)OpenFlow 等技術(shù)將網(wǎng)絡(luò)設(shè)備的控制與數(shù)據(jù)面進(jìn)行分離,從而實(shí)現(xiàn)網(wǎng)絡(luò)的靈活控制,使網(wǎng)絡(luò)變得更加智能[1]。本文將從SDN 網(wǎng)絡(luò)架構(gòu)思想出發(fā),結(jié)合SDN 和服務(wù)鏈技術(shù),實(shí)現(xiàn)一種能對(duì)網(wǎng)絡(luò)數(shù)據(jù)流自由編排策略、按需適配、動(dòng)態(tài)調(diào)度控制的安全服務(wù)鏈,從而使整體網(wǎng)絡(luò)架構(gòu)的拓展、安全防御及性能得到進(jìn)一步的提升。
服務(wù)鏈(Service Function Chain),一種典型的應(yīng)用模式。傳統(tǒng)服務(wù)鏈被設(shè)計(jì)在網(wǎng)關(guān)處,保障主機(jī)和外部網(wǎng)絡(luò)之間的數(shù)據(jù)安傳輸。并在可信網(wǎng)絡(luò)與非可信網(wǎng)絡(luò)之間架設(shè)相關(guān)安全服務(wù)節(jié)點(diǎn),這些安全服務(wù)節(jié)點(diǎn)按照用戶事先配置的安全策略過(guò)濾和阻斷有害的數(shù)據(jù)傳輸來(lái)保證可信與非可信網(wǎng)絡(luò)之間雙向通訊的安全。這種部署方式主要存在以下問(wèn)題:
(1)服務(wù)節(jié)點(diǎn)宕機(jī)導(dǎo)致整體數(shù)據(jù)通訊中斷;新增或拓展服務(wù)節(jié)點(diǎn)需要暫時(shí)性業(yè)務(wù)中斷,策略部署工作復(fù)雜、重復(fù)性高;
(2)隨著服務(wù)節(jié)點(diǎn)的增加,網(wǎng)絡(luò)拓?fù)鋵蛹?jí)結(jié)構(gòu)越復(fù)雜;
(3)由于傳統(tǒng)服務(wù)鏈的固定性導(dǎo)致數(shù)據(jù)流不能按需適配、靈活調(diào)度;
(4)運(yùn)維難度大,出現(xiàn)網(wǎng)絡(luò)故障很難快速準(zhǔn)確的定位故障點(diǎn)等。
傳統(tǒng)網(wǎng)絡(luò)設(shè)備一般包含控制和轉(zhuǎn)發(fā)兩套邏輯,網(wǎng)絡(luò)屬于一種分布式架構(gòu),嚴(yán)格地按照TCP/ⅠP 五層模型來(lái)進(jìn)行設(shè)計(jì)。SDN 將網(wǎng)絡(luò)設(shè)備上的控制邏輯單獨(dú)提取出來(lái),作為控制平面,形成一種控制平面與轉(zhuǎn)發(fā)平面相分離的網(wǎng)絡(luò)架構(gòu)[2]。并且盡可能地使網(wǎng)絡(luò)扁平化,數(shù)據(jù)包的匹配不再是一層層地進(jìn)行,而是同時(shí)進(jìn)行。服務(wù)功能上主要分為兩大類(lèi):Networking Ⅰnfrastructure,提供網(wǎng)絡(luò)基礎(chǔ)架構(gòu)功能;Networking Service,提供網(wǎng)絡(luò)服務(wù)功能。
基于SDN 的安全服務(wù)鏈?zhǔn)窃趥鹘y(tǒng)服務(wù)鏈的基礎(chǔ)上,融合上述SDN 的網(wǎng)絡(luò)架構(gòu)思想及技術(shù)設(shè)計(jì)實(shí)現(xiàn)。即由SDN 控制和管理服務(wù)鏈,將服務(wù)功能加入網(wǎng)絡(luò)流量路徑中,實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)(L4-L7),是一種更靈活的網(wǎng)絡(luò)功能方式。它的主要優(yōu)勢(shì)在于:
(1)網(wǎng)絡(luò)與功能解耦,使網(wǎng)絡(luò)可編程,可以按照用戶的需求自定義業(yè)務(wù)邏輯,實(shí)時(shí)動(dòng)態(tài)的調(diào)度服務(wù)鏈的轉(zhuǎn)發(fā)策略進(jìn)行轉(zhuǎn)發(fā);
(2)網(wǎng)絡(luò)服務(wù)節(jié)點(diǎn)由原來(lái)的串聯(lián)變成串并行,提高了網(wǎng)絡(luò)的穩(wěn)定及容錯(cuò)能力;
(3)網(wǎng)絡(luò)服務(wù)節(jié)點(diǎn)的彈性擴(kuò)容實(shí)現(xiàn)熱部署及負(fù)載均衡的功能。基于SDN 網(wǎng)絡(luò)添加服務(wù)節(jié)點(diǎn)可以在不中斷網(wǎng)絡(luò)的情況下,通過(guò)在控制器上添加對(duì)應(yīng)的轉(zhuǎn)發(fā)策略即可即時(shí)生效。
面對(duì)業(yè)務(wù)系統(tǒng)數(shù)據(jù)傳輸需求,主要分為單向和雙向兩種形式上的鏈:?jiǎn)蜗蚍?wù)鏈為僅存在單一方向的服務(wù)鏈如源節(jié)點(diǎn)到目的節(jié)點(diǎn)的數(shù)據(jù)通訊或目的節(jié)點(diǎn)到源節(jié)點(diǎn)的數(shù)據(jù)通訊;雙向?yàn)橥瑫r(shí)存在源到目的和目的到源的數(shù)據(jù)通訊的服務(wù)鏈。本文將依據(jù)一個(gè)典型SDN 網(wǎng)絡(luò)架構(gòu)以實(shí)例做具體闡述。
網(wǎng)絡(luò)架構(gòu)環(huán)境:將SDN 交換機(jī)以透明橋的模式部署在出口與網(wǎng)絡(luò)核心交換機(jī)之間,SDN 交換機(jī)只通過(guò)控制器及OpenFlow 網(wǎng)絡(luò)通訊協(xié)議對(duì)服務(wù)鏈進(jìn)行相關(guān)流量轉(zhuǎn)發(fā)和控制。在SDN 交換機(jī)上以旁掛串并行的方式接入防火墻(FW)和Web 應(yīng)用防護(hù)系統(tǒng)(WAF)。如圖1 所示,出口接入SDN 交換機(jī)eth-0-2 口,入口接入eth-0-1 口,F(xiàn)W流量進(jìn)出口為eth-0-3 口和eth-0-4 口,WAF 流量進(jìn)出口為eth-0-5 口和eth-0-6 口。
服務(wù)需求為:只把TCP 80 端口的數(shù)據(jù)流給WAF 處理,F(xiàn)W 處理所有數(shù)據(jù)流,如表1 所示。具體分項(xiàng)包括:表項(xiàng)號(hào)、流表方向、源接口、目的接口、優(yōu)先級(jí)、Match 及標(biāo)注。表項(xiàng)號(hào)為流表序列;流表方向分為上行和下行,在這里單向服務(wù)鏈代表只有上行或下行,雙向服務(wù)鏈為同時(shí)存在上、下行數(shù)據(jù)流;優(yōu)先級(jí)作用于每條表項(xiàng)的執(zhí)行順序由數(shù)值來(lái)表示,數(shù)值大代表優(yōu)先級(jí)關(guān)系越高,反之則低;為了能精細(xì)化控制和管理數(shù)據(jù)流,本設(shè)計(jì)將Match 分為三層:二層表示為以太網(wǎng)類(lèi)型字段和值,區(qū)分各協(xié)議如ⅠPv4(0x0800)、ⅠPv6(0x08DD)、SNMP(0x 814C)等;三層表示為網(wǎng)絡(luò)層ⅠP 協(xié)議用來(lái)定義特殊處理的ⅠP 地址段;四層表示程序端口號(hào)。
圖1 旁掛串并行的方式接入防火墻和Web 應(yīng)用防護(hù)系統(tǒng)
(1)單向服務(wù)鏈
即SDN 交換機(jī)的流表中只包含一個(gè)方向的流表。如圖1 所示接入到SDN 交換機(jī)上的各服務(wù)節(jié)點(diǎn)都需要配備兩張網(wǎng)卡,分別與SDN交換機(jī)上的網(wǎng)口互連,保證數(shù)據(jù)流的進(jìn)和出。下面將依據(jù)前面定義的網(wǎng)絡(luò)架構(gòu)及服務(wù)需求以單上行為例,具體實(shí)現(xiàn)如下:從eth-0-2 口進(jìn)入的全部數(shù)據(jù)流在SDN 交換機(jī)的流表中進(jìn)行匹配,所有數(shù)據(jù)流將匹配表項(xiàng)1,從eth-0-4 口轉(zhuǎn)發(fā)出來(lái)至FW 進(jìn)口,經(jīng)FW 程序處理后,沒(méi)有被丟棄的數(shù)據(jù)包將從FW 出口返回給交換機(jī)eth-0-3 口,并由eth-0-3 口依據(jù)表項(xiàng)5 將未被丟棄的數(shù)據(jù)包(不包括端口80 數(shù)據(jù)包)轉(zhuǎn)發(fā)給eth-0-1 口,端口80 的數(shù)據(jù)包將依據(jù)表項(xiàng)4 轉(zhuǎn)發(fā)給WAF,經(jīng)WAF 程序處理后,沒(méi)有被丟棄的數(shù)據(jù)包將依據(jù)表項(xiàng)6 由eth-0-5 口轉(zhuǎn)發(fā)給eth-0-1 口。
(2)雙向服務(wù)鏈
即SDN 交換機(jī)的流表中包含上行和下線兩個(gè)方向的流表,擁有雙向流表的服務(wù)的主機(jī)ⅠP 地址即要作為目的地址也要作為源地址而存在。根據(jù)前面定義的網(wǎng)絡(luò)架構(gòu)及服務(wù)需求,雙向?qū)崿F(xiàn)如下:上行服務(wù)鏈與上述描述一致,下行服務(wù)鏈將由eth-0-1 口依據(jù)表項(xiàng)7 和表項(xiàng)8 分別將TCP:80 端口數(shù)據(jù)流轉(zhuǎn)發(fā)給eth-0-5 口至WAF,非80 端口數(shù)據(jù)流轉(zhuǎn)發(fā)給eth-0-3 口至FW,經(jīng)WAF 程序處理后,未被丟棄的數(shù)據(jù)包依據(jù)表項(xiàng)10 轉(zhuǎn)發(fā)給FW,最后經(jīng)FW 程序處理后,未被丟棄的數(shù)據(jù)包依據(jù)表項(xiàng)12 由eth-0-4 口轉(zhuǎn)發(fā)給eth-0-2 口。
(3)單點(diǎn)故障
分發(fā)任務(wù)的主節(jié)點(diǎn)發(fā)生故障,導(dǎo)致各分節(jié)點(diǎn)無(wú)法正常接發(fā),引發(fā)整體系統(tǒng)故障。我們把這種故障叫作單點(diǎn)故障?;赟DN 服務(wù)鏈的網(wǎng)絡(luò)架構(gòu)單點(diǎn)故障主要關(guān)注兩個(gè)環(huán)節(jié):一是SDN 交換機(jī)帶來(lái)的單點(diǎn)故障;二是并行掛載在SDN 交換機(jī)上的各節(jié)點(diǎn)毀壞引發(fā)的單點(diǎn)故障。前者可以通過(guò)雙機(jī)熱備的方式,采用主備、主主備等策略來(lái)完善。后者也可以采用與前者同樣的方式來(lái)解決,但這種方式違背了基于SDN 服務(wù)鏈架構(gòu)的核心思想,本文將就第二種現(xiàn)象給予討論并給出解決方案。
基于SDN 服務(wù)鏈的網(wǎng)絡(luò)架構(gòu)核心優(yōu)勢(shì)之一在于對(duì)同構(gòu)設(shè)備的解耦,對(duì)異構(gòu)設(shè)備的重組。在網(wǎng)絡(luò)安全方面,特別是依據(jù)特征庫(kù)對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)包進(jìn)行檢測(cè)與防御的安全防御設(shè)備如:WAF、ⅠDS、ⅠPS、防毒設(shè)備等,同品牌設(shè)備特征庫(kù)基本一樣。而各廠家趨于對(duì)各自產(chǎn)品市場(chǎng)與技術(shù)的保護(hù),實(shí)現(xiàn)雙機(jī)熱備部署必須使用兩臺(tái)同品牌甚至同型號(hào)的設(shè)備來(lái)完成,對(duì)用戶而言如“雞肋”一般。怎樣能脫離這樣的局限,即能解決單點(diǎn)故障又能起到安全加固的效果,下面將引入備份流表的方式來(lái)解決。
備份流表:在主流表服務(wù)鏈路徑的基礎(chǔ)上,建立一套優(yōu)先級(jí)低于前者的備份流表服務(wù)鏈路徑,當(dāng)節(jié)點(diǎn)故障時(shí)主流表服務(wù)鏈路徑失效,將自啟用備份流表服務(wù)鏈路徑來(lái)進(jìn)行引流。這種機(jī)制不僅可以解決節(jié)點(diǎn)故障時(shí)的引流問(wèn)題,還可以將一組節(jié)點(diǎn)設(shè)備劃為一個(gè)共享資源池,進(jìn)行更廣泛的應(yīng)用。
如流表1 所示,依據(jù)上述設(shè)定好的架構(gòu)與需求,以下行為例,當(dāng)數(shù)據(jù)流從eth-0-1 口依據(jù)表項(xiàng)7(優(yōu)先級(jí):1001)和表項(xiàng)8(優(yōu)先級(jí):992)分別根據(jù)各自策略要求將數(shù)據(jù)流轉(zhuǎn)發(fā)給WAF 和FW,若單WAF設(shè)備毀壞,將依據(jù)表項(xiàng)8,由eth-0-1 口直接將全部數(shù)據(jù)流轉(zhuǎn)發(fā)FW,經(jīng)FW 程序處理過(guò)后未被丟棄的數(shù)據(jù)包依據(jù)表項(xiàng)12(優(yōu)先級(jí):983)轉(zhuǎn)發(fā)給eth-0-2 口;若單FW 設(shè)備毀壞,端口80 數(shù)據(jù)流將依據(jù)表項(xiàng)7轉(zhuǎn)發(fā)給WAF,經(jīng)WAF 程序處理過(guò)后未被丟棄的數(shù)據(jù)包依據(jù)表項(xiàng)11跳過(guò)FW 直接轉(zhuǎn)發(fā)給eth-0-2 口,非端口80 的數(shù)據(jù)流將依據(jù)表項(xiàng)9,跳過(guò)FW 直接轉(zhuǎn)發(fā)給eth-0-2 口。
表1 流表
本文詳細(xì)介紹了傳統(tǒng)網(wǎng)絡(luò)服務(wù)鏈和SDN 網(wǎng)絡(luò)服務(wù)鏈的優(yōu)劣對(duì)比及SDN 安全服務(wù)鏈的設(shè)計(jì)原理,并基于場(chǎng)景實(shí)例闡述了它的設(shè)計(jì)與實(shí)現(xiàn)。筆者認(rèn)為此項(xiàng)技術(shù)研究將是以后數(shù)據(jù)中心智慧化安全建設(shè)的關(guān)鍵技術(shù),它不僅有效地清洗了網(wǎng)絡(luò)中的數(shù)據(jù)流,實(shí)現(xiàn)了精準(zhǔn)按需動(dòng)態(tài)調(diào)度,強(qiáng)化了網(wǎng)絡(luò)安全保障,而且使整體網(wǎng)絡(luò)架構(gòu)的拓展能力也變得更為靈活。