交换机、二层网络报文转发方法及网络系统与流程

文档序号:16128728发布日期:2018-12-01 00:04阅读:1070来源:国知局
本发明属于通信
技术领域
:,具体涉及一种交换机、二层网络报文转发方法及网络系统。
背景技术
:随着云数据中心的发展,对虚拟机动态迁移的要求越来越高,动态迁移为实现业务的连续性,往往要求迁移网络具备大二层环境,即迁移前后的虚拟机在同一个广播域中,这样的需求驱动使得云数据中心二层网路变得巨大,而且在二层网络中往往会出现环路,如果不对环路做任何操作,就会带来广播风暴,使得广播报文在环路中无限循环和复制,对整个网络造成毁灭性的破坏。现有通用的二层防环策略为生成树协议(spanningtreeprotocol,简称stp)。stp通过生成树算法实现二层网络无环,通过抑制具有冗余链路的交换机端口转发,实现二层网络的无环,从而避免广播风暴。但是,在构建二层网络方面,stp因其一些固有缺陷不适合超大型数据中心的扩展。stp在数据中心网络应用中的缺陷包括:1)stp是通过端口阻止来工作的,所有冗余的链路不进行数据转发,该方式虽然解决了二层数据环路的问题,却造成了带宽资源的浪费,而数据中心因其巨大的数据通讯量,对带宽资源的浪费是难以接受的。2)以太网数据帧是没有生存时间(timetolive,简称ttl)的,导致一旦数据在二层网络中出现环路,会造成整个网络立即瘫痪,尤其是广播帧,这虽然不是stp协议的问题,但可归为stp网络的问题。3)当虚拟局域网(virtuallocalareanetwork,简称vlan)进行重配置的时候,stp(mstp)会造成vlan分隔,这对于数据中心网络而言也是非常严重的问题,尤其是对不间断服务的要求很高的存储网。对云计算和数据中心网络中,虚拟机迁移更是致命。技术实现要素:本发明所要解决的技术问题是针对现有技术中上述不足,提供一种交换机、二层网络报文转发方法及网络系统,能有效防止二层网络成环(防环),避免广播风暴的发生。解决本发明技术问题所采用的技术方案是该交换机,包括解析模块、控制模块和缓存模块,其中:所述解析模块,用于对报文进行解析;所述控制模块,用于进行报文转发的逻辑控制、流表配置和动作集配置,还包括对记录带有二层跳数的转发头部的添加、设置和检查的动作执行,以根据转发规则实现入端口流水线包修改和出端口选择、以及出端口流水线包修改,所述转发头部包括最大跳数、当前跳数的字段定义;所述缓存模块,用于对报文进行缓存。优选的是,所述控制模块还包括报头配置单元,报头配置单元包括报头添加部、报头设置部、报头检查部,其中:所述报头添加部,用于实现在常规二层报文前添加记录带有二层跳数的转发头部的操作,该转发头部包括最大跳数、当前跳数为0的字段;所述报头设置部,用于实现对转发头部中的当前跳数参数进行加1的操作;所述报头检查部,用于实现对转发头部中的当前跳数与最大跳数进行比较的操作。一种二层网络报文转发方法,包括步骤:交换机从入端口接收报文;判断本地二层报文是否具有转发头部;若本地二层报文具有转发头部,判断转发头部中的当前跳数是否小于最大跳数;若转发头部中的当前跳数小于最大跳数,设置转发头部中的当前跳数加1,将本地二层报文转发至出端口。优选的是,若本地二层报文没有转发头部,则添加包括最大跳数、当前跳数的字段的转发头部,并将当前跳数设置为0。优选的是,若转发头部中的当前跳数等于最大跳数,则丢弃报文。优选的是,在将本地二层报文转发至出端口之后,还包括:判断交换机是否为边缘出口交换机;若交换机为边缘出口交换机,剥去转发头部并转发报文。优选的是,若交换机不为边缘出口交换机,则按照内部二层报文转发报文。优选的是,交换机从入端口接收报文之后,判断本地二层报文是否具有转发头部之前,还包括:对报头进行解析,判断报文是否匹配为本地二层报文。优选的是,若非本地二层报文,则报文转由三层路由转发。一种网络系统,包括上述的交换机。本发明的有益效果是:该交换机、二层网络报文转发方法能有效防止二层网络成环,特别适用于针对云数据中心大二层场景下有环的网络系统场景,避免广播风暴的发生。附图说明图1为本发明实施例中交换机的模型示意图;图2为本发明实施例中二层网络报文转发方法流程图;图3为本发明实施例中网络报文转发的流程图;附图标识中:1-解析模块;2-控制模块;20-报头配置单元;21-报头添加部;22-报头设置部;23-报头检查部;3-缓存模块。具体实施方式为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明交换机、二层网络报文转发方法及网络系统作进一步详细描述。本发明借鉴三层数据包通过生存时间(timetolive,简称ttl)的方式避免路由环路的方式,提供一种交换机、基于协议无关数据包处理编程语言(programmingprotocol-independentpacketprocessors,简称p4)的二层网络报文转发方法及网络系统,利用p4网络协议无关数据包处理编程语言实现原有二层协议的拓展,通过p4协议重新定义新的私有二层数据报文头部格式,定义解析流程,转发控制流程,从而实现防环转发。协议无关数据包处理编程语言p4定义了一系列的语法,也开发出了p4的编译器,支持对p4转发模型的协议解析过程和转发过程进行编程定义,实现了真正意义上的协议无关可编程网络数据平面。本实施例交换机、二层网络报文转发方法及网络系统中,对报文的处理涉及对二层数据包报头前增加转发头部htag,转发头部htag包含了链路最大跳数标识max_hop,当前跳数标识hop;报文每被交换机转发一次,hop加1;当hop与max_hop相等时,交换机自动丢弃该二层报文,从而避免二层环路带来的广播风暴。如图1所示,该交换机包括解析模块1、控制模块2和缓存模块3,其中:解析模块1,用于对报文进行解析;控制模块2,用于进行报文转发的逻辑控制、流表配置和动作集配置,还包括对记录带有二层跳数的转发头部的添加、设置和检查的动作执行,以根据转发规则实现入端口流水线包修改和出端口选择、以及出端口流水线包修改,转发头部包括最大跳数、当前跳数的字段定义;缓存模块3,用于对报文进行缓存。其中,逻辑控制单元实现报文转发的逻辑控制,流表配置单元实现流表配置,动作集配置单元实现动作集配置,上述各单元的功能与目前交换机中的功能相同,这里不再详述。控制模块2还包括报头配置单元20,报头配置单元20包括报头添加部21、报头设置部22、报头检查部23,用于实现二层报文转发的相关动作,其中:报头添加部21,用于实现在常规二层报文前添加记录带有二层跳数的转发头部htag的操作,该转发头部包括最大跳数max_hop、当前跳数hop为0的字段,添加报头的动作add_htag;报头设置部22,用于实现对转发头部htag中的当前跳数hop参数进行加1的操作,设置报头的动作set_hop;报头检查部23,用于实现对转发头部htag中的当前跳数hop与最大跳数max_hop进行比较的操作,检查报头的动作check_hop。通过控制模块2的报头配置单元20,可以实现添加报头、设置报头和检查报头的动作。利用p4协议,该转发头部的字段定义如下:逻辑控制单元、流表配置单元、动作集配置单元和报头配置单元20共同实现报文的匹配和动作的转发规则。本实施例的交换机针对云数据中心虚机动态迁移需要提供大二层网络系统场景,通过sdn控制与转发分离方式,基于p4协议灵活定义数据报头对交换机进行配置,进而提供一种二层网络报文转发方法,能有效防环,从而避免广播风暴对网路造成的影响。如图2所示,该二层网络报文转发方法包括步骤:交换机从入端口接收报文;判断本地二层报文是否具有转发头部;若本地二层报文没有转发头部,则添加包括最大跳数、当前跳数的字段的转发头部,并将当前跳数设置为0;若本地二层报文具有转发头部,判断转发头部中的当前跳数是否小于最大跳数;若转发头部中的当前跳数小于最大跳数,设置转发头部中的当前跳数加1,将本地二层报文转发至出端口;判断交换机是否为边缘出口交换机;若交换机为边缘出口交换机,剥去转发头部并转发报文。可选的,若转发头部中的当前跳数等于最大跳数,则丢弃报文。可选的,若交换机不为边缘出口交换机,则按照内部二层报文进行转发。具体的,如图3所示的网络报文转发的流程图,根据交换机执行二层报文转发逻辑,基于p4协议的交换机的二层网络报文转发方法具体步骤如下:步骤s1):当数据包进入交换机入端口时,交换机对报头进行解析,判断报文是否匹配为本地二层报文。基于p4协议的交换机中的转发头部定义,针对转发头部htag相应的解析函数,可以正常解析带有二层跳数的报文。步骤s2):根据是否为本地二层报文的匹配结果,在二层网络或三层网络执行报文转发。根据报文是否匹配为本地报文:若非本地二层报文,则报文转由三层路由转发;若为本地二层报文,则报文在交换机的入端口ingress流水线处添加相应htag_table流表,对本地二层报文进行转发头部配置和转发。步骤s3):判断本地二层报文是否带有转发头部htag,对本地二层报文执行转发,具体包括如下转发流程:若本地二层报文不带转发头部htag,则执行添加报头add_htag的动作,添加转发头部htag,然后将二层报文转发至出端口egress流水线;若本地二层报文带有转发头部htag,则对二层报文执行检查报头check_hop的动作,根据当前跳数hop计数与最大跳数max_hop的大小,执行如下转发流程:如果当前跳数hop字段取值在最大跳数max_hop字段取值范围内,则执行设置报文set_hop的动作,对当前跳数hop计数加1,并转发至出端口egress流水线;若当前跳数hop字段取值不在最大跳数max_hop字段取值范围内,则执行丢弃drop二层报的文动作。步骤s4):根据出端口流表,判断交换机是否为边缘出口交换机。步骤s5):根据交换机是否为边缘出口交换机,转发本地二层报文。若此交换机为边缘出口交换机,则剥去转发头部htag,并且从响应端口转发本地二层报文;若此交换机不为边缘出口交换机egress流水线,则对带有转发头部htag的本地二层报文按照内部二层报文进行转发。基于上述的交换机和二层网络报文转发方法,实现一种网络系统。本发明的交换机、二层网络报文转发方法,利用p4协议无关技术,在转发过程中灵活添加相关的转发头部,还利用p4的协议解析能力,实现网路转发设备对拓展报头协议的正常解析,通过定义动作与流表,实现二层报文的正常转发流程,极大的拓展了传统转发协议,能有效防止二层网络成环,特别适用于针对云数据中心大二层场景下有环的网络系统场景,避免广播风暴的发生。可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1