文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.02.025
中文引用格式: 鄧康,張勝利,,代明軍,,等. 基于SDN的無(wú)線網(wǎng)絡(luò)接入控制[J].電子技術(shù)應(yīng)用,2016,42(2):92-94,,98.
英文引用格式: Deng Kang,,Zhang Shengli,Dai Mingjun,,et al. SDN based wireless network access authentication[J].Application of Electronic Technique,,2016,42(2):92-94,,98.
0 引言
隨著互聯(lián)網(wǎng)的快速發(fā)展,,網(wǎng)絡(luò)用戶的數(shù)量增長(zhǎng)迅猛,特別是移動(dòng)智能終端用戶,,如何管理移動(dòng)終端成為管理員必須要考慮的問(wèn)題,。傳統(tǒng)網(wǎng)絡(luò)采用垂直分層結(jié)構(gòu),將控制邏輯和數(shù)據(jù)轉(zhuǎn)發(fā)耦合到交換機(jī),、路由器等網(wǎng)絡(luò)設(shè)備中,。這些網(wǎng)絡(luò)設(shè)備都是封閉的,其中的網(wǎng)絡(luò)協(xié)議和專利為設(shè)備商所特有,,因此科研人員和網(wǎng)絡(luò)管理人員很難實(shí)驗(yàn)和部署新型網(wǎng)絡(luò)協(xié)議和應(yīng)用,。對(duì)于大規(guī)模的網(wǎng)絡(luò)管理,傳統(tǒng)網(wǎng)絡(luò)已經(jīng)顯現(xiàn)出它的不足,。為了解決現(xiàn)有TCP/IP體系架構(gòu)所面臨的問(wèn)題,,世界各國(guó)的科研工作者都在積極開(kāi)展未來(lái)互聯(lián)網(wǎng)的研究,軟件定義網(wǎng)絡(luò)(Software Defined Network,,SDN[1])就是在這種技術(shù)背景下產(chǎn)生的,。
SDN這種新型網(wǎng)絡(luò)架構(gòu)將傳統(tǒng)TCP/IP體系網(wǎng)絡(luò)分為數(shù)據(jù)平面和控制平面,數(shù)據(jù)平面只負(fù)責(zé)底層數(shù)據(jù)的轉(zhuǎn)發(fā),,控制層面來(lái)決策數(shù)據(jù)轉(zhuǎn)發(fā),??刂破鏖_(kāi)放北向接口NBI,使得一些新型網(wǎng)絡(luò)應(yīng)用能迅速部署,??刂破骱蚐DN交換機(jī)之間通過(guò)安全通道相連,并按照OpenFlow[2]協(xié)議規(guī)則來(lái)管理和配置交換機(jī),。OpenFlow協(xié)議最初是由斯坦福大學(xué)的Nick McKeown教授[2]提出,,開(kāi)放網(wǎng)絡(luò)基金會(huì)ONF對(duì)基于OpenFlow的無(wú)線SDN進(jìn)行了詳細(xì)介紹,并發(fā)布了相關(guān)白皮書文檔[3],。本文就是基于控制層面的北向API接口,,實(shí)現(xiàn)了一種基于MAC地址的訪問(wèn)控制策略,并將該應(yīng)用部署到實(shí)驗(yàn)室網(wǎng)絡(luò)中,,通過(guò)實(shí)驗(yàn)驗(yàn)證了可行性和實(shí)用性,。
1 傳統(tǒng)網(wǎng)絡(luò)的無(wú)線接入管理
1.1 WEP 接入認(rèn)證
WEP是802.11b中定義的一種加密方式,目的是為WLAN提供和有線網(wǎng)絡(luò)LAN同級(jí)別的安全性,。由于WLAN是基于無(wú)線電磁波的傳輸,,沒(méi)有固定封閉的傳輸媒介,無(wú)法提供端到端的安全傳輸,,因此更容易被入侵,,現(xiàn)在已經(jīng)基本被淘汰。
1.2 WPA接入認(rèn)證
WPA有WPA和WPA2兩個(gè)標(biāo)準(zhǔn),,是為了解決WEP的弱點(diǎn)而產(chǎn)生的,,現(xiàn)在已替代了WEP加密。WPA-PSK采用TKIP加密方式,,密匙越長(zhǎng)越安全,。WPA2是增強(qiáng)型版本,新增了AES加密方式,,WPA2-PSK則支持TKIP和AES兩種加密方式,,是現(xiàn)有的加密方式中相對(duì)最安全的一種。
1.3 WEB認(rèn)證方式
WEB認(rèn)證是一種應(yīng)用層接入管理方式,,在這種方式中,,管理員創(chuàng)建一個(gè)開(kāi)放模式的無(wú)線接入點(diǎn),用戶接入后訪問(wèn)網(wǎng)絡(luò)時(shí),,被強(qiáng)制重定向到指定的認(rèn)證網(wǎng)頁(yè),,要求輸入正確的賬號(hào)和密碼才能繼續(xù)訪問(wèn)網(wǎng)絡(luò)。即使是同一個(gè)用戶,,在每次斷開(kāi)連接后,,這種接入認(rèn)證方式需要再次輸入賬戶名和密碼,因此不是很便捷。
1.4 MAC-ACL接入控制
MAC-ACL直接利用MAC地址認(rèn)證控制接入,,這種接入方式也需要接入服務(wù)器(例如Radius),,用來(lái)判斷MAC地址是否合法。此種方法必須預(yù)先知道哪些MAC地址是合法的,,由于每一個(gè)終端的MAC地址唯一,,可以用分級(jí)權(quán)限訪問(wèn)實(shí)現(xiàn)。
2 基于SDN的無(wú)線MAC地址訪問(wèn)控制
上述接入認(rèn)證方式各有優(yōu)劣,,如WEP和WPA加密認(rèn)證算法方式已被證明存在漏洞,,常用于家庭個(gè)人WiFi網(wǎng)絡(luò);WEB接入認(rèn)證雖然安全,,但是每次輸入密碼會(huì)影響使用的便捷,;MAC-ACL雖然可以自動(dòng)認(rèn)證,但是首次獲得合法MAC地址的過(guò)程較為麻煩,。而且,目前多數(shù)網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)功能和認(rèn)證功能在一起,,隨著用戶規(guī)模的增加,,管理的開(kāi)銷成為影響網(wǎng)絡(luò)性能的重要因素。本文主要探索高效安全的無(wú)線網(wǎng)絡(luò)接入管理方式,。
2.1 采用SDN架構(gòu)的無(wú)線接入網(wǎng)
SDN將網(wǎng)絡(luò)的控制邏輯和數(shù)據(jù)轉(zhuǎn)發(fā)分開(kāi),,形成應(yīng)用層、控制層和基礎(chǔ)設(shè)施層三個(gè)層次,,如圖1所示,。
應(yīng)用層:包含各種網(wǎng)絡(luò)應(yīng)用程序,實(shí)現(xiàn)交換機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā),、負(fù)載均衡,、流量控制和防火墻等功能??刂破鏖_(kāi)放北向接口,,用戶可以開(kāi)發(fā)并部署自己的應(yīng)用。本文所提出的MAC地址訪問(wèn)控制就是北向接口的應(yīng)用,。
控制層:控制邏輯,,即控制器??刂破鞯木W(wǎng)絡(luò)控制功能主要包括南向接口協(xié)議OpenFlow,、鏈路發(fā)現(xiàn)、拓?fù)涔芾?、策略定制和下發(fā)流表等,。控制器南向接口與SDN交換設(shè)備相連,控制器通過(guò)交換設(shè)備上報(bào)的信息進(jìn)行統(tǒng)一的監(jiān)控和管理,??刂破鞲鶕?jù)應(yīng)用層程序執(zhí)行相應(yīng)策略,而策略定制和下發(fā)流表則是控制器利用南向接口的下行通道對(duì)網(wǎng)絡(luò)設(shè)備實(shí)施統(tǒng)一控制,。
基礎(chǔ)設(shè)施層:主要由一些網(wǎng)絡(luò)設(shè)備組成,,如OpenFlow交換機(jī),無(wú)線OpenFlow接入點(diǎn),。這些網(wǎng)絡(luò)設(shè)備接控制器的南向接口,,控制器與設(shè)備之間通過(guò)安全通道連接,采用OpenFlow協(xié)議通信,??刂破魍ㄟ^(guò)在OpenFlow交換機(jī)中產(chǎn)生流表控制數(shù)據(jù)的轉(zhuǎn)發(fā)。
2.2 MAC地址接入控制算法設(shè)計(jì)
由于SDN的靈活性和開(kāi)放性,,很多科研人員積極將SDN架構(gòu)引入到無(wú)線接入網(wǎng)中,。Nick McKeown教授提出的OpenRoads[4],采用SDN架構(gòu)來(lái)管理WiFi和WiMAX,。SoftRAN[5]提出了軟件定義無(wú)線接入網(wǎng)架構(gòu),,用控制器來(lái)管理無(wú)線資源。但這些無(wú)線SDN網(wǎng)絡(luò)架構(gòu)都未提及網(wǎng)絡(luò)的安全性,,本文從安全防護(hù)角度,,研究實(shí)現(xiàn)了基于MAC地址的自動(dòng)訪問(wèn)控制策略,下面介紹具體算法,。
MAC接入控制算法:白名單模式
handle_PacketIn( )
{ get dst_mac src_mac input output }
if dst_mac == mutlicast
then flood (判斷是否為廣播地址)
if dst_mac in flowtable
then {
if src_mac in white list
then actions = output.port
}
else actions = drop
控制器和OpenFlow交換機(jī)連接并運(yùn)行時(shí),,首先要進(jìn)行的工作是鏈路發(fā)現(xiàn)??刂破魍ㄟ^(guò)定時(shí)的發(fā)送包含LLDP數(shù)據(jù)包的Packet_out消息給與其相連的OpenFlow交換機(jī),,交換機(jī)收到消息后立即發(fā)往到所有端口,并根據(jù)交換機(jī)反饋回來(lái)的Packet_in消息獲取交換機(jī)信息,。因而LLDP數(shù)據(jù)包是一種廣播包,,不需要通過(guò)控制器下發(fā)流表來(lái)決定轉(zhuǎn)發(fā)。通過(guò)鏈路發(fā)現(xiàn)后,,控制器可以學(xué)習(xí)到全局網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),,配置管理相應(yīng)的下發(fā)流表,控制數(shù)據(jù)的轉(zhuǎn)發(fā),。
在MAC地址訪問(wèn)控制程序中,,定義了packet_in_handler( )、add_flow( )和drop_flow( ) 三個(gè)函數(shù),。packet_in_handler( )函數(shù)用來(lái)對(duì)發(fā)送進(jìn)來(lái)的數(shù)據(jù)包進(jìn)行處理,,首先判斷目的地址dst是否在交換機(jī)中,,若在,則匹配相應(yīng)的流表,,完成轉(zhuǎn)發(fā),;若不在,則設(shè)置為OFPP_FLOOD,,這是泛洪轉(zhuǎn)發(fā)邏輯端口,,泛洪轉(zhuǎn)發(fā)不產(chǎn)生流表。判斷完目的地址后,,再來(lái)看源地址src,。從數(shù)據(jù)包pkt中提取src,用send(src)將源地址送往MAC認(rèn)證服務(wù)器,,并將其與白名單中的MAC地址列表匹配,。如果src在白名單中,則可以斷定用戶是合法用戶,,此時(shí)向控制器返回FLAG1,,控制器收到FLAG1標(biāo)識(shí)后,通過(guò)add_flow( )生成轉(zhuǎn)發(fā)流表,,轉(zhuǎn)發(fā)動(dòng)作actions=output,。如果源地址不在白名單中,則向控制器返回FLAG2,,控制器收到FLAG2后,直接產(chǎn)生丟棄流表,,轉(zhuǎn)發(fā)動(dòng)作actions=drop,。這樣OpenFlow交換機(jī)中就有了用戶端口到外網(wǎng)端口的轉(zhuǎn)發(fā)規(guī)則。同理,,從外網(wǎng)端口送來(lái)數(shù)據(jù)包時(shí),,src地址就是外網(wǎng)端口的MAC地址,同上述情況一樣,,先查找流表,,若沒(méi)有匹配成功,則送往控制器,,控制器對(duì)于從外網(wǎng)端口送來(lái)的數(shù)據(jù)包,,直接產(chǎn)生轉(zhuǎn)發(fā)流表。
因此,,只有白名單用戶在訪問(wèn)外網(wǎng)時(shí),,才產(chǎn)生從用戶端口到外網(wǎng)端口的轉(zhuǎn)發(fā)流表,其他非法用戶則產(chǎn)生丟棄流表,,這樣就可通過(guò)白名單上的MAC地址控制用戶網(wǎng)絡(luò)接入,。
2.3 MAC地址認(rèn)證服務(wù)器
MAC地址認(rèn)證服務(wù)器的工作流程如圖2,。
MAC地址認(rèn)證服務(wù)器的功能主要是接收控制器送來(lái)的src地址,并與白名單對(duì)比,,判斷該src地址是否為合法用戶,。然后將返回結(jié)果送給控制器,讓控制器產(chǎn)生相應(yīng)的流表,。
3 實(shí)驗(yàn)驗(yàn)證
通過(guò)在實(shí)驗(yàn)室部署無(wú)線SDN網(wǎng)絡(luò)來(lái)測(cè)試算法應(yīng)用程序的正確性,,搭建的網(wǎng)絡(luò)如圖3。
實(shí)驗(yàn)所用設(shè)備有:2臺(tái)電腦,,無(wú)線OpenFlow交換機(jī),,筆記本和支持WiFi的智能手機(jī)。其中一臺(tái)電腦作為控制器,,控制器為Ryu,,安裝在Ubuntu 12.04 LTS桌面版系統(tǒng)上。另一臺(tái)作為MAC地址認(rèn)證服務(wù)器,,提供認(rèn)證登錄和提取MAC地址功能,。無(wú)線OpenFlow交換機(jī)是采用市場(chǎng)上的家用路由器TP-Link 841n無(wú)線路由器,在運(yùn)行部分添加了OpenFlow模塊的OpenWrt系統(tǒng),,創(chuàng)建一個(gè)WiFi熱點(diǎn),,使該WLAN端口也支持OpenFlow。
用戶連接到無(wú)線熱點(diǎn)后,,首次連接訪問(wèn)外網(wǎng)時(shí),,將該用戶重定向到MAC地址認(rèn)證服務(wù)器。此時(shí)用戶端會(huì)跳轉(zhuǎn)至Web登錄界面,,要求輸入用戶名和密碼,。登錄成功后,用戶的MAC地址被存儲(chǔ)到白名單上,,用戶再次請(qǐng)求訪問(wèn)外網(wǎng)時(shí),,MAC認(rèn)證服務(wù)器可以通知控制器產(chǎn)生相應(yīng)的轉(zhuǎn)發(fā)流表,這樣通過(guò)認(rèn)證的用戶就可以訪問(wèn)外網(wǎng),。當(dāng)用戶斷開(kāi)后,,下一次再連接無(wú)線網(wǎng)絡(luò)時(shí),由于它的MAC地址已經(jīng)存儲(chǔ)在白名單中,,MAC地址認(rèn)證服務(wù)器會(huì)直接通知控制器產(chǎn)生相應(yīng)的轉(zhuǎn)發(fā)流表,。用戶再次連接上網(wǎng)時(shí),可以不用輸入賬號(hào)和密碼而直接訪問(wèn)外網(wǎng),。
為了測(cè)試該MAC地址訪問(wèn)控制功能,,用戶A是筆記本,用戶B是支持WiFi的手機(jī),。打開(kāi)無(wú)線網(wǎng)絡(luò),,連接無(wú)線OpenFlow接入點(diǎn),。用戶A正確輸入了賬號(hào)和密碼,完成認(rèn)證,,MAC地址被加入到白名單,。
在本系統(tǒng)中,由于用戶A完成登錄認(rèn)證,,所以MAC地址被存儲(chǔ)在MAC地址認(rèn)證服務(wù)器的表單中(即白名單用戶),,而用戶B沒(méi)有登錄認(rèn)證,屬于非法用戶,,所以用戶A可以正常訪問(wèn)外網(wǎng),,而用戶B無(wú)法直接訪問(wèn)外網(wǎng)。
經(jīng)過(guò)如上測(cè)試步驟之后,,OpenFlow交換機(jī)產(chǎn)生轉(zhuǎn)發(fā)流表,。圖4為dpctl指令查看的流表,省去了部分非關(guān)鍵字段,,從OpenFlow所產(chǎn)生的轉(zhuǎn)發(fā)流表中選擇4條具有代表性的流表規(guī)則,。下面,結(jié)合圖4中的流表規(guī)則來(lái)說(shuō)明本文所提算法的合理性和正確性,。
用戶A的MAC地址為74:86:7a:48:2b:23,,B的MAC地址為70:72:3c:d5:c4:36,外網(wǎng)的MAC地址為28:c6:8e:c6:37:c0,。其中,,actions為空就是丟棄數(shù)據(jù)包行為。
控制器下發(fā)了4條流表,,port 1連接外網(wǎng),,port 4為無(wú)線OpenFlow端口。用戶A和用戶B都連在無(wú)線端口上,。用戶A—Internet,Internet—用戶A,,用戶B—Internet,,Internet—用戶B。用戶A完成登錄認(rèn)證,,其MAC地址就存儲(chǔ)到白名單中,,控制器下發(fā)對(duì)其到Internet的正常轉(zhuǎn)發(fā)行為流表。而用戶B沒(méi)有通過(guò)認(rèn)證,,MAC地址不在其中,,對(duì)其向外網(wǎng)轉(zhuǎn)發(fā)的數(shù)據(jù)包下發(fā)丟棄流表。這樣就可以通過(guò)流表規(guī)則控制無(wú)線用戶對(duì)網(wǎng)絡(luò)的訪問(wèn),。
4 結(jié)論
基于無(wú)線SDN的MAC地址訪問(wèn)控制,,可以在傳統(tǒng)加密方式基礎(chǔ)上增加一道有力的安全防護(hù),,而這樣做的代價(jià)僅僅是控制器上的一個(gè)應(yīng)用程序,無(wú)需再買其他的專用設(shè)備,,節(jié)省了成本開(kāi)銷,。本文提出了無(wú)線網(wǎng)絡(luò)接入認(rèn)證方法,白名單用戶首次認(rèn)證成功后,,立即產(chǎn)生轉(zhuǎn)發(fā)流表,,而其他非法用戶則產(chǎn)生丟棄流表,阻止其訪問(wèn)外網(wǎng),,該方法切實(shí)可靠,。
參考文獻(xiàn)
[1] SDN Architecture[OL].https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/SDN-architecture-overview-1.0.pdf.
[2] MCKEOWN N,ANDERSON T,,BALAKRISHNAN H,,et al.OpenFlow: enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,,38(2):69-74.
[3] ONF Solution Brief.OpenFlow-Enabled Mobile and Wireless Networks.September 2013.http://www.opennetworking.org.
[4] YAP K K,,KOBAYASHI M,SHERWOOD R,,et al.OpenRoads:Empowering research in mobile networks[J].ACM SIGCOMM Computer Communication Review,,2010,40(1):125-126.
[5] GUDIPATI A,,PERRY D,,LI L E,et al.SoftRAN:Software defined radio access network[C].Proceedings of the second ACM SIGCOMM workshop on Hot topics in software defined networking.ACM,,2013:25-30.