文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.02.025
中文引用格式: 鄧康,張勝利,代明軍,等. 基于SDN的無線網(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ù)量增長迅猛,特別是移動(dòng)智能終端用戶,如何管理移動(dòng)終端成為管理員必須要考慮的問題。傳統(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)所面臨的問題,世界各國的科研工作者都在積極開展未來互聯(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ā),控制層面來決策數(shù)據(jù)轉(zhuǎn)發(fā)。控制器開放北向接口NBI,使得一些新型網(wǎng)絡(luò)應(yīng)用能迅速部署??刂破骱蚐DN交換機(jī)之間通過安全通道相連,并按照OpenFlow[2]協(xié)議規(guī)則來管理和配置交換機(jī)。OpenFlow協(xié)議最初是由斯坦福大學(xué)的Nick McKeown教授[2]提出,開放網(wǎng)絡(luò)基金會(huì)ONF對(duì)基于OpenFlow的無線SDN進(jìn)行了詳細(xì)介紹,并發(fā)布了相關(guān)白皮書文檔[3]。本文就是基于控制層面的北向API接口,實(shí)現(xiàn)了一種基于MAC地址的訪問控制策略,并將該應(yīng)用部署到實(shí)驗(yàn)室網(wǎng)絡(luò)中,通過實(shí)驗(yàn)驗(yàn)證了可行性和實(shí)用性。
1 傳統(tǒng)網(wǎng)絡(luò)的無線接入管理
1.1 WEP 接入認(rèn)證
WEP是802.11b中定義的一種加密方式,目的是為WLAN提供和有線網(wǎng)絡(luò)LAN同級(jí)別的安全性。由于WLAN是基于無線電磁波的傳輸,沒有固定封閉的傳輸媒介,無法提供端到端的安全傳輸,因此更容易被入侵,現(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加密方式,密匙越長越安全。WPA2是增強(qiáng)型版本,新增了AES加密方式,WPA2-PSK則支持TKIP和AES兩種加密方式,是現(xiàn)有的加密方式中相對(duì)最安全的一種。
1.3 WEB認(rèn)證方式
WEB認(rèn)證是一種應(yīng)用層接入管理方式,在這種方式中,管理員創(chuàng)建一個(gè)開放模式的無線接入點(diǎn),用戶接入后訪問網(wǎng)絡(luò)時(shí),被強(qiáng)制重定向到指定的認(rèn)證網(wǎng)頁,要求輸入正確的賬號(hào)和密碼才能繼續(xù)訪問網(wǎng)絡(luò)。即使是同一個(gè)用戶,在每次斷開連接后,這種接入認(rèn)證方式需要再次輸入賬戶名和密碼,因此不是很便捷。
1.4 MAC-ACL接入控制
MAC-ACL直接利用MAC地址認(rèn)證控制接入,這種接入方式也需要接入服務(wù)器(例如Radius),用來判斷MAC地址是否合法。此種方法必須預(yù)先知道哪些MAC地址是合法的,由于每一個(gè)終端的MAC地址唯一,可以用分級(jí)權(quán)限訪問實(shí)現(xiàn)。
2 基于SDN的無線MAC地址訪問控制
上述接入認(rèn)證方式各有優(yōu)劣,如WEP和WPA加密認(rèn)證算法方式已被證明存在漏洞,常用于家庭個(gè)人WiFi網(wǎng)絡(luò);WEB接入認(rèn)證雖然安全,但是每次輸入密碼會(huì)影響使用的便捷;MAC-ACL雖然可以自動(dòng)認(rèn)證,但是首次獲得合法MAC地址的過程較為麻煩。而且,目前多數(shù)網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)功能和認(rèn)證功能在一起,隨著用戶規(guī)模的增加,管理的開銷成為影響網(wǎng)絡(luò)性能的重要因素。本文主要探索高效安全的無線網(wǎng)絡(luò)接入管理方式。
2.1 采用SDN架構(gòu)的無線接入網(wǎng)
SDN將網(wǎng)絡(luò)的控制邏輯和數(shù)據(jù)轉(zhuǎn)發(fā)分開,形成應(yīng)用層、控制層和基礎(chǔ)設(shè)施層三個(gè)層次,如圖1所示。
應(yīng)用層:包含各種網(wǎng)絡(luò)應(yīng)用程序,實(shí)現(xiàn)交換機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā)、負(fù)載均衡、流量控制和防火墻等功能。控制器開放北向接口,用戶可以開發(fā)并部署自己的應(yīng)用。本文所提出的MAC地址訪問控制就是北向接口的應(yīng)用。
控制層:控制邏輯,即控制器??刂破鞯木W(wǎng)絡(luò)控制功能主要包括南向接口協(xié)議OpenFlow、鏈路發(fā)現(xiàn)、拓?fù)涔芾怼⒉呗远ㄖ坪拖掳l(fā)流表等。控制器南向接口與SDN交換設(shè)備相連,控制器通過交換設(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ī),無線OpenFlow接入點(diǎn)。這些網(wǎng)絡(luò)設(shè)備接控制器的南向接口,控制器與設(shè)備之間通過安全通道連接,采用OpenFlow協(xié)議通信。控制器通過在OpenFlow交換機(jī)中產(chǎn)生流表控制數(shù)據(jù)的轉(zhuǎn)發(fā)。
2.2 MAC地址接入控制算法設(shè)計(jì)
由于SDN的靈活性和開放性,很多科研人員積極將SDN架構(gòu)引入到無線接入網(wǎng)中。Nick McKeown教授提出的OpenRoads[4],采用SDN架構(gòu)來管理WiFi和WiMAX。SoftRAN[5]提出了軟件定義無線接入網(wǎng)架構(gòu),用控制器來管理無線資源。但這些無線SDN網(wǎng)絡(luò)架構(gòu)都未提及網(wǎng)絡(luò)的安全性,本文從安全防護(hù)角度,研究實(shí)現(xiàn)了基于MAC地址的自動(dòng)訪問控制策略,下面介紹具體算法。
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)??刂破魍ㄟ^定時(shí)的發(fā)送包含LLDP數(shù)據(jù)包的Packet_out消息給與其相連的OpenFlow交換機(jī),交換機(jī)收到消息后立即發(fā)往到所有端口,并根據(jù)交換機(jī)反饋回來的Packet_in消息獲取交換機(jī)信息。因而LLDP數(shù)據(jù)包是一種廣播包,不需要通過控制器下發(fā)流表來決定轉(zhuǎn)發(fā)。通過鏈路發(fā)現(xiàn)后,控制器可以學(xué)習(xí)到全局網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),配置管理相應(yīng)的下發(fā)流表,控制數(shù)據(jù)的轉(zhuǎn)發(fā)。
在MAC地址訪問控制程序中,定義了packet_in_handler( )、add_flow( )和drop_flow( ) 三個(gè)函數(shù)。packet_in_handler( )函數(shù)用來對(duì)發(fā)送進(jìn)來的數(shù)據(jù)包進(jìn)行處理,首先判斷目的地址dst是否在交換機(jī)中,若在,則匹配相應(yīng)的流表,完成轉(zhuǎn)發(fā);若不在,則設(shè)置為OFPP_FLOOD,這是泛洪轉(zhuǎn)發(fā)邏輯端口,泛洪轉(zhuǎn)發(fā)不產(chǎn)生流表。判斷完目的地址后,再來看源地址src。從數(shù)據(jù)包pkt中提取src,用send(src)將源地址送往MAC認(rèn)證服務(wù)器,并將其與白名單中的MAC地址列表匹配。如果src在白名單中,則可以斷定用戶是合法用戶,此時(shí)向控制器返回FLAG1,控制器收到FLAG1標(biāo)識(shí)后,通過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)端口送來數(shù)據(jù)包時(shí),src地址就是外網(wǎng)端口的MAC地址,同上述情況一樣,先查找流表,若沒有匹配成功,則送往控制器,控制器對(duì)于從外網(wǎng)端口送來的數(shù)據(jù)包,直接產(chǎn)生轉(zhuǎn)發(fā)流表。
因此,只有白名單用戶在訪問外網(wǎng)時(shí),才產(chǎn)生從用戶端口到外網(wǎng)端口的轉(zhuǎn)發(fā)流表,其他非法用戶則產(chǎn)生丟棄流表,這樣就可通過白名單上的MAC地址控制用戶網(wǎng)絡(luò)接入。
2.3 MAC地址認(rèn)證服務(wù)器
MAC地址認(rèn)證服務(wù)器的工作流程如圖2。
MAC地址認(rèn)證服務(wù)器的功能主要是接收控制器送來的src地址,并與白名單對(duì)比,判斷該src地址是否為合法用戶。然后將返回結(jié)果送給控制器,讓控制器產(chǎn)生相應(yīng)的流表。
3 實(shí)驗(yàn)驗(yàn)證
通過在實(shí)驗(yàn)室部署無線SDN網(wǎng)絡(luò)來測試算法應(yīng)用程序的正確性,搭建的網(wǎng)絡(luò)如圖3。
實(shí)驗(yàn)所用設(shè)備有:2臺(tái)電腦,無線OpenFlow交換機(jī),筆記本和支持WiFi的智能手機(jī)。其中一臺(tái)電腦作為控制器,控制器為Ryu,安裝在Ubuntu 12.04 LTS桌面版系統(tǒng)上。另一臺(tái)作為MAC地址認(rèn)證服務(wù)器,提供認(rèn)證登錄和提取MAC地址功能。無線OpenFlow交換機(jī)是采用市場上的家用路由器TP-Link 841n無線路由器,在運(yùn)行部分添加了OpenFlow模塊的OpenWrt系統(tǒng),創(chuàng)建一個(gè)WiFi熱點(diǎn),使該WLAN端口也支持OpenFlow。
用戶連接到無線熱點(diǎn)后,首次連接訪問外網(wǎng)時(shí),將該用戶重定向到MAC地址認(rèn)證服務(wù)器。此時(shí)用戶端會(huì)跳轉(zhuǎn)至Web登錄界面,要求輸入用戶名和密碼。登錄成功后,用戶的MAC地址被存儲(chǔ)到白名單上,用戶再次請(qǐng)求訪問外網(wǎng)時(shí),MAC認(rèn)證服務(wù)器可以通知控制器產(chǎn)生相應(yīng)的轉(zhuǎn)發(fā)流表,這樣通過認(rèn)證的用戶就可以訪問外網(wǎng)。當(dāng)用戶斷開后,下一次再連接無線網(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ǎng)。
為了測試該MAC地址訪問控制功能,用戶A是筆記本,用戶B是支持WiFi的手機(jī)。打開無線網(wǎng)絡(luò),連接無線OpenFlow接入點(diǎn)。用戶A正確輸入了賬號(hào)和密碼,完成認(rèn)證,MAC地址被加入到白名單。
在本系統(tǒng)中,由于用戶A完成登錄認(rèn)證,所以MAC地址被存儲(chǔ)在MAC地址認(rèn)證服務(wù)器的表單中(即白名單用戶),而用戶B沒有登錄認(rèn)證,屬于非法用戶,所以用戶A可以正常訪問外網(wǎng),而用戶B無法直接訪問外網(wǎng)。
經(jīng)過如上測試步驟之后,OpenFlow交換機(jī)產(chǎn)生轉(zhuǎn)發(fā)流表。圖4為dpctl指令查看的流表,省去了部分非關(guān)鍵字段,從OpenFlow所產(chǎn)生的轉(zhuǎn)發(fā)流表中選擇4條具有代表性的流表規(guī)則。下面,結(jié)合圖4中的流表規(guī)則來說明本文所提算法的合理性和正確性。
用戶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為無線OpenFlow端口。用戶A和用戶B都連在無線端口上。用戶A—Internet,Internet—用戶A,用戶B—Internet,Internet—用戶B。用戶A完成登錄認(rèn)證,其MAC地址就存儲(chǔ)到白名單中,控制器下發(fā)對(duì)其到Internet的正常轉(zhuǎn)發(fā)行為流表。而用戶B沒有通過認(rèn)證,MAC地址不在其中,對(duì)其向外網(wǎng)轉(zhuǎn)發(fā)的數(shù)據(jù)包下發(fā)丟棄流表。這樣就可以通過流表規(guī)則控制無線用戶對(duì)網(wǎng)絡(luò)的訪問。
4 結(jié)論
基于無線SDN的MAC地址訪問控制,可以在傳統(tǒng)加密方式基礎(chǔ)上增加一道有力的安全防護(hù),而這樣做的代價(jià)僅僅是控制器上的一個(gè)應(yīng)用程序,無需再買其他的專用設(shè)備,節(jié)省了成本開銷。本文提出了無線網(wǎng)絡(luò)接入認(rèn)證方法,白名單用戶首次認(rèn)證成功后,立即產(chǎn)生轉(zhuǎn)發(fā)流表,而其他非法用戶則產(chǎ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.