一种报文转发方法及装置与流程

文档序号:16774764发布日期:2019-02-01 18:38阅读:150来源:国知局
一种报文转发方法及装置与流程
本发明涉及网络通信
技术领域
,尤其涉及一种报文转发方法及装置。
背景技术
:dr(distributedrelay,分布式聚合)聚合是一种跨设备链路聚合技术,将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担.创建相同的二层聚合接口,并配置该接口为动态聚合模式。dr协议将动态聚合口的信息(成员口、up(工作)/down(故障)状态等)同步到对端设备形成dr聚合口。如图1所示,为一种典型的drs(分布式聚合系统)的示意图,leaf(叶子节点)1上从ac(attachmentcircuit,接入电路)3收到报文之后查l2(二层)或者l3(三层)表项,查到目的端口为tunnel(隧道)1,报文从tunnel1转发出去;leaf1上从tunnel1收到报文之后查l2或者l3表项,查到目的端口为ac3,报文从ac3转发出去。leaf2同理。当ac3和leaf2之间的链路不通,即ac3单挂时,tunnel2到ac3的报文不能直接转发,需要先通过ipl(intra-portallink,内部控制链路)隧道(图1中称为tunnel3)转发到leaf1,然后再转发到ac3,实现报文的转发。然而实践发现,当所有dr成员口均down,或者,下行的服务器或交换机掉电时,leaf1和leaf2均能感知到本地dr成员口down,但在感知到对端设备的dr成员口down之前,对于tunnel2到ac3的报文,leaf2仍然会通过tunnel3转发给leaf1;leaf1接收到该报文时,由于本地dr成员口down,因此,leaf1会将该报文再次通过tunnel3转发给leaf2,从而,导致报文在leaf1和leaf2之间通过tunnel3来回转发,直至leaf1和leaf2感知到对端设备的dr成员口down时将报文丢弃。技术实现要素:本发明提供一种报文转发方法及装置,以解决报文在dr成员设备之间通过ipl隧道来回转发的问题。根据本发明实施例的第一方面,提供一种报文转发方法,包括:对于从内部控制链路ipl隧道接收到的报文,在该报文中增加第一标记;对于目的端口为本地分布式聚合dr成员口对应的接入电路ac的报文,在该报文中增加第二标记;当本地dr成员口的状态由开启状态变化为关闭状态时,丢弃携带所述第一标记和所述第二标记的报文。根据本发明实施例的第二方面,提供一种报文转发装置,其特征在于,包括:第一增加单元,用于对于从内部控制链路ipl隧道接收到的报文,在该报文中增加第一标记;第二增加单元,用于对于目的端口为本地分布式聚合dr成员口对应的接入电路ac的报文,在该报文中增加第二标记;转发单元,用于当本地dr成员口的状态由开启状态变化为关闭状态时,丢弃携带所述第一标记和所述第二标记的报文。应用本发明公开的技术方案,通过对于从ipl隧道接收到的报文,在该报文中增加第一标记;对于目的端口为本地dr成员口对应的ac的报文,在该报文中增加第二标记,进而,当本地dr成员口的状态由开启状态变化为关闭状态时,丢弃携带第一标记和第二标记的报文,避免了报文在dr成员设备之间通过ipl隧道来回转发。附图说明图1是一种典型的drs的示意图;图2是本发明实施例提供的一种报文转发方法的流程示意图;图3a是本发明实施例提供的一种具体应用场景的架构示意图;图3b~3d是本发明实施例提供的drs的示意图;图4是本发明实施例提供的一种报文转发装置的结构示意图;图5是本发明实施例提供的另一种报文转发装置的结构示意图;图6是本发明实施例提供的另一种报文转发装置的结构示意图;图7是本发明实施例提供的另一种报文转发装置的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。请参见图2,为本发明实施例提供的一种报文转发方法的流程示意图,其中,该报文转发方法可以应用于drs系统中的任一dr成员设备(下文中称为目标dr成员设备),如图2所示,该报文转发方法可以包括以下步骤:步骤201、对于从ipl隧道接收到的报文,在该报文中增加第一标记。本发明实施例中,当目标dr成员设备从ipl隧道接收的报文,即对端dr成员设备通过ipl隧道发送给目标dr成员设备的报文时,目标dr成员设备可以在该报文中增加一个用于标识该报文为从ipl隧道接收到的报文的标记(本文中称为第一标记)。在一个示例中,可以通过acl(accesscontrollist,访问控制列表)方式实现在特定报文中增加第一标记。相应地,上述报文转发方法还可以包括:当创建ipl隧道时,生成第一acl表项;其中,第一acl表项的匹配项为入端口为ipl隧道的隧道口,动作项为在与该第一acl表项的匹配项匹配的报文增加第一标记。在该示例中,当目标dr成员设备与对端dr成员设备创建ipl隧道时,目标dr成员设备可以生成一个用于指示在该报文中增加第一标记的acl表项(本文中称为第一acl表项),该第一acl表项可以指示目标dr成员设备在从ipl隧道接收到的报文中增加第一标记。其中,第一acl表项可以表1所示:表1匹配项动作项入端口为ipl隧道的隧道口在报文中增加第一标记当目的dr成员设备从ipl隧道接收到报文时,可以根据该报文查询表1所示的acl表项,发现匹配成功,此时,目标dr成员设备可以在该报文中增加第一标记。步骤202、对于目的端口为本地dr成员口对应的ac的报文,在该报文中增加第二标记。本发明实施例中,当目标dr成员设备查询本地转发表项确定报文的目的端口为本地dr成员口对应的ac时,目标dr成员可以在该报文中增加一个用于标识该报文需要从ac转发的标记(本文中称为第二标记)。在一个示例中,可以通过设置对应的虚端口的classid(类标识)的方式实现在特定报文中增加第二标记。相应地,上述报文转发方法还可以包括:当在本地dr成员口创建ac时,将对应的虚端口的目的端口classid标记的值设置为第二标记。在该示例中,当目标dr成员设备在本地dr成员口创建ipl隧道时,目标dr成员设备可以将对应的虚端口的目的端口classid标记的值设置为第二标记。当目标dr成员设备确定所接收到的报文的目的端口为本地dr成员口对应的ac时,目标dr成员设备可以在该报文中增加第二标记。需要说明的是,在本发明实施例中,步骤201与步骤202之间并不存在必然的时序关系,即可以先执行步骤201,后执行步骤202;或者,也可以先执行步骤202,后执行步骤201;或者,还可以并行执行步骤201和步骤202,其具体实现在此不做赘述。步骤203、当本地dr成员口的状态由开启状态变化为关闭状态时,丢弃携带该第一标记和第二标记的报文。本发明实施例中,由于当dr成员设备的本地dr成员口的状态由up(开启)状态变化为down(关闭)状态时,dr成员设备会将需要通过本地dr成员口转发的报文通过ipl隧道转发,而当对端dr成员设备的dr成员口也为down状态时,该报文会在ipl隧道上来回传输。为了避免报文在dr成员设备之间通过ipl隧道来回传输,目标dr成员设备在检测到本地dr成员口的状态由up(开启)状态变化为down(关闭)状态时,可以丢弃携带第一标记和第二标记的报文,即丢弃从ipl隧道接收到的,需要通过本地dr成员口转发的报文。在一个示例中,可以通过acl方式实现对携带第一标记和第二标记的报文的丢弃。相应地,上述报文转发方法还可以包括:当本地dr成员口的状态由开启状态变化为关闭状态时,生成第二acl表项;其中,该第二acl表项的匹配项为携带有第一标记和第二标记,动作项为丢弃与第二acl表项的匹配项匹配的报文。在该示例中,当目标dr成员设备检测到本地dr成员口的状态由up状态变化为down状态时,目标dr成员设备可以生成一个用于指示目标dr成员设备丢弃携带第一标记和第二标记的报文的acl表项(本文中称为第二acl表项)。其中,第二acl表项可以如表2所示:表2匹配项动作项携带第一标记和第二标记丢弃报文当目标dr成员设备需要转发报文时,可以根据该报文查询表2所示的acl表项,若匹配成功,即报文中携带有第一标记和第二标记,则目标dr成员设备可以丢弃该报文;否则,目标dr成员设备可以对报文进行正常转发。进一步地,在本发明实施例中,考虑到当dr聚合口中的dr成员口均恢复为up状态时,上述第二acl表项会使需要通过dr成员口转发的报文被丢弃;或者,当dr聚合口中的dr成员口均为down状态,且目标dr成员设备感知到这一状态,即本地dr成员口down,且感知到对端成员设备的dr成员口down时,对应的ac会被删除,此时上述第二acl表项不会存在匹配的报文。因此,在一个示例中,为了避免报文错误地被丢弃,并提高硬件资源的利用率,上述报文转发方法还可以包括:当dr聚合口的状态由转发状态变化为其他状态时,删除第二acl表项;其中,当dr聚合口中存在开启状态的dr成员口,且存在关闭状态的dr成员口时,dr聚合口的状态为转发状态。在该示例中,新增一种dr聚合口的状态,即在原有up状态(即dr聚合口的全部dr成员口的状态均为up状态)以及down状态(即dr聚合口的全部dr成员口的状态均为down状态,且该down状态被dr成员设备感知)之外,还可以包括forward(转发)状态。其中,当目标成员设备本地的dr成员口的状态为down状态,且对端dr成员设备的dr成员口的状态为up状态(包括实际状态为up状态,或实际状态为down状态,但目标成员设备未感知等情况)时,目标成员设备可以确定dr聚合口的状态为forward状态。当目标成员设备检测到dr聚合口的状态由转发状态变化为其他状态时,目标成员设备可以删除第二acl表项,从而,可以避免报文错误地被丢弃,并提高硬件资源的利用率。为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体应用场景对本发明实施例提供的技术方案进行说明。在该实施例中,以evpn(ethernetvirtualprivatenetwork,以太网虚拟专用网络)+drs无ipl链路组网为例。请参见图3a,为本发明实施例提供的一种具体应用场景的架构示意图,如图3a所示,在该应用场景中,leaf100和leaf130之间建立vxlan(virtualextensiblelocalareanetwork,虚拟可扩展本地局域网)隧道,spine(脊柱)210和spine220是该vxlan隧道的中间设备;leaf120和leaf130之间建立vxlan隧道,spine1和spine2是该vxlan隧道的中间设备。leaf110和leaf120之间建立vxlan隧道,spine210和spine220是该隧道的中间设备。leaf110和leaf120之间通过vxlan隧道转发drs的协议报文,并建立drs系统;其中,leaf110和leaf120之间的vxlan隧道可以称为ipl隧道。请参见图3b,假设leaf110通过vp(virtualport,虚拟端口)111与leaf130建立vxlan隧道(本文中称为tunnel(隧道)100),leaf120通过vp121与leaf130建立vxlan隧道(本文中称为tunnel200),leaf110通过vp112与leaf120的vp122建立vxlan隧道(即ipl隧道,本文中称为tunnel300),leaf110的vp113和leaf120的vp123属于dr成员口。在该实施例中,leaf110和leaf120之间创建ipl隧道时,分别在本地生成如表3(leaf110)和表4(leaf120)所示的acl表项:表3匹配项动作项入端口为vp112在报文中增加c1表4匹配项动作项入端口为vp122在报文中增加c1当leaf110和leaf120在dr聚合口创建ac时,将对应的虚端口的目的端口classid标记的值设置为c2。实施例一假设leaf110和leaf120上的dr成员口均为up状态,此时,leaf110和leaf120记录的dr聚合口的状态均为up状态。在该实施例中,当leaf110从tunnel100接收到的报文时,通过查找本地转发表之后,确定报文的出端口为ac口(vp113),leaf110在报文中增加c2标记,并从该ac口转发。当leaf120从tunnel200接收到的报文时,通过查找本地转发表之后,确定报文的出端口为ac口(vp123),leaf12在报文中增加c2标记,并从该ac口转发。实施例二请参见图3c,假设leaf120的dr成员口状态变化为down状态,此时,leaf120记录的dr聚合口的状态为forward状态,leaf110感知到leaf120的dr成员口down之前记录的dr聚合口的状态为up状态,感知到leaf120的dr成员口down时记录的dr聚合口的状态为forward状态。当leaf110从tunnel100接收到的报文时,通过查找本地转发表之后,确定报文的出端口为ac口(vp113),leaf110在报文中增加c2标记,并从该ac口转发。当leaf120检测到本地dr成员口状态变化为down状态时,leaf120可以生成表5所示的acl表项:表5匹配项动作项携带c1和c2丢弃报文当leaf120从tunnel200接收到报文时,查询本地转发表项,确定报文出端口为ac口,leaf120在该报文中增加c1标记,由于出端口down,leaf120可以根据tunnel300的信息对该报文进行隧道封装,并从tunnel300将封装后的报文发送给leaf110。leaf110从tunnel300接收到报文时,由于该报文的入端口为vp112,与表3所示acl表项匹配,因而,leaf110对接收到的报文解封装后,可以在报文中增加c1标记(此时报文中携带c1和c2标记),根据该报文查询本地转发表项,确定报文的出端口为ac口,并从该ac口转发。需要说明的是,在该实施例中,leaf110确定报文的出端口为ac口时,确定需要在该报文中增加c2标记,由于该报文中已经携带了c2标记,此时leaf110可以不再在该报文中增加c2标记,或者,leaf110可以再次在该报文中增加c2标记。实施例三请参见图3d,假设leaf110和leaf120的dr成员口状态均变化为down状态,当leaf110(leaf120)感知到leaf120(leaf110)的dr成员口down之前,记录的dr聚合口的状态为forward状态。在该实施例中,当leaf110检测到本地dr成员口状态变化为down状态时,leaf110可以生成表6所示的acl表项:表6匹配项动作项携带c1和c2丢弃报文当leaf120检测到本地dr成员口状态变化为down状态时,leaf120可以生成表5所示的acl表项。当leaf120从tunnel200接收到报文时,查询本地转发表项,确定报文出端口为ac口,leaf120在该报文中增加c1标记,由于出端口down,leaf120可以根据tunnel300的信息对该报文进行隧道封装,并从tunnel300将封装后的报文发送给leaf110。leaf110从tunnel300接收到报文时,由于该报文的入端口为vp112,与表3所示acl表项匹配,因而,leaf110对接收到的报文解封装后,可以在报文中增加c1标记(此时报文中携带c1和c2标记),当leaf110需要对该报文进行转发时,由于该报文与表6所示acl表项匹配,因此,leaf110会丢弃该报文,从而,避免了该报文在leaf110和leaf120之间通过tunnel300来回转发。当leaf110(leaf120)感知到leaf120(leaf110)的dr成员口down时,记录的dr聚合口的状态由forward状态切换为down状态,此时leaf110(leaf120)可以删除表6(表5)所示的acl表项,并将ac口删除,进而,不会有查表结果为down的dr聚合口的流量。通过以上描述可以看出,在本发明实施例提供的技术方案中,通过对于从ipl隧道接收到的报文,在该报文中增加第一标记;对于目的端口为本地dr成员口对应的ac的报文,在该报文中增加第二标记,进而,当本地dr成员口的状态由开启状态变化为关闭状态时,丢弃携带第一标记和第二标记的报文,避免了报文在dr成员设备之间通过ipl隧道来回转发。请参见图4,为本发明实施例提供的一种报文转发装置的结构示意图,其中,该装置可以应用于上述方法实施例中的目标dr成员设备,如图4所示,该报文转发装置可以包括:增加单元410,用于对于从ipl隧道接收到的报文,在该报文中增加第一标记;增加单元410,还用于对于目的端口为本地dr成员口对应的ac的报文,在该报文中增加第二标记;转发单元420,用于当本地dr成员口的状态由开启状态变化为关闭状态时,丢弃携带第一标记和第二标记的报文。在可选实施例中,如图5所示,所述装置还包括:第一生成单元430,用于当创建ipl隧道时,生成第一acl表项;其中,第一acl表项的匹配项为入端口为该ipl隧道的隧道口,动作项为在与第一acl表项的匹配项匹配的报文中增加第一标记。在可选实施例中,如图6所示,所述装置还包括:设置单元440,用于当在本地dr成员口创建ac时,将对应的虚端口的目的端口类标识classid标记的值设置为第二标记。在可选实施例中,如图7所示,所述装置还包括:第二生成单元450,用于当本地dr成员口的状态由开启状态变化为关闭状态时,生成第二acl表项;其中,第二acl表项的匹配项为携带有第一标记和第二标记,动作项为丢弃与第二acl表项的匹配项匹配的报文。在可选实施例中,第二生成单元450,还用于当dr聚合口的状态由转发状态变化为其他状态时,删除第二acl表项;其中,当dr聚合口中存在开启状态的dr成员口,且存在关闭状态的dr成员口时,dr聚合口的状态为转发状态。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例可见,通过对于从ipl隧道接收到的报文,在该报文中增加第一标记;对于目的端口为本地dr成员口对应的ac的报文,在该报文中增加第二标记,进而,当本地dr成员口的状态由开启状态变化为关闭状态时,丢弃携带第一标记和第二标记的报文,避免了报文在dr成员设备之间通过ipl隧道来回转发。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1