一种用户驱动的sdn网络集中式访问控制方法
【技术领域】
[0001] 设及一种用户驱动的SDN网络集中式访问控制方法,属于计算机应用技术领域。
【背景技术】
[0002] 由于不断出现的网络服务W及迅速扩张的网络规模,传统网络架构暴露出严重的 问题,根本原因在于控制逻辑W及转发逻辑的紧禪合W及分布式的网络设备控制方式。SDN 网络是一种新兴的网络架构,通过分离控制逻辑与转发逻辑克服了传统网络的不足,目前 获得了学术界W及工业界的广泛认可。
[0003]访问控制作为一种网络安全机制,通过对进出网络的数据包应用一系列访问控制 规则提供对数据包的过滤功能。在传统网络中,采取配置网络设备中的访问控制列表的方 式实现访问控制,该方式的缺点为;一方面需要网络设备拥有具备相应处理能力的特定硬 件,开销较大,另一方面需要网络管理员在网络设备中设计、配置与维护分布式的访问控制 列表,繁琐且易出错。上述缺点的根本原因在于传统网络缺少一个全局视图W及一个集中 的接口来配置与管理访问控制列表。相比于传统网络,SDN网络提供了一个更加合适的架 构来实现访问控制。SDN中的控制器收集并维护全网视图并提供一个开放的编程接口,使得 网络管理员可在控制器中W-种集中式的方式配置与管理网络。
[0004]现有的针对SDN网络访问控制的相关工作大都采用了被动方式实现。在被动方 式中,SDN控制器通过监听转发平面发送来的化cket-in消息,进行相关处理,最后向转 发平面下发相应流表项来实现访问控制,然而该方式由于需要进行一定处理操作增加了 数据包转发时延,在网络流量激增的时候会降低网络效率。SDN网络中著名的开源控制器 Floodli曲t中包含了一个防火墙应用,该应用通过被动方式监听化cket-in消息实现访问 控制,一方面增加了转发时延,另一方面该应用无法根据访问控制规则的更新及时管理转 发平面中的流表,可能会造成不可预测的网络错误。
【发明内容】
[0005] 为了克服SDN网络中现有的访问控制方法增加转发时延与无法及时管理转发平 面中流表的不足,提供了一种用户驱动的SDN网络集中式访问控制方法,实现对SDN网络中 数据包的过滤功能。该方法向用户提供一个友好的、集中式的管理接口,将全局网络视图简 化为抽象网络视图,根据用户请求通过主动方式基于抽象网络视图实现访问控制,对新增 访问控制规则进行匹配检测,动态响应网络视图更新事件及时更新流表。
[0006]解决其技术问题所采用的技术方案是:
[0007]一种用户驱动的SDN网络集中式访问控制方法,通过RESTAPI、抽象网络视图管 理、访问控制规则管理=大模块来实现。
[000引RESTAPI为用户提供一个友好的、集中式的管理接口供用户添加、删除与查询访 问控制规则。在SDN控制器中维护一个全局访问控制列表,用户可通过向控制器发送包含 有请求内容JS0N字符串的HTTP请求来更新全局访问控制列表。
[0009] 将全局网络视图简化为抽象网络视图。该视图隐藏了内部的网络拓扑细节只记录 外部主机与边缘交换机的接口信息,通过调用控制器提供的相应接口监听网络中的主机更 新事件,当新事件发生时根据更新类型及时更新抽象网络视图。同时为抽象网络视图提供 一个全局接口方法供其他功能模块调用进行接口信息查询。
[0010] 对用户请求新增的访问控制列表规则进行匹配检测。匹配定义为;新增的访问控 制规则的作用域被已有的访问控制规则作用域覆盖,即该新增访问控制规则无效。如发现 匹配,向用户返回出错信息并拒绝用户的添加操作。
[0011] 根据用户请求通过主动方式基于抽象网络视图实现访问控制。当用户请求增加访 问控制规则时,对通过匹配检测的新增规则生成一个全局唯一序号并在全局访问控制列表 中添加新的表项,然后检测新增访问控制规则中的源网络地址字段是否为通配符字段,若 不为通配符,通过向抽象网络视图的查询方法传入该访问控制规则的源网络地址获取入口 交换机集合;若为通配符,传入该访问控制规则的目的网络地址,获取出口交换机集合。对 于交换机集合中的每一台交换机,根据新增访问控制规则生成一条访问控制流表项并进行 下发,并在规则映射表中记录访问控制规则的序号到对应流表项序号的映射关系。通过在 入口或出口交换机中下发准确反映高层决策的流表项,对SDN网络实现访问控制。当用户 请求删除某个已存的访问控制规则时,从全局访问控制列表中删除该规则,同时跟据规则 映射表获取对应流表项序号,利用该序号删除对应流表项,最后从规则映射表中删除指定 表项。
[0012] 动态响应网络视图更新事件及时更新流表。当网络中新增主机时,判断新增主机 与现有访问控制规则的关联性,即判断该主机的IP地址是否包含在全局访问控制列表中 规则的网络地址字段中。如果关联,根据关联规则生成一条新的访问控制流表项并下发至 指定的交换机中,之后更新抽象网络视图;如果不关联,直接更新抽象网络视图。维持一 个抽象网络视图中接口信息到对应访问控制流表项序号的映射表,当网络中某台主机被删 除,通过查阅该映射表获取待删除的流表项序号并进行删除,之后更新抽象网络视图。
[0013] 通过向用户提供一个友好的、集中式的管理接口,简化了网络管理;通过将全局网 络视图简化为抽象网络视图,降低了处理过程的复杂度;通过分析用户请求并基于抽象网 络视图W主动方式实现访问控制,降低了转发时延,提高了转发效率;通过对新增访问控制 规则进行匹配检测,减少无效的访问控制规则,节约了转发平面中的流表空间;通过动态响 应网络视图更新事件及时更新流表,确保了高层决策的正确性。
【附图说明】
[0014] 图1是的系统架构图。
[0015] 图2是中使用到的抽象网络视图示例。
[0016] 图3是更新访问控制列表的流程图。
[0017] 图4是实施访问控制更新的流程图。
[001引图5是动态响应网络视图更新的流程图。
【具体实施方式】
[0019] 下面结合附图和实施例对进一步说明。
[0020] 如图1所示,一种用户驱动的SDN网络集中式访问控制方法可实现为SDN控制器 中的一个系统模块,该系统模块由RESTAPI、抽象网络视图管理、访问控制规则管理S大功 能模块组成。其中,RESTAPI为用户提供一个友好的、集中式的管理接口供用户添加、删除 与查询访问控制规则;抽象网络视图管理模块共分为抽象网络视图更新与抽象网络视图查 询两个子模块,前者负责将全局网络视图简化为抽象网络视图,并通过监听网络中的主机 更新事件对该抽象网络视图进行及时更新,后者负责提供全局接口供其他功能模块对抽象 网络视图进行查询;访问控制规则管理模块由访问控制列表更新、访问控制列表实现、抽象 网络视图更新处理=个功能子模块组成,其中访问控制列表更新模块负责添加与删除访问 控制规则同时在添加规则时进行匹配检测,访问控制列表实现负责管理交换机中的流表W 实现新增规则与已删除规则,抽象网络视图更新处理负责对网络中新增W及已删除的主机 进行处理。
[0021] 下表2描述了对访问控制规则的定义
[0022]
[0023]为每个访问控制规则生成一个全局唯一的序号,其中网络层协议、源网络地址、目 的网络地址、目的端口号被称为匹配字段,该字段既可被指定为一个特定值也可被指定为 通配符W匹配所有可能的属性值。源网络地址与目的网络地址被表示为CIDRIP地址,既 可表示一个特定的IP地址,也可表示为一个IP地址范围。允许用户通过HTTP请求发送包 含有相应请求信息的JSON字符串hi现添加、删除与查询访问控制规则。
[0024]图2是所管理的抽象网络视图实例。通过隐藏内部网络拓扑只记录外部主机与边 缘交换机的接口信息将全局网络视图映射为抽象网络视图,并将接口信息表示为=元组: {接口序号,交换机DPID,主机IP}。通过监听主机更新事件维护一个抽象网络视图并提供 一个全局接口方法getDpidSet,该方法对于给定的CIDRIP地址,通过捜索抽象网络视图, 返回一个交换机DPID集合,该集合包含所有与该IP地址表示的主机相连的交换机DPID。
[0025]图3是更新访问控制列表的流程图。维护一个全局访问控制列表,工作流程为:首 先监听用户对访问控制列表的更新请求,并对接收的新请求进行有效性检测,若该请求无 效则向用户返回出错信息并继续进行监听,否则判断用户请求类型。当用户请求添加新规 则时,首先将该请求转换为一个对应的访问控制列表规则并在访
问控制列表中对新增规则 进行匹配检测,匹配定义为:新增的访问控制规则的作用域被已有的访问控制规则作用域 覆盖,即该新增访问控制规则无效。如发现匹配,向用户返回出错信息并拒绝用户的添加操 作,否则为该新增规则生成一个全局唯一序号,向全局访问控制列表添加该规则并进一步 通过流表项实现该新增规则。当用户请求删除已有规则时,首先从用户请求中提取待删除 的规则序号,对该序号的存在性进行检测,如该序号不存在,向用户返回出错信息并拒绝用 户的删除操作,否则使用该序号从全局访问控制列表中删除该规则并触发对流表项的管理 工作。
[0026] 图4是实施访问控制更新的流程图。首先判断更新类型。如果用户请求增加访问 控制规则,检测新增访问控制规则中的源网络地址字段是否为通配符字段,若不为通配符, 向抽象网络视图管理模块提供的getDpidSet方法传入该源网络地址,获取入口交换机集 合;若为通配符,向抽象网络视图管理模块提供的getDpidSet方法传入该访问控制规则的 目的网络地址,获取出口交换机集合。对于交换机集合中的每一台交换机,根据新增访问控 制规则生成一条访问控制流表项并进行下发。访问控制流表项被表示为八元组;{流表项 序号,优先级,交换机DPID,网络层协议,源网络地址,目的网络地址,目的端口号,动作}, 访问控制流表项的生成规则如下;为每条流表项生成全局唯一的序号,并确保先生成的流 表项拥有更高的优先级,流表项的交换机DPID为对应交换机集合中的DPID,流表项的网络 层协议、源网络地址、目的网络地址、目的端口号为对应访问控制规则中的对应字段值,流 表项的动作字段为DROP当对应访问控制规则的动作字段为DENY,动作字段为FORWARDto CONTROLLER当对应访问控制规则的动作字段为A化OW。维护一个访问控制规则到访问控制 流表项的映射表,记录访问控制规则的序号到对应流表项序号的映射关系。如果用户请求 删除访问控制规则,根据待删除规则序号从规则映射表中获取对应流表项序号,并利用该 序号删除对应流表项,最后从规则映射表中删除指定表项。
[0027] 图5是动态响应网络视图更新的流程图。首先监听网络主机更新事件并判断新事 件的更新类型。若网络中新增主机,判断新增主机与现有访问控制规则的关联性,即判断该 主机的IP地址是否包含在全局访问控制列表中规则的网络地址字段中。如果关联,根据关 联规则生成一条新的访问控制流表项并下发至指定的交换机中,之后更新抽象网络视图; 如果不关联,直接更新抽象网络视图。维护一个抽象网络视图中接口信息到对应访问控制 流表项序号的映射表,若网络中某台主机被删除,通过查阅该映射表获取待删除的流表项 序号并进行删除,之后更新抽象网络视图。
【主权项】
1. 一种用户驱动的SDN网络集中式访问控制方法,其特征在于, 该SDN网络集中式访问控制方法通过REST API、抽象网络视图管理、访问控制规则管 理三大模块来实现; REST API为用户提供一个友好的、集中式的管理接口供用户添加、删除与查询访问控 制规则; 抽象网络视图管理模块共分为抽象网络视图更新与抽象网络视图查询两个子模块, 前者负责将全局网络视图简化为抽象网络视图,并通过监听网络中的主机更新事件对该抽 象网络视图进行及时更新,后者负责提供全局接口供其他功能模块对抽象网络视图进行查 询; 访问控制规则管理模块由访问控制列表更新、访问控制列表实现、抽象网络视图更新 处理三个功能子模块组成,其中访问控制列表更新模块负责添加与删除访问控制规则同时 在添加规则时进行匹配检测,访问控制列表实现负责管理交换机中的流表以实现新增规则 与已删除规则,抽象网络视图更新处理负责对网络中新增以及已删除的主机进行处理; 下表2描述了对访问控制规则的定义:每个访问控制规则生成一个全局唯一的序号,其中网络层协议、源网络地址、目的网络 地址、目的端口号被称为匹配字段,该字段既可被指定为一个特定值也可被指定为通配符 以匹配所有可能的属性值;源网络地址与目的网络地址被表示为CIDR IP地址,既可表示 一个特定的IP地址,也可表示为一个IP地址范围;允许用户通过HTTP请求发送包含有相 应请求信息的JSON字符串实现添加、删除与查询访问控制规则; 通过隐藏内部网络拓扑只记录外部主机与边缘交换机的接口信息将全局网络视图映 射为抽象网络视图,并将接口信息表示为三元组:{接口序号,交换机DPID,主机IP};通过 监听主机更新事件维护一个抽象网络视图并提供一个全局接口方法getDpidSet,对于给定 的CIDR IP地址,通过搜索抽象网络视图,返回一个交换机DPID集合,该集合包含所有与该 IP地址表示的主机相连的交换机DPID ; 维护一个全局访问控制列表,流程为:首先监听用户对访问控制列表的更新请求,并对 接收的新请求进行有效性检测,若该请求无效则向用户返回出错信息并继续进行监听,否 则判断用户请求类型;当用户请求添加新规则时,首先将该请求转换为一个对应的访问控 制列表规则并在访问控制列表中对新增规则进行匹配检测;匹配定义为:新增的访问控制 规则的作用域被已有的访问控制规则作用域覆盖,即该新增访问控制规则无效;如发现匹 配,向用户返回出错信息并拒绝用户的添加操作,否则为该新增规则生成一个全局唯一序 号,向全局访问控制列表添加该规则并进一步通过流表项实现该新增规则;当用户请求删 除已有规则时,首先从用户请求中提取待删除的规则序号,对该序号的存在性进行检测,如 该序号不存在,向用户返回出错信息并拒绝用户的删除操作,否则使用该序号从全局访问 控制列表中删除该规则并触发对流表项管理工作; 实施访问控制更新:首先判断更新类型;如果用户请求增加访问控制规则,检测新增 访问控制规则中的源网络地址字段是否为通配符字段,若不为通配符,向抽象网络视图管 理模块提供的getDpidSet方法传入该源网络地址,获取入口交换机集合;若为通配符,向 抽象网络视图管理模块提供的getDpidSet方法传入该访问控制规则的目的网络地址,获 取出口交换机集合;对于交换机集合中的每一台交换机,根据新增访问控制规则生成一条 访问控制流表项并进行下发;访问控制流表项被表示为八元组:{流表项序号,优先级,交 换机DPID,网络层协议,源网络地址,目的网络地址,目的端口号,动作},访问控制流表项 的生成规则如下:为每条流表项生成全局唯一的序号,并确保先生成的流表项拥有更高的 优先级,流表项的交换机DPID为对应交换机集合中的DPID,流表项的网络层协议、源网络 地址、目的网络地址、目的端口号为对应访问控制规则中的对应字段值,流表项的动作字段 为DROP当对应访问控制规则的动作字段为DENY,动作字段为FORWARD to CONTROLLER当 对应访问控制规则的动作字段为ALLOW ;维护一个访问控制规则到访问控制流表项的映射 表,记录访问控制规则的序号到对应流表项序号的映射关系;如果用户请求删除访问控制 规则,根据待删除规则序号从规则映射表中获取对应流表项序号,并利用该序号删除对应 流表项,最后从规则映射表中删除指定表项; 动态响应网络视图更新:首先监听网络主机更新事件并判断新事件的更新类型;若网 络中新增主机,判断新增主机与现有访问控制规则的关联性,即判断该主机的IP地址是否 包含在全局访问控制列表中规则的网络地址字段中;如果关联,根据关联规则生成一条新 的访问控制流表项并下发至指定的交换机中,之后更新抽象网络视图;如果不关联,直接更 新抽象网络视图;维护一个抽象网络视图中接口信息到对应访问控制流表项序号的映射 表,若网络中某台主机被删除,通过查阅该映射表获取待删除的流表项序号并进行删除,之 后更新抽象网络视图。
【专利摘要】一种用户驱动的SDN网络集中式访问控制方法,属于计算机应用技术领域。其特征是使用REST API为用户提供一个友好的、集中式的管理接口;将全局网络视图简化为抽象网络视图;对用户请求新增的访问控制列表规则进行匹配检测;根据用户请求通过主动方式基于抽象网络视图实现访问控制;动态响应网络视图更新事件及时更新流表。本发明提供了集中式接口为用户简化了网络管理,采用主动方式实现访问控制降低数据包转发时延,通过进行匹配检测节约流表空间,并能动态响应网络视图更新事件确保高层决策的正确性。
【IPC分类】H04L29/06
【公开号】CN104901958
【申请号】CN201510266393
【发明人】李克秋, 卢鹏飞, 齐恒, 喻海生
【申请人】大连理工大学
【公开日】2015年9月9日
【申请日】2015年5月21日