一种等价转发表项生成方法和VTEP设备与流程

文档序号:14993405发布日期:2018-07-20 22:58阅读:229来源:国知局
本申请涉及通信
技术领域
,尤其涉及一种等价转发表项生成方法和vtep设备。
背景技术
:在evpn(ethernetvirtualprivatenetwork,以太网虚拟专用网络)中,为了提高链路的带宽利用率,以及增强网络可靠性,通常一个用户的主机(或者虚拟化虚机),或者是一个用户的私有网络,可以通过多条链路接到evpn网络中的多台vtep(vxlantunnelendpoint,vxlan隧道端点)设备上,这称为多归属接入。evpn多归属引入了以下概念:es(ethernetsegment,以太网段):如果一个主机通过多条链路同时接入不同的vtep设备,那么这多条链路就叫作es。esi(ethernetsegmentidentifier,以太网段标识符):用来标识一个es的值叫做esi。df(designatedforwarder,指定转发者):对应一个虚机接入不同的vtep设备的情况,为了让bum(broadcast&unknown-unicast&multicast,广播&未知单播&组播)流量不存在环路和重复的问题,可以从多个vtep设备上具有相同esi值的接入点中选举出来一个df设备。图2所示即为一种evpn多归属组网。图2中,虚拟机vm1通过一个交换机lsw同时接入2个vtep设备,分别为vtep1和vtep2。vm1上线之后,会上报免费arp(addressresolutionprotocol,地址解析协议)报文给2个vtep设备,但是2个vtep设备上的负责接入vm1的ac(attachmentcircuit,接入电路)口中,只有一个vtep上的ac口是df口,另一个vtep上的ac口是非df口;这里假设vtep1上的ac口是df口,vtep2上的ac口是非df口,那么vtep2收到vm1发的免费arp报文会直接丢弃该报文,而vtep1收到该免费arp报文则会将该报文中的vm1的mac(mediumaccesscontrol,媒体接入控制)/ip(internetprotocol,互联网协议)地址添加到本地的mac/ip地址表项中,该vm1的mac/ip地址对应的出接口为接收到该免费arp报文的ac口,也即与vm1连接的ac口。同时vtep1会将vm1的mac/ip地址通过第二类evpn路由,即mac/ip通告路由(mac/ipadvertisementroute)同步给所有的对端设备,比如vtep2和vtep3;vtep2收到mac/ip通告路由后,发现vtep2和vtep1属于同一个evpn多归属系统,从而将由vtep2同步过来的vm1的mac/ip地址添加到本地的mac/ip地址表项中,出接口为与vm1连接的ac口;vtep3收到mac/ip通告路由后,发现vtep3和vtep1不属于同一个evpn多归属系统,从而将由vtep1同步过来的vm1的mac/ip地址添加到本地的mac/ip地址表项中,出接口为目的地址为vtep1和vtep2的vxlan隧道,这两条出接口分别对应vtep1和vtep2的vxlan隧道的mac/ip地址表项在vtep3上形成等价转发表项。技术实现要素:本申请提供一种等价转发表项生成方法和vtep设备。具体地,本申请是通过如下技术方案实现的:本申请第一方面,提供了一种等价转发表项生成方法,所述方法应用于evpn中的vtep设备,所述方法包括:接收多个es路由;若判定所述多个es路由均包含下一跳可达字段且所述多个es路由包含相同的esi,则确定发送所述多个es路由的多个对端vtep设备的ip地址,生成包含所述相同的esi和所述多个对端vtep设备的ip地址的等价下一跳表项;当收到的mac/ip通告路由中的esi与已生成的所述等价下一跳表项中的esi匹配时,生成以所述mac/ip通告路由中的终端地址为匹配项、以目的地址为所述多个对端vtep设备的vxlan隧道为出接口的等价转发表项。本申请第二方面,提供了一种vtep设备。所述vtep设备具有实现上述方法的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能对应的模块或单元。一种实现方式中,所述vtep设备可以包括:接收单元,用于接收多个es路由;下一跳表项生成单元,用于若判定所述多个es路由均包含下一跳可达字段且所述多个es路由包含相同的esi,则确定发送所述多个es路由的多个对端vtep设备的ip地址,生成包含所述相同的esi和所述多个对端vtep设备的ip地址的等价下一跳表项;转发表项生成单元,用于当收到的mac/ip通告路由中的esi与已生成的所述等价下一跳表项中的esi匹配时,生成以所述mac/ip通告路由中的终端地址为匹配项、以目的地址为所述多个对端vtep设备的vxlan隧道为出接口的等价转发表项。另一种实现方式中,所述vtep设备可以包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;所述处理器通过读取所述存储器中存储的逻辑指令,执行本申请第一方面所述的等价转发表项生成方法。本申请对evpn协议中的es路由进行了扩展,增加了一个下一跳可达字段,如果vtep设备收到的es路由中携带该下一跳可达字段,则可以说明发送该es路由的对端vtep设备是可达的,如此就不需要再依赖于ip-prefix网关路由或者evpn其它类型的路由,只需根据es路由就可以支持vtep设备生成完整的等价转发表项。附图说明图1是现有技术下evpn多归属组网内的终端mac/ip地址引入过程示意图;图2是本申请提供的方法流程图;图3是本申请提供的下一跳可达字段的格式示意图;图4是本申请中evpn多归属组网内的终端mac/ip地址引入过程示意图;图5是本申请提供的装置功能模块框图;图6是本申请提供的图5所示装置的硬件结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。如前文
背景技术
所述,在图1所示的evpn多归属组网中,vtep3可以基于vtep1同步的vm1的mac/ip地址,生成到vm1的等价转发表项;但按照evpn多归属组网的mac/ip地址引入流程,vtep3生成上述等价转发表项需要具备如下两个前提条件:第一,vtep3从vtep1和vtep2收到了携带相同esi的es路由;第二,vtep3从vtep1和vtep2收到了ip-prefix(ip前缀)网关路由。这里,es路由(也可称为df选举路由)的其中一个用途是用来判断哪些vtep属于同一个evpn多归属系统。如果vtep3从vtep1和vtep2收到了携带相同esi的es路由,那么可以判定vtep1和vtep2属于同一个evpn多归属系统,二者下挂同一个终端;后续vtep3不管是从vtep1还是从vtep2收到携带该相同esi的mac/ip通告路由,都可以生成到该mac/ip通告路由所通告的mac/ip地址的、出接口分别对应vtep1和vtep2的等价转发表项。至于ip-prefix网关路由,可用于令ip-prefix网关路由的接收方确认ip-prefix网关路由的发送方是可达的。如果vtep3从vtep1和vtep2收到了携带相同路由前缀的ip-prefix网关路由,那么可以判定vtep1和vtep2是可达的。在evpn多归属组网中,触发vtep设备发送es路由的条件是在该vtep设备的接口上配置了esi,触发vtep设备发送ip-prefix网关路由的条件是该vtep设备使能了网关功能。前一个条件很好满足,当vtep设备与其它vtep设备下挂同一终端时,必然会在这些vtep设备负责接入该终端的接口上配置esi;但后一个条件却不能必然满足,现有实现中不一定会在每个vtep设备上都使能网关功能,而如果某个组成evpn多归属系统的vtep设备未使能网关功能并且没有其它可以表明该vtep设备可达的路由消息,将导致其它vtep设备上无法生成到达该vtep设备下挂终端的转发表项。比如图1中,如果vtep2未使能网关功能并且没有其它可以表明vtep2可达的路由消息,那么即使vtep3从vtep2收到了和从vtep1收到的携带相同esi的es路由,也不会下发到达vtep2这一出接口的转发表项,最终vtep3上形成的到vm1的转发表项的下一跳只有vtep1一个。为此,本申请提出了一种应用于evpn组网的等价转发表项生成方案,本方案对evpn协议中的es路由进行了扩展,增加了一个下一跳可达字段,如果vtep设备收到的es路由中携带该下一跳可达字段,则可以说明发送该es路由的对端vtep设备是可达的,如此就不需要再依赖于ip-prefix网关路由或者evpn其它类型的路由来下发等价转发表项。下面结合说明书附图和各实施例对本申请技术方案进行说明。参见图2,在一个实施方案中,evpn中的vtep设备在运行过程中执行如下步骤:步骤201:vtep设备接收多个es路由。步骤202:若判定上述多个es路由均包含下一跳可达字段且这多个es路由包含相同的esi,则vtep设备确定发送这多个es路由的多个对端vtep的ip地址,生成包含该相同的esi和该多个对端vtep设备的ip地址的等价下一跳表项。如果判定多个es路由均包含下一跳且这多个es路由包含相同的esi,则vtep设备可以确定发送者多个es路由的对端vtep设备可达且属于同一个evpn多归属系统。这里的下一跳可达字段可以携带在es路由的扩展团体属性(ext-community)字段中,也可以携带在es路由的保留字段中。本申请通过这个字段表示发送该es路由的vtep对于接收该es路由的vtep而言是可达的。作为一个实施例,该下一跳可达字段的格式如图3所示,可以包括以下内容:类型(type)域:当type域的值为0x06时表明本字段属于evpn协议的扩展团体属性字段;子类型(sub-type)域:用于表明本字段具体为扩展团体属性字段中的下一跳可达字段,其取值可以设置为扩展团体属性字段中未被定义的任意值(目前扩展团体属性字段中已定义的sub-type值有0x01和0x02),图3中将sub-type域的值设置为0x03;router’smac域:6字节,用于承载es路由发送方的主mac地址,也即vxlan封装mac地址;当es路由接收方通过vxlan隧道向es路由发送方发送报文时,需要为报文封装此mac地址;此外,下一跳可达字段中还可以包括保留字段(reserved)域。步骤202中,vtep设备在根据收到的es路由中的下一跳可达字段确认对端vtep设备可达,以及根据es路由中的相同esi确定对端vtep设备属于同一个evpn多归属系统,下挂同一个终端之后,可以根据该es路由生成等价下一跳表项和邻接表项。等价下一跳表项的形式如表1所示,至少包括esi列和下一跳列,其中esi列填写的是es路由包含的esi,下一跳列填写的是发送该es路由的对端vtep设备的ip地址,等价下一跳表项中一个esi对应多个下一跳。邻接表项的形式如表2所示,至少包括隧道目的地址列、隧道封装mac地址列和隧道标识列,其中隧道目的地址列填写的是发送es路由的对端vtep设备的ip地址,隧道封装mac地址列填写的是es路由的下一跳可达字段包含的vxlan封装mac地址,隧道标识列填写的是以该对端vtep设备的ip地址为目的地址的vxlan隧道的隧道标识。表1表2隧道目的地址隧道封装mac地址隧道标识步骤203:当收到的mac/ip通告路由中的esi与已生成的上述等价下一跳表项中的esi匹配时,生成以该mac/ip通告路由中的终端地址为匹配项、以目的地址为该多个对端vtep设备的vxlan(virtualextensiblelan,可扩展虚拟局域网络)隧道为出接口的等价转发表项。具体的,步骤203中vtep设备可通过以下步骤生成等价转发表项:第一步,在收到mac/ip通告路由时,检查该mac/ip通告路由中是否包含esi,如果包含则表明该mac/ip通告路由所通告的终端同时接入多个vtep设备,从而可以利用该mac/ip通告路由中的esi查找与之匹配的等价下一跳表项;第二步,利用匹配等价下一跳表项中的与上述esi对应的多个对端vtep设备的ip地址,查找与之匹配的邻接表项;第三步,从找到的多个匹配邻接表项中提取隧道标识,将提取出的多个隧道标识对应的vxlan隧道作为出接口、将mac/ip通告路由中的终端地址作为匹配项,生成相应的等价转发表项。之后,当有报文命中已生成的等价转发表项时,vtep设备可以利用该等价转发表项的其中一个出接口查询与之匹配的邻接表,再利用匹配的邻接表中的vxlan封装mac地址封装该报文,并将封装后的报文通过该等价转发表项中的其中一个出接口发送出去。至此,完成图2所示的流程。通过图2所示的流程可以看出,本申请对evpn协议中的es路由进行了扩展,增加了一个下一跳可达字段,如果vtep设备收到的es路由中携带该下一跳可达字段,则可以说明发送该es路由的对端vtep设备是可达的,如此就不需要再依赖于ip-prefix网关路由或者evpn其它类型的路由,只需根据es路由就可以支持vtep设备生成完整的等价转发表项。为了使本领域技术人员更加清楚和明白,下面以图4所示的evpn多归属场景为例,对图2所示流程进行描述。参见图4,图4为本申请提供的实施例组网示意图。如图4所示,存在三个vtep设备:vtep1、vtep2和vtep3。在图4中,各vtep设备进行以下设置:1)vtep1、vtep2和vtep3的ip地址分别为1.1.1.1、2.2.2.2和3.3.3.3;2)vtep3上,根据evpn协议动态创建2条vxlan隧道tunnel0和tunnel1,其中tunnel0的源地址为3.3.3.3,目的地址为1.1.1.1;tunnel1的源地址为3.3.3.3,目的地址为2.2.2.2;3)vtep1和vtep2上,配置相同的vxlan封装mac地址,比如为1-1-1;4)vtep1和vtep2上,各自创建一个ac口,ac口配置相同的esi的值,比如为1;虚拟机vm1通过这两个ac口同时接入vtep1和vtep2,vm1的ip地址为10.1.1.2/24。基于上述配置,则vtep1、vtep2和vtep3之间的交互如下:vtep1向vtep2和vtep3发送es路由(也称df选举路由),携带vni(vxlannetworkidentifier,vxlan网络标识符)值100、esi值1和下一跳可达字段,其中下一跳可达字段中包含vxlna封装mac地址1-1-1。vtep2向vtep1和vtep3发送es路由,携带vni值100、esi值1、和下一跳可达字段,其中下一跳可达字段中包含vxlna封装mac地址1-1-1。vtep1、vtep2和vtep3上,均会形成如下所示的df选举列表。根据现有规格,假设最终选举出vtep1上负责接入vm1的ac口为df口。表3df选举列表esi待选举vtep设备的ip地址11.1.1.112.2.2.2vtep3在收到vtep1和vtep2的es路由后,发现这2条es路由具备相同的esi值1,并且均携带下一跳可达字段,因此还会根据这2条es路由在本地生成等价下一跳表项:表4等价下一跳表项以及,vtep3还会根据生成的等价下一跳表项中的下一跳来生成邻接表项,邻接表项中的mac地址正是es路由的下一跳可达字段中包含的vxlan封装mac地址:表5邻接表项隧道目的地址隧道封装mac地址隧道标识1.1.1.11-1-1tunnel02.2.2.21-1-1tunnel1vm1上线之后,只有作为df设备的vtep1可以学习到vm1的mac/ip地址。vtep1将vm1的mac/ip地址通过mac-ip通告路由同步给vtep2和vtep3,同时在mac-ip通告路由中携带对应的esi值1。vtep2收到vtep1同步过来的vm1的mac/ip通告路由后,提取mac/ip通告路由中的esi值1,发现本地存在相同esi值为1的ac口,因此将vm1的mac/ip地址添加到本地的mac/ip地址表项中,出接口为vm1连接的ac口。vtep3收到vtep1同步过来的vm1的mac/ip通告路由之后,提取mac/ip通告路由中的esi值1,在本地进行遍历,发现表4所示的等价下一跳表项中存在esi值1,该esi值1对应两个下一跳1.1.1.1和2.2.2.2,再联系表5所示的邻接表项,可以得到esi值1对应的两个vxlan隧道的隧道标识为tunnel0和tunnel1,从而可以生成如下所示的等价转发表项(这里仅示出等价ip地址表项):表6等价转发表项以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述。参见图5,为本申请提供的一种vtep设备,该vtep设备位于evpn中。如图5所示,所述vtep设备可以包括以下单元:接收单元501,用于接收多个es路由。下一跳表项生成单元502,用于若判定所述多个es路由均包含下一跳可达字段且所述多个es路由包含相同的esi,则确定发送所述多个es路由的多个对端vtep设备的ip地址,生成包含所述相同的esi和所述多个对端vtep设备的ip地址的等价下一跳表项。转发表项生成单元503,用于当收到的mac/ip通告路由中的esi与已生成的所述等价下一跳表项中的esi匹配时,生成以所述mac/ip通告路由中的终端地址为匹配项、以目的地址为所述多个对端vtep设备的vxlan隧道为出接口的等价转发表项。在其中一种实施方式中,所述vtep设备还可以包括:邻接表项生成单元,用于若判定收到的多个es路由均包含下一跳可达字段且所述多个es路由包含相同的esi,则生成包含所述多个对端vtep设备的ip地址和对应所述多个对端vtep设备的隧道标识的邻接表项,所述隧道标识用于标识以所述多个对端vtep设备为目的地址的vxlan隧道。相应的,所述转发表项生成单元503,用于当收到的mac/ip通告路由中的esi与已生成的所述等价下一跳表项中的esi匹配时,利用匹配的等价下一跳表项中的所述多个对端vtep设备的ip地址查找与之匹配的邻接表项;将匹配的邻接表项中的所述隧道标识对应的多个vxlan隧道作为出接口,将所述mac/ip通告路由中的终端地址作为匹配项,生成相应的等价转发表项。在其中一种实施方式中,所述下一跳可达字段中可以包含vxlan封装mac地址;所述邻接表项中还可以包含所述vxlan封装mac地址;所述vtep设备还可以包括:报文转发单元,用于当有报文命中所述等价转发表项时,利用所述等价转发表项的其中一个出接口查询与之匹配的邻接表项;利用匹配的邻接表项中的vxlan封装mac地址封装所述报文,并将封装后的报文通过所述其中一个出接口发送出去。在其中一种实施方式中,所述下一跳可达字段可以携带在es路由的扩展团体属性字段中;或者,所述下一跳可达字段可以携带在es路由的保留字段中。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。参见图6,图6为本申请提供的一种vtep节点设备的硬件结构示意图,该vtep设备包括:通信接口601、处理器602、存储器603和总线604;其中,通信接口601、处理器602和存储器603通过总线604完成相互间的通信。其中,通信接口601,用于发送和接收报文。处理器602可以是一个中央处理器(cpu),存储器603可以是非易失性存储器(non-volatilememory),并且存储器603中存储有生成等价转发表项的逻辑指令,处理器602可以执行存储器603中存储的等价转发表项生成逻辑指令,以实现上述图2所示流程中的vtep设备的功能。至此,完成图6所示的硬件结构描述。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1