一种基于Openflow的虚拟防火墙传输控制方法及系统的制作方法_2

文档序号:9711476阅读:来源:国知局
与匹配过程示意图。
[0045] 图5是本发明实施例提供的防火墙底层示意图。
[0046] 图6是本发明实施例提供的防火墙数据包的转发过程示意图。
[0047] 图7是本发明实施例提供的网络拓扑示意图。
【具体实施方式】
[0048]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明 进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于 限定本发明。
[0049] 下面结合附图对本发明的应用原理作详细的描述。
[0050] 如图1所示,本发明实施例的基于Openf low的虚拟防火墙传输控制方法包括以下 步骤:
[0051] S101:数据包从主机发送后,通过虚拟防火墙上配置的虚拟网卡,防火墙内核模块 提取数据包的关键信息,虚拟防火墙通过防火墙定义的规则,与数据包关键信息进行基础 映射;若防火墙规则与关键信息匹配成功,则按照防火墙规则决定数据包的转发端口及其 路径;若无匹配,数据包将被传送至用户控件的处理队列,等待相关防火墙规则的指定和下 发;
[0052] S102:防火墙过滤规则文件,rul e s . Confi g为防火墙规则文件,数据包到达端口 后,截取数据包并对包头进行语法分析,提取出:封装协议(TCP、UDP )、IP源地址、IP目的地 址、Mac地址、包输入端口和包输出端口信息;
[0053] S103:若提取信息与防火墙规则不匹配,则此包不被允许通过防火墙,丢弃;若提 取信息与防火墙规则匹配,则此包允许传输接收;若提取信息不满足任何防火墙规则,则此 包被丢弃。
[0054] 本发明实施例的基于Openf low的虚拟防火墙传输控制方法具体包括以下步骤: [0055] 一.防火墙数据包的匹配
[0056] 当数据包从主机发送后,首先通过虚拟防火墙上配置的虚拟网卡。防火墙内核模 块提取数据包的关键信息,关键信息可包括:数据来源以太网端口,到达的交换机端口,来 源IP地址,目标IP地址等。虚拟防火墙通过防火墙定义的规则,与数据包关键信息进行基础 映射。若防火墙规则与关键信息匹配成功,则按照防火墙规则决定数据包的转发端口及其 路径;若无匹配,数据包将被传送至用户控件的处理队列,等待相关防火墙规则的指定和下 发。
[0057] 防火墙中数据包处理流程如图3,数据包头解析与匹配过程如图4,防火墙底层组 成如图5。
[0058] 防火墙中数据包处理包括:数据包解析,数据包匹配,数据包丢弃,数据包通过。
[0059] 数据包头解析与匹配包括:源IP地址匹配、目的IP地址匹配、传输协议匹配、数据 来源以太网端口匹配、到达的交换机端口匹配、优先级匹配。
[0060] 二.防火墙数据包的转发
[0061 ]防火墙数据包的转发过程,如图6:
[0062] (一)防火墙过滤规则文件
[0063] rules .Conf ig为防火墙规则文件。
[0064] rules. Conf ig文件必须存储在防火墙配置文件中。
[0065](二)包头信息提取
[0066]数据包到达端口后,截取数据包并对包头进行语法分析,提取出:封装协议(TCP、 UDP)、IP源地址、IP目的地址、Mac地址、包输入端口和包输出端口信息。
[0067](三)转发匹配
[0068] 若提取信息与防火墙规则不匹配,则此包不被允许通过防火墙,丢弃;
[0069] 若提取信息与防火墙规则匹配,则此包允许传输接收;
[0070] 若提取信息不满足任何防火墙规则,则此包被丢弃。
[0071 ]本发明实施例虚拟防火墙限制数据流经过程:
[0072] (一)同一网络中,数据包的传输
[0073] 处于网络A中的终端host2向网络A的终端host3发送数据包,防火墙限制数据流经 过程如下:
[0074] 1.终端host2将host3地址作为目标地址,发送数据包Packet。
[0075] 2.交换机switchl检测到链路中存在数据包,向控制器发送处理数据包请求。
[0076] 3.控制器策略应用相应请求,向交换机switchl下发流指令,将数据包目标地址定 义为虚拟防火墙地址;
[0077] 4.交换机switchl根据控制器指定的路径,将数据包Packet送达虚拟防火墙处,并 等待防火墙处理;
[0078] 5.防火墙根据控制器定义的防火墙规则进行匹配,若Packet不合法,防火墙将可 疑数据包丢弃;若Packet合法,防火墙通知控制器:Packet合法,控制器将数据包重新定义 到网络A的内网链路;
[0079] 6.控制器向交换机switchl下达传输命令,switchl将数据包转发至终端host3处。
[0080] (二)不同网络中,数据包的传输
[0081] 处于网络A中的终端host2向网络B的终端hosts发送数据包,防火墙限制数据流经 过程如下:
[0082] 1 .网络A的终端h 〇 s 12将网络B的终端h 〇 s 18地址作为目标地址,发送数据包 Packet0
[0083] 2.交换机switchl检测到链路中存在数据包,向控制器发送处理数据包请求。
[0084] 3.控制器策略应用相应请求,向交换机switchl下发流指令,将数据包目标地址定 义为虚拟防火墙地址;
[0085] 4.交换机swi tchl根据控制器指定的路径,将数据包Packet送达虚拟防火墙处,并 等待防火墙处理;
[0086] 5.防火墙根据控制器定义的防火墙规则进行匹配,若Packet不合法,防火墙将可 疑数据包丢弃;若Packet合法,防火墙通知控制器:Packet合法,控制器将数据包重新定义 到网络B的外网链路;
[0087] 6. Packe t通过外网链路传输,数据包达到网络B的防火墙处,并等待防火墙B处理;
[0088] 7.防火墙根据控制器定义的防火墙规则进行匹配,若Packet不合法,防火墙B将可 疑数据包丢弃;若Packet合法,防火墙通知控制器:Packet合法,控制器向防火墙下达命令, 将Packet重新定义到网络B的内网链路;
[0089] 8.控制器向交换机switch2下达传输命令,swicth2将数据包转发至终端host8。
[0090] 如图2所示,本发明实施例的基于Openf IOW的虚拟防火墙传输控制系统主要包括: 内网模块1、终端I -1、虚拟交换机1 -2、控制器2、防火墙3。
[0091 ]内网模块1,用于控制内网数据传输;
[0092] 终端1-1,与虚拟交换机1-2连接,是数据的发出端或接受端发出数据或者接受数 据;
[0093] 虚拟交换机1-2,用于实现数据包转发将接受的数据包通过指定的端口发出;
[0094] 控制器2,与内网模块1连接,用于根据数据包解析的结果和转发规则匹配以判定 对对应数据包的操作;
[0095] 防火墙3,与内网模块1和控制器2连接,用于包头解析,分离出IP地址,MAC地址,将 解析数据与防火墙定义的规则进行匹配。
[0096]内网模块1中的终端1-1通过虚拟交换机l_20penvSwitch互联,控制器2作为整个 SDN网络的控制器,防火墙3应用则通过接口 API调用,与控制器2进行交互;数据包通过包头 解析,分离出IP地址,MAC地址,连接类型为TCP或者UDP,端口号,将解析数据与防火墙3定义 的规则进行匹配,进而从网络层,传输层,物数据链路层实现虚拟防火墙。
[0097] 本发明的工作原理:
[0098]本发明的虚拟防火墙中,数据流中包头信息与防火墙规则进行匹配,防火墙调用 Floodlight模块,触发packet-in行为。通过检测packet-in行为,强制执行ACL JCL是一系 列的条件,这些条件允许或者拒绝将数据流通过防火墙。
[0099]虚拟防火墙规则通过其自身的REST API,按照创建时的优先级进行排序。数据包 会从最高的优先级与列表匹配,直到找出匹配规则或者耗尽列表。
[0100] 若找到匹配,该规则存储在IRoutingDecision对象中的操作就会传递到packet- in 处 ,这一操作会到达 Forwarding 模块 ,若操作为 ALLOW , 则Forwarding 执行普通的转发行 为,若操作为DENY,则Forwarding执行丢弃数据包行为。
[0101] 防火墙规则允许存在部分重叠,规则将会按照优先级进行裁决。防火墙规则按照 优先级排序与Openf Iowl .0标准中规定的packet-in中的头字段进行匹配。优先级按照降序 排列,最高的匹配将决定处理流的动作,动作分为允许与拒绝两种。
[0102] 防火墙编写
[0103] AddRuleUtility. java:对防火墙规则的读取与添加。
[0104] IpacketFilteringService · java:对防火墙接口的定义。
[0105] PacketFiltering. java:接口的实现。
[0106] PacketFilteringRule .Java:控制数据包功能的实现。
[0107] RuleWi IdcardsPair · java:数据包状态通配符。
[0108] Wi IdcardsPair:防火墙动作通配符。
[0109] 下面结合测试对本发明的应用原理作进一步的说明。
[0110] -.防火墙放置位置
[0111] 防火墙放置于多个子
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1