基于SDN的网络域隔离装置及方法与流程

文档序号:11843006阅读:398来源:国知局
基于SDN的网络域隔离装置及方法与流程

本发明涉及网络通信领域,具体而言,一种基于SDN的网络域隔离装置及方法。



背景技术:

网络域隔离指的是将两个或两个以上的计算机或网络划分为独立区域,并可以将有害的、不同安全级别、不同类型、不同用途的网络域隔离开,以保障数据信息在可信网络内进行安全交互和资源共享,以及控制广播报文的广播范围。目前网络域的隔离方法主要包括:访问控制技术,访问控制技术一般是应用在路由器或三层交换机接口的访问控制指令,这些指令用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特定指示条件来决定;虚拟局域网(Virtual Local Area Network,VLAN)技术,虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。然目前的网络域隔离方法存在配置复杂、不够灵活的缺点,即上面两种技术如果实现一般的网络隔离功能,要配合使用,要在接入设备和汇聚设备(一般是三层交换机)上分别进行配置,配置复杂、易错,或者遇到特殊的场景,比如相同VLAN的网络之间也需要隔离的情况、相同的网段之间进行隔离的情况等等,用上述方法难以实现。



技术实现要素:

有鉴于此,本发明的目的是提供一种基于SDN(Software Defined Network,软件定义网络)的网络域隔离装置及方法,使得网络隔离更灵活、高效、安全。

本发明实施方式中提供的一种基于SDN的网络域隔离装置,应用于SDN控制器,所述SDN控制器连接SDN交换机,且包括MAC地址与端口关系表,包括隔离域管理单元、报文接收单元、数据处理单元,隔离域管理单元根据用户需求建立网络域列表,所述网络域列表包括网络中所述SDN交换机的端口,并将所述SDN交换机的端口划分为若干个网络域;报文接收单元接收所述SDN交换机接收并转发的数据报文,并记录所述数据报文中的目的MAC地址以及所述SDN交换机接收所述数据报文的端口;数据处理单元查找所述MAC地址与端口关系表是否存在匹配所述目的MAC地址的端口;若存在,则判断所述匹配所述目的MAC地址的端口与所述SDN交换机接收所述数据报文的端口是否存在于所述网络域列表中的同一个所述网络域内;若是,则依据所述匹配所述目的MAC地址的端口生成并下发转发流表。

优选地,所述数据处理单元还用于在所述MAC地址与端口关系表不存在所述匹配所述目的MAC地址的端口时,依据所述接收所述数据报文的端口确定所述网络域,进而针对确定的所述网络域中除所述接收所述数据报文的端口之外的其他端口进行广播。

优选地,所述数据处理单元还用于判断所述匹配所述目的MAC地址的端口与所述接收所述数据报文的端口是否位于同一SDN交换机;若是,则生成并下发所述转发流表;若不是,则进一步判断所述匹配所述目的MAC地址的端口与所述接收所述数据报文的端口之间是否具有可达路径;若具有可达路径,则依生成并下发所述转发流表;若不具有可达路径,则控制接收数据报文的SDN交换机丢弃该数据报文。

优选地,所述网络域列表中还可以包括关联主机的MAC地址。

优选地,所述网络域列表还可以根据用户需求进行查看、更新、删除。

本发明又一实施方式中提供的一种基于SDN的网络域隔离方法,应用于SDN控制器,所述SDN控制器连接SDN交换机,且包括MAC地址与端口关系表,包括:根据用户需求建立网络域列表,所述网络域列表包括网络中所述SDN交换机的端口,并将所述SDN交换机的端口划分为若干个网络域;接收所述SDN交换机接收并转发的数据报文,并记录所述数据报文中的目的MAC地址以及所述SDN交换机接收所述数据报文的端口;查找所述MAC地址与端口关系表是否存在匹配所述目的MAC地址的端口;若存在,则判断所述匹配所述目的MAC地址的端口与所述SDN交换机接收所述数据报文的端口是否存在于所述网络域列表中的同一个所述网络域内;若是,则依据所述匹配所述目的MAC地址的端口生成并下发转发流表。

优选地,若所述MAC地址与端口关系表不存在所述匹配所述目的MAC地址的端口,则依据所述接收所述数据报文的端口确定所述网络域,进而针对确定的所述网络域中除所述接收所述数据报文的端口之外的其他端口进行广播。

优选地,所述依据所述匹配所述目的MAC地址的端口生成并下发转发流表的步骤还包括:判断所述匹配所述目的MAC地址的端口与所述接收所述数据报文的端口是否位于同一SDN交换机;若是,则生成并下发所述转发流表;若不是,则进一步判断所述匹配所述目的MAC地址的端口与所述接收所述数据报文的端口之间是否具有可达路径;若具有可达路径,则依生成并下发所述转发流表;若不具有可达路径,则控制接收数据报文的SDN交换机丢弃该数据报文。

优选地,所述网络域列表中还可以包括关联主机的MAC地址。

优选地,所述网络域列表还可以根据用户需求进行查看、更新、删除。

上述基于SDN的网络域隔离方法,自由灵活的实现网络的隔离,进而在不依赖传统的VLAN和访问控制的功能的情况下有效控制了网络报文广播的范围,同时一定程度的提高了网络的安全性。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1为本发明基于SDN的网络域隔离装置10一实施方式的应用环境图。

图2为本发明基于SDN的网络域隔离装置10一实施方式的功能模块图。

图3为本发明基于SDN的网络域隔离装置10又一实施方式的功能模块图。

图4为本发明基于SDN的网络域隔离方法一实施方式的流程图。主要元件符号说明

基于SDN的网络域隔离装置 10

SDN控制器 1

SDN交换机 2

隔离域管理单元 100

报文接收单元 102

数据处理单元 104

存储器 106

处理器 108

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明基于SDN的网络域隔离装置10一实施方式的应用环境图。在图1中,SDN控制器1连接若干SDN交换机2,SDN交换机2连接若干主机或者子网。在本实施方式中,若干主机或子网可以根据人为需要划分为多个域,进而实现网络域隔离并分别管理各个网络域。

图2为本发明基于SDN的网络域隔离装置10一实施方式的功能模块图。在图2中,基于SDN的网络域隔离装置10应用于SDN控制器1,其中包括隔离域管理单元100、报文接收单元102、数据处理单元104。

隔离域管理单元100用于根据用户需求建立网络域列表。所谓网络域指的是针对若干主机或子网进行人为划分的区域,在本实施方式中,若干主机或者子网可以利用SDN交换机2上的端口进行表示,进而通过网络中SDN交换机2上的端口进行人为的划分为若干个网络域,具体示例如下表-1:

表-1

其中将SDN交换机2(SW1、SW2、SW3)的端口g0/1,g0/2,g0/3划分为域A,将SDN交换机2(SW1、SW2)的端口g0/4,g0/5,g0/6划分为域B,将SDN交换机2(SW1)的端口g0/7,g0/8,g0/9划分为域C。另外,在本实施方式中,SDN控制器1存储有MAC地址与端口关系表(MAC-PORT表),该关系表存储SDN控制器学习到的主机的MAC地址与其对应SDN交换机2的端口之间的对应关系,这个表格中的信息可以根据报文的接收进行更新,表格中的条目也可以根据用户的设置周期进行老化,老化后的条目立即删除。

当然,在其他实施方式中,对隔离域的描述不仅可以如上所述通过交换机端口描述,还可以在此基础上,增加主机MAC的表征量。表-2为针对表1中域A增加主机MAC的表征量的实例,其中针对表-1中域B、域C增加主机MAC的说明也如同表-2中域A所示,在此便不再举例说明。

表-2

在上述表-2的示例说明中,针对域A的表征不仅可以用表-1中的“交换机+端口”来表示,还可以通过“交换机+MAC”、“MAC”、“交换机+端口+MAC”的方式进行表示。如此,便可以在与传统的隔离手段互不干扰的情况下实现隔离,也就是在本隔离方案中还可以配置VLAN和访问控制等功能,同时也可以方法还可以实现更复杂的隔离场景需求,具体如下:1.实现更加细粒度的隔离——基于“交换机+端口+MAC”的隔离;2.在虚拟化的情况下实现特殊场景的隔离,即基于“MAC”的隔离就可以在虚拟机漂移到另外一个物理位置的时候自动的实现其隔离配置的跟随。

另外,在其他实施方式中,上述隔离域管理单元100也可以作为一个独立的模块,使用在SDN控制器1之上的应用层面,只需要其满足与基于SDN的网络域隔离装置10的其他功能模块的信息沟通的功能和性能需求亦可达到上述实施方式中的技术效果。

报文接收单元102接收所述SDN交换机2转发的数据报文,并记录数据报文中的目的MAC地址以及所述SDN交换机2接收所述数据报文的端口(下文称之为输入端口)。在本实施方式中,当某一SDN交换机2接收到某一主机发送的数据报文且该SDN交换机2上无相应的转发流表时,将其转发至SDN控制器1由报文接收单元102进行接收,并记录数据报文中的目的MAC地址以及SDN交换机2的输入端口。

数据处理单元104查找MAC地址与端口关系表是否存在匹配目的MAC地址的端口(下文称之为输出端口);若存在,则判断输出端口与输入端口是否存在于网络域列表中的同一个网络域内;若是,则判断输出端口与输入端口是否位于同一SDN交换机;若是,则依据输出端口生成并下发转发流表。

在本实施方式中,若在MAC地址与端口关系表中存在匹配目的MAC地址的端口,且根据网络域列表判断出该输出端口与接收数据报文的输入端口位于同一个网络域,但该输出端口与输出端口并不位于同一交换机的情况时,数据处理单元104需要判断输入端口与输出端口的路径是否可达,若可达,则依据确定的输出端口生成并下发转发流表给相关的SDN交换机2;若不可达,则控制接收数据报文的SDN交换机2丢弃该数据报文。

在本实施方式中,若在MAC地址与端口关系表中存在匹配目的MAC地址的端口,且根据网络域列表判断出该输出端口与接收数据报文的输入端口并不位于同一个网络域,数据处理单元104则控制接收数据报文的SDN交换机2丢弃该数据报文。

在其他实施方式中,若在MAC地址与端口关系表中不存在匹配目的MAC地址的端口,数据处理模块104则依据记录的输入端口查询网络域列表,判断该输入端口处于哪个网络域,若确定网络域后,数据处理单元104控制数据报文在确定的网络域中除输入端口之外的端口进行广播,实现数据报文的转发;若无法判断输入端口处于哪个网络域,则控制接收数据报文的SDN交换机2丢弃该数据报文。在该实施方式中,若进行广播后收到了目标主机的响应报文时,此时数据处理模块104还可以根据接收的响应报文自动更新上述MAC地址与端口关系表(MAC-PORT表)。

在上述实施方式中,数据处理单元104还控制接收转发流表的SDN交换机2存储和更新所接收的转发流表,进而再次收到数据报文的时候,判断是否存在匹配接收的数据报文的转发流表,若存在,则直接进行数据报文的转发,进而提高数据报文的转发效率。

在上述实施方式中,隔离域管理单元100还可以根据用户需求对隔离域进行查看、更新、删除,进而实现隔离域的灵活管理。

图3为本发明基于SDN的网络域隔离装置10又一实施方式的功能模块图。在图3中,基于SDN的网络域隔离装置10包括隔离域管理单元100、报文接收单元102、数据处理单元104、存储器106和处理器108,其中隔离域管理单元100、报文接收单元102、数据处理单元104以功能模块的形式存储于存储器106中,进而由处理器108执行以实现上述功能模块的功能。

图4为本发明基于SDN的网络域隔离方法一实施方式的流程图,该方法应用于图2或图3中的基于SDN的网络域隔离装置10。基于SDN的网路域隔离装置10可存在于SDN控制器1中。

在步骤S400,隔离域管理单元100用于根据用户需求建立网络域列表。所谓网络域指的是针对若干主机或子网进行人为划分的区域,在本实施方式中,若干主机或者子网可以利用SDN交换机2上的端口进行表征,进而通过网络中SDN交换机2上的端口进行人为的划分,而网络域列表的具体划分如上表-1所述。另外,在本实施方式中,SDN控制器1存储有MAC地址与端口关系表(MAC-PORT表),该关系表存储有SDN控制器学习到的MAC地址与其对应SDN交换机2的端口之间的对应关系,这个表格中的信息可以根据报文的接收进行更新,表格中的条目也可以根据可设置周期进行老化,老化后的条目立即删除。

当然,在其他实施方式中,对隔离域的描述不仅可以如上所述通过SDN交换机2的端口表征,还可以在此基础上,增加主机MAC地址的表征量,具体参见上文针对表-2的叙述。

另外,在其他实施方式中,上述隔离域管理单元100也作为一个独立的模块,集成在SDN控制器1之上的应用层面,只需要其满足与基于SDN的网络域隔离装置10的其他功能模块的信息沟通的功能和性能需求亦可达到上述实施方式中的技术效果。

在步骤S402,报文接收单元102接收所述SDN交换机2转发的数据报文,并记录数据报文中的目的MAC地址以及SDN交换机2接收数据报文的端口(下文称之为输入端口)。在本实施方式中,当某一SDN交换机2接收到某一主机发送的数据报文,将其转发至SDN控制器1由报文接收单元102进行接收,并记录数据报文中的目的MAC地址以及接收该数据报文的SDN交换机2的输入端口。

在步骤S404,数据处理单元104查找MAC地址与端口关系表是否存在匹配目的MAC地址的端口(下文称之为输出端口)。

在步骤S406,数据处理单元104在MAC地址与端口关系表存在匹配目的MAC地址的端口时,判断输出端口与SDN交换机2接收数据报文的输入端口是否位于网络域列表中的同一个网络域中。

在步骤S408,数据处理单元104在输出端口与SDN交换机2接收数据报文的输入端口位于网络域列表中的同一个网络域时,判断输出端口与交换机接收数据报文的输入端口是否位于同一SDN交换机。

在步骤S410,数据处理单元104在输出端口与交换机接收数据报文的输入端口位于同一SDN交换机时,依据输出端口生成并下发转发流表。

在步骤S412,数据处理单元104在输出端口与交换机接收数据报文的输入端口不是位于同一SDN交换机,进一步判断接收数据报文的输入端口与确定的输出端口之间是否有可达路径。

在步骤S414,数据处理单元104在判断接收数据报文的输入端口与确定的输出端口之间没有路径可达时,则控制SDN交换机2丢弃上述数据报文。若数据处理单元104判断接收数据报文的输入端口与确定的输出端口之间有路径可达,则回到步骤S410,依据输出端口生成并下发转发流表。

另外,在S406中数据处理单元104判断出输出端口与SDN交换机2接收数据报文的输入端口不位于网络域列表中的同一个网络域中,也按照步骤S414,控制接收数据报文的SDN交换机2丢弃该数据报文。

在步骤S416,若数据处理单元104查找MAC地址与端口关系表不存在匹配目的MAC地址的端口,数据处理模块104则依据记录的输入端口查询网络域列表,判断该输入端口处于哪个网络域,确定网络域后,数据处理单元104控制数据报文在确定的网络域中除输入端口之外的端口中进行广播,实现数据报文的转发。

当然,在本实施方式中,数据处理模块104若无法依据网络域列表判断输入端口处于哪个网络域,则会根据设置控制接收数据报文的SDN交换机2丢弃该数据报文或在公共的网络域内进行广播。

在上述实施方式的所述方法中,数据处理单元104还控制接收转发流表的SDN交换机2存储和更新所接收的转发流表,进而再次收到数据报文的时候,判断是否存在匹配接收的数据报文的转发流表,进而提高数据报文的转发效率。

在上述实施方式的所述方法中,隔离域管理单元100还可以根据用户需求对隔离域进行查看、更新、删除,进而实现隔离域的灵活管理。

在上述事实方式的所述方法中,隔离与管理单端100还可以根据用户的需求规定MAC地址的合法性和端口归属,依据此合法性规则,确定MAC-PORT表以及网络域列表如表-1、表-2中对应关系的合法性,以使得自学习功能和用户输入的对应关系具有一定的安全的保障。

通过执行上述基于SDN的网络域隔离方法,自由灵活的实现网络的隔离,进而在不依赖传统的VLAN和访问控制的功能的情况下有效控制了网络报文广播的范围,一定程度的提高了网络的安全性。同时,本方法可以实现更复杂的隔离场景需求,例如实现更加细粒度的隔离——基于某个端口+MAC的隔离;再例如需要虚拟化的情况下实现特殊场景的隔离,即基于主机MAC的隔离就可以在虚拟机迁移到另外一个物理位置的时候自动的实现其隔离配置的跟随。

需要说明的是,上文所述实施方式,并不构成对发明保护范围的限定。任何在本发明的精神和原则内所作的修改,等同替换和改进等,均应包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1