基于SDN的IPv4及IPv6的管理系统及方法与流程

    专利2022-07-07  206


    本发明涉及sdn技术领域,具体涉及一种基于sdn的ipv4及ipv6的管理系统及方法。



    背景技术:

    进入21世纪以来,移动互联网以及物联网等技术的飞速发展急速加剧了ip地址的消耗。国际互联网名称和编号分配公司icann(theinternetcorporationforassignednamesandnumber)宣布已经用完了全部的ipv4地址。网络由ipv4体系向ipv6体系发展成为了不可阻挡的趋势。

    但是现网当中绝大部分网络都是基于ipv4体系的,为了保证业务的不中断,如何使ipv4平滑地向ipv6过渡成为近年来的研究热点。目前ipv4向ipv6过渡的技术分为双协议栈技术,隧道技术,协议转换技术。随着新型网络体系sdn(softwaredefinenetwork)以及其南向协议openflow的发展,sdn可以同时管理ipv4与ipv6主机。这就为ipv4向ipv6过渡提供了新的可实施方案。但是当前sdn体系下ipv4向ipv6过渡的技术仍然存在缺陷,还存在较大的发展空间。

    如公开号为cn104135446a公开了一种基于sdn实现ipv4向ipv6过渡的系统及方法,但是其存在下述的缺陷,其ipv6头是在交换机端实现的,ipv6overipv4隧道是静态建立的,当网络发生变化的时候,需要重新拆除和建立。而且隧道拆除和建立的配置需要涉及到整个转发节点,配置复杂而且繁琐。



    技术实现要素:

    本发明的目的在于提供一种基于sdn的ipv4及ipv6的管理系统及方法,将sdn网络作为一个中转,将收到的外部路由信息均转化为openflow流表,从而实现异构网络的连接与管理。

    为实现上述目的,本发明的技术方案是:一种基于sdn的ipv4及ipv6的管理系统,包括sdn控制器和sdn交换机;sdn控制器包括openflow-suit模块、主动路由模块、被动路由模块、意图网络模块;其中,

    所述openflow-suit模块用于实现sdn控制器与sdn交换机的通信及sdn控制器向sdn交换机的流表下发;

    所述主动路由模块用于实现sdn控制器处理穿越sdn区域的数据流;

    所述被动路由模块用于实现sdn控制器处理包括sdn内部网络的流量、外部网络访问sdn内部网络的流量;

    所述意图网络模块用于实现sdn控制器生成流表并且对流表进行管理。

    本发明还提供了一种基于上述所述系统的基于sdn的ipv4及ipv6的管理方法,包括如下步骤:

    步骤1、网络初始化阶段,sdn控制器通过openflow协议与sdn交换机进行通信,并进行openflow版本的协商;此外,sdn控制器还会获取sdn交换机关于性能、功能相关的信息;

    步骤2、sdn交换机通过周期性发送lldp报文来获取全局的网路拓扑信息;

    步骤3、主动路由模块从network-cfg.json文件当中获取bgp-speaker以及与sdn交换机相连的主机的信息;

    步骤4、主动路由模块根据从步骤2搜集到的信息,生成路由意图,并将相关意图上传给意图网络模块;

    步骤5、意图网络模块收到意图后会生成对应的流表,下发至对应的sdn交换机当中;

    步骤6、sdn网络当中的bgp-speaker跟外部网络的bgp-speaker进行路由信息交互;

    步骤7、sdn网络当中的bgp-speaker将搜集来的路由信息交给sdn控制器;

    步骤8、主动路由模块根据sdn控制器收到的路由信息生成相应流表,并且将流表下发至对应的sdn交换机当中;

    步骤9、sdn交换机上传不能处理的数据包给sdn控制器;

    步骤10、被动路由模块对sdn控制器收到的数据包进行分析;如果数据包是邻居包,转到步骤11,否则转到步骤12;

    步骤11、被动路由模块提取邻居包请求的网关信息,并与network-cfg.json文当中的相关信息进行匹配;如果一致,则构造对应邻居回复包发送回对应主机,否则不对该数据包进行处理;

    步骤12、被动路由模块提取数据包当中的目的ip跟源ip信息,根据提取到的信息对该数据包的流量走向进行分析;若为可处理的数据,转到步骤13,否则丢弃该数据包;

    步骤13、被动路由模块根据数据包的流量走向信息的不同,生成不同的路由意图给意图网络模块;

    步骤14、意图网络模块生成对应的流表,并将流表下发至对应的sdn交换机当中;

    步骤15、被动路由模块根据步骤9收到的数据包构造一个回应包,发送给源主机。

    在本发明一实施例中,所述步骤3的network-cfg.json文件在onos启动时加载,其中记录有onos的各个模块,包括:dhcp模块、主动路由模块、被动路由模块,以及于与sdn交换机相连的主机的信息。

    在本发明一实施例中,所述步骤5的流表是sdn网络内数据包转发的规则,其包含的关键信息有匹配域以及执行动作,匹配域根据openflow版本的不同有所差异,但是都包含有源ip、目的ip、端口号、vlan_id的信息。

    在本发明一实施例中,所述步骤6的bgp-speaker负责传输当前bgp-speaker所在的as中的路由信息,并且从其他bgp-speaker中学习到其他as的路由信息。

    在本发明一实施例中,所述步骤9的sdn交换机不能处理的数据包包括arp包、ip包、dhcp包。

    在本发明一实施例中,所述步骤10的邻居包包括arp报文以及icmp6当中类型值为135、136的数据包。

    在本发明一实施例中,所述步骤11的网关是虚拟网关,搭建在sdn控制器当中,并且相关的信息记录在network-cfg.json文件当中。

    在本发明一实施例中,所述步骤12的流量走向分为三种,一是sdn内部网络的流量,二是外部网络访问sdn网络的流量,三是sdn网络访问外部网络的流量。

    在本发明一实施例中,所述网络意图模块可把传统网络当中的二层转发表或者三层路由表转发成为openflow流表,并且在多个sdn控制器实例当中维护这些流表信息。

    相较于现有技术,本发明具有以下有益效果:

    1.本发明使用openflow协议作为sdn网络当中的南向协议,可以实现同时管理ipv4主机跟ipv6主机。并且无须在sdn交换机上进行任何策略配置,所有策略均在sdn控制器上实现,网络运维简单。

    2.本发明在跟传统网络进行对接的时候,仅仅需要在sdn控制器上进行简单的配置,然后在sdn网络当中部署一台主机作为bgp-speaker即可。对于传统网络而言,仅仅需要对接设备上进行非常简单的bgp邻居配置,对网络的改动非常少。

    3.与公开号为cn106656720a中国专利文件相比,本申请所具备的特别的效果是在sdn网络当中使用openflow流表替代传统网络的路由表,sdn交换机不需要对数据包进行添加ipv6头部,剥离ipv6头部的操作。直接根据openflow流表对命中匹配域数据流进行相应的操作。

    4.本发明中的openflow流表均由意图网络模块进行管理,其余模块只需要提出意图即可,这样做易于在多个控制器实例当中进行流表的维护管理。

    附图说明

    图1为本发明基于sdn的ipv4及ipv6的管理方法和系统的总流程图;

    图2为本发明基于sdn的ipv4及ipv6的管理方法和系统的主动路由模块处理流程图;

    图3为本发明基于sdn的ipv4及ipv6的管理方法和系统的被动路由模块处理流程图;

    图4为本发明基于sdn的ipv4及ipv6的管理方法和系统的openflow流表格式图;

    图5为本发明基于sdn的ipv4及ipv6的管理方法和系统的测试示意图。

    具体实施方式

    下面结合附图,对本发明的技术方案进行具体说明。

    如图1所示,本发明提供了一种基于sdn的ipv4及ipv6的管理系统,包括sdn控制器和sdn交换机;sdn控制器包括openflow-suit模块、主动路由模块、被动路由模块、意图网络模块;其中,

    所述openflow-suit模块用于实现sdn控制器与sdn交换机的通信及sdn控制器向sdn交换机的流表下发;

    所述主动路由模块用于实现sdn控制器处理穿越sdn区域的数据流;

    所述被动路由模块用于实现sdn控制器处理包括sdn内部网络的流量、外部网络访问sdn内部网络的流量;

    所述意图网络模块用于实现sdn控制器生成流表并且对流表进行管理。

    如图2-4所示,本发明还提供了一种基于上述所述系统的基于sdn的ipv4及ipv6的管理方法,包括如下步骤:

    步骤1、网络初始化阶段,sdn控制器通过openflow协议与sdn交换机进行通信,并进行openflow版本的协商;此外,sdn控制器还会获取sdn交换机关于性能、功能相关的信息;

    步骤2、sdn交换机通过周期性发送lldp报文来获取全局的网路拓扑信息;

    步骤3、主动路由模块从network-cfg.json文件当中获取bgp-speaker以及与sdn交换机相连的主机的信息;

    步骤4、主动路由模块根据从步骤2搜集到的信息,生成路由意图,并将相关意图上传给意图网络模块;

    步骤5、意图网络模块收到意图后会生成对应的流表,下发至对应的sdn交换机当中;

    步骤6、sdn网络当中的bgp-speaker跟外部网络的bgp-speaker进行路由信息交互;

    步骤7、sdn网络当中的bgp-speaker将搜集来的路由信息交给sdn控制器;

    步骤8、主动路由模块根据sdn控制器收到的路由信息生成相应流表,并且将流表下发至对应的sdn交换机当中;

    步骤9、sdn交换机上传不能处理的数据包给sdn控制器;

    步骤10、被动路由模块对sdn控制器收到的数据包进行分析;如果数据包是邻居包,转到步骤11,否则转到步骤12;

    步骤11、被动路由模块提取邻居包请求的网关信息,并与network-cfg.json文当中的相关信息进行匹配;如果一致,则构造对应邻居回复包发送回对应主机,否则不对该数据包进行处理;

    步骤12、被动路由模块提取数据包当中的目的ip跟源ip信息,根据提取到的信息对该数据包的流量走向进行分析;若为可处理的数据,转到步骤13,否则丢弃该数据包;

    步骤13、被动路由模块根据数据包的流量走向信息的不同,生成不同的路由意图给意图网络模块;

    步骤14、意图网络模块生成对应的流表,并将流表下发至对应的sdn交换机当中;

    步骤15、被动路由模块根据步骤9收到的数据包构造一个回应包,发送给源主机。

    以下为本发明的具体实施例。

    实施例1

    参照图5,本例搭建了一个异构的网络,其中sdn负责管理内部的ipv6主机以及跟连接外部的ipv4网络。外部网络通过bgp协议与sdn网络进行对接。其中r1,r2,r3,r4是外部网络的边界路由,但是在sdn网络当中则被sdn控制器视为普通主机。现以ipv4主机访问ipv4主机为例,简要描述其通信流程:

    1、在sdn控制器当中激活openflow-suit模块,主动路由模块,网络意图模块。

    2.、sdn交换机通过tcp连接与sdn控制器建立连接,商量好openflow协议的版本。

    3、sdn控制器通过openflow报文获取到sdn交换机的性能,支持的动作及其系统参数等信息。

    4、sdn控制器下发lldp报文探测当前网络的情况,并将其以图的形式保存起来。

    5、主动路由模块读取network-cfg.json文件获取到sdn网络的bgp-speaker的位置信息,并生成各主机与bgp-speaker的路由意图,然后将各个意图上传至意图网络模块。

    6、意图网络模块处理这些网络意图,并且生成对应流表下发到对应的sdn交换机当中。

    7、sdn网络当中的bgp-speaker(bgp)与外部的bgp-speaker(r1、r2、r3、r4)进行通信,并学习到外部网络的路由信息。

    8、sdn网络当中的bgp-speaker(bgp)将学习到的路由信息上传给sdn控制器。

    9、意图网络模块将收到的路由信息转换成相应的openflow流表并且下发到对应的sdn交换机当中。

    10、在主机h1当中执行ping命令,请求访问主机h2。

    11、h1构造icmp报文,发送给其对应的网关r1。

    12、r1查找路由转发表,将该数据包发送给sdn网络的bgp-speaker(bgp)。但是在sdn网络中,r1被视为普通的主机。因此该数据包会被sdn交换机处理。

    13、sdn交换机查找流表,该数据包命中流表的匹配域,将会被多次转发,最终到达r2。

    14、r2查找路由表,将该数据包发送给h2。

    15、h2构造icmp回应包,并将该数据包发送给其对应的网关r2。

    16、r2查找路由表,将该数据包发送给sdn网络当中的bgp-speaker(bgp)。但是在sdn网络中,r2被视为普通的主机。因此该数据包会被sdn交换机处理。

    17、sdn交换机查找流表,该数据包命中流表的匹配域,将会被多次转发,最终到达r1。

    18、r1查找路由表,将该数据包发送给h1。h1显示ping通h2。

    实施例2

    参照图5,本例搭建了一个异构的网络,其中sdn负责管理内部的ipv6主机以及跟连接外部的ipv4网络。外部网络通过bgp协议与sdn网络进行对接。本例子以ipv6主机访问ipv6主机为例,简要描述其通信流程:

    1、在sdn控制器当中激活openflow-suit模块,被动路由模块,网络意图模块。

    2、sdn交换机通过tcp连接与sdn控制器建立连接,商量好openflow协议的版本。

    3、sdn控制器通过openflow报文获取到sdn交换机的性能,支持的动作及其系统参数等信息。

    4、sdn控制器下发lldp报文探测当前网络的情况,并将其以图的形式保存起来。

    5、在主机h5当中执行ping命令,请求访问h6。

    6、h5构造icmp6报文,请求知道自己网关所在的位置。

    7、sdn交换机收到该icmp6报文,通过查找流表,发现该数据包并未命中任何流表的匹配域。因此将该数据包发送给sdn控制器。

    8、sdn控制器收到该数据包,通过对比各个模块的优先级,将该数据包交给被动路由模块处理。

    9、被动路由模块将该数据包拆包,发现该数据包是icmp6包,而且类型值是135。这说明该数据包是sdn网络当中定义的邻居包,继续提取该数据包的网关信息。然后提取network-cfg.json文件当中虚拟网关的信息,对比发现二者匹配。结合相关信息,如虚拟网关信息,mac信息等构造一个icmp6报文,类型值为136。指定sdn交换机将该数据包发送回去给发出该icmp6报文的主机。

    10、h5收到该icmp6报文,得知网关所在的位置。将后续的icmp6报文发送给网关。

    11、sdn交换机收到icmp6报文,通过查找流表,发现该数据包并未命中任何流表的匹配域。因此将该数据包发送给sdn控制器。

    12、sdn控制器收到该数据包,通过对比各个模块的优先级,将该数据包交给被动路由模块处理。

    13、被动路由模块将该数据包拆包,发现该数据包是icmp6包,但是类型值不是ndp报文。因此提取该数据包的目的ip地址。

    14、被动路由模块提取network-cfg.json文件当中的与sdn交换机相连主机的具体信息,如ip信息,mac信息。然后根据从收到的数据包提取到的ip信息,判断该数据包的流量走向类型。

    15、经过对比,该数据包的流量走向类型为sdn内部网络流量。被动路由模块再次提取network-cfg.json文件当中的与sdn交换机相连主机的具体信息,如ip信息,mac信息。并定位到目的主机在当前网络当中的确切位置。

    16、被动路由模块根据数据流的特征,生成一个路由意图,并将该意图上传给意图网络模块。

    17、意图网络模块将该路由意图处理成对应的openflow流表,并将流表下发至对应的sdn交换机当中。

    18、被动路由模块构造一个icmp6回复报文发送给源主机。

    19、h5后续发送的icmp6报文发送至sdn交换机。

    20、sdn交换机查找流表,后续icmp6报文命中流表的匹配域,sdn交换机执行对应流表的相关操作,数据包抵达h6。

    21、h6构造icmp6报文,请求知道自己网关所在的位置。

    22、sdn交换机收到该icmp6报文,通过查找流表,发现该数据包并未命中任何流表的匹配域。因此将该数据包发送给sdn控制器。

    23、sdn控制器收到该数据包,通过对比各个模块的优先级,将该数据包交给被动路由模块处理。

    24、被动路由模块将该数据包拆包,发现该数据包是icmp6包,而且类型值是135。这说明该数据包是sdn网络当中定义的邻居包,继续提取该数据包的网关信息。然后提取network-cfg.json文件当中虚拟网关的信息,对比发现二者匹配。结合相关信息,如虚拟网关信息,mac信息等构造一个icmp6报文,类型值为136。指定sdn交换机将该数据包发送回去给发出该icmp6报文的主机。

    25、h6收到该icmp6报文,得知网关所在的位置。将后续的icmp6报文发送给网关。

    26、h6收到该icmp6报文,得知网关所在的位置。构造icmp6回应报文,发送给网关。

    27、被动路由模块将该数据包拆包,发现该数据包是icmp6包,但是类型值不是ndp报文。因此提取该数据包的目的ip地址。

    28、被动路由模块提取network-cfg.json文件当中的与sdn交换机相连主机的具体信息,如ip信息,mac信息。然后根据从收到的数据包提取到的ip信息,判断该数据包的流量走向类型。

    29、经过对比,该数据包的流量走向类型为sdn内部网络流量。被动路由模块再次提取network-cfg.json文件当中的与sdn交换机相连主机的具体信息,如ip信息,mac信息。并定位到目的主机在当前网络当中的确切位置。

    30、被动路由模块根据数据流的特征,生成一个路由意图,并将该意图上传给意图网络模块。

    31、意图网络模块将该路由意图处理成对应的openflow流表,并将流表下发至对应的sdn交换机当中。

    32、h6继续发送icmp6回应报文,sdn交换机收到icmp6报文,查找流表,icmp6报文命中流表的匹配域,sdn交换机执行对应流表的相关操作,数据包抵达h5。

    33、h5显示成功ping通h6。

    以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。


    技术特征:

    1.一种基于sdn的ipv4及ipv6的管理系统,其特征在于,包括sdn控制器和sdn交换机;sdn控制器包括openflow-suit模块、主动路由模块、被动路由模块、意图网络模块;其中,

    所述openflow-suit模块用于实现sdn控制器与sdn交换机的通信及sdn控制器向sdn交换机的流表下发;

    所述主动路由模块用于实现sdn控制器处理穿越sdn区域的数据流;

    所述被动路由模块用于实现sdn控制器处理包括sdn内部网络的流量、外部网络访问sdn内部网络的流量;

    所述意图网络模块用于实现sdn控制器生成流表并且对流表进行管理。

    2.一种基于权利要求1所述系统的基于sdn的ipv4及ipv6的管理方法,其特征在于,包括如下步骤:

    步骤1、网络初始化阶段,sdn控制器通过openflow协议与sdn交换机进行通信,并进行openflow版本的协商;此外,sdn控制器还会获取sdn交换机关于性能、功能相关的信息;

    步骤2、sdn交换机通过周期性发送lldp报文来获取全局的网路拓扑信息;

    步骤3、主动路由模块从network-cfg.json文件当中获取bgp-speaker以及与sdn交换机相连的主机的信息;

    步骤4、主动路由模块根据从步骤2搜集到的信息,生成路由意图,并将相关意图上传给意图网络模块;

    步骤5、意图网络模块收到意图后会生成对应的流表,下发至对应的sdn交换机当中;

    步骤6、sdn网络当中的bgp-speaker跟外部网络的bgp-speaker进行路由信息交互;

    步骤7、sdn网络当中的bgp-speaker将搜集来的路由信息交给sdn控制器;

    步骤8、主动路由模块根据sdn控制器收到的路由信息生成相应流表,并且将流表下发至对应的sdn交换机当中;

    步骤9、sdn交换机上传不能处理的数据包给sdn控制器;

    步骤10、被动路由模块对sdn控制器收到的数据包进行分析;如果数据包是邻居包,转到步骤11,否则转到步骤12;

    步骤11、被动路由模块提取邻居包请求的网关信息,并与network-cfg.json文当中的相关信息进行匹配;如果一致,则构造对应邻居回复包发送回对应主机,否则不对该数据包进行处理;

    步骤12、被动路由模块提取数据包当中的目的ip跟源ip信息,根据提取到的信息对该数据包的流量走向进行分析;若为可处理的数据,转到步骤13,否则丢弃该数据包;

    步骤13、被动路由模块根据数据包的流量走向信息的不同,生成不同的路由意图给意图网络模块;

    步骤14、意图网络模块生成对应的流表,并将流表下发至对应的sdn交换机当中;

    步骤15、被动路由模块根据步骤9收到的数据包构造一个回应包,发送给源主机。

    3.根据权利要求2所述方法,其特征在于,所述步骤3的network-cfg.json文件在onos启动时加载,其中记录有onos的各个模块,包括:dhcp模块、主动路由模块、被动路由模块,以及于与sdn交换机相连的主机的信息。

    4.根据权利要求2所述方法,其特征在于,所述步骤5的流表是sdn网络内数据包转发的规则,其包含的关键信息有匹配域以及执行动作,匹配域根据openflow版本的不同有所差异,但是都包含有源ip、目的ip、端口号、vlan_id的信息。

    5.根据权利要求2所述方法,其特征在于,所述步骤6的bgp-speaker负责传输当前bgp-speaker所在的as中的路由信息,并且从其他bgp-speaker中学习到其他as的路由信息。

    6.根据权利要求2所述方法,其特征在于,所述步骤9的sdn交换机不能处理的数据包包括arp包、ip包、dhcp包。

    7.根据权利要求2所述方法,其特征在于,所述步骤10的邻居包包括arp报文以及icmp6当中类型值为135、136的数据包。

    8.根据权利要求2所述方法,其特征在于,所述步骤11的网关是虚拟网关,搭建在sdn控制器当中,并且相关的信息记录在network-cfg.json文件当中。

    9.根据权利要求2所述方法,其特征在于,所述步骤12的流量走向分为三种,一是sdn内部网络的流量,二是外部网络访问sdn网络的流量,三是sdn网络访问外部网络的流量。

    10.根据权利要求2所述方法,其特征在于,所述网络意图模块可把传统网络当中的二层转发表或者三层路由表转发成为openflow流表,并且在多个sdn控制器实例当中维护这些流表信息。

    技术总结
    本发明涉及基于SDN的IPv4及IPv6的管理系统及方法。所述系统包含SDN控制器和SDN交换机,所述SDN控制器具有openflow‑suit模块、主动路由模块、被动路由模块、意图网络模块;其中,openflow‑suit模块使得SDN控制器可以跟SDN交换机进行通信及对其进行配置;主动路由模块对穿越SDN网络的数据流进行处理;被动路由模块对SDN部的网络流量以及其他流量,如外部网络访问SDN内部网络的流量进行处理。意图网络模块为主动路由模块以及被动路由模块提供流表管理服务。所述SDN交换机接收到控制器下发的流表后,对命中流表匹配域的数据执行对应流表规定的操作。

    技术研发人员:舒兆港;冯浩贤;陈日清
    受保护的技术使用者:福建农林大学;赛尔网络有限公司
    技术研发日:2020.12.09
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8320.html

    最新回复(0)