发明内容
针对传统路由器产品不支持实时调整路由和防火墙等的调整策略、及不支持同时进行二、三层转发等的问题,本发明提供一种软件定义路由器及基于该软件定义路由器的数据转发方法,支持依据安全态势对路由和防火墙的实时调整及二层、三层的同时转发,能够大幅提升路由器设备的数据传输性能,有效保障数据传输网络的安全。
按照本发明所提供的设计方案,一种软件定义路由器,用于内网和/或外网间数据在网络上的安全传输,包含:
远程控制器,所述远程控制器部署在远程服务器上,用于依据网络事件制定和调整控制策略,并通过安全隧道将存储有与设备列表对应的控制策略的策略集合下发至策略引擎,其中,控制策略至少包含:数据包的认证过滤策略,网络流量的监测控制策略,隧道层协议封装解封的隧道安全策略,及负载层数据加解密策略;
网络适配器,包含用于作为内网物理网卡的西向网络适配器和用于作为外网物理网卡的东向网络适配器,通过西向网络适配器和东向网络适配器来提供与内外网之间的数据通路;
交换机,包含与西向网络适配器连接的西向交换机和与东向网络适配器连接的东向交换机,西向交换机和东向交换机依据转发策略表将入栈数据包和转发策略表项提交至流处理单元,并针对流处理单元反馈的出栈数据包通过查找转发策略表并经由网络适配器提供的数据通路实现二层和/或三层转发,所述转发策略表中表项指针利用ID对和IP对作为索引来映射二层和/或三层转发所需参数的内存块地址;
策略引擎,用于动态加载策略集合,依据设备任务请求将策略集合中控制策略加载至交换机或流处理单元目标位置,并汇聚设备网络事件,将网络事件上报至远程控制器;
流处理单元,依据控制策略对入栈数据包进行流处理,将流处理后的数据包作为出栈数据包反馈至交换机,其中,流处理至少包含:对数据包的过滤和签名认证,及对数据包的加解密;
及设备管理器,用于从策略集合中读取设备列表并管理设备启停,同时依据设备任务请求为其分配运行资源、设备标识及访问接口。
作为本发明软件定义路由器,进一步地,隧道安全策略中,依据系统安全配置,生成策略引擎和远程控制器之间的安全策略,通过安全策略对策略引擎和远程控制器进行互相认证授权,通过安全关联建立两者之间的安全隧道,利用安全隧道从远程控制器上加载策略集合。
作为本发明软件定义路由器,进一步地,在西向交换机和西向网络适配器之间、及东向交换机和东向网络适配器之间均设置有用于创建接收队列、发送队列、接收处理线程和发送处理线程的XNET,其中,接收队列和发送队列用于交换机和网络适配器之间的数据包的入栈和出栈排队处理,接收处理线程用于将网络适配器抓取的数据包放入接收队列以进行入栈处理,发送处理线程用于将发送队列中出栈数据包通过网络适配器进行发送转发。
作为本发明软件定义路由器,进一步地,还包含:用于提供人机交互的管理工具箱,管理工具箱上设置有用于对设备和网络状态进行管理的图形管理界面,其中,利用图形管理界面对设备和网络状态进行管理的操作至少包含:用于软件定义路由器网络参数配置的配置操作、用于软件定义路由器状态启停的启停操作、用于软件定义路由器状态检查的状态检查操作及用于软件定义路由器日志分析的日志分析操作。
作为本发明软件定义路由器,进一步地,转发策略表项中设置转发标识,该标识由隧道两端的路由器的西向交换机和流处理单元使用,作为判断二层转发或三层转发的依据。对于西向入栈数据包,流处理单元根据转发策略表项中的转发标识来判定对入栈数据包执行二层转发或三层转发。对于西向出栈数据包,西向交换机根据转发策略表项中的转发标识来判定对出栈数据包进行二层转发或三层转发。
作为本发明软件定义路由器,进一步地,还包含:利用预设的流量管理策略对实时网络流量进行控制和协调的流量管理模块。
作为本发明软件定义路由器,进一步地,流量管理模块中的流量管理策略,利用预先设置的安全隧道优先级来控制对应安全隧道流量带宽,并依据预设带宽预警值,将安全隧道流量带宽超过该预警值的事件上报远程控制器,利用远程控制器调整发送端发送速率来协调安全隧道流量,其中,对安全隧道流量带宽的控制包含:对带宽的关闭、增加和恢复。
进一步地,本发明还提供一种软件定义路由数据转发方法,基于上述的软件定义路由器实现,包含如下内容:
将内网和/或外网中设置的各软件定义路由器与远程控制器建立安全连接,通过策略引擎从远程控制器上获取策略集合,软件定义路由器之间依据策略集合中隧道安全策略进行安全关联并建立安全隧道;
以缓冲区为载体从网络适配器抓取由源网络转发至目标网络的数据包并缓存,通知源网络交换机做入栈处理;
针对入栈处理数据包,源网络西向交换机查找转发策略表,将本地数据发给对应网络适配器,将远程数据包和查找匹配的对应策略表项传输至流处理单元;
流处理单元解析远程数据包和策略表项,依据转发标识对远程数据包进行二层转发或三层转发的流处理,若为二层转发,则将数据包设置为包含MAC头信息,若为三层转发,则将数据包设置为不包含MAC头信息,将二层转发或三层转发流处理后的数据包作为出栈数据包反馈至源网络东向交换机;
源网络东向交换机通过查找转发策略表,获取与目标网络对应的隧道信息,通过隧道将出栈数据包投递至目标网络,由目标网络路由器对出隧道的数据包做反向处理后转发至接收端。
作为本发明软件定义路由数据转发方法,进一步地,各软件定义路由器统一分配各自所辖网络的整体带宽,并依据预先设置的安全隧道优先级来控制对应安全隧道流量带宽,将安全隧道流量带宽超过预设带宽预警值的事件上报远程控制器,利用远程控制器调整发送端的发送速率来协调安全隧道流量,其中,对安全隧道流量带宽的控制包含:对带宽的关闭、增加和恢复。
作为本发明软件定义路由数据转发方法,进一步地,软件定义路由器与内网、外网及软件定义路由器之间通过物理网线或无线方式进行连接。
本发明的有益效果:
本发明将数据包在进入内核协议栈之前在网络适配器上以缓冲区为载体抓取到应用层的流量数据包,可以避免昂贵的操作(如skbuff处理),显著提高性能;通过策略引擎能够实时接收远程控制器的控制策略,能够在应用层实现轻量级协议栈,可利用该轻量级协议栈根据策略对转发数据进行分析、处理,有效提高网络系统的安全性;且在流处理单元设置同时支持二层和三层数据转发机制,通过解析数据包中MAC头来判断是否在同一个虚拟局域网,以实现数据包的二或三层数据转发,能够同时具备交换机和路由器的功能,具有较好的应用前景。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
本发明实施例,提供一种软件定义路由器,用于多个内网间的数据在外网上的数据传输和路由,包含:
远程控制器,所述远程控制器部署在远程服务器上,用于依据网络事件制定和调整控制策略,并通过安全隧道将存储有与设备列表对应的控制策略的策略集合下发至策略引擎,其中,控制策略至少包含:数据包的认证过滤策略,网络流量的监测控制策略,隧道层协议封装解封的隧道安全策略,及负载层数据加解密策略;
网络适配器,包含用于作为内网物理网卡的西向网络适配器和用于作为外网物理网卡的东向网络适配器,通过西向网络适配器和东向网络适配器来提供与内外网之间的数据通路;
交换机,包含与西向网络适配器连接的西向交换机和与东向网络适配器连接的东向交换机,西向交换机和东向交换机依据转发策略表将入栈数据包和转发策略表项提交至流处理单元,并针对流处理单元反馈的出栈数据包通过查找转发策略表并经由网络适配器提供的数据通路实现二层和/或三层转发,所述转发策略表中表项指针利用ID对和IP对作为索引来映射二层和/或三层转发所需参数的内存块地址;
策略引擎,用于动态加载策略集合,依据设备任务请求将策略集合中控制策略加载至交换机或流处理单元目标位置,并汇聚设备网络事件,将网络事件上报至远程控制器;
流处理单元,依据控制策略对入栈数据包进行流处理,将流处理后的数据包作为出栈数据包反馈至交换机,其中,流处理至少包含:对数据包的过滤和签名认证,及对数据包的加解密;
及设备管理器,用于从策略集合中读取设备列表并管理设备启停,同时依据设备任务请求为其分配运行资源、设备标识及访问接口。
针对传统路由器产品不支持实时调整路由和防火墙等的调整策略、及不支持同时进行二、三层转发等的问题,通过策略引擎能够实时接收远程控制器的控制策略,能够在应用层实现轻量级协议栈,可利用该轻量级协议栈根据策略对转发数据进行分析、处理,有效提高网络系统的安全性;且在流处理单元设置同时支持二层和三层数据转发机制,通过解析数据包中MAC头来判断是否在同一个虚拟局域网,以实现数据包的二或三层数据转发,能够同时具备交换机和路由器的功能,能够大幅提升路由器设备的数据传输性能,有效保障数据传输网络的安全。
作为本发明实施例中软件定义路由器,进一步地,隧道安全策略中,依据系统安全配置,生成策略引擎和远程控制器之间的安全策略,通过安全策略对策略引擎和远程控制器进行互相认证授权,通过安全关联建立两者之间的安全隧道,利用安全隧道从远程控制器上加载策略集合。进一步地,在西向交换机和西向网络适配器之间、及东向交换机和东向网络适配器之间均设置有用于创建接收队列、发送队列、接收处理线程和发送处理线程的XNET,其中,接收队列和发送队列用于交换机和网络适配器之间的数据包的入栈和出栈排队处理,接收处理线程用于将网络适配器抓取的数据包放入接收队列以进行入栈处理,发送处理线程用于将发送队列中出栈数据包通过网络适配器进行发送转发。进一步地,还包含:用于提供人机交互的管理工具箱,管理工具箱上设置有用于对设备和网络状态进行管理的图形管理界面,其中,利用图形管理界面对设备和网络状态进行管理的操作至少包含:用于软件定义路由器网络参数配置的配置操作、用于软件定义路由器状态启停的启停操作、用于软件定义路由器状态检查的状态检查操作及用于软件定义路由器日志分析的日志分析操作。进一步地,转发策略表项中设置转发标识,该标识由隧道两端的路由器的西向交换机和流处理单元使用,作为判断二层转发或三层转发的依据。对于西向入栈数据包,流处理单元根据转发策略表项中的转发标识来判定对入栈数据包执行二层转发或三层转发。对于西向出栈数据包,西向交换机根据转发策略表项中的转发标识来判定对出栈数据包进行二层转发或三层转发。
软件定义路由器(Software Defined Router,以下简称SDR)主要用于通过在两个或多个SDR间建立透明的安全传输隧道,将内部网络间的数据在公网上安全的转发。参见图1所示,软件路由器整体架构主要包含:西向网络适配器、东向网络适配器、东向XNET、西向交换机、东向交换机、管理工具箱、策略引擎、设备管理器和流处理单元。其中,西向网络通常代指内部网络,东向网络通常代指外部网络,如无特殊说明,可均按此理解。SDR通过与远程控制器建立安全隧道,实时接收远程控制策略,实现软件定义的路由器功能,其中,安全隧道通过安全策略来建立的,安全策略包括:认证算法类型、认证密钥、加解密算法类型、加解密密钥、对端IP地址、对端端口、本机IP地址、本机端口、对端ID、本机ID等信息,通过类似TLS协议的握手过程完成隧道的建立,之后的每包数据在发送时都通过加解密密钥加密,通过认证密钥生成认证信息;将认证信息和ID对按自定义隧道协议的格式封装在密文负载外层,再将IP对和端口对按IP协议格式封装在更外一层进行转发。远程控制器部署在远程服务器上,通过根据态势感知来根据需求分析定制化的网络事件或常见的网络事件,并生成相应的控制策略,提高网络系统安全性,通过SDR上的策略引擎下发到SDR上执行。例如:某些工业领域中,有些关键控制指令的下发有严格时间要求,在定制策略中加入指令间隔分析并上报,路由器在每次转发一条关键控制指令时记录时间,第二次转发时会计算时间间隔,间隔过小可能造成生产事故,此时路由器会丢弃或缓存包含指令的数据包并上报该次违法操作时间,远程控制器会根据当前条件指定策略(如缓存指令至大于时间间隔后再转发,或者丢弃指令并返回错误信息,或者删除该连接对应的转发策略表项即关闭该连接),将策略下发至路由器中。又例如:当路由器发现异常访问时(比如流量异常,大于预置阈值)上报该异常事件,远程控制器会指定相关策略,如限制流量或者关闭连接,并将控制策略下发到路由器中。或者IP/ID异常,IP对/ID对不在转发策略表中,可能是有攻击者尝试发送非法数据,路由器上报该事件,控制器可分析后,如果判定访问合法,则下发对应IP/ID对的新的策略表项允许访问,如果判定访问非法,可以下发过滤规则,隔离该IP/ID。
东/西向网络适配器,可为系统平台上部署的内、外网物理网卡,提供系统与外部网络间的数据通路。东/西向XNET为每个东/西向网络适配器创建一对接收、发送队列,并创建接收和发送两个处理线程。接收线程负责从各个网络适配器抓取数据包并放入对应的接收队列,然后通知交换机处理。发送线程负责将发送队列的数据包通过对应的网络适配器发送出去。东/西向交换机:作为二、三层交换机,对于出栈数据包,查找转发策略表(见表1),然后经由东/西向XNET进行快速转发。对于入栈数据包查找转发策略表,然后将策略表项与数据包一起提交至流处理单元,查表失败时根据当前控制策略进行处理,如丢弃该包或缓存该包后提交相关信息至策略引擎。其中,转发策略表使用同一张表,两种不同的索引,参见图3所示,东/西向交换机在查找转发策略表时,分别使用ID对和IP对(ID是指SDR的标识ID,IP是指SDR西向网络设备的IP地址)作为索引,所查得的表项指针指向同一块内存地址,该内存块中的内容包含了二、三层转发所需的所有参数和其他信息。管理工具箱可为管理工具的集合,为网络管理人员提供一组管理工具和图形化管理界面,网络管理员通过图形管理界面和工具接口,对SDR进行配置、启停、状态检查、日志分析等管理工作。策略引擎从远程控制器接收实时策略,将策略项加载到目标位置,管理内存中的策略集合,并汇聚下层设备产生的网络事件,上报至远程控制器,为远程控制器感知网络态势提供基础数据。策略引擎管理的策略集合是一块大的内存,内存中的策略是以表的形式组织,不同类型的策略插入不同的策略表中。比如有转发策略表、过滤策略表、解析策略表等,转发器和流处理单元依据策略表中的表项对数据进行转发和分析处理。策略引擎接收到一条合法策略后,会生成策略表项然后将其插入到对应的策略表中,且能够对所有策略表进行增、删、改、查操作,管理整个策略集合。
设备管理器,管理SDR中的其它所有软件设备,设备管理器从策略集合中读取SDR软件设备列表,按照策略要求负责这些设备的启停,为它们分配运行资源和设备标识,提供统一的设备访问接口。流处理单元可由单个或多个处理模块组成的功能集合,其功能大小由策略决定,可增减的功能包括数据包认证/过滤、隧道封装/解封、数据加密/解密、流量监测/控制等。认证可基于现有的常用国密/非国密非对称算法;数据加解密基于现有的常用国密/非国密对称算法。过滤可根据策略对IP、ID、端口、协议类型、定制协议的指定字段等过滤。流量监测控制通过隧道优先级机制和控制器协调机制实现。所有SDR可为网络系统提供流量控制功能,通过SDR统一分配各自所辖网络的整体带宽,依据安全隧道优先级策略,当安全隧道流量趋于饱和时,降低甚至关闭低优先级隧道的带宽,增加高优先级隧道的带宽。在高优先级隧道的流量下降后再逐步恢复低优先级隧道的带宽。同时实现了流量协调机制,当隧道的接收端带宽预警时,将向远程控制器上报该事件,远程控制器通过调整策略降低发送端的发送速率。当接收端带宽恢复时,通过远程控制器恢复发送端的发送速率,保证高性能数据转发的稳定性能。
工作流程可设计如下:通过管理工具箱选择启动SDR。SDR首先进行环境初始化,然后启动设备管理器。设备管理器按照启动策略表中的顺序依次启动设备。当策略引擎启动成功后,它将通过存储在系统中的安全配置与远程控制器相互认证授权,建立安全关联和安全隧道,然后通过安全隧道从远程加载策略集合,完成策略加载后,开启线程监听本地网络事件和远端的策略端口。东/西向XNET接收线程从东/西向网络适配器上以一段缓冲区为载体摘取一个数据包,将数据包缓存至接收队列并通知东/西向交换机做入栈处理。东/西向交换机查找转发策略表,将入栈数据包与策略表项一起提交至流处理单元。流处理单元依靠策略引擎提供的实时策略对数据包进行认证、过滤;对网络流量进行监测、控制;对隧道层协议进行封装、解封;对负载层数据进行加密、解密等处理,然后将数据提交至东/西向交换机做出栈处理。东/西向交换机查找转发策略表,按照查表得到的策略将数据包放入对应网络适配器的发送队列。最终,封装好的完整数据由东/西向XNET的发送线程通过东、西向网络适配器发出。
进一步地,本发明还提供一种软件定义路由数据转发方法,基于上述的软件定义路由器实现,包含如下内容:
将内网和/或外网中设置的各软件定义路由器与远程控制器建立安全连接,通过策略引擎从远程控制器上获取策略集合,软件定义路由器之间依据策略集合中隧道安全策略进行安全关联并建立安全隧道;
网络适配器以缓冲区为载体抓取由源网络转发至目标网络的数据包并缓存,通知源网络交换机做入栈处理;
针对入栈处理数据包,源网络交换机查找转发策略表,将入栈数据包和查找匹配的对应策略表项传输至流处理单元;
流处理单元解析入栈数据包和策略表项,若解析处理数据包含MAC头信息,则源网络和目标网络为同一个虚拟局域网,依据控制策略对入栈数据包进行二层转发的流处理,若解析处理数据不包含MAC头信息,则源网络和目标网络为不同虚拟局域网,依据控制策略对入栈数据包进行三层转发的流处理,并将二层转发或三层转发流处理后的数据包作为出栈数据包反馈至源网络交换机;
源网络交换机通过查找转发策略表,获取与出栈数据包对应的目标网络,通过二层转发或三层转发将出栈数据包发往目标网络接收端。
参见图2所示,在公网上的三个内部网络之间数据转发通路实现过程中,通过SDR内部流处理单元配合策略引擎提供的实时策略,对数据包进行分析、处理,除转发功能外还同时具备防火墙和堡垒机的功能,提高了所在网络系统的安全性。内部网络1通过物理网线或无线方式连接至SDR1。SDR1通过物理网线或无线方式连接至外部网络。内部网络2、SDR2和外部网络的连接同上。内部网络3、SDR3和外部网络的连接同上。内部网络1和内部网络3配置为相同网络(VLAN),网络地址段为192.168.1.0/24。内部网络2的网络地址段配置为192.168.2.0/24。远程控制器通过物理网线或无线方式连接至外部网络。该三个内部网络数据转发的工作流程可描述如下:
所有SDR与远程控制器建立安全连接,并通过策略引擎从远程控制器获取控制策略。所有涉及策略的数据包,须通过安全连接传输,每条策略的下发、执行都会形成审计信息。SDR1和SDR2之间、SDR1和SDR3之间通过从远程控制器获得的隧道安全策略(包括安全参数、网络参数、控制信息等)分别建立一条安全隧道。
内部网络1发往内部网络2的数据包在SDR1西向交换机查找转发策略表(以下简称表)后送往流处理单元,流处理单元根据策略对数据进行三层处理(处理数据不包括mac头),然后通过东向交换机查表后送入通往SDR2的安全隧道。SDR2东向交换机收到该数据包后经过查表将数据提交至流处理单元,流处理单元根据策略对数据进行处理后转交给西向交换机,西向交换机查表后通过三层转发将数据发往内部网络2的接收端。反向数据流程同上。三层处理中,流处理单元会把数据包中的MAC首部去掉,从IP首部开始对数据进行加密,然后封装安全协议(添加认证信息和ID对),再封装隧道IP首部,然后发送;对端收到后,通过安全协议的ID对查表后,通过表项中安全参数认证解密,通过标识判定解密后的是三层数据包,没有MAC首部,然后查看表项中网络参数,有MAC信息就使用该信息封装MAC首部,没有就通过ARP获取后封装MAC首部,并保存MAC信息到该转发表项中,以便下次再用不需要再发ARP请求。这种发送方去掉二层协议的MAC首部,接收方重新封装。
由于内部网络1和内部网络3属于同一个VLAN,根据策略内部网络1的ARP数据包能够通过安全隧道发往内部网络3,因此内部网络1的发送端能够获取内部网络3的接收端的MAC地址。内部网络1发往内部网络3的数据包在SDR1西向交换机查表后送往流处理单元,流处理单元根据策略对数据进行二层处理(处理数据包括mac头),然后通过东向交换机查表后送入通往SDR3的安全隧道。SDR3东向交换机收到该数据包后经过查表将数据提交至流处理单元,流处理单元根据策略对数据进行处理后转交给西向交换机,西向交换机查表后通过二层转发将数据发往内部网络3的接收端。反向数据流程同上。二层处理中,如果发送方包含了MAC,接收方流处理单元无需重新封装可以直接转发。
通常普通路由器工作在三层,它需要路由表(三层)和ARP缓存表(二层)两个表,交换机工作在二层,它需要MAC地址表(二层)。本案实施例方案中,利用转发策略表合并二层转发和三层转发的表项,采用转发策略表中的转发标识来获取三层路由信息和二层MAC地址信息。三层转发时需要查询路由表,获取下一跳IP地址,根据IP地址通过ARP请求获取MAC地址(并保存在表中下次直接使用),封装MAC首部,然后从表项中的端口发送出去。二层转发时直接根据表项中的端口发送出去。
所有通过SDR的数据包根据策略由流处理单元进行过滤、签名/认证、加密/解密等处理,更进一步,根据控制策略可以支持对私有协议的处理,提高控制粒度。所有SDR可通过实时上报网络中的异常事件,并定期上报自身运行状态,能够使远程控制器实时掌握网络态势,动态调整网络策略,以进一步提高网络系统的安全性。且所有SDR可均为网络系统提供流量控制功能,通过SDR统一分配各自所辖网络的整体带宽,依据安全隧道优先级策略,当安全隧道流量趋于饱和时,降低甚至关闭低优先级隧道的带宽,增加高优先级隧道的带宽。在高优先级隧道的流量下降后再逐步恢复低优先级隧道的带宽。同时实现了流量协调机制,当隧道的接收端带宽预警时,将向远程控制器上报该事件,远程控制器通过调整策略降低发送端的发送速率。当接收端带宽恢复时,通过远程控制器恢复发送端的发送速率,保证高性能数据转发的稳定性能。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
基于上述的方法和/或系统,本发明实施例还提供一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的方法。
基于上述的方法和/或系统,本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的方法。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。