CN104243299A - 一种隧道处理方法及***、控制面设备、转发面设备 - Google Patents
一种隧道处理方法及***、控制面设备、转发面设备 Download PDFInfo
- Publication number
- CN104243299A CN104243299A CN201310236650.1A CN201310236650A CN104243299A CN 104243299 A CN104243299 A CN 104243299A CN 201310236650 A CN201310236650 A CN 201310236650A CN 104243299 A CN104243299 A CN 104243299A
- Authority
- CN
- China
- Prior art keywords
- tunnel
- encapsulation
- action
- instruction
- encapsulation header
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种隧道处理方法及***、控制面设备、转发面设备,其中,该方法包括:配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作;根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。转发面设备用于根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。采用本发明,针对隧道封转和解封装的隧道处理,能对转发面设备做统一的转发行为模型的业务配置控制,以精确控制转发面设备的行为。
Description
技术领域
本发明涉及软件定义网络(SDN,Software Defined Network)架构网络通信领域的隧道处理技术,尤其涉及一种开放流(OpenFlow)管道上的隧道处理方法及***、控制面设备、转发面设备。
背景技术
由于现在的网络暴露出了越来越多的弊病以及人们对网络性能的需求越来越高,研究人员不得不把很多复杂功能加入到路由器的体系结构当中,例如开放式最短路径优先(OSPF)、边界网关协议(BGP)、组播、区分服务、流量工程、网络地址转换(NAT)、防火墙、多协议标签交换(MPLS)功能等。这就使得路由器等交换设备越来越臃肿而且性能提升的空间越来越小。
然而,与网络领域的困境截然不同的是,计算机领域实现了日新月异的发展。仔细回顾计算机领域的发展,不难发现其关键在于计算机领域找到了一个简单可用的硬件底层(x86指令集)。由于有了这样一个公用的硬件底层,所以在软件方面,不论是应用程序还是操作***都取得了飞速的发展。现在很多主张重新设计计算机网络体系结构的人士认为:网络可以复制计算机领域的成功来解决现在网络所遇到的所有问题。在这种思想的指导下,将来的网络必将是这样的:底层的数据通路(交换机、路由器)是“哑的、简单的、最小的”,并定义一个对外开放的关于流表的公用的应用程序接口(API,Application Program Interface),同时采用控制器来控制整个网络。未来的研究人员就可以在控制器上自由的调用底层的API来编程,从而实现网络的创新。
基于上述的理念出现了SDN架构,其最初是由美国斯坦福大学clean slate研究组提出的一种新型网络创新架构。目前,其核心技术是开放流(OpenFlow) 协议,基于OpenFlow实现SDN架构,在SDN架构中,交换设备的数据转发面和控制面是分离的,因此网络协议和交换策略的升级只需要改动控制面,通过将数据转发面和控制面的分离,实现了对网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
引入OpenFlow技术后的交换机,通常称为OpenFlow交换机,其区别于传统的交换机,OpenFlow交换机将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机和控制器来共同完成,实现了数据转发和路由控制的分离。控制器可以通过事先规定好的接口操作来控制OpenFlow交换机中的OpenFlow流表,从而达到控制数据转发的目的,也就是说,基于OpenFlow的SDN架构是在OpenFlow交换机上实现数据转发,而在控制器上实现数据的转发控制,从而实现了上述数据转发面和控制层的分离。
上述OpenFlow协议,是用来描述控制面设备(如OF配置点和控制器)和转发面设备(如OpenFlow交换机)之间交互所用信息的标准,以及控制面设备和转发面设备的接口标准。OpenFlow协议的核心部分是用于OpenFlow协议信息结构的集合。
上述OpenFlow流表(也称为隧道信息流表)由很多个流表项组成,每个流表项就是一个转发规则。进入OpenFlow交换机的数据包通过查询OpenFlow流表来获得转发的目的端口。
OpenFlow流表或经过配置的多个OpenFlow流表级联而形成的OpenFlow管道,用来配置交换机转发路径。如图1所示为现有技术的报文流通过OpenFlow管道的示意图,图1中Table0、Table1~Tablen为多个OpenFlow流表,n为正整数,多个OpenFlow流表级联所构成的管道称为所述OpenFlow管道。
如图2所示为现有技术基于每个OpenFlow流表的报文匹配处理过程,以Table0为例,该过程包括:1)在Table0找到最高优先级的匹配流表条目;2)应用指令集的指令:修改报文或更新匹配的域;更新动作集;更新元数据;3)匹配成功后将匹配数据和更新的动作集发送给下一个流表Table1。
以下对现有的OpenFlow流表举例描述如下:
OpenFlow流表由表1所示的匹配域、计数器和指令集等以下几个字段构成:
Match Fields | Priority | Counters | Instructions | Timeouts | Cookie |
表1
表1中,匹配域(Match Fields)为报文匹配的输入关键字,用于匹配一条流表项;优先级(Priority)为流表项中先后匹配规则的优先级;计数器(Counters)为用于管理用的各种统计信息;指令集(Instructions)是指对报文的操作指令,包括丢弃、转发报文到指定端口、设置报文头部字段值、增加封装标签等。动作集(Action Set)和每个报文相关联,它在OpenFlow管道的多个流表之间传递并被各流表指令集的操作指令所修改,直到报文经由OpenFlow管道处理结束,形成最终的动作集。当前最新的OpenFlow1.3.2规定了11种动作构成的动作集,分别是:
copy TTL inwards:对报文应用向内层复制TTL的动作;
pop:对报文应用弹出标签的操作;
push-vlan:对报文应用压入vlan标签的操作;
push-mpls:对报文应用压入mpls标签的操作;
copy TTL outwards:对报文应用向外层复制TTL的动作;
decrement TTL:报文的TTL值减1;
set:对报文应用set-field动作;
qos:对报文应用QoS动作,如Set-queue;
group:如果指定了一个组动作,那么按照此列表的顺序应用相关组容器中的动作;
output:如果没有指定组动作,那么就按照output动作将报文转发到指定的端口;
push PBB:对报文应用PBB标签压入动作。
为了使用IDC场景的业务需求(例如多租户、虚拟机迁移)并兼容现有网 络协议,OpenFlow管理和配置协议发布了第一个版本(OF-CONFIG1.0&1.1),OF-Config1.1.1协议定义了VxLAN、NV-GRE、IP-in-GRE等隧道属性的接口(即在接口的属性中增加隧道类型和隧道封装相关的信息),用于处理OpenFlow转发面设备的VxLAN等隧道的处理。
现有技术存在的问题是:最新的OpenFlow协议(OpenFlow1.3.2)并没有为此定义处理上述隧道的转发面管道上的隧道处理动作,也就是针对隧道封转和解封装的隧道处理仍然属于标准定义之外的行为,不利于对多厂商OpenFlow转发面设备做统一的转发行为模型的业务配置控制,以精确控制转发面设备的行为。针对这个问题,目前尚未存在有效的解决方案。
发明内容
有鉴于此,本发明的主要目的在于提供一种隧道处理方法及***、控制面设备、转发面设备,针对隧道封转和解封装的隧道处理,能对转发面设备做统一的转发行为模型的业务配置控制,以精确控制转发面设备的行为。
为达到上述目的,本发明的技术方案是这样实现的:
一种隧道处理方法,该方法包括:
配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作;
根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
其中,执行所述压入指定封装头动作具体包括:将指定封装头的长度和内容的封装头压入报文中。
其中,执行所述弹出指定封装头的动作具体包括:将指定长度的最外层封装头从报文中弹出。
其中,所述封装头具体包括隧道头、和/或外层IP头、和/或以太头。
其中,该方法还包括:配置由多个开放流OpenFlow流表级联而成的OpenFlow管道;
任意一个OpenFlow流表由多个流表条目构成,每一个流表条目至少包括匹配域、指令集;其中,所述匹配域以隧道ID为匹配键值,所述匹配键值由上一级OpenFlow流表条目填充到Meta的约定字段上;所述指令集至少包括所述隧道封装指令和解封装指令。
其中,所述隧道ID具体包括:配置隧道属性的接口ID。
一种隧道处理***,该***包括:
控制面设备,用于配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作;
转发面设备,用于根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
其中,所述转发面设备,进一步用于执行所述压入指定封装头动作时,将指定封装头的长度和内容的封装头压入报文中。
其中,所述转发面设备,进一步用于执行所述弹出指定封装头的动作时,将指定长度的最外层封装头从报文中弹出。
其中,所述控制面设备,进一步用于配置所述封装头具体包括隧道头、和/或外层IP头、和/或以太头。
其中,所述控制面设备,进一步用于配置多个OpenFlow流表,任意一个OpenFlow流表由多个流表条目构成,每一个流表条目至少包括匹配域、指令集;其中,所述匹配域以隧道ID为匹配键值,所述匹配键值由上一级OpenFlow流表条目填充到Meta的约定字段上;所述指令集至少包括所述隧道封装指令和解封装指令;
所述转发面设备,进一步包括由所述多个OpenFlow流表级联而成的OpenFlow管道,进入转发面设备的报文根据所述OpenFlow管道上级联的OpenFlow流表依序匹配执行。
其中,所述隧道ID具体包括:配置隧道属性的接口ID。
其中,所述控制面设备,进一步包括:
OF配置点,用于给一个转发面设备的对应接口配置隧道属性信息后,将配 置的隧道属性信息通知控制器;
控制器,用于解析所述隧道属性信息后添加具有压入指定封装头和/或弹出指定封装头的动作、和/或预置隧道封装头内容的流表条目到所述OpenFlow流表中。
其中,所述控制器,进一步用于对转发面设备上所述OpenFlow管道的所述多个OpenFlow流表的级联流程进行预选配置并通知所述转发面设备;
所述转发面设备,进一步用于在需要做封装或解封装的隧道处理情况下,所述进入转发面设备的报文根据所述OpenFlow管道上级联的OpenFlow流表依序匹配执行时,在所述级联流程中的一个OpenFlow流表匹配成功后,携带填有隧道ID的Meta跳转到与该OpenFlow流表级联的后续一个OpenFlow流表上继续匹配,匹配成功后根据流表条目中的压入指定封装头动作和弹出指定封装头的动作,分别执行报文隧道头的封装和解封装处理。
其中,所述转发面设备,进一步用于所述进入转发面设备的报文经由OpenFlow管道处理结束或流表指令为执行动作集Apply Actions时,分别完成所述报文隧道头的封装和解封装处理。
一种控制面设备,控制面设备,用于配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作。
一种转发面设备,该转发面设备,用于根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
本发明配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作;根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
由于本发明配置了一组通用性的隧道封装指令和解封装指令,能对转发面设备做统一的转发行为模型的业务配置控制,以精确控制转发面设备的行为,相应地,分别执行对应的压入指定封装头动作和弹出指定封装头的动作,从而对现有OpenFlow协议进行了扩展,能处理隧道的转发面管道上的隧道处理动作,即针对隧道封转和解封装的隧道处理操作。
附图说明
图1为现有技术的报文流通过OpenFlow管道的示意图;
图2为现有技术中基于每个OpenFlow流表的报文匹配处理示意图;
图3为本发明方法原理的实现流程示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述。
现有标准动作中Push-vlan、Push-MPLS、Push-PBB,它们共同的语义是压入一种特殊的封装数据头,但是该封装头不具有一般性,或者说通用性不强,针对隧道封装和解封装的隧道处理而言,对应不同报文类型,每增加一种封装类型,就需要一组新的压入(Push)/弹出(Pop)动作,由此本发明抽象出一种更一般化,通用性更强,适合做隧道封装和解封装的隧道处理动作,避免每增加一种封装类型,就需要一组新的Push/Pop动作。具体的,本发明通过扩展现有OpenFlow协议,新增一组Push/Pop动作来解决上述一般性封装问题,从而能处理各种报文类型的隧道封装和解封装的隧道处理操作,本发明的方法易于扩展和维护。
就本文的OpenFlow管道和隧道的区别而言,OpenFlow管道指:转发面设备中包括由多个OpenFlow流表级联而形成的OpenFlow管道,OpenFlow管道用来配置转发面设备的报文转发路径,OpenFlow流表用于描述隧道属性信息,隧道是业务属性,有了隧道属性信息才能执行对应的业务。
本发明的隧道处理方法包括以下内容:
如图3所示,该方法包括以下步骤:
步骤101、配置一组通用性的隧道封装和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作。
这里,可以将配置的一组通用性的隧道封装和解封装指令保存于OpenFlow流表的指令集中,以便后续步骤102按照指令集中的对应指令执行相应的操作,即根据隧道封装的指令对应执行压入指定封装头的动作,及隧道解封装的指令 对应执行弹出指定封装头的动作。所述配置可以在控制面设备中的OF配置点实现,交由控制面设备中的控制器添加到OpenFlow流表中,控制器下发OpenFlow流表给转发面设备,如OpenFlow交换机,在OpenFlow交换机针对OpenFlow流表中的指令执行对应的动作。
步骤102、根据隧道封装和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
由上述步骤101~102组成的方案中,
进一步地,所述压入指定封装头,表示将一个预置好(指定封装头的长度和内容)的封装头压入报文中。所述弹出指定封装头,表示将指定长度的最外层封装头从报文中弹出。
进一步地,所述封装头建议包括具体隧道协议的隧道头和/或外层IP头和/或以太头,控制面设备中的控制器对多个OpenFlow流表进行业务配置时应根据封装头是否封装了外层IP头或以太头,配置其他相关动作以便正确处理报文。
进一步地,转发面设备中包括由多个OpenFlow流表级联而形成的OpenFlow管道,OpenFlow管道用来配置转发面设备的报文转发路径,任意一个OpenFlow流表以隧道ID为匹配键值,所述隧道键值由上一级OpenFlow流表条目填充到元数据(Meta)的约定字段上。所述Meta用于在OpenFlow流表间直接传递指定信息。
进一步地,所述隧道ID可以是配置隧道属性的接口ID。
进一步地,OF配置点给一个转发面设备的对应接口配置隧道属性后,将配置的隧道属性通知给控制器,如OpenFlow控制器,由控制器添加具有压入指定封装头和/或弹出指定封装头的动作、和/或预置隧道封装头内容的流表条目到所述OpenFlow流表。
进一步地,在特定流(特定流为需执行封装或解封装的流)需要做封装或解封装的隧道处理时,控制器会预先配置OpenFlow管道上的流表流程,使之能在该流程中的一个OpenFlow流表匹配成功后,携带填有隧道ID的Meta跳 转到与该OpenFlow流表级联的后续一个OpenFlow流表上继续匹配,匹配成功后根据流表条目中的动作执行隧道的封装或解封装处理。
进一步地,报文经由OpenFlow管道处理结束或流表指令为“Apply Actions”时,完成报文隧道头的封装或解封装处理,即报文已添加了完整的隧道头或已剥离了隧道头。
本发明的隧道处理***包括以下内容:
控制面设备,用于配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作;
转发面设备,用于根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
进一步地,所述转发面设备用于执行所述压入指定封装头动作时,将指定封装头的长度和内容的封装头压入报文中。
进一步地,所述转发面设备用于执行所述弹出指定封装头的动作时,将指定长度的最外层封装头从报文中弹出。
进一步地,所述控制面设备用于配置所述封装头具体包括隧道头、和/或外层IP头、和/或以太头。
进一步地,所述控制面设备用于配置多个OpenFlow流表,任意一个OpenFlow流表由多个流表条目构成,每一个流表条目至少包括匹配域、指令集;其中,所述匹配域以隧道ID为匹配键值,所述匹配键值由上一级OpenFlow流表条目填充到Meta的约定字段上;所述指令集至少包括所述隧道封装指令和解封装指令;
进一步地,所述转发面设备包括由所述多个OpenFlow流表级联而成的OpenFlow管道,进入转发面设备的报文根据所述OpenFlow管道上级联的OpenFlow流表依序匹配执行。
进一步地,所述隧道ID具体包括:配置隧道属性的接口ID。
进一步地,所述控制面设备包括:
OF配置点,用于给一个转发面设备的对应接口配置隧道属性信息后,将配 置的隧道属性信息通知控制器;
控制器,用于解析所述隧道属性信息后添加具有压入指定封装头和/或弹出指定封装头的动作、和/或预置隧道封装头内容的流表条目到所述OpenFlow流表中。
这里需要指出的是:OF配置点和控制器优选地集成在一个设备实体内,也可以分开设置,在OF配置点和控制器之间有交互的接口。
进一步地,所述控制器用于对转发面设备上所述OpenFlow管道的所述多个OpenFlow流表的级联流程进行预选配置并通知所述转发面设备;
所述转发面设备用于在需要做封装或解封装的隧道处理情况下,所述进入转发面设备的报文根据所述OpenFlow管道上级联的OpenFlow流表依序匹配执行时,在所述级联流程中的一个OpenFlow流表匹配成功后,携带填有隧道ID的Meta跳转到与该OpenFlow流表级联的后续一个OpenFlow流表上继续匹配,匹配成功后根据流表条目中的压入指定封装头动作和弹出指定封装头的动作,分别执行报文隧道头的封装和解封装处理。
进一步地,所述转发面设备用于所述进入转发面设备的报文经由OpenFlow管道处理结束或流表指令为执行动作集Apply Actions时,分别完成所述报文隧道头的封装和解封装处理。
本发明的控制面设备主要包括以下内容:
控制面设备,用于配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作。
本发明的转发面设备主要包括以下内容:
该转发面设备,用于根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
应用实例1:
本实例为OpenFlow流表表项的示例,如以下表2所示为本发明的OpenFlow流表的表项。
表2
(1)该OpenFlow流表的匹配域(Match Fields)项中包含隧道标识(ID),对应匹配Meta数据中的隧道ID字段;
(2)该OpenFlow流表的指令集(Instructions)项中包含‘写动作’指令,要写的动作有压入指定封装头(Push tunnel header)或弹出指定封装头(Pop tunnel header)等动作。其中,所述tunnel指隧道。
(3)压入指定封装头,表示将一个预置好(指定封装头的长度和内容)的封装头压入报文中,如表3的注解所示。
(4)弹出指定封装头表示将指定长度的最外层封装头从报文中弹出,如表3的注解所示。
(5)压入指定封装头或弹出指定封装头的动作可以在流表指令为执行动作集(Apply Actions)或OpenFlow管道结束时执行完毕。
表3为本发明扩展的压入指定封装头和弹出指定封装头两个动作的具体解释,新定义的针对预置性质隧道处理的动作(Action)如表3所示:
表3
实施时,在控制面设备配置,如果控制面设备由集成的OF配置点和控制器组成,则OF配置点配置完隧道属性信息后交由控制器处理,且由控制器下发流表给转发面设备,以实现对进入转发面设备的报文按照预选配置的流表流级联程执行动作,主要是执行压入指定封装头和弹出指定封装头,即对应报文隧道头的封装和解封装处理。
对于OpenFlow来说,所有遵循OpenFlow协议的的规则都被组织在不同的OpenFlow流表中,在同一个OpenFlow流表中按规则的优先级进行先后匹配。 一个转发面设备可以包含一个或者多个OpenFlow流表,多个OpenFlow流表构成的OpenFlow管道,多个OpenFlow流表从0依次编号排列,进入转发面设备的报文在OpenFlow管道上的隧道处理是流水线式的级联处理流程,具体的,当报文进入转发面设备后,必须从OpenFlow流表0开始依次匹配,OpenFlow流表可以按次序从小到大越级跳转,但不能从某一OpenFlow流表向前跳转至编号更小的OpenFlow流表,当报文成功匹配一条流表条目规则后,将首先更新该规则对应的统计数据(如成功匹配数据包总数目和总字节数等),然后根据流表条目规则中指令集的指令进行相应的操作,比如跳转至后续一OpenFlow流表继续处理,修改或者立即执行该数据包对应的动作集(Action Set)等。当报文已经处于OpenFlow管道上最后一个OpenFlow流表时,其对应的Action Set中的所有Action将被执行,包括转发至某一端口,修改数据包某一字段,丢弃数据包,封装或解封装等。
应用实例2:
本实例提供了根据本发明实施例隧道为GRE时的动作,具体请参见表4。当具体隧道属性类型为GRE时,上述的动作可以按如下方式理解:
表4
当具体隧道属性是GRE时,相应的动作可以对应理解如下:
(1)封装GRE隧道头(Push GRE header)表示将GRE头压入报文中。
(2)解封装GRE隧道头(Pop tunnel header)表示将最外层GRE头从报文中弹出。
以配置GRE的接口属性为例,对配置和控制转发面设备进行报文转发的过程进行描述,可以由用户或上层业务面(APP)动态指定SDN网络中某个拓扑 节点的接口(物理接口或创建的逻辑接口)进行配置,这时APP如果能掌握路由信息以及对应的地址解析协议(ARP)信息,ARP包括其和具备路由/ARP功能的APP联动,或者使用静态配置,APP可以将GRE隧道的隧道头封装信息、外层IP头和以太头一起下发给控制面设备,由其分解给OF配置点和OpenFlow控制器进行处理,分别创建/配置接口的属性和下发针对隧道封装的流表(执行隧道封装的动作,可以一直封装到以太头)给转发面设备。
如果APP不能掌握路由和ARP信息,在实施中,就要求控制面设备(主要是控制器)提供路由和ARP模块(一些厂商的控制器的软件架构中规划了这个功能模块)的查询功能,在控制面设备做转换,例如APP通过OF配置点配置接口的GRE隧道属性后,通知对应的控制器,由控制器在本地或向具备路由/ARP功能的APP查询路由/ARP信息,然后生成流表下发给相关的转发面设备,并关联该流表和对应的路由,在路由更新导致实际的出接口变化时,更新该流表,修改封装信息(主要是更新封装信息中的外层以太头)和出接口的动作。
当然在按传统路由器设备转发方式配置OpenFlow管道并支持OpenFlow管道级联时,实施可以更简单,OpenFlow流表中的流表条目的封装信息可以只包括隧道头和/或IP头(视隧道类型而定,例如GRE隧道类型应该包括IP头),Apply Actions执行封装动作后继续跳转到具备路由功能的路由表或下一级级联管道上继续处理外层IP的路由和修改以太头动作,由于这些动作并没有标准化,而且扩展的实现方案选择比较多,所以本发明仅优先专注于隧道信息的封装和解封装动作。
应用实例3:
本实例提供了根据本发明实施例隧道为GRE时的报文封装,具体请参见表5,表5为本发明隧道为GRE时的报文封装头的基本格式。当隧道是GRE时,GRE隧道封装后的报文格式为:
表5
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (17)
1.一种隧道处理方法,其特征在于,该方法包括:
配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作;
根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
2.根据权利要求1所述的方法,其特征在于,执行所述压入指定封装头动作具体包括:将指定封装头的长度和内容的封装头压入报文中。
3.根据权利要求1所述的方法,其特征在于,执行所述弹出指定封装头的动作具体包括:将指定长度的最外层封装头从报文中弹出。
4.根据权利要求2或3所述的方法,其特征在于,所述封装头具体包括隧道头、和/或外层IP头、和/或以太头。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:配置由多个开放流OpenFlow流表级联而成的OpenFlow管道;
任意一个OpenFlow流表由多个流表条目构成,每一个流表条目至少包括匹配域、指令集;其中,所述匹配域以隧道ID为匹配键值,所述匹配键值由上一级OpenFlow流表条目填充到Meta的约定字段上;所述指令集至少包括所述隧道封装指令和解封装指令。
6.根据权利要求5所述的方法,其特征在于,所述隧道ID具体包括:配置隧道属性的接口ID。
7.一种隧道处理***,其特征在于,该***包括:
控制面设备,用于配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作;
转发面设备,用于根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
8.根据权利要求7所述的***,其特征在于,所述转发面设备,进一步用于执行所述压入指定封装头动作时,将指定封装头的长度和内容的封装头压入报文中。
9.根据权利要求7所述的***,其特征在于,所述转发面设备,进一步用于执行所述弹出指定封装头的动作时,将指定长度的最外层封装头从报文中弹出。
10.根据权利要求8或9所述的***,其特征在于,所述控制面设备,进一步用于配置所述封装头具体包括隧道头、和/或外层IP头、和/或以太头。
11.根据权利要求7所述的***,其特征在于,所述控制面设备,进一步用于配置多个OpenFlow流表,任意一个OpenFlow流表由多个流表条目构成,每一个流表条目至少包括匹配域、指令集;其中,所述匹配域以隧道ID为匹配键值,所述匹配键值由上一级OpenFlow流表条目填充到Meta的约定字段上;所述指令集至少包括所述隧道封装指令和解封装指令;
所述转发面设备,进一步包括由所述多个OpenFlow流表级联而成的OpenFlow管道,进入转发面设备的报文根据所述OpenFlow管道上级联的OpenFlow流表依序匹配执行。
12.根据权利要求11所述的***,其特征在于,所述隧道ID具体包括:配置隧道属性的接口ID。
13.根据权利要求11所述的***,其特征在于,所述控制面设备,进一步包括:
OF配置点,用于给一个转发面设备的对应接口配置隧道属性信息后,将配置的隧道属性信息通知控制器;
控制器,用于解析所述隧道属性信息后添加具有压入指定封装头和/或弹出指定封装头的动作、和/或预置隧道封装头内容的流表条目到所述OpenFlow流表中。
14.根据权利要求11所述的***,其特征在于,所述控制器,进一步用于对转发面设备上所述OpenFlow管道的所述多个OpenFlow流表的级联流程进行预选配置并通知所述转发面设备;
所述转发面设备,进一步用于在需要做封装或解封装的隧道处理情况下,所述进入转发面设备的报文根据所述OpenFlow管道上级联的OpenFlow流表依序匹配执行时,在所述级联流程中的一个OpenFlow流表匹配成功后,携带填有隧道ID的Meta跳转到与该OpenFlow流表级联的后续一个OpenFlow流表上继续匹配,匹配成功后根据流表条目中的压入指定封装头动作和弹出指定封装头的动作,分别执行报文隧道头的封装和解封装处理。
15.根据权利要求14所述的***,其特征在于,所述转发面设备,进一步用于所述进入转发面设备的报文经由OpenFlow管道处理结束或流表指令为执行动作集Apply Actions时,分别完成所述报文隧道头的封装和解封装处理。
16.一种控制面设备,其特征在于,控制面设备,用于配置一组通用性的隧道封装指令和解封装指令,分别对应压入指定封装头动作和弹出指定封装头的动作。
17.一种转发面设备,其特征在于,该转发面设备,用于根据隧道封装指令和解封装指令,分别执行对应的压入指定封装头动作和弹出指定封装头的动作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310236650.1A CN104243299B (zh) | 2013-06-14 | 2013-06-14 | 一种隧道处理方法及***、控制面设备、转发面设备 |
PCT/CN2014/079635 WO2014198217A1 (zh) | 2013-06-14 | 2014-06-10 | 一种隧道处理方法及***、控制面设备、转发面设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310236650.1A CN104243299B (zh) | 2013-06-14 | 2013-06-14 | 一种隧道处理方法及***、控制面设备、转发面设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104243299A true CN104243299A (zh) | 2014-12-24 |
CN104243299B CN104243299B (zh) | 2019-07-02 |
Family
ID=52021661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310236650.1A Active CN104243299B (zh) | 2013-06-14 | 2013-06-14 | 一种隧道处理方法及***、控制面设备、转发面设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104243299B (zh) |
WO (1) | WO2014198217A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161289A (zh) * | 2015-03-23 | 2016-11-23 | 中兴通讯股份有限公司 | 一种基于sdn的网关中控制报文的处理方法及*** |
CN108512758A (zh) * | 2018-03-07 | 2018-09-07 | 华为技术有限公司 | 报文处理方法、控制器以及转发设备 |
CN108600021A (zh) * | 2018-04-28 | 2018-09-28 | 盛科网络(苏州)有限公司 | 可灵活编程配置的隧道封装芯片实现方法和装置 |
CN109156040A (zh) * | 2016-05-26 | 2019-01-04 | 华为技术有限公司 | 一种通信控制的方法及相关网元 |
CN113452551A (zh) * | 2021-06-11 | 2021-09-28 | 烽火通信科技股份有限公司 | Vxlan隧道拓扑监控方法、装置、设备及存储介质 |
CN114301737A (zh) * | 2021-12-29 | 2022-04-08 | 迈普通信技术股份有限公司 | 网络配置方法、装置、网络设备及计算机可读存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104702479B (zh) * | 2015-03-10 | 2018-08-24 | 新华三技术有限公司 | Sdn网络中建立隧道的方法和装置 |
CN110995766B (zh) * | 2019-12-31 | 2021-09-14 | 联想(北京)有限公司 | 一种网络通信方法及采用网络通信方法的客户端与中心站点 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377646A (zh) * | 2010-08-12 | 2012-03-14 | 盛科网络(苏州)有限公司 | 转发芯片、网络交换***及组播实现方法 |
CN102420772A (zh) * | 2011-12-31 | 2012-04-18 | 杭州华三通信技术有限公司 | 隧道报文收发方法和装置 |
CN102523150A (zh) * | 2011-11-30 | 2012-06-27 | 华为技术有限公司 | 一种隧道报文处理的方法、装置和*** |
CN102710432A (zh) * | 2012-04-27 | 2012-10-03 | 北京云杉世纪网络科技有限公司 | 云计算数据中心中的虚拟网络管理***及方法 |
WO2012130264A1 (en) * | 2011-03-29 | 2012-10-04 | Nec Europe Ltd. | User traffic accountability under congestion in flow-based multi-layer switches |
US20130054761A1 (en) * | 2011-08-29 | 2013-02-28 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing a 3G Packet Core in a Cloud Computer with Openflow Data and Control Planes |
-
2013
- 2013-06-14 CN CN201310236650.1A patent/CN104243299B/zh active Active
-
2014
- 2014-06-10 WO PCT/CN2014/079635 patent/WO2014198217A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377646A (zh) * | 2010-08-12 | 2012-03-14 | 盛科网络(苏州)有限公司 | 转发芯片、网络交换***及组播实现方法 |
WO2012130264A1 (en) * | 2011-03-29 | 2012-10-04 | Nec Europe Ltd. | User traffic accountability under congestion in flow-based multi-layer switches |
US20130054761A1 (en) * | 2011-08-29 | 2013-02-28 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing a 3G Packet Core in a Cloud Computer with Openflow Data and Control Planes |
CN102523150A (zh) * | 2011-11-30 | 2012-06-27 | 华为技术有限公司 | 一种隧道报文处理的方法、装置和*** |
CN102420772A (zh) * | 2011-12-31 | 2012-04-18 | 杭州华三通信技术有限公司 | 隧道报文收发方法和装置 |
CN102710432A (zh) * | 2012-04-27 | 2012-10-03 | 北京云杉世纪网络科技有限公司 | 云计算数据中心中的虚拟网络管理***及方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161289A (zh) * | 2015-03-23 | 2016-11-23 | 中兴通讯股份有限公司 | 一种基于sdn的网关中控制报文的处理方法及*** |
CN109156040A (zh) * | 2016-05-26 | 2019-01-04 | 华为技术有限公司 | 一种通信控制的方法及相关网元 |
CN109156040B (zh) * | 2016-05-26 | 2020-04-28 | 华为技术有限公司 | 一种通信控制的方法及相关网元 |
CN108512758A (zh) * | 2018-03-07 | 2018-09-07 | 华为技术有限公司 | 报文处理方法、控制器以及转发设备 |
CN108512758B (zh) * | 2018-03-07 | 2021-09-14 | 华为技术有限公司 | 报文处理方法、控制器以及转发设备 |
US11546255B2 (en) | 2018-03-07 | 2023-01-03 | Huawei Technologies Co., Ltd. | Packet processing method, controller, and forwarding device |
CN108600021A (zh) * | 2018-04-28 | 2018-09-28 | 盛科网络(苏州)有限公司 | 可灵活编程配置的隧道封装芯片实现方法和装置 |
CN108600021B (zh) * | 2018-04-28 | 2021-06-18 | 盛科网络(苏州)有限公司 | 可灵活编程配置的隧道封装芯片实现方法和装置 |
CN113452551A (zh) * | 2021-06-11 | 2021-09-28 | 烽火通信科技股份有限公司 | Vxlan隧道拓扑监控方法、装置、设备及存储介质 |
CN114301737A (zh) * | 2021-12-29 | 2022-04-08 | 迈普通信技术股份有限公司 | 网络配置方法、装置、网络设备及计算机可读存储介质 |
CN114301737B (zh) * | 2021-12-29 | 2023-10-24 | 迈普通信技术股份有限公司 | 网络配置方法、装置、网络设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104243299B (zh) | 2019-07-02 |
WO2014198217A1 (zh) | 2014-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11929945B2 (en) | Managing network traffic in virtual switches based on logical port identifiers | |
CN104243299A (zh) | 一种隧道处理方法及***、控制面设备、转发面设备 | |
CN103347013B (zh) | 一种增强可编程能力的OpenFlow网络***和方法 | |
CN112187517B (zh) | 一种数据中心sdn虚拟路由的配置方法、平台及控制器 | |
CN107204867A (zh) | 一种信息传输方法、装置和*** | |
CN103095565B (zh) | 一种软件定义网络操作***及其实现方法 | |
CN104702479B (zh) | Sdn网络中建立隧道的方法和装置 | |
EP3070895A1 (en) | Encapsulation method and system for flow identifier | |
CN106936777A (zh) | 基于OpenFlow的云计算分布式网络实现方法、*** | |
CN104158745B (zh) | 一种实现数据包转发的方法及*** | |
CN104426756B (zh) | 一种服务节点能力信息的获取方法及控制平台 | |
CN107566237B (zh) | 一种数据报文处理方法及装置 | |
US10389618B2 (en) | Distributing network path information in a network environment | |
CN104125128A (zh) | Linux软桥支持VLAN的方法 | |
CN104486227B (zh) | 通过VxLAN技术实现IPv6灵活部署的***及方法 | |
CN104468162A (zh) | 网络管理方法及***、虚拟网络实体、网络设备 | |
CN105429882A (zh) | 基于传统交换芯片查找方式的报文编辑实现方法及装置 | |
CN105450525A (zh) | 用于路由交换设备使用的方法和设备 | |
CN104426762A (zh) | 一种传输、接收元数据的方法、开放流逻辑交换机 | |
EP3799366A1 (en) | Mapping services to tunnels in order to forward packets using a network device | |
WO2020098597A1 (zh) | 一种组播的方法及路由设备 | |
CN108667729B (zh) | 一种基于mpls的sdn业务隔离及选路的方法和装置 | |
CN105262686B (zh) | 一种网络连通性验证方法和装置 | |
CN103986660B (zh) | 加载微码的装置以及加载微码的方法 | |
CN103078802A (zh) | 一种逻辑功能块动态拓扑的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |