CN105634955B - 流表更新方法及装置 - Google Patents
流表更新方法及装置 Download PDFInfo
- Publication number
- CN105634955B CN105634955B CN201410617976.3A CN201410617976A CN105634955B CN 105634955 B CN105634955 B CN 105634955B CN 201410617976 A CN201410617976 A CN 201410617976A CN 105634955 B CN105634955 B CN 105634955B
- Authority
- CN
- China
- Prior art keywords
- dst
- message
- flow table
- matching
- indication message
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供了流表更新方法及装置,采用根据要发送的报文中的目标VMdst的地址,查找本地流表;向查找到的流表项中指示的目标VTEPdst发送该报文;接收来自目标VTEPdst的指示报文,其中,指示报文用于指示匹配VMdst的地址失败;根据指示报文对目标VMdst对应的流表项进行更新的方式。通过本发明在一定程度上解决了VM迁移后的流表更新依赖组播或者专用控制器所导致的问题,依靠VTEP间自身的报文交互,达到及时更新流表的作用,避免了冗余流表更新的发生,节省了系统资源。
Description
技术领域
本发明涉及通信领域,具体而言,涉及流表更新方法及装置。
背景技术
数据通信的爆炸式增长,促使软件自定义网络(Software Defined Network,简称为SDN)的出现,SDN提出将控制平面和数据平面分离,数据平面仅仅负责数据转发,而控制平面则负责决策数据的转发路径。SDN控制平面驻留在SDN控制器(Controller)上,SDN数据平面驻留在SDN交换机(Switch)上。在SDN的实施操作技术中,服务器作为虚机运行在SDN网络中,不同租户的服务器之间的隔离,原来是通过虚拟局域网(Virtual Local AreaNetwork,简称为VLAN)进行隔离,但是VLAN的上限是4096,已经无法应付服务器的增长速度了。为了解决这个问题,虚拟可扩展局域网(Virtual eXtensible Local Area Network,简称为VXLAN)应运而生。
VXLAN是一种封装协议,支持在已有的L3(Layer 3)基础设施上传递互相重叠覆盖的网络上的数据。VXLAN的实现机制是:VXLAN的隧道端点(VXLAN Tunnel End Point,简称为VTEP)维护流表,流表中记录和本VTEP上虚拟机(Virtual Machine,简称为VM)通讯的在其他VTEP上的VMs的MAC地址、VXLAN网络标识(VXLAN Network Identifier,简称为VNI)和VTEP地址的映射信息,该信息用于本VTEP的VM到其他VTEP的VM的VXLAN报文的封装;同时也会记录本VTEP上的VMs的MAC地址和VNI,用于VXLAN报文的接收,过滤。
图1是根据相关技术中VXLAN报文的处理过程的示意图,如图1所示,该过程包括:
①VMsrc发送报文给VMdst,报文中包含VMdst的MAC地址;
②VTEPsrc根据报文中的VMdst的MAC地址,查找本地流表,命中了流表项;
③VTEPsrc根据命中的流表项,封装VXLAN报文,发送给VTEPdst;
④VTEPdst查找本地流表,命中了流表项;
⑤VTEPdst将VXLAN报文头剥离后,将净荷中的以太网报文投递给VMdst。
在云应用中,同一个VM由于硬件原因或者负荷均衡可能会在两个数据中心之间进行热迁移。
当一个VM在两个VTEP节点之间迁移时,涉及到需要向这个VM发送数据的其它VM所在的VTEP上的流表的更新。目前通常的做法是:
A)VM在迁移后的VTEP上,发送免费ARP报文,VM所在的VTEP向所在组播组中的其他VTEP发送组播报文,其它VTEP根据这个组播报文更新流表,更新迁移后的VM的MAC地址,VNI和VTEP地址的映射关系。
B)VM在迁移后,通知控制器,由控制器负责通知其他VTEP更新流表。
C)通过发送端VTEP的流表老化机制,等相应的流表老化后,会重新学习目标VM的流表条目。
做法A)需要依赖于组播组的通讯,如果在数据中心限制了组播报文和广播报文,则A)的做法无法行的通。
做法B)依赖于专用控制器,由控制器负责更新其他VTEP中的流表信息。控制器一旦故障,流表更新也就无法完成了。
做法C)对于流表的更新,取决于流表老化时间的长短,如果流表项刚刚建立,对端VM发生迁移,将导致大量报文错误的发送到迁移前的VTEP。
VM间的数据无法预知其时效性,可能会出现VTEP给迁移前的VM发送的数据的场景,对VM迁移后的该VTEP上将不再发送数据,对于这种场景,VTEP的流表更新工作就是冗余的,冗余的流表更新工作会浪费SDN Controller和Switch之间,以及Switch和Switch之间的传输资源,同时也会浪费Switch上的处理资源。
针对相关技术中VM迁移后的流表更新依赖组播或者专用控制器所导致的问题,目前还没有提出有效的解决方案。
发明内容
本发明提供了流表更新方法及装置,在一定程度上解决了VM迁移后的流表更新依赖组播或者专用控制器所导致的问题。
根据本发明的一个方面,提供了一种流表更新方法,包括:根据要发送的报文中的目标VMdst的地址,查找本地流表;向查找到的流表项中指示的目标VTEPdst发送所述报文;接收来自所述目标VTEPdst的指示报文,其中,所述指示报文用于指示匹配所述VMdst的地址失败;根据所述指示报文对所述目标VMdst对应的流表项进行更新。
进一步地,通过所述指示报文中的源地址取值确认匹配所述VMdst的地址失败。
进一步地,通过所述指示报文中的保留字段的取值确认匹配所述VMdst的地址失败。
进一步地,对所述目标VMdst对应的流表项进行更新包括:删除所述流表项。
根据本发明的另一个方面,提供了一种流表更新方法,包括:接收VTEPsrc发送的报文;至少根据所述报文中的目标虚拟机VMdst的地址进行匹配;在所述匹配失败的情况下,构造指示报文并发送给所述VTEPsrc,其中,所述指示报文用于指示匹配所述VMdst的地址失败。
进一步地,根据所述报文中的目标虚拟机VMdst的地址进行匹配包括:提取所述报文中的虚拟可扩展局域网网络标识VNI和所述VMdst的MAC地址,在本地流表中进行匹配。
进一步地,在所述本地流表中进行匹配失败的原因包括以下至少之一:所述VMdst发生异常退出运行、所述VMdst迁移到另一VTEP中、所述VMdst所在的VETP流表维护异常导致所述VMdst对应的流表项丢失。
进一步地,通过所述指示报文中的源地址设置为特定值指示匹配所述VMdst的地址失败。
进一步地,通过所述指示报文中的保留字段的取值指示匹配所述VMdst的地址失败。
根据本发明的一个方面,还提供了一种流表更新装置,包括:查找模块,用于根据要发送的报文中的目标VMdst的地址,查找本地流表;发送模块,用于向查找到的流表项中指示的目标VTEPdst发送所述报文;第一接收模块,用于接收来自所述目标VTEPdst的指示报文,其中,所述指示报文用于指示匹配所述VMdst的地址失败;更新模块,用于根据所述指示报文对所述目标VMdst对应的流表项进行更新。
进一步地,所述更新模块包括:第一提取单元,用于提取所述指示报文中的源地址取值;第一确认单元,通过所述第一提取单元的提取结果,用于确认匹配所述VMdst的地址失败。
进一步地,所述更新模块还包括:第二提取单元,用于提取所述指示报文中的保留字段的取值;第二确认单元,通过所述第二提取单元的提取结果,用于确认匹配所述VMdst的地址失败。
进一步地,所述更新模块包括:更新单元,用于删除所述流表项。
根据本发明的另一个方面,还提供了一种流表更新装置,包括:第二接收模块,用于接收VTEPsrc发送的报文;匹配模块,用于至少根据所述报文中的目标虚拟机VMdst的地址进行匹配;构造模块,在所述匹配模块匹配失败的情况下,用于构造指示报文并发送给所述VTEPsrc,其中,所述指示报文用于指示匹配所述VMdst的地址失败。
进一步地,所述匹配模块包括:第三提取单元,用于提取第一报文中的虚拟可扩展局域网网络标识VNI和所述VMdst的MAC地址;匹配单元,用于根据第三提取单元的提取结果在本地流表中进行匹配。
进一步地,所述匹配模块匹配失败的原因包括以下至少之一:所述VMdst发生异常退出运行、所述VMdst迁移到另一VTEP中、所述VMdst所在的VETP流表维护异常导致所述VMdst对应的流表项丢失。
进一步地,所述构造模块用于通过所述指示报文中的源地址设置为特定值指示匹配所述VMdst的地址失败。
进一步地,所述构造模块用于通过所述指示报文中的保留字段的取值指示匹配所述VMdst的地址失败。
通过本发明,采用根据要发送的报文中的目标VMdst的地址,查找本地流表;向查找到的流表项中指示的目标VTEPdst发送该报文;接收来自目标VTEPdst的指示报文,其中,指示报文用于指示匹配VMdst的地址失败;根据指示报文对目标VMdst对应的流表项进行更新的方式,在一定程度上解决了VM迁移后的流表更新依赖组播或者专用控制器所导致的问题,依靠VTEP间自身的报文交互,达到及时更新流表的作用,避免了冗余流表更新的发生,节省了系统资源。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明并不构成对本发明的不当限定。在附图中:
图1是根据相关技术中VXLAN报文的处理过程的示意图;
图2是根据本发明实施例的流表更新的流程图;
图3是根据本发明实施例的流表更新装置的结构框图;
图4是根据本发明实施例的流表更新的流程图一;
图5是根据本发明实施例的流表更新装置的结构框图一;
图6是根据本发明可选实施例的实施流表更新方法的系统示意图;
图7是根据本发明实施例的流表更新的可选流程图;
图8是根据本发明实施例的流表更新的可选流程图一;
图9是根据本发明实施例的流表更新的示意图;
图10是根据本发明实施例的指示报文的格式的示意图;
图11是根据本发明实施例的指示报文的格式的示意图一;
图12是根据本发明实施例的流表更新装置的结构框图二。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。下面将参考附图并结合实施例来详细说明本发明。
在附图中的流程图示出的步骤可以在诸如一组可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例提供了一种流表更新方法,图2是根据本发明实施例的流表更新的流程图,如图2所示,该流程包括:
步骤S202,根据要发送的报文中的目标VMdst的地址,查找本地流表;
步骤S204,向查找到的流表项中指示的目标VTEPdst发送该报文;
步骤S206,接收来自目标VTEPdst的指示报文,其中,该指示报文用于指示匹配VMdst的地址失败;
步骤S208,根据该指示报文对目标VMdst对应的流表项进行更新。
通过上述各个步骤,通过接收来自目标VTEPdst的指示报文,其中,该指示报文用于指示匹配VMdst的地址失败;根据该指示报文对目标VMdst对应的流表项进行更新的方式,可以在一定程度上解决VM迁移后的流表更新依赖组播或者专用控制器所导致的问题,依靠VTEP间自身的报文交互,达到及时更新流表的作用,避免了冗余流表更新的发生,节省了系统资源。
在步骤S208中,根据该指示报文判断出对目标VMdst的地址匹配失败,有多种实现方式,例如,可以通过该指示报文中的源地址的取值(例如,源地址的取值为0时可以认为是匹配失败),确认匹配VMdst的地址失败;又例如,可以通过该指示报文中的保留字段的取值,确认匹配VMdst的地址失败。
在步骤S208中,对目标VMdst对应的流表项进行更新可以有很多种处理,例如,可以直接删除该流表项,这样就不会出现VXLAN报文误投递给VM迁移前所在的VTEP。
在实施例中还提供了一种装置,该装置与上述实施例中的方法相对应,已经进行过说明的再次不再赘述。该装置中的模块或单元可以使存储在服务器中并可以被处理器运行的代码,也可以用其他方式实现,在此不再一一举例。
根据本发明的一个方面,还提供了一种流表更新装置,图3是根据本发明实施例的流表更新装置的结构框图,该实施例以及以下实施例中的“第一”“第二”仅用于区分,并不对顺序进行限定,如图3所示,包括:
查找模块32,用于根据要发送的报文中的目标VMdst的地址,查找本地流表;
发送模块34,用于向查找到的流表项中指示的目标VTEPdst发送该报文;
第一接收模块36,用于接收来自目标VTEPdst的指示报文,其中,该指示报文用于指示匹配所述VMdst的地址失败;
更新模块38,用于根据该指示报文对目标VMdst对应的流表项进行更新。
通过上述各个模块,利用第一接收模块36接收来自目标VTEPdst的指示报文,其中,该指示报文用于指示匹配所述VMdst的地址失败,更新模块38根据该指示报文对目标VMdst对应的流表项进行更新,可以在一定程度上解决相关技术中VM迁移后的流表更新依赖组播或者专用控制器、浪费系统资源的问题,依靠VTEP间自身的报文交互,达到及时更新流表的作用,避免了冗余流表更新的发生,节省了系统资源。
更新模块38根据该指示报文判断出对目标VMdst的地址匹配失败,有多种实现方式,例如,可以第一提取单元,提取该指示报文中的源地址取值,第一确认单元通过第一提取单元的提取结果,确认匹配VMdst的地址失败;又例如,可以通过第二提取单元提取该指示报文中保留字段的取值,第二确认单元通过第二提取单元的提取结果,确认匹配VMdst的地址失败。
更新模块38对目标VMdst对应的流表项进行更新,有多种实现方式,在一个可选的实施例中,可以通过更新单元,删除该流表项,这样就不会出现VXLAN报文误投递给VM迁移前所在的VTEP。
上述实施例及可选的实施方式是从报文发送方VMsrc或VTEPsrc的角度来进行说明的,下面从报文接收方VTEPdst的角度来进行说明。图4是根据本发明实施例的流表更新的流程图一,如图4所示,该流程包括:
步骤S402,接收VTEPsrc发送的报文;
步骤S404,至少根据该报文中的目标虚拟机VMdst的地址进行匹配;
步骤S406,在匹配失败的情况下,构造指示报文并发送给VTEPsrc,其中,该指示报文用于指示匹配VMdst的地址失败。
通过上述各个步骤,采用接收VTEPsrc发送的报文;至少根据该报文中的目标虚拟机VMdst的地址进行匹配;在匹配失败的情况下,构造指示报文并发送给VTEPsrc,其中,该指示报文用于指示匹配VMdst的地址失败的方法,可以在一定程度上解决相关技术中VM迁移后的流表更新依赖组播或者专用控制器、浪费系统资源的问题,依靠VTEP间自身的报文交互,达到及时更新流表的作用,避免了冗余流表更新的发生,节省了系统资源。
在一个可选的实施例中,步骤S404中,根据报文中的VMdst的地址进行匹配包括:提取所述报文中的VNI和VMdst的MAC地址,在本地流表中进行匹配。通过采取上述方式,可以实现对VMdst的准确匹配,在一定程度上减少误判。
在本地流表中进行匹配失败的原因有多种,在一个可选的实施方式中,其原因包括以下至少之一:VMdst发生异常退出运行、VMdst迁移到另一VTEP中、VMdst所在的VETP流表维护异常导致VMdst对应的流表项丢失。例如,主服务器和备用服务器分别处于不同的数据中心的硬件上,一个数据中心的硬件崩溃之后,服务器虚机VM热迁移到另一个数据中心。又例如,当一块硬件单板上的VM负荷较大时,将部分VM热迁移到其他硬件单板上。
在步骤S406中,VTEPdst构造指示报文的方式有多种,在一个可选的实施例中,可以通过将指示报文中的源地址设置为特定值指示匹配VMdst的地址失败,或者也可以通过指示报文中的保留字段的取值指示匹配VMdst的地址失败。通过采取上述方法,可以使指示报文中的内容被VTEPsrc知晓,并判断出VMdst的地址匹配失败,触发VTEPsrc更新流表项。仅通过VTEP间的交互,避免了报文的再次误发,节省了系统资源。
在实施例中还提供了一种装置,该装置与上述实施例中的方法相对应,已经进行过说明的再次不再赘述。该装置中的模块或单元可以使存储在服务器中并可以被处理器运行的代码,也可以用其他方式实现,在此不再一一举例。
根据本发明的另一个方面,还提供了一种流表更新装置,图5是根据本发明实施例的流表更新装置的结构框图一,如图5所示,该装置包括:
第二接收模块52,用于接收VTEPsrc发送的报文;
匹配模块54,用于至少根据该报文中的目标虚拟机VMdst的地址进行匹配;
构造模块56,在匹配模块54匹配失败的情况下,用于构造指示报文并发送给VTEPsrc,其中,该指示报文用于指示匹配VMdst的地址失败。
通过上述各个模块,利用第二接收模块52接收VTEPsrc发送的报文,匹配模块54至少根据该报文中的目标虚拟机VMdst的地址进行匹配,在匹配模块54匹配失败的情况下,构造模块56构造指示报文并发送给VTEPsrc,其中,该指示报文用于指示匹配VMdst的地址失败,在一定程度上解决了相关技术中VM迁移后的流表更新依赖组播或者专用控制器、浪费系统资源的问题,依靠VTEP间自身的报文交互,达到及时更新流表的作用,避免了冗余流表更新的发生,节省了系统资源。
匹配模块54有多种实现方式,在一个可选的实施例中,匹配模块54可以包括:第三提取单元,用于提取第一报文中的VNI和VMdst的MAC地址;匹配单元,用于根据第三提取单元的提取结果在本地流表中进行匹配。通过采取上述方式,可以实现匹配模块54对VMdst的准确匹配,在一定程度上减少误判。
在本地流表中进行匹配失败的原因有多种,在一个可选的实施方式中,匹配模块54匹配失败的原因包括以下至少之一:VMdst发生异常退出运行、VMdst迁移到另一VTEP中、VMdst所在的VETP流表维护异常导致所述VMdst对应的流表项丢失。例如,主服务器和备用服务器分别处于不同的数据中心的硬件上,一个数据中心的硬件崩溃之后,服务器虚机VM热迁移到另一个数据中心。又例如,当一块硬件单板上的VM负荷较大时,将部分VM热迁移到其他硬件单板上。
构造模块56的实现方式也有多种,在一个可选的实施例中,构造模块56可以通过将指示报文中的源地址设置为特定值指示匹配VMdst的地址失败,也可以通过所述指示报文中的保留字段的取值指示匹配所述VMdst的地址失败。通过构造模块56构造指示报文,使指示报文中的内容被VTEPsrc知晓,并判断出VMdst的地址匹配失败,触发VTEPsrc更新流表项。仅通过VTEP间的交互,避免了报文的再次误发,节省了系统资源。
需要说明的是,上述实施例中的各个模块可以位于一个服务器中,也可以分布在多个服务器中,同时,上述实施例中的模块可以相互组合,也可以拆分模块。下面,结合一个可选的实施例进行说明。
本可选实施例提供了一种流表更新的方法,仅依靠VXLAN的VTEP间自身的交互,达到及时更新流表的作用。同时也避免冗余流表更新的发生。
图6是根据本发明可选实施例的实施流表更新方法的系统示意图,如图6所示,SDN网络共包括如下的网元:SDN Controller,SDN Switch,VM,VM网元控制器(VM NetElementController),其中,SDN Controller与SDN Switch之间的通信接口为南向接口,VMNetElement Controller与SDN Controller间的接口为北向接口。本实施例中,VMNetElement Controller可以为网管控制器,VM可以为无线网络控制器(Radio NetworkController,简称为RNC)或者核心网(Core Network,简称为CN)的单板,也可以是其他应用。VM与SDN Switch之间互连。
在本可选实施例中,当VM迁移后,如果是有对应的流表项信息,但是流表项信息记录的是迁移前所在VTEP的地址,报文会发送出去,接收VXLAN报文的VTEP(迁移前VM所在的VTEP),匹配本端VM的MAC和VNI时,如果匹配失败,需要给VXLAN报文的发送端VTEP指示,触发发送端VTEP更新相应的流表。图7是根据本发明实施例的流表更新的可选流程图,如图7所示,该流程包括如下步骤:
步骤S702,目的VTEP接收到VXLAN报文,提取报文中的VNI和VM的MAC地址,在本端的流表项中进行匹配;
步骤S704,匹配失败,构造VXLAN报文指示VXLAN数据的源VTEP匹配失败;
步骤S706,源VTEP收到指示报文,触发流表项更新。
指示报文中的内容需要能够让VXLAN报文的发送端,也即源VTEP,匹配到错误的流表项,可以通过修改VXLAN报文已有字段的方式,也可以通过增加指示字段携带的方式。
根据本实施例中的各个步骤,可以避免组播报文的同时,也可以避免冗余的流表项更新,同时也根据实际业务模型的需要及时更新了流表项,避免长时间的流表项老化导致VXLAN报文误投递给VM迁移前所在的VTEP。发生迁移的情况有很多种,下面对几种情况进行举例说明。
在云应用中,同一个VM可能会两个数据中心之间进行热迁移,热迁移的场景主要包括有以下几种:
a)服务器的双机容错:主服务器和备用服务器分别处于不同的数据中心的硬件上,一个数据中心的硬件崩溃之后,服务器VM热迁移到另一个数据中心。
b)硬件上的负荷均衡:当一块硬件单板上的VM负荷较大时,将部分VM热迁移到其他硬件单板上。
c)硬件维护:一般硬件都需要定期维护,当硬件需要维护时,将该硬件上的VM热迁移到其他硬件上。
图8是根据本发明实施例的流表更新的可选流程图一,如图8所示,当VMdst发生迁移,VMdst从一个VTEP迁移到另一个VTEP时:
步骤S802,VMsrc发送报文给VMdst,这时候报文就是VMsrc发给VMdst的MAC报文;
步骤S804,VTEPsrc根据报文中的VMdst的MAC地址,查找本地流表,命中了流表项;
步骤S806,VTEPsrc根据命中的流表项封装VXLAN报文发送给VTEPdst;
步骤S808,VTEPdst查找本地流表,根据VXLAN净荷中的MAC地址查找流表项失败;
步骤S810,VTEPdst构造VXLAN报文流表匹配失败指示报文,发送给VTEPsrc;
步骤S812,VTEPsrc接收到VXLAN报文流表匹配失败指示报文,将根据指示报文净荷中的MAC地址查找流表项,将命中的流表项删除。
图9是根据本发明实施例的流表更新的示意图,通过图9的示意图,结合图8的流程图(图9中的①、②、③、④、⑤、⑥,分别对应着图8中的步骤S802、S804、S806、S808、S810、S812),可以实现本实施在不通过组播、专用控制器的情况下,仅通过VTEP间的交互,实现流表的更新,节省系统资源。
步骤S810(或图9中⑤)中流表匹配失败,指示报文中的内容含有但不限于足以让VXLAN报文的发送端匹配到错误流表项的信息,并且该信息可以在VXLAN报文已有字段中携带,也可以增加指示字段携带,目前VXLAN协议自身匹配相应表项,是需要目标VM的MAC地址和VNI。
图10是根据本发明实施例的指示报文的格式的示意图,如图10所示,借助于VXLAN原始报文的净荷中源MAC地址设置为特殊值(图10中示例为0)来携带匹配错误的信息,接收到该指示报文的VTEP,在识别出该报文后,根据VXLAN净荷中的目标MAC地址查找流表项,命中表项后,将表项删除。
图11是根据本发明实施例的指示报文的格式的示意图一,如图11所示,借助于扩展VXLAN头中的保留字段的取值(图11中示例为VXLAN头的FLAG字段的最高bit)来携带匹配错误的信息,同样,接收到该指示报文的VTEP,在识别出该报文后,根据VXLAN净荷中的目标MAC地址查找流表项,命中表项后,将表项删除。
VXLAN报文流表匹配失败指示报文的格式不限于图10和图11中的格式,可以采用任何一种由VXLAN报文接收端构造,并发送给VXLAN报文发送端,用于指示流表项不一致的报文的格式。
当VMdst发生异常,退出运行,VTEPdst对应的流表项删除,VTEPdst无法将报文投递到VMdst,此时,也是按照上述步骤S802~S812,交互流表匹配失败指示报文,及时触发VTEPsrc更新流表项。
在另一种情况中,VMdst所在的VTEP流表维护异常,导致VMdst对应的流表项丢失,也会导致VTEPdst无法将报文投递到VMdst,此时,也是按照上一实施例中的步骤S802~S812,交互流表匹配失败指示报文,及时触发VTEPsrc更新流表项。
在另一个可选的实施例中,还提供了一种装置,图12是根据本发明实施例的流表更新装置的结构框图二,如图12所示,该装置分为指示报文发送端(Sender of ErrorIndication)和指示报文接收端(Receiver of Error Indication),其中Sender of ErrorIndication包含了VXLAN报文接收模块M1202、VXLAN报文流表查找模块M1204、VXLAN报文流表匹配错误报文构造模块M1206、VXLAN报文发送模块M1208,Receiver of ErrorIndication包含了VXLAN报文接收模块M1202、VXLAN报文流表匹配错误报文解析模块M1210和VXLAN报文流表项更新模块M1212。
指示报文的发送端:
VXLAN报文接收模块M1202,负责VXLAN报文的接收,解析,提取流表项查找关键字;
查找关键字提取后,由VXLAN报文流表查找模块M1204负责在本地缓存的流表中,查找和该VXLAN报文净荷匹配的表项;
如果匹配失败,则由VXLAN报文流表匹配错误报文构造模块M1206负责构造指示报文;
VXLAN报文发送模块M1208发送该指示报文。
指示报文的接收端:
VXLAN报文接收模块M1202接收到报文;
VXLAN报文流表匹配错误报文解析模块M1210进行解析,并提取VXLAN报文流表项操作关键字;
VXLAN报文流表项更新模块M1212根据关键字更新本端缓存的流表项信息。
在本实施例中,指示报文接收端的VXLAN报文接收模块M1202实现了第一接收模块36的功能,VXLAN报文流表匹配错误报文解析模块M1210与VXLAN报文流表项更新模块M1212实现了更新模块38的功能,指示报文发送端的VXLAN报文接收模块M1202实现了第二接收模块52的功能,VXLAN报文流表查找模块M1204实现了匹配模块54的功能,VXLAN报文流表匹配错误报文构造模块M1206与VXLAN报文发送模块M1208实现了构造模块56的功能。
通过以上各个模块使得VXLAN报文的发送端(即指示报文的接收端),及时识别出对于同一个VM的MAC流表项在本端流表和对端流表中的不一致性,并快速达到一致。
通过上述实施例及可选的实施方式,纠正VTEP间流表不一致,避免VXLAN报文的错误投递。同时避开使用广播、组播报文,并仅仅对真正需要更新的节点进行更新,避免了VTEP节点的冗余流表更新工作。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种流表更新方法,其特征在于,包括:
根据要发送的报文中的目标VMdst的地址,查找本地流表;
向查找到的流表项中指示的目标VTEPdst发送所述报文;
接收来自所述目标VTEPdst的指示报文,其中,所述指示报文用于指示匹配所述VMdst的地址失败;
根据所述指示报文将所述目标VMdst对应的流表项删除。
2.根据权利要求1所述的方法,其特征在于,通过所述指示报文中的源地址取值确认匹配所述VMdst的地址失败。
3.根据权利要求1所述的方法,其特征在于,通过所述指示报文中的保留字段的取值确认匹配所述VMdst的地址失败。
4.一种流表更新方法,其特征在于,包括:
接收VTEPsrc发送的报文;
至少根据所述报文中的目标虚拟机VMdst的地址进行匹配;
在所述匹配失败的情况下,构造指示报文并发送给所述VTEPsrc,其中,所述指示报文用于指示匹配所述VMdst的地址失败;
根据所述指示报文将所述目标VMdst对应的流表项删除。
5.根据权利要求4所述的方法,其特征在于,根据所述报文中的目标虚拟机VMdst的地址进行匹配包括:
提取所述报文中的虚拟可扩展局域网网络标识VNI和所述VMdst的MAC地址,在本地流表中进行匹配。
6.根据权利要求5所述的方法,其特征在于,在所述本地流表中进行匹配失败的原因包括以下至少之一:
所述VMdst发生异常退出运行、所述VMdst迁移到另一VTEP中、所述VMdst所在的VETP流表维护异常导致所述VMdst对应的流表项丢失。
7.根据权利要求4所述的方法,其特征在于,通过所述指示报文中的源地址设置为特定值指示匹配所述VMdst的地址失败。
8.根据权利要求4所述的方法,其特征在于,通过所述指示报文中的保留字段的取值指示匹配所述VMdst的地址失败。
9.一种流表更新装置,其特征在于,包括:
查找模块,用于根据要发送的报文中的目标VMdst的地址,查找本地流表;
发送模块,用于向查找到的流表项中指示的目标VTEPdst发送所述报文;
第一接收模块,用于接收来自所述目标VTEPdst的指示报文,其中,所述指示报文用于指示匹配所述VMdst的地址失败;
更新模块,用于根据所述指示报文将所述目标VMdst对应的流表项删除。
10.根据权利要求9所述的装置,其特征在于,所述更新模块包括:
第一提取单元,用于提取所述指示报文中的源地址取值;
第一确认单元,通过所述第一提取单元的提取结果,用于确认匹配所述VMdst的地址失败。
11.根据权利要求9所述的装置,其特征在于,所述更新模块还包括:
第二提取单元,用于提取所述指示报文中的保留字段的取值;
第二确认单元,通过所述第二提取单元的提取结果,用于确认匹配所述VMdst的地址失败。
12.一种流表更新装置,其特征在于,包括:
第二接收模块,用于接收VTEPsrc发送的报文;
匹配模块,用于至少根据所述报文中的目标虚拟机VMdst的地址进行匹配;
构造模块,在所述匹配模块匹配失败的情况下,用于构造指示报文并发送给所述VTEPsrc,其中,所述指示报文用于指示匹配所述VMdst的地址失败,以便所述VTEPsrc根据所述指示报文将所述目标VMdst对应的流表项删除。
13.根据权利要求12所述的装置,其特征在于,所述匹配模块包括:
第三提取单元,用于提取第一报文中的虚拟可扩展局域网网络标识VNI和所述VMdst的MAC地址;
匹配单元,用于根据第三提取单元的提取结果在本地流表中进行匹配。
14.根据权利要求12所述的装置,其特征在于,所述匹配模块匹配失败的原因包括以下至少之一:
所述VMdst发生异常退出运行、所述VMdst迁移到另一VTEP中、所述VMdst所在的VETP流表维护异常导致所述VMdst对应的流表项丢失。
15.根据权利要求12所述的装置,其特征在于,所述构造模块用于通过所述指示报文中的源地址设置为特定值指示匹配所述VMdst的地址失败。
16.根据权利要求12所述的装置,其特征在于,所述构造模块用于通过所述指示报文中的保留字段的取值指示匹配所述VMdst的地址失败。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410617976.3A CN105634955B (zh) | 2014-11-05 | 2014-11-05 | 流表更新方法及装置 |
PCT/CN2015/080999 WO2016070617A1 (zh) | 2014-11-05 | 2015-06-08 | 流表更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410617976.3A CN105634955B (zh) | 2014-11-05 | 2014-11-05 | 流表更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105634955A CN105634955A (zh) | 2016-06-01 |
CN105634955B true CN105634955B (zh) | 2020-01-14 |
Family
ID=55908509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410617976.3A Active CN105634955B (zh) | 2014-11-05 | 2014-11-05 | 流表更新方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105634955B (zh) |
WO (1) | WO2016070617A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370679A (zh) * | 2017-07-20 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种实现迁移处理的方法及装置 |
CN111221561B (zh) * | 2020-01-14 | 2024-05-31 | 平安科技(深圳)有限公司 | 流表更新方法、装置、系统、计算机设备及存储介质 |
CN112737957B (zh) * | 2020-12-30 | 2022-12-13 | 锐捷网络股份有限公司 | 流表的老化方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1946041A (zh) * | 2006-06-20 | 2007-04-11 | 杭州华为三康技术有限公司 | 基于arp侦听的vlan聚合方法、汇聚交换机及系统 |
CN102036233A (zh) * | 2009-09-27 | 2011-04-27 | 中兴通讯股份有限公司 | 一种重定位处理方法及系统 |
CN104092614A (zh) * | 2014-07-30 | 2014-10-08 | 杭州华三通信技术有限公司 | 更新地址解析信息的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819267B2 (en) * | 2011-11-16 | 2014-08-26 | Force10 Networks, Inc. | Network virtualization without gateway function |
US20140112187A1 (en) * | 2012-10-23 | 2014-04-24 | Electronics And Telecommunications Research Institute | Apparatus for flow-based network monitoring and network monitoring system |
CN103795636B (zh) * | 2012-11-02 | 2017-04-12 | 华为技术有限公司 | 组播处理方法、装置及系统 |
CN103916320B (zh) * | 2012-12-28 | 2017-09-15 | 中国移动通信集团公司 | 一种vm设备跨网迁移后的报文处理方法及装置 |
CN103841028B (zh) * | 2014-03-24 | 2017-02-08 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
-
2014
- 2014-11-05 CN CN201410617976.3A patent/CN105634955B/zh active Active
-
2015
- 2015-06-08 WO PCT/CN2015/080999 patent/WO2016070617A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1946041A (zh) * | 2006-06-20 | 2007-04-11 | 杭州华为三康技术有限公司 | 基于arp侦听的vlan聚合方法、汇聚交换机及系统 |
CN102036233A (zh) * | 2009-09-27 | 2011-04-27 | 中兴通讯股份有限公司 | 一种重定位处理方法及系统 |
CN104092614A (zh) * | 2014-07-30 | 2014-10-08 | 杭州华三通信技术有限公司 | 更新地址解析信息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016070617A1 (zh) | 2016-05-12 |
CN105634955A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10659342B2 (en) | Flow entry configuration method, apparatus, and system | |
US10547538B2 (en) | Packet forwarding method and apparatus | |
US10397045B2 (en) | Method for migrating service of data center, apparatus, and system | |
EP3435606B1 (en) | Message processing method, computing device, and message processing apparatus | |
CN113709057A (zh) | 网络拥塞的通告方法、代理节点、网络节点及计算机设备 | |
CN107623757B (zh) | 表项更新方法和装置 | |
US11310081B2 (en) | Packet transmission method and apparatus | |
CN112887229B (zh) | 一种会话信息同步方法及装置 | |
US20160134534A1 (en) | Switching device, controller, method for configuring switching device, and method and system for processing packet | |
CN105634955B (zh) | 流表更新方法及装置 | |
CN115152192B (zh) | Pce受控网络可靠性 | |
KR20230017324A (ko) | Bier 멀티캐스트 트래픽 통계 수집 방법, 디바이스 및 시스템 | |
US20220210036A1 (en) | Network Measurement System And Method, Device, And Storage Medium | |
US10680930B2 (en) | Method and apparatus for communication in virtual network | |
CN109218176B (zh) | 一种报文处理的方法及装置 | |
CN103024094B (zh) | 一种安全可靠的dns区文件信息下发更新方法及系统 | |
CN105790985B (zh) | 数据倒换的方法、第一设备、第二设备及系统 | |
CN112887312B (zh) | 一种慢协议报文处理方法及相关装置 | |
US10257087B2 (en) | Communication device and communication method | |
WO2022088931A1 (zh) | 信息处理方法及其装置、宽带接入服务器、存储介质 | |
EP3288224A1 (en) | Data packet forwarding method and network device | |
CN109039680B (zh) | 一种切换主宽带网络网关bng和备bng的方法、系统和bng | |
CN114301960B (zh) | 集群非对称流量的处理方法及装置、电子设备及存储介质 | |
CN113590268B (zh) | 虚拟机迁移方法、arp代理网关及vtep | |
JP2017022579A (ja) | 通信システム、通信ノード、および通信システムにおける代替処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |