本发明涉及一种ipv6分段路由,尤其是涉及一种分段路由ipfix的芯片实现方法及装置。
背景技术:
ipv6分段路由(ipv6segmentrouting,即srv6)是指网络被分隔成若干路由段,报文在网络中转发时,由源结点选择经过的最优段集合,把选出的段集合,依次携带在报文的分段路由栈中,中间结点通过分段路由栈中的段标识,选择相应的路径进行报文转发。ipv6分段路由的段标识用ipv6地址来表示,通过srh(segmentroutingheader,分段路由头)携带报文转发路径中的段标识,在转发过程中路由器通过读取srh中ip地址栈相应位置的ip地址来改写ip头的ipda字段,用改写后的ipda字段进行路由查找,从而使报文沿着ip地址栈指定的路径进行转发,如图1所示。
ipfix(ipflowinformationexport,即ip流信息输出)一般采用报文的五元组(源ip地址、目的ip地址、4层类型、4层源端口、4层目的端口)来唯一标识一条数据流,传统ipfix的五元组通过解析ip头及ip下一层内容来得到,包括srv6的报文。
srv6报文在转发中ip头中ipda是转发路径中的段标识,并非报文目的地的标识。ipfix流表用来唯一标识流的五元组(源ip地址、目的ip地址、4层类型、4层源端口、4层目的端口)中的ipda,如果使用传统方法从ip头中取得,则无法标识数据流,导致ipfix无法正确统计数据流信息。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种分段路由ipfix的芯片实现方法及装置。
为实现上述目的,本发明提出如下技术方案:一种分段路由ipfix的芯片实现方法,包括:
s1,解析ipv6报文头,得到ip源地址和下一层类型字段值,所述下一层类型字段值为ipv6分段路由扩展头;
s2,解析所述ipv6分段路由扩展头,得到四层头类型和ip目的地址,且得到四层数据段偏移值;
s3,根据所述四层头类型和四层数据段偏移值进行四层头解析,解析得到四层源端口和四层目的端口。
优选地,所述s2中,所述ipv6分段路由扩展头的下一个头部字段为四层头类型指示字段,根据所述四层头类型指示字段得到所述四层头类型。
优选地,所述s2中,取ipv6分段路由扩展头中的第一ipv6地址作为所述ip目的地址。
优选地,所述s2中,根据所述ipv6分段路由扩展头中的头部扩展长度字段得到所述四层数据段偏移值。
优选地,所述s3中,将四层数据段的起始位置指向所述四层数据段偏移值,并根据相应的四层头格式解析得到所述四层源端口和四层目的端口。
本发明还揭示了另外一种技术方案:一种分段路由ipfix的芯片实现装置,包括:
ipv6报文头解析模块,用于解析ipv6报文头,得到ip源地址和下一层类型字段值,所述下一层类型字段值为ipv6分段路由扩展头;
ipv6分段路由扩展头解析模块,用于解析所述ipv6分段路由扩展头,得到四层头类型和ip目的地址,且得到四层数据段偏移值;
四层头解析模块,用于根据所述四层头类型和四层数据段偏移值进行四层头解析,解析得到四层源端口和四层目的端口。
优选地,所述ipv6分段路由扩展头解析模块中,所述ipv6分段路由扩展头的下一个头部字段为四层头类型指示字段,根据所述四层头类型指示字段得到所述四层头类型。
优选地,所述ipv6分段路由扩展头解析模块中,取ipv6分段路由扩展头中的第一ipv6地址作为所述ip目的地址。
优选地,所述ipv6分段路由扩展头解析模块中,根据所述ipv6分段路由扩展头中的头部扩展长度字段得到所述四层数据段偏移值。
优选地,所述四层头解析模块中,将四层数据段的起始位置指向所述四层数据段偏移值,并根据相应的四层头格式解析得到所述四层源端口和四层目的端口。
本发明的有益效果是:本发明通过获取分段路由扩展头(srh)栈顶标识替换数据流标识五元组中的ip目地地址,用srh中的nextheader字段替换数据流标识五元组中的4层类型,并且根据srh中的nextheader字段解析下一层数据,得到4层源端口和4层目的端口,从而使数据流标识五元组真实的标识数据流,进而使ipfix正确统计数据流信息。
附图说明
图1是现有报文转发的原理示意图;
图2是本发明方法的流程示意图;
图3是本发明方法的原理示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种分段路由ipfix的芯片实现方法及装置,通过分段路由扩展头获取数据流标识五元组中的信息,使数据流标识五元组真实的标识数据流,从而使ipfix正确统计数据流信息。
结合图2和图3所示,本发明所揭示的一种分段路由ipfix的芯片实现方法,包括:
s1,解析ipv6报文头,得到ip源地址和下一层类型字段值,所述下一层类型字段值为ipv6分段路由扩展头。
具体地,如图1所示,首先解析ipv6报文头,从ipv6报文的报文头中获取ip源地址,作为数据流标识五元组中的ip源地址(ipsa)。且从ipv6报文的报文头中获得下一层类型字段值(nextheader),该下一层类型字段值为ipv6分段路由扩展头标识值。ipv6分段路由扩展头标识值由ipv6协议定义。
s2,解析ipv6分段路由扩展头,得到四层头类型和ip目的地址,且得到四层数据段偏移值。
具体地,解析ipv6分段路由扩展头(srh),其中,srh中的nextheader字段为四层头类型的指示字段,即由该nextheader字段可以得到四层头类型,作为数据流标识五元组中的四层头类型。且取ipv6分段路由扩展头中的第一ipv6地址(即segmentlist[0])作为数据流标识五元组中的ip目的地址。
并且根据srh中的头部扩展长度字段(hdrextlen)得到四层数据段偏移值。本实施例中,具体将hdrextlen乘以8得到四层头数据段以字节byte为单位的四层数据段偏移值。从srh中解析出来的四层头类型和四层数据段偏移值用于解析下一层数据(即四层数据)。
s3,根据四层头类型和四层数据段偏移值进行四层头解析,解析得到四层源端口和四层目的端口。
具体地,根据上述四层头类型和四层数据段偏移值进行四层头解析,具体将四层数据段的起始位置指向四层数据段偏移值,并根据相应的四层头格式解析得到四层源端口和四层目的端口,四层源端口和四层目的端口分别作为数据流标识五元组中的四层源端口和四层目的端口。
通过上述步骤s1~s3,取得五元组,作为ipfix的数据流标识。
本发明所揭示的一种分段路由ipfix的芯片实现装置,包括:
ipv6报文头解析模块,用于解析ipv6报文头,得到ip源地址和下一层类型字段值,下一层类型字段值为ipv6分段路由扩展头。
ipv6分段路由扩展头解析模块,用于解析所述ipv6分段路由扩展头,得到四层头类型和ip目的地址,且得到四层数据段偏移值。
具体地,ipv6分段路由扩展头解析模块中,ipv6分段路由扩展头的下一个头部字段为四层头类型指示字段,根据四层头类型指示字段得到四层头类型。且取ipv6分段路由扩展头中的第一ipv6地址作为ip目的地址。
并且根据ipv6分段路由扩展头中的头部扩展长度字段得到四层数据段偏移值。本实施例中,具体将hdrextlen乘以8得到四层头数据段以字节byte为单位的四层数据段偏移值。从srh中解析出来的四层头类型和四层数据段偏移值用于解析下一层数据(即四层数据)。
四层头解析模块,用于根据所述四层头类型和四层数据段偏移值进行四层头解析,解析得到四层源端口和四层目的端口。
具体地,将四层数据段的起始位置指向所述四层数据段偏移值,并根据相应的四层头格式解析得到所述四层源端口和四层目的端口。
另外,上述ipv6报文头解析模块、ipv6分段路由扩展头解析模块和四层头解析模块的具体原理可参照上述步骤s1~s3的描述。
本发明通过获取分段路由扩展头(srh)栈顶标识替换数据流标识五元组中的ip目地地址,用srh中的nextheader字段替换数据流标识五元组中的4层类型,并且根据srh中的nextheader字段解析下一层数据,得到4层源端口和4层目的端口,从而使数据流标识五元组真实的标识数据流,使ipfix正确统计数据流信息
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
1.一种分段路由ipfix的芯片实现方法,其特征在于,所述方法包括:
s1,解析ipv6报文头,得到ip源地址和下一层类型字段值,所述下一层类型字段值为ipv6分段路由扩展头;
s2,解析所述ipv6分段路由扩展头,得到四层头类型和ip目的地址,且得到四层数据段偏移值;
s3,根据所述四层头类型和四层数据段偏移值进行四层头解析,解析得到四层源端口和四层目的端口。
2.根据权利要求1所述的一种分段路由ipfix的芯片实现方法,其特征在于,所述s2中,所述ipv6分段路由扩展头的下一个头部字段为四层头类型指示字段,根据所述四层头类型指示字段得到所述四层头类型。
3.根据权利要求1所述的一种分段路由ipfix的芯片实现方法,其特征在于,所述s2中,取ipv6分段路由扩展头中的第一ipv6地址作为所述ip目的地址。
4.根据权利要求1所述的一种分段路由ipfix的芯片实现方法,其特征在于,所述s2中,根据所述ipv6分段路由扩展头中的头部扩展长度字段得到所述四层数据段偏移值。
5.根据权利要求1所述的一种分段路由ipfix的芯片实现方法,其特征在于,所述s3中,将四层数据段的起始位置指向所述四层数据段偏移值,并根据相应的四层头格式解析得到所述四层源端口和四层目的端口。
6.一种分段路由ipfix的芯片实现装置,其特征在于,所述装置包括:
ipv6报文头解析模块,用于解析ipv6报文头,得到ip源地址和下一层类型字段值,所述下一层类型字段值为ipv6分段路由扩展头;
ipv6分段路由扩展头解析模块,用于解析所述ipv6分段路由扩展头,得到四层头类型和ip目的地址,且得到四层数据段偏移值;
四层头解析模块,用于根据所述四层头类型和四层数据段偏移值进行四层头解析,解析得到四层源端口和四层目的端口。
7.根据权利要求6所述的一种分段路由ipfix的芯片实现装置,其特征在于,所述ipv6分段路由扩展头解析模块中,所述ipv6分段路由扩展头的下一个头部字段为四层头类型指示字段,根据所述四层头类型指示字段得到所述四层头类型。
8.根据权利要求6所述的一种分段路由ipfix的芯片实现装置,其特征在于,所述ipv6分段路由扩展头解析模块中,取ipv6分段路由扩展头中的第一ipv6地址作为所述ip目的地址。
9.根据权利要求6所述的一种分段路由ipfix的芯片实现装置,其特征在于,所述ipv6分段路由扩展头解析模块中,根据所述ipv6分段路由扩展头中的头部扩展长度字段得到所述四层数据段偏移值。
10.根据权利要求6所述的一种分段路由ipfix的芯片实现装置,其特征在于,所述四层头解析模块中,将四层数据段的起始位置指向所述四层数据段偏移值,并根据相应的四层头格式解析得到所述四层源端口和四层目的端口。
技术总结