CN103181129B - 数据报文处理方法和系统、报文转发设备 - Google Patents
数据报文处理方法和系统、报文转发设备 Download PDFInfo
- Publication number
- CN103181129B CN103181129B CN201180002343.6A CN201180002343A CN103181129B CN 103181129 B CN103181129 B CN 103181129B CN 201180002343 A CN201180002343 A CN 201180002343A CN 103181129 B CN103181129 B CN 103181129B
- Authority
- CN
- China
- Prior art keywords
- field
- ipv6
- message
- stream table
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种数据报文处理方法和系统、报文转发设备。本发明实施例,可以在OpenFlow系统架构的控制服务器中预先定义支持IPv6报文的IPv6流表结构,并向OpenFlow系统架构的报文转发设备下发IPv6流表。报文转发设备在接收到数据报文后,可以根据该数据报文中包含的链路层数据类型字段,确定该数据报文是否是IPv6报文,如果是IPv6报文,则报文转发设备可以将该IPv6报文中所包含的字段内容与存储的IPv6流表中的字段内容进行匹配,并根据匹配结果对该IPv6报文进行处理。因此,本发明实施例可以使得OpenFlow系统架构的报文转发设备支持IPv6报文,拓展了OpenFlow系统架构。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据报文处理方法和系统、报文转发设备
背景技术
传统的传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,以下简称:TCP/IP)互联网的体系结构是以分布式路由协议为基础的网络结构,网络通过IP报文完成主机间的通讯。
但是随着互联网的发展,分布式网络的体系结构无法更好的满足网络扩展性和管理上的需求,因此,集中式可编程网络体系结构应运而生。开放流(以下简称:OpenFlow)系统架构就是集中式可编程网络体系结构一种,OpenFlow交换机(OpenFlow Switch)将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机和控制服务器(Controller)来共同完成,从而实现了数据转发和路由控制的分离。控制服务器可以通过事先规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。交换机针对进入交换机的报文,可以通过查询流表来获取与该数据包匹配的流表表项,根据该流表表项即可确定需要对该数据包执行的操作,该操作例如可以是转发到目的端口、丢弃、上报控制服务器等。
发明人在研究过程中发现,现有的OpenFlow系统架构仅支持对互联网协议版本4(Internet Protocol version 4;以下简称IPv4)报文,而不支持互联网协议版本6(Internet Protocol version 6;以下简称IPv6)报文,这在一定程度上限制了OpenFlow系统架构的发展。
发明内容
本发明实施例提供一种数据报文处理方法和系统、报文转发设备。
本发明实施例提供一种数据报文处理方法,包括:
根据数据报文中包含的链路层数据类型字段,确定所述数据报文是否是IPv6报文;
若所述数据报文是IPv6报文,则将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配,所述IPv6流表中包含下述至少一个字段:
报文入口字段、元数据字段、链路层源地址字段、链路层目的地址字段、链路层数据类型字段、虚拟局域网标识字段、虚拟局域网优先级字段、MPLS标签字段、MPLS流量类型字段、IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段、传输层源端口或ICMP类型字段、传输层目的端口或ICMP代码字段;
根据匹配结果对所述IPv6报文进行相应的处理。
本发明实施例提供一种报文转发设备,包括:
确定模块,用于根据数据报文中包含的链路层数据类型字段,确定所述数据报文是否是IPv6报文;
匹配模块,用于若所述数据报文是IPv6报文,则将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配,所述IPv6流表中包含下述至少一个字段:
报文入口字段、元数据字段、链路层源地址字段、链路层目的地址字段、链路层数据类型字段、虚拟局域网标识字段、虚拟局域网优先级字段、MPLS标签字段、MPLS流量类型字段、IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段、传输层源端口或ICMP类型字段、传输层目的端口或ICMP代码字段;
处理模块,用于根据匹配结果对所述IPv6报文进行相应的处理。
本发明实施例还提供一种数据报文处理系统,包括控制服务器和至少一个报文转发设备,其中,报文转发设备采用上述的报文转发设备。
本发明实施例,可以在OpenFlow系统架构的控制服务器中预先定义支持IPv6报文的IPv6流表结构,并向OpenFlow系统架构的报文转发设备下发IPv6流表。报文转发设备在接收到数据报文后,可以根据该数据报文中包含的链路层数据类型字段,确定该数据报文是否是IPv6报文,如果是IPv6报文,则报文转发设备可以将该IPv6报文中所包含的字段内容与存储的IPv6流表中的字段内容进行匹配,并根据匹配结果对该IPv6报文进行处理。因此,本发明实施例可以使得OpenFlow系统架构的报文转发设备支持IPv6报文,拓展了OpenFlow系统架构。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据报文处理方法实施例一的流程图;
图2为本发明数据报文处理方法实施例二的流程图;
图3为本发明数据报文处理方法实施例三的流程图;
图4为本发明报文转发设备实施例一的结构示意图;
图5为本发明报文转发设备实施例二的结构示意图;
图6为本发明数据报文处理系统实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有技术中,OpenFlow系统架构中的流表仅支持IPv4报文,而并不支持IPv6报文,无法对IPv6报文的报头中相关字段进行识别与匹配,因此,OpenFlow系统架构无法完成对基于IPv6报文传输的网络编程控制。
本发明实施例为了解决现有OpenFlow系统架构无法支持IPv6报文的缺陷,在该OpenFlow系统架构中对流表进行扩展,增加支持IPv6报文的IPv6流表,以支持IPv6报文的识别和匹配。
本发明实施例中的IPv6流表同现有技术中的IPv4流表相比,去掉了现有OpenFlow流表中的IPv4相关字段,即IPv4源地址,IPv4目的地址,IPv4协议类型(IPv4Protocol Type)和IPv4服务类型字段(IPv4ToS)四个字段,新添加IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段和IPv6流标签字段这五个字段,从而形成包含16个字段的IPv6流表。进一步地,为了支持IPv6扩展头,本发明实施例还可以在该IPv6流表中进一步添加逐跳扩展头的选项(Hop-by-Hop Header Options)字段、路由扩展头(Routing Header)的路由类型(Routing Type)字段、剩余片(SegmentLeft)字段、类型指定数据(Type Specific Data)字段以及目的地选项报头(Destination Options Header)的选项(Options)字段,形成包含21个字段的IPv6流表。
在本发明实施例中,完整的IPv6流表可以包含如下21个字段:
报文入口(Ingress Port)字段,元数据(Metadata)字段,链路层源地址(Ether Src)字段,链路层目的地址(Ether Dst)字段,链路层数据类型(EtherType)字段,虚拟局域网(Virtual Local Area Network,以下简称:Vlan)标识(Vlan ID)字段,虚拟局域网优先级(Vlan Priority)字段,多协议标签交换(Multi-Protocol Label Switching,以下简称:MPLS)标签(MPLS Label)字段,MPLS流量类型(MPLS Traffic Class)字段,IPv6源地址(IPv6 Src)字段,IPv6目的地址(IPv6Dst)字段,IPv6流量类型(IPv6 Traffic Class)字段,IPv6下一个报头(IPv6 Next Header)字段,IPv6流标签(IPv6 Flow Label)字段,传输层源端口或控制报文协议(Internet Control Message Protocol,以下简称:ICMP)类型(TCP/UDP/SCTP Src Port/ICMP Type)字段,传输层目的端口或ICMP代码(TCP/UDP/SCTP Dst Port/ICMP Code)字段,逐跳扩展头(Hop-by-Hop Header)的选项(Options)字段、路由扩展头(Routing Header)的路由类型(Routing Type)字段、剩余片(Segment Left)字段、类型指定数据(Type Specific Data)字段以及目的地选项报头(Destination OptionsHeader)的选项(Options)字段。
其中,IPv6源地址字段的字段长度可以为256bit,其中可以包含128bit的IPv6源地址掩码字段和128bit的源地址字段,IPv6源地址字段在匹配时可以通过IPv6源地址掩码字段进行选择性匹配。IPv6目的地址字段的字段长度可以为256bit,其中可以包含128bit的IPv6目的地址掩码字段,IPv6目的地址字段在匹配时可以通过IPv6目的地址掩码字段进行选择性匹配。IPv6Traffic Class字段和IPv6 Next Header字段均可以为8bits,IPv6 Flow Label字段的长度可以为32bits,只使用低20位bits作为有效存储位,而高12位全部为零。
需要说明的是,对于传输层源端口或ICMP字段TCP/UDP/SCTP SrcPort/ICMP Type来说,其中的TCP/UDP/SCTP Src Port表示传输层源端口,ICMP Type表示ICMP类型,该字段要么表示传输层源端口,要么表示ICMP类型,该字段具体所表示的是传输层源端口还是ICMP类型,则由该字段的具体内容表征。对于传输层目的端口或ICMP代码TCP/UDP/SCTP DstPort/ICMP Code字段来说类似,此处不再赘述。
本领域技术人员可以理解的是,在OpenFlow系统架构中,控制服务器(Controller)在进行匹配策略设计时,并非需要报文转发设备,例如交换机或者路由器,接收的IPv6报文中的全部字段内容均与上述16个字段或者21个字段对应匹配。
因此,控制服务器可以向报文转发设备发送如下两种形式的IPv6流表:
形式一、控制服务器下发完整的IPv6流表
该完整的IPv6流表包括上述16个字段或者21个字段,这些字段中,可以指定某一个或者某几个字段的内容需要报文转发设备接收的IPv6报文中对应的字段匹配,而其余字段则可以通过设为“空”或者“any”而表示无需匹配。
形式二、控制服务器下发不完整的IPv6流表
为了简化控制服务器下发的IPv6流表,控制服务器只需要发送需要IPv6报文匹配的字段,也即只发送IPv6流表中的某些表项,而其余不需要匹配的字段则无需下发。
为了实现这种下发lPv6流表表项的方式,本发明实施例中,所需下发的IPv6流表表项中的字段都可以采用类型-长度-值(type-length-value)的形式表示。
可以理解的是,上述两种方式下发的lPv6流表中,其均包含在所需匹配的字段匹配成功后所对应执行的操作(Instruction)。而且,在所需匹配的字段匹配不成功,则报文转发设备可以执行预设的操作,例如丢弃该IPv6报文,或者将该IPv6报文发送给控制器服务器以请求控制服务器对该IPv6报文进行处理。
本发明实施例可以进一步进行如下优化:
由于一个报文不能同时既是IPv4报文又是IPv6报文,如果将IPv4流表和IPv6流表放在一个统一的OpenFlow流表中,则该统一的OpenFlow流表中必然存在空闲的存储空间,OpenFlow流表的利用率较低,因此,本发明实施例优选地,可以将该IPv6流表作为一个独立的流表,该IPv6流表中不包含IPv4流表。
可以理解的是,如果该OpenFlow系统架构中的报文转发设备只需要支持IPv6报文,则控制服务器可以只向报文转发设备下发IPv6流表即可,而如果报文转发设备需要支持IPv6和IPv4的双栈操作,则控制服务器既需要向报文转发设备下发IPv4流表,也需要向报文转发设备下发IPv6流表,此时,报文转发设备中存储的IPv6流表和IPv4流表就需要通过IPv6流表和IPv4流表各自的流表类型值加以区分。
下面采用几个实施例,对发明的技术方案进行详细说明。
图1为本发明数据报文处理方法实施例一的流程图,如图1所示,本实施例的方法包括:
步骤101、根据数据报文中包含的链路层数据类型字段,确定所述数据报文是否是IPv6报文。
OpenFlow系统架构中的报文转发设备,例如OpenFlow交换机(switch)可以接收数据报文,该数据报文既可以是IPv4报文,也可以是IPv6报文,这两种报文可以通过数据报文中所包含的链路层数据类型字段Ether Type表征。
举例来说,若该Ether Type=0x0800,则该数据报文为IPv4报文,若该Ether Type=0x86DD,则该数据报文为IPv6报文。
步骤102、若所述数据报文是IPv6报文,则将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配。
在本实施例中,该IPv6流表中可以包含下述至少一个字段:
Ingress Port,Metadata,Ether Src,Ether Dst,Ether Type,Vlan ID,VlanPriority,MPLS Label,MPLS Traffic Class,IPv6 Src,IPv6 Dst,IPv6 TrafficClass,IPv6 Next Header,IPv6 Flow Label,TCP/UDP/SCTP Src Port/ICMPType,TCP/UDP/SCTP Dst Port/ICMP Code,Hop-by-Hop Header Options、Routing Type、Segment Left、Type Specific Data以及Destination Options HeaderOptions。
具体来说,OpenFlow系统架构中的Controller,可以预先将IPv6流表发送给其所控制的switch,具体地,其可以向switch发送上述两种形式的IPv6流表。本领域技术人员可以理解的是,Controller可以为其所控制的不同的switch下发不同的IPv6流表。
OpenFlow系统架构中的switch在确定该数据报文为IPv6报文后,可以从该IPv6报文中提取包含的字段内容,然后将提取的字段内容与预存的IPv6流表中所需匹配的字段内容进行匹配。
需要说明的是,switch既可以将该IPv6报文中所包含的全部字段内容都提取出来而只将需要匹配的字段内容与IPv6流表中的表项进行匹配,也可以只提取所需匹配的字段内容与IPv6流表中的表项进行匹配。
在具体实现时,switch可以在确定接收到的数据报文是否是IPv6报文之前,提取该数据报文中的报文入口字段、链路层源地址字段、链路层目的地址字段和链路层数据类型字段的内容,该过程与OpenFlow系统架构中对IPv4的处理过程类似,此处不再赘述。在确定该数据报文是IPv6报文之后,switch可以再提取IPv6报文中的IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段、传输层源端口或ICMP类型字段、传输层目的端口或ICMP代码字段,如果该IPv6报文还有扩展头,则还可以提取该IPv6扩展头中的逐跳扩展头的选项字段、路由扩展头的路由类型字段、剩余片字段、类型指定数据字段、目的地选项报头的选项字段。通过上述过程,switch即可完成对IPv6报文中的字段内容的提取。
优先地,在将所需匹配的字段内容与IPv6流表中的表项进行匹配之前,switch可以先应用所提取的字段内容生成流表匹配结构,然后再将生成的流表匹配结构与IPv6流表中所需匹配的字段内容进行匹配。
步骤103、根据匹配结果对所述IPv6报文进行相应的处理。
switch在获取匹配结果后,可以根据该匹配结果对该IPv6报文进行相应的处理。
举例来说,若匹配结果为成功,则switch可以对IPv6报文进行IPv6流表中所对应的处理操作Instruction,Instruction可以包括:
存在多个IPv6流表级联的情况下,关联下一级IPv6流表的操作;
将IPv6报文进行端口转发操作;
修改IPv6报文的设置域操作(set rield action),例如在其中增加IPv6源地址,IPv6目的地址,IPv6 Traffic Class和IPv6 Flow Table的设置操作等。
若匹配结果为不成功,则switch可以执行预设的操作处理该IPv6报文,例如丢弃该IPv6报文或者将该IPv6报文发送给Controller等。
本实施例,可以在OpenFlow系统架构的控制服务器中预先定义支持IPv6报文的IPv6流表结构,并向OpenFlow系统架构的报文转发设备下发IPv6流表。报文转发设备在接收到数据报文后,可以根据该数据报文中包含的链路层数据类型字段,确定该数据报文是否是IPv6报文,如果是IPv6报文,则报文转发设备可以将该IPv6报文中所包含的字段内容与存储的IPv6流表中的字段内容进行匹配,并根据匹配结果对该IPv6报文进行处理。因此,本实施例可以使得OpenFlow系统架构的报文转发设备支持IPv6报文,拓展了OpenFlow系统架构。
在现有OpenFlow系统架构中已经支持IPv4报文,在该基础上,采用本发明上述实施例所述的技术方案,OpenFlow系统架构即可支持IPv6报文,因此,对于OpenFlow系统架构中的swtich来说,如果其需要支持IPv6报文和IPv4报文,则其需要对IPv6报文和IPv4报文进行双栈操作,需要说明的是,IPv4流表和IPv6流表可以由Controller预先下发给switch。下面采用一个实施例对该双栈操作进行详细说明。
图2为本发明数据报文处理方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、接收数据报文。
步骤202、初始化流表匹配结构中的报文入口字段、链路层源地址字段、链路层目的地址字段和链路层数据类型字段的内容。
具体来说,该初始化操作可以是将流表匹配结构中的报文入口(IngressPort)字段,链路层源地址(Ether Src)字段、链路层目的地址(Ether Dst)字段以及链路层数据类型(Ether Type)字段被初始化为数据报文中的对应值,而该流表匹配结构中的其余字段的初始值可设为0。
需要说明的是,本实施例仅以提取全部字段内容且采用流表匹配结构这种具体实现方式为例进行说明,本领域技术人员可以理解的是,不采用流表匹配结构而只将字段内容提取出来进行后续的匹配操作也可实现该技术方案。
步骤203、下一个报头是否是Vlan,若是则执行步骤204,否则执行步骤206。
switch可以通过确定Ether Type的内容来确定数据报文的下一个报头是否是Vlan。举例来说,该Ether Type的内容若为0x8100或者0x88a8,则下一个报头就是Vlan。
步骤204、提取Vlan ID和Vlan Priority字段,使用最后一个Vlan报头后的Ether Type继续处理。
switch在确定下一个报头是Vlan后,可以从数据报文中提取Vlan ID和Vlan Priority字段。后续步骤207再使用Ether Type进行处理时,则使用最后一个Vlan报头后的Ether Type。
步骤205、跳过剩余的Vlan头,并执行步骤206。
步骤206、交换机是否支持MPLS,若是则执行步骤207,否则执行步骤210。
需要说明的是,本步骤为可选步骤,若该switch默认支持MPLS,则次步骤可以省略。
步骤207、下一个报头是否是MPLS shim报头,若是则执行步骤208,否则执行步骤210。
switch可以通过确定Ether Type的内容来确定下一个报头是否是MPLS。举例来说,该Ether Type的内容若为0x8848或者0x8847,则下一个报头就是MPLS。
步骤208、提取Mpls label和Mpls Traffic Class。
步骤209、跳过剩余的MPLS报头,并执行步骤214。
针对MPLS,目前switch默认的处理方式是不管后面的报文了,而且只解析第一个MPLS标签,然后跳过剩余所有的MPLS标签,处理MPLS的负载报文报头。
步骤210、下一个报头是否是IPv6报头,若是则执行步骤211,否则执行步骤212。
switch可以通过确定Ether Type的内容来确定下一个报头是否是IPv6报头。举例来说,该Ether Type的内容若为0x86DD,则下一个报头就是IPv6报头。
步骤211、进行IPv6报文处理,并执行步骤214。
该步骤211即可采用上述实施例一所描述的方法对IPv6报文进行处理,此处不在赘述。
步骤212、下一个报头是否是IPv4报头,若是则执行步骤213,否则结束。
switch如果确定下一个报头不是IPv6报头,则其可以进一步确定该报头是否是IPv4报头。具体来说,switch同样可以通过确定Ether Type的内容来确定下一个报头是否是IPv4报头。举例来说,该Ether Type的内容若为0x0800,则该报头就是IPv4报头。
步骤213、进行IPv4报文处理,并执行步骤214。
需要说明的是,上述步骤210~211与步骤212~213之间的顺序可以颠倒,即先判断是否是IPv4报文,再判断是否是IPv6报文,或者上述步骤210和步骤212可以合并执行,即switch可以通过Ether Type的值一次性判断出该数据报文是IPv4报文还是IPv6报文。
步骤214、根据流表类型值识别确定所需使用的流表,并使用提取的相关字段进行流表查询。
具体来说,上述提取的相关字段均可以被填写到流表匹配结构的对应字段中,然后switch可以根据流表类型值识别确定所需使用的流表,若数据报文为IPv6报文,则switch可以将流表匹配结构与IPv6流表进行流表查询匹配,若数据报文为IPv4报文,则switch可以将流表匹配结构与IPv4流表进行流表查询匹配。
本实施例所述的技术方案中,IPv6流表中定义了流表类型值,该流表类型值区别于IPv4流表的流表类型值,从而可以通过流表类型值区分IPv6流表和IPv4流表。
本实施例在图1所示实施例的基础上,进一步详细描述了IPv4报文和IPv6报文的双栈操作,可以兼容现有OpenFlow系统架构。
下面采用一个更为具体的实施例对图2所示实施例中步骤211进行IPv6报文处理的过程进行详细说明。
图3为本发明数据报文处理方法实施例三的流程图,如图3所示,本实施例的方法可以包括:
步骤301、提取IPv6源地址,目的地址,Traffic Class,Next header,Flowlabel。
步骤302、下一个报头是否是IPv6扩展头,若是则执行步骤303,否则执行步骤309。
步骤303、下一个报头是否是Hop-by-Hop报头,若是则执行步骤304,否则执行步骤305。
Switch可通过判断IPv6 Next Header是否等于0来判断下一个报头是否是Hop-by-Hop报头。
步骤304、提取Hop-by-Hop Header的Options字段,并执行步骤302。
步骤305、下一个报头是否是Routing Header扩展头,若是则执行步骤306,否则执行步骤307。
switch可通过判断IPv6Next Header是否等于43来判断下一个报头是否是Routing Header扩展头。
步骤306、提取IPv6 routing扩展头的Routing Type,Segment Left,TypeSpecific Data字段,并执行步骤302。
步骤307、下一个报头是否是Destination Options Header扩展头,若是则执行步骤308,否则执行步骤302。
switch可通过判断IPv6 Next Header是否等于60来判断下一个报头是否是Destination Options Header扩展头。
步骤308、提取Destination Options Header的options字段,并执行步骤302。
步骤309、IPv6Next Header是否等于6,17或132,若是则执行步骤310,否则执行步骤311。
步骤310、提取TCP/UDP/SCTP Src Port/Dst Port,并执行步骤313。
若IPv6 Next Header等于6,则提取TCP Src Port/Dst Port,若IPv6 NextHeader等于17,则提取UDP Src Port/Dst Port,若IPv6Next Header等于132,则提取SCTP Src Port/Dst Port。
步骤311、IP Next Header是否等于58,若是则执行步骤312,否则执行步骤313。
步骤312、提取ICMP Type和Code,并执行步骤313。
步骤313、使用提取字段进行流表查询。
本发明上述实施例,可以使得OpenFlow系统架构的报文转发设备支持IPv6报文,而且,本发明实施例的技术方案可以支持双栈操作,拓展了OpenFlow系统架构。
图4为本发明报文转发设备实施例一的结构示意图,如图4所示,本实施例的设备可以包括:确定模块11、匹配模块12以及处理模块13,其中,确定模块11,用于根据数据报文中包含的链路层数据类型字段,确定所述数据报文是否是IPv6报文;匹配模块12,用于若所述数据报文是IPv6报文,则将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配,所述IPv6流表中包含下述至少一个字段:报文入口字段、元数据字段、链路层源地址字段、链路层目的地址字段、链路层数据类型字段、虚拟局域网标识字段、虚拟局域网优先级字段、MPLS标签字段、MPLS流量类型字段、IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段、传输层源端口或ICMP类型字段、传输层目的端口或ICMP代码字段;处理模块13,用于根据匹配结果对所述IPv6报文进行相应的处理。
在本实施例中,该处理模块13可以具体用于若匹配成功,则对所述IPv6报文进行所述IPv6流表中所对应的处理操作;若匹配不成功,则丢弃所述IPv6报文或者将所述IPv6报文发送给所述控制服务器。
本实施例的报文转发设备可以是OpenFlow系统架构中的交换机或者路由器。本实施例的报文转发设备可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明报文转发设备实施例二的结构示意图,如图5所示,本实施例的设备在图4所示设备的基础上,进一步可以包括:提取模块14,用于在确定模块11确定所述数据报文是否是IPv6报文之前,提取所述数据报文中的报文入口字段、链路层源地址字段、链路层目的地址字段和链路层数据类型字段的内容;在所述确定模块确定所述数据报文是IPv6报文之后,提取所述IPv6报文中的IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段、传输层源端口或ICMP类型字段、传输层目的端口或ICMP代码字段、逐跳扩展头的选项字段、路由扩展头的路由类型字段、剩余片字段、类型指定数据字段、目的地选项报头的选项字段;匹配模块12,具体用于将所述提取模块所提取的上述字段内容与所述IPv6流表中所需匹配的字段内容进行匹配。
进一步地,该匹配模块12可以包括:生成单元121和匹配单元122,生成单元121,用于应用提取模块14提取的上述字段内容生成流表匹配结构;匹配单元122,用于将所述流表匹配结构与所述IPv6流表中所需匹配的字段内容进行匹配。
为了支持IPv6报文和IPv4报文的双栈操作,本实施例的设备还可以包括:流表识别模块15,用于所述匹配模块进行匹配前根据所述IPv6流表中所包含的流表类型值,从IPv6流表和IPv4流表中识别确定所述IPv6流表。
本实施例的设备还可以包括:流表存储模块16,用于接收所述控制服务器下发的IPv6流表,所述IPv6流表中的各个字段包含该字段的类型、长度和值。
本实施例的设备可以用于执行图2或图3所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
图6为本发明数据报文处理系统实施例的结构示意图,如图6所示,本实施例的系统可以为OpenFlow系统架构,在本实施例中,该系统包括:控制服务器1和至少一个报文转发设备2,在本实施例中示出了两个报文转发设备。本实施例中的报文转发设备2可以采用图4或图5所示的结构,其具体可以执行图1~3中任一所述的技术方案,其实现原理类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种数据报文处理方法,其特征在于,包括:
根据数据报文中包含的链路层数据类型字段,确定所述数据报文是否是IPv6报文;
若所述数据报文是IPv6报文,则将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配,所述IPv6流表中包含下述至少一个字段:
报文入口字段、元数据字段、链路层源地址字段、链路层目的地址字段、链路层数据类型字段、虚拟局域网标识字段、虚拟局域网优先级字段、MPLS标签字段、MPLS流量类型字段、IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段、传输层源端口或ICMP类型字段、传输层目的端口或ICMP代码字段;
根据匹配结果对所述IPv6报文进行相应的处理;
所述IPv6流表还包含下述至少一个字段:
逐跳扩展头的选项字段、路由扩展头的路由类型字段、剩余片字段、类型指定数据字段、目的地选项报头的选项字段。
2.根据权利要求1所述的方法,其特征在于,所述根据数据报文中包含的链路层数据类型字段,确定所述数据报文是否是IPv6报文之前,还包括:
提取所述数据报文中的报文入口字段、链路层源地址字段、链路层目的地址字段和链路层数据类型字段的内容;
确定所述数据报文是否是IPv6报文之后,还包括:
提取所述IPv6报文中的IPv6源地址字段;IPv6目的地址字段;IPv6流量类型字段;IPv6下一个报头字段;IPv6流标签字段;传输层源端口或ICMP类型字段;传输层目的端口或ICMP代码字段;逐跳扩展头的选项字段;路由扩展头的路由类型字段;剩余片字段;类型指定数据字段;目的地选项报头的选项字段;
所述将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配,包括:
将所提取的上述字段内容与所述IPv6流表中所需匹配的字段内容进行匹配。
3.根据权利要求2所述的方法,其特征在于,将所提取的上述字段内容与所述IPv6流表中所需匹配的字段内容进行匹配,包括:
应用所提取的上述字段内容生成流表匹配结构,将所述流表匹配结构与所述IPv6流表中所需匹配的字段内容进行匹配。
4.根据权利要求3所述的方法,其特征在于,所述应用所提取的上述字段内容生成流表匹配结构,包括:
将所述数据报文中的报文入口字段、链路层源地址字段、链路层目的地址字段和链路层数据类型字段的内容,初始化到流表匹配结构的对应字段中;
在所述流表匹配结构中填写所述IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段的内容、逐跳扩展头的选项字段、路由扩展头的路由类型字段、剩余片字段、类型指定数据字段;
根据所述IPv6下一个报头字段的内容,在所述流表匹配结构中填写传输层源端口和目的端口,或者在所述流表匹配结构中填写ICMP类型字段和代码字段。
5.根据权利要求1所述的方法,其特征在于,所述将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配之前,还包括:
根据所述IPv6流表中所包含的流表类型值,从IPv6流表和IPv4流表中识别确定所述IPv6流表。
6.根据权利要求1所述的方法,其特征在于,所述确定所述数据报文是否是IPv6报文之前,还包括:
接收所述控制服务器下发的IPv6流表,所述IPv6流表中的各个字段包含该字段的类型、长度和值。
7.根据权利要求1~6中任一项所述的方法,其特征在于,所述根据匹配结果对所述IPv6报文进行相应的处理,包括:
若匹配成功,则对所述IPv6报文进行所述IPv6流表中所对应的处理操作;
若匹配不成功,则丢弃所述IPv6报文或者将所述IPv6报文发送给所述控制服务器。
8.根据权利要求7所述的方法,其特征在于,所述对应的处理操作包括:
关联下一级IPv6流表的操作、端口转发操作以及设置域操作。
9.一种报文转发设备,其特征在于,包括:
确定模块,用于根据数据报文中包含的链路层数据类型字段,确定所述数据报文是否是IPv6报文;
匹配模块,用于若所述数据报文是IPv6报文,则将所述IPv6报文中的字段内容与控制服务器预先下发的IPv6流表中所需匹配的字段内容进行匹配,所述IPv6流表中包含下述至少一个字段:
报文入口字段、元数据字段、链路层源地址字段、链路层目的地址字段、链路层数据类型字段、虚拟局域网标识字段、虚拟局域网优先级字段、MPLS标签字段、MPLS流量类型字段、IPv6源地址字段、IPv6目的地址字段、IPv6流量类型字段、IPv6下一个报头字段、IPv6流标签字段、传输层源端口或ICMP类型字段、传输层目的端口或ICMP代码字段;
所述IPv6流表还包含下述至少一个字段:
逐跳扩展头的选项字段、路由扩展头的路由类型字段、剩余片字段、类型指定数据字段、目的地选项报头的选项字段;
处理模块,用于根据匹配结果对所述IPv6报文进行相应的处理。
10.根据权利要求9所述的设备,其特征在于,还包括:
提取模块,用于在所述确定模块确定所述数据报文是否是IPv6报文之前,提取所述数据报文中的报文入口字段、链路层源地址字段、链路层目的地址字段和链路层数据类型字段的内容;在所述确定模块确定所述数据报文是IPv6报文之后,提取所述IPv6报文中的下述字段:IPv6源地址字段;IPv6目的地址字段;IPv6流量类型字段;IPv6下一个报头字段;IPv6流标签字段;传输层源端口或ICMP类型字段;传输层目的端口或ICMP代码字段;逐跳扩展头的选项字段;路由扩展头的路由类型字段;剩余片字段;类型指定数据字段;目的地选项报头的选项字段;
所述匹配模块,具体用于将所述提取模块所提取的上述字段内容与所述IPv6流表中所需匹配的字段内容进行匹配。
11.根据权利要求10所述的设备,其特征在于,所述匹配模块包括:
生成单元,用于应用所述提取模块提取的上述字段内容生成流表匹配结构;
匹配单元,用于将所述流表匹配结构与所述IPv6流表中所需匹配的字段内容进行匹配。
12.根据权利要求9所述的设备,其特征在于,还包括:
流表识别模块,用于所述匹配模块进行匹配前根据所述IPv6流表中所包含的流表类型值,从IPv6流表和IPv4流表中识别确定所述IPv6流表。
13.根据权利要求9所述的设备,其特征在于,还包括:
流表存储模块,用于接收所述控制服务器下发的IPv6流表,所述IPv6流表中的各个字段包含该字段的类型、长度和值。
14.根据权利要求9~13中任一项所述的设备,其特征在于,所述处理模块具体用于若匹配成功,则对所述IPv6报文进行所述IPv6流表中所对应的处理操作;若匹配不成功,则丢弃所述IPv6报文或者将所述IPv6报文发送给所述控制服务器。
15.一种数据报文处理系统,包括控制服务器和至少一个报文转发设备,其特征在于,所述报文转发设备采用权利要求9~14中任一项所述的报文转发设备。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2011/081287 WO2013059991A1 (zh) | 2011-10-25 | 2011-10-25 | 数据报文处理方法和系统、报文转发设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN103181129A CN103181129A (zh) | 2013-06-26 |
| CN103181129B true CN103181129B (zh) | 2015-09-30 |
Family
ID=48167046
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201180002343.6A Active CN103181129B (zh) | 2011-10-25 | 2011-10-25 | 数据报文处理方法和系统、报文转发设备 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN103181129B (zh) |
| WO (1) | WO2013059991A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI720113B (zh) | 2017-01-20 | 2021-03-01 | 香港商阿里巴巴集團服務有限公司 | 一種電文處理方法和裝置 |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104348716B (zh) * | 2013-07-23 | 2018-03-23 | 新华三技术有限公司 | 一种报文处理方法及设备 |
| CN104426762A (zh) * | 2013-08-30 | 2015-03-18 | 中兴通讯股份有限公司 | 一种传输、接收元数据的方法、开放流逻辑交换机 |
| CN103841189B (zh) * | 2014-02-28 | 2018-09-28 | 上海斐讯数据通信技术有限公司 | 控制云计算中心服务器之间数据通信的方法 |
| CN104734963B (zh) * | 2015-03-24 | 2018-07-13 | 电子科技大学 | 一种基于SDN的IPv4和IPv6网络互连方法 |
| CN106656720A (zh) * | 2016-10-31 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | 一种基于SDN的IPv4向IPv6过渡的方法及系统 |
| CN106878308B (zh) * | 2017-02-21 | 2020-06-19 | 浪潮集团有限公司 | 一种icmp报文匹配系统及方法 |
| CN108881195A (zh) * | 2018-06-07 | 2018-11-23 | 蒋云 | 基于云环境的数据安全共享方法和装置 |
| CN109088769B (zh) * | 2018-08-18 | 2021-05-07 | 国网山西省电力公司信息通信分公司 | 一种诊断mpls-vpn数据报文的装置 |
| CN109117182B (zh) * | 2018-08-29 | 2022-03-08 | 赛尔网络有限公司 | 基于源码支持IPv6程度的检测方法、设备、系统及介质 |
| CN113347090B (zh) * | 2020-02-18 | 2023-06-20 | 华为技术有限公司 | 报文处理方法、转发设备以及报文处理系统 |
| CN111343088B (zh) * | 2020-02-21 | 2021-01-29 | 清华大学 | 一种报文传输方法及装置、终端、存储介质 |
| CN113949519A (zh) * | 2020-06-29 | 2022-01-18 | 中国电信股份有限公司 | 用于实现用户身份保真的方法和系统 |
| CN111950000B (zh) * | 2020-07-30 | 2022-10-21 | 新华三技术有限公司 | 一种接入访问控制方法及设备 |
| CN114205415B (zh) * | 2020-09-17 | 2024-08-23 | 深圳市中兴微电子技术有限公司 | 报文修改方法、装置、计算机设备、介质 |
| CN112995062B (zh) * | 2021-02-07 | 2023-07-07 | 中国银联股份有限公司 | 一种数据传输方法及装置 |
| CN113595931B (zh) * | 2021-07-08 | 2024-01-16 | 杭州海康威视数字技术股份有限公司 | 一种报文处理方法、装置、设备及存储介质 |
| CN114553757B (zh) * | 2022-01-29 | 2024-06-18 | 阿里巴巴(中国)有限公司 | 基于可编程交换机的协议报文处理方法、装置和设备 |
| CN115412512B (zh) * | 2022-10-31 | 2023-03-24 | 浙江九州云信息科技有限公司 | 一种基于IPv6的多云跨网互通方法及装置 |
| CN116684358B (zh) * | 2023-07-31 | 2023-12-12 | 之江实验室 | 一种可编程网元设备的流表管理系统及方法 |
| CN117336251B (zh) * | 2023-11-30 | 2024-02-23 | 上海鉴智其迹科技有限公司 | 一种车载数据的交互方法、装置、电子设备及存储介质 |
| CN118573601B (zh) * | 2024-07-29 | 2024-11-08 | 广州通则康威科技股份有限公司 | 基于icmp的dnat连通性测试方法、装置及设备 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2011030889A1 (ja) * | 2009-09-14 | 2011-03-17 | 日本電気株式会社 | 通信システム、転送ノード、経路管理サーバ、通信方法およびプログラム |
| EP2355423A1 (en) * | 2010-01-29 | 2011-08-10 | Deutsche Telekom AG | System and method for routing data packets over an Internet Protocol network |
| CN102217228A (zh) * | 2007-09-26 | 2011-10-12 | Nicira网络公司 | 管理和保护网络的网络操作系统 |
-
2011
- 2011-10-25 WO PCT/CN2011/081287 patent/WO2013059991A1/zh not_active Ceased
- 2011-10-25 CN CN201180002343.6A patent/CN103181129B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102217228A (zh) * | 2007-09-26 | 2011-10-12 | Nicira网络公司 | 管理和保护网络的网络操作系统 |
| WO2011030889A1 (ja) * | 2009-09-14 | 2011-03-17 | 日本電気株式会社 | 通信システム、転送ノード、経路管理サーバ、通信方法およびプログラム |
| EP2355423A1 (en) * | 2010-01-29 | 2011-08-10 | Deutsche Telekom AG | System and method for routing data packets over an Internet Protocol network |
Non-Patent Citations (3)
| Title |
|---|
| Ben Pfaff等.OpenFlow Switch Specification Version 1.1.0 Implemented.《OpenFlow Switch Specification》.ONF,2011,(第1.1.0版), * |
| OpenFlow: enabling innovation in campus networks;Nick McKeown等;《ACM SIGCOMM Computer Communication Review》;20080430;第38卷(第2期);全文 * |
| Thinking about Extensibility and Scalability in OpenFlow Networking;Zhiliang Wang等;《CANS 2011》;20110809;第4页、第8-14页 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI720113B (zh) | 2017-01-20 | 2021-03-01 | 香港商阿里巴巴集團服務有限公司 | 一種電文處理方法和裝置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN103181129A (zh) | 2013-06-26 |
| WO2013059991A1 (zh) | 2013-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN103181129B (zh) | 数据报文处理方法和系统、报文转发设备 | |
| CN103718520B (zh) | 处理数据报文的方法、装置及系统 | |
| JP5867942B2 (ja) | エントリを生成するための方法、パケットを受信するための方法、および、対応する装置とシステム | |
| US7492762B2 (en) | Method for dynamic flow mapping in a wireless network | |
| US8787218B2 (en) | Dynamic establishment of virtual circuits multisegment pseudowires | |
| US20170019373A1 (en) | Method and Device for Processing Data Message | |
| CN104488237B (zh) | 一种报文处理的方法、报文设备和系统 | |
| CN100471162C (zh) | 一种发布及处理虚线路信息的方法和供应商边缘设备 | |
| KR100716163B1 (ko) | IPv4망과 IPv6망 간의 멀티캐스팅을 위한 터널링방법 및 장치 | |
| CN101573913A (zh) | 用于多播路由选择的方法和设备 | |
| EP2753030A1 (en) | Flow identification method, device, and system | |
| CN1647460A (zh) | 光纤信道网络中的标签交换 | |
| CN105337852A (zh) | 更新业务流报文的处理方式的方法及装置 | |
| EP3028401A1 (en) | Address resolution rewriting | |
| WO2016131422A1 (en) | Flow entry generating and packet processing based on flow entry | |
| CN104660574B (zh) | 数据中心的配置方法、控制实体和转发实体 | |
| US10587508B2 (en) | Ethernet frame transmission method in software defined networks (SDN) | |
| CN102904813B (zh) | 一种报文转发的方法及相应设备 | |
| EP3119046A1 (en) | Tunnel type selection method and apparatus | |
| US7664088B2 (en) | Method for providing QoS using flow label in providing multimedia service in IPv6 network and system applying the same | |
| KR100738524B1 (ko) | 멀티캐스팅을 위한 터널링 방법 및 장치 | |
| CN106789705A (zh) | 传输控制报文的方法和装置 | |
| CN100559755C (zh) | 自动发现虚拟网络的方法和系统 | |
| CN110505137B (zh) | 功能扩展式有线网络装置 | |
| US20170104606A1 (en) | Home gateway ds-lite multicast method and device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant |