文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.02.025
中文引用格式: 邓康,张胜利,代明军,等. 基于SDN的无线网络接入控制[J].电子技术应用,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 引言
随着互联网的快速发展,网络用户的数量增长迅猛,特别是移动智能终端用户,如何管理移动终端成为管理员必须要考虑的问题。传统网络采用垂直分层结构,将控制逻辑和数据转发耦合到交换机、路由器等网络设备中。这些网络设备都是封闭的,其中的网络协议和专利为设备商所特有,因此科研人员和网络管理人员很难实验和部署新型网络协议和应用。对于大规模的网络管理,传统网络已经显现出它的不足。为了解决现有TCP/IP体系架构所面临的问题,世界各国的科研工作者都在积极开展未来互联网的研究,软件定义网络(Software Defined Network,SDN[1])就是在这种技术背景下产生的。
SDN这种新型网络架构将传统TCP/IP体系网络分为数据平面和控制平面,数据平面只负责底层数据的转发,控制层面来决策数据转发。控制器开放北向接口NBI,使得一些新型网络应用能迅速部署。控制器和SDN交换机之间通过安全通道相连,并按照OpenFlow[2]协议规则来管理和配置交换机。OpenFlow协议最初是由斯坦福大学的Nick McKeown教授[2]提出,开放网络基金会ONF对基于OpenFlow的无线SDN进行了详细介绍,并发布了相关白皮书文档[3]。本文就是基于控制层面的北向API接口,实现了一种基于MAC地址的访问控制策略,并将该应用部署到实验室网络中,通过实验验证了可行性和实用性。
1 传统网络的无线接入管理
1.1 WEP 接入认证
WEP是802.11b中定义的一种加密方式,目的是为WLAN提供和有线网络LAN同级别的安全性。由于WLAN是基于无线电磁波的传输,没有固定封闭的传输媒介,无法提供端到端的安全传输,因此更容易被入侵,现在已经基本被淘汰。
1.2 WPA接入认证
WPA有WPA和WPA2两个标准,是为了解决WEP的弱点而产生的,现在已替代了WEP加密。WPA-PSK采用TKIP加密方式,密匙越长越安全。WPA2是增强型版本,新增了AES加密方式,WPA2-PSK则支持TKIP和AES两种加密方式,是现有的加密方式中相对最安全的一种。
1.3 WEB认证方式
WEB认证是一种应用层接入管理方式,在这种方式中,管理员创建一个开放模式的无线接入点,用户接入后访问网络时,被强制重定向到指定的认证网页,要求输入正确的账号和密码才能继续访问网络。即使是同一个用户,在每次断开连接后,这种接入认证方式需要再次输入账户名和密码,因此不是很便捷。
1.4 MAC-ACL接入控制
MAC-ACL直接利用MAC地址认证控制接入,这种接入方式也需要接入服务器(例如Radius),用来判断MAC地址是否合法。此种方法必须预先知道哪些MAC地址是合法的,由于每一个终端的MAC地址唯一,可以用分级权限访问实现。
2 基于SDN的无线MAC地址访问控制
上述接入认证方式各有优劣,如WEP和WPA加密认证算法方式已被证明存在漏洞,常用于家庭个人WiFi网络;WEB接入认证虽然安全,但是每次输入密码会影响使用的便捷;MAC-ACL虽然可以自动认证,但是首次获得合法MAC地址的过程较为麻烦。而且,目前多数网络设备的转发功能和认证功能在一起,随着用户规模的增加,管理的开销成为影响网络性能的重要因素。本文主要探索高效安全的无线网络接入管理方式。
2.1 采用SDN架构的无线接入网
SDN将网络的控制逻辑和数据转发分开,形成应用层、控制层和基础设施层三个层次,如图1所示。
应用层:包含各种网络应用程序,实现交换机的数据转发、负载均衡、流量控制和防火墙等功能。控制器开放北向接口,用户可以开发并部署自己的应用。本文所提出的MAC地址访问控制就是北向接口的应用。
控制层:控制逻辑,即控制器。控制器的网络控制功能主要包括南向接口协议OpenFlow、链路发现、拓扑管理、策略定制和下发流表等。控制器南向接口与SDN交换设备相连,控制器通过交换设备上报的信息进行统一的监控和管理。控制器根据应用层程序执行相应策略,而策略定制和下发流表则是控制器利用南向接口的下行通道对网络设备实施统一控制。
基础设施层:主要由一些网络设备组成,如OpenFlow交换机,无线OpenFlow接入点。这些网络设备接控制器的南向接口,控制器与设备之间通过安全通道连接,采用OpenFlow协议通信。控制器通过在OpenFlow交换机中产生流表控制数据的转发。
2.2 MAC地址接入控制算法设计
由于SDN的灵活性和开放性,很多科研人员积极将SDN架构引入到无线接入网中。Nick McKeown教授提出的OpenRoads[4],采用SDN架构来管理WiFi和WiMAX。SoftRAN[5]提出了软件定义无线接入网架构,用控制器来管理无线资源。但这些无线SDN网络架构都未提及网络的安全性,本文从安全防护角度,研究实现了基于MAC地址的自动访问控制策略,下面介绍具体算法。
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交换机连接并运行时,首先要进行的工作是链路发现。控制器通过定时的发送包含LLDP数据包的Packet_out消息给与其相连的OpenFlow交换机,交换机收到消息后立即发往到所有端口,并根据交换机反馈回来的Packet_in消息获取交换机信息。因而LLDP数据包是一种广播包,不需要通过控制器下发流表来决定转发。通过链路发现后,控制器可以学习到全局网络拓扑结构,配置管理相应的下发流表,控制数据的转发。
在MAC地址访问控制程序中,定义了packet_in_handler( )、add_flow( )和drop_flow( ) 三个函数。packet_in_handler( )函数用来对发送进来的数据包进行处理,首先判断目的地址dst是否在交换机中,若在,则匹配相应的流表,完成转发;若不在,则设置为OFPP_FLOOD,这是泛洪转发逻辑端口,泛洪转发不产生流表。判断完目的地址后,再来看源地址src。从数据包pkt中提取src,用send(src)将源地址送往MAC认证服务器,并将其与白名单中的MAC地址列表匹配。如果src在白名单中,则可以断定用户是合法用户,此时向控制器返回FLAG1,控制器收到FLAG1标识后,通过add_flow( )生成转发流表,转发动作actions=output。如果源地址不在白名单中,则向控制器返回FLAG2,控制器收到FLAG2后,直接产生丢弃流表,转发动作actions=drop。这样OpenFlow交换机中就有了用户端口到外网端口的转发规则。同理,从外网端口送来数据包时,src地址就是外网端口的MAC地址,同上述情况一样,先查找流表,若没有匹配成功,则送往控制器,控制器对于从外网端口送来的数据包,直接产生转发流表。
因此,只有白名单用户在访问外网时,才产生从用户端口到外网端口的转发流表,其他非法用户则产生丢弃流表,这样就可通过白名单上的MAC地址控制用户网络接入。
2.3 MAC地址认证服务器
MAC地址认证服务器的工作流程如图2。
MAC地址认证服务器的功能主要是接收控制器送来的src地址,并与白名单对比,判断该src地址是否为合法用户。然后将返回结果送给控制器,让控制器产生相应的流表。
3 实验验证
通过在实验室部署无线SDN网络来测试算法应用程序的正确性,搭建的网络如图3。
实验所用设备有:2台电脑,无线OpenFlow交换机,笔记本和支持WiFi的智能手机。其中一台电脑作为控制器,控制器为Ryu,安装在Ubuntu 12.04 LTS桌面版系统上。另一台作为MAC地址认证服务器,提供认证登录和提取MAC地址功能。无线OpenFlow交换机是采用市场上的家用路由器TP-Link 841n无线路由器,在运行部分添加了OpenFlow模块的OpenWrt系统,创建一个WiFi热点,使该WLAN端口也支持OpenFlow。
用户连接到无线热点后,首次连接访问外网时,将该用户重定向到MAC地址认证服务器。此时用户端会跳转至Web登录界面,要求输入用户名和密码。登录成功后,用户的MAC地址被存储到白名单上,用户再次请求访问外网时,MAC认证服务器可以通知控制器产生相应的转发流表,这样通过认证的用户就可以访问外网。当用户断开后,下一次再连接无线网络时,由于它的MAC地址已经存储在白名单中,MAC地址认证服务器会直接通知控制器产生相应的转发流表。用户再次连接上网时,可以不用输入账号和密码而直接访问外网。
为了测试该MAC地址访问控制功能,用户A是笔记本,用户B是支持WiFi的手机。打开无线网络,连接无线OpenFlow接入点。用户A正确输入了账号和密码,完成认证,MAC地址被加入到白名单。
在本系统中,由于用户A完成登录认证,所以MAC地址被存储在MAC地址认证服务器的表单中(即白名单用户),而用户B没有登录认证,属于非法用户,所以用户A可以正常访问外网,而用户B无法直接访问外网。
经过如上测试步骤之后,OpenFlow交换机产生转发流表。图4为dpctl指令查看的流表,省去了部分非关键字段,从OpenFlow所产生的转发流表中选择4条具有代表性的流表规则。下面,结合图4中的流表规则来说明本文所提算法的合理性和正确性。
用户A的MAC地址为74:86:7a:48:2b:23,B的MAC地址为70:72:3c:d5:c4:36,外网的MAC地址为28:c6:8e:c6:37:c0。其中,actions为空就是丢弃数据包行为。
控制器下发了4条流表,port 1连接外网,port 4为无线OpenFlow端口。用户A和用户B都连在无线端口上。用户A—Internet,Internet—用户A,用户B—Internet,Internet—用户B。用户A完成登录认证,其MAC地址就存储到白名单中,控制器下发对其到Internet的正常转发行为流表。而用户B没有通过认证,MAC地址不在其中,对其向外网转发的数据包下发丢弃流表。这样就可以通过流表规则控制无线用户对网络的访问。
4 结论
基于无线SDN的MAC地址访问控制,可以在传统加密方式基础上增加一道有力的安全防护,而这样做的代价仅仅是控制器上的一个应用程序,无需再买其他的专用设备,节省了成本开销。本文提出了无线网络接入认证方法,白名单用户首次认证成功后,立即产生转发流表,而其他非法用户则产生丢弃流表,阻止其访问外网,该方法切实可靠。
参考文献
[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.