首页> 中国专利> EVI网络中的邻居状态检测方法及装置

EVI网络中的邻居状态检测方法及装置

摘要

本申请公开了一种EVI网络中的邻居状态检测方法及装置,其中,该方法包括:针对同一EVI实例中的每一个邻居ED,本端ED获取本端ED与该邻居ED之间的EVI Link的相关信息,生成BFD报文并根据该相关信息将该BFD报文封装成EVI报文;其中,该相关信息包括:该EVI Link对应的EVI隧道两端的IP地址;本端ED根据EVI隧道在该邻居ED上的IP地址,在本地的路由转发表中查找到对应的出接口,通过查找到的出接口发送该EVI报文,同时启动定时器;若在定时器超时后没有接收到该邻居ED主动发送给本端ED的封装有BFD报文的EVI报文,则确定该邻居ED的状态为DOWN状态。本申请中通过BFD联动检测得到的邻居ED的状态是准确的。

著录项

  • 公开/公告号CN103746881A

    专利类型发明专利

  • 公开/公告日2014-04-23

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN201410013579.5

  • 发明设计人 苏平;

    申请日2014-01-13

  • 分类号H04L12/26(20060101);H04L12/46(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人郑红娟;宋志强

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

  • 入库时间 2024-02-19 23:36:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-10

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/26 变更前: 变更后: 申请日:20140113

    专利权人的姓名或者名称、地址的变更

  • 2017-03-15

    授权

    授权

  • 2014-06-11

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20140113

    实质审查的生效

  • 2014-04-23

    公开

    公开

说明书

技术领域

本申请涉及网络通信技术领域,特别涉及一种EVI网络中的邻居状态检测方法及 装置。

背景技术

为了实现高可靠性和冗余部署,并提供更好的服务,大多数企业网络及其数据中 心或服务提供商通常在异地部署多个数据中心,实现负载分担和高可靠性,并实现虚 拟机在数据中心之间的自由迁移。由于虚拟机的迁移过程对用户透明,不能改变IP (Internet Protocol,因特网协议)地址,所以必须在分布于异地的数据中心之间实现 二层网络互联。现有的二层网络互联技术包括:EVI(Ethernet Virtualization  Interconnection,以太网虚拟互联)和VPLS(Virtual Private LAN Service,虚拟专用局 域网服务)。

其中,EVI技术基于现有的服务提供商(SP)网络和企业网络,为分散的物理站 点(即数据中心站点)提供灵活的二层互联功能。EVI是一种先进的"MAC(Media Access  Control,媒体访问控制)in IP"技术,用于实现基于IP核心网的L2VPN(Layer 2 Virtual  Private Network,二层虚拟专用网络)技术。EVI只是在数据中心站点(以下简称为站 点)的边缘设备(Edge Device,ED)上维护路由和转发信息,而无需改变站点内部和 核心网络。

如图1所示,采用了EVI技术的网络(称为EVI网络)由核心网络和站点(Site) 网络组成。分别介绍如下:

站点网络是通过一台或者多台ED连接到核心网络的具有独立业务功能的二层网 络,通常由单个用户组织、管理、控制和维护,主要由主机和交换设备组成,ED提 供站点之间的二层交换功能。

ED是位于站点网络的边缘的执行EVI功能的交换设备,其在站点网络侧作为二 层设备运行,在核心网络侧作为三层设备运行,它完成报文从站点网络到EVI隧道, 以及EVI隧道到站点网络的映射与转发。ED通过ENDP(EVI Neighbor Discovery  Protocol,EVI邻居发现协议)来自动发现同一EVI实例的邻居ED,并与邻居ED之 间建立一条双向的虚拟以太通道,即以太网虚拟互联连接EVI Link(链路),来完成彼 此之间的数据透明传输。在相同的EVI实例中,ED之间的EVI Link承载于ED之间 的EVI隧道,每个EVI隧道可承载多个EVI Link。同一个EVI实例中的ED之间通过 EVI IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)协议在 EVI Link上通告本站点内的主机和设备的MAC地址可达性信息。

通常情况下,ED之间会相互发送IS-IS Hello(握手)报文来检测邻居状态的变化, 若超时未收到邻居ED发来的IS-IS Hello报文,则认为该邻居ED已经变为不可用 (DOWN)状态。但是,为了加快邻居状态的检测,还可以采用BFD(Bidirectional  Forwarding Detection,双向转发检测)来联动检测邻居状态的变化。

首先对BFD的基本原理加以介绍。BFD通过在两个设备上建立BFD会话,来检 测这两个设备之间的双向转发路径的状态。BFD会话建立后,如果本端设备在预定检 测时间内没有收到对端设备的BFD控制报文,则本端设备与对端设备之间的链路 DOWN,并通知被服务的上层协议进行相应处理。

BFD的检测模式包括:

单跳检测:用于对两个直连系统(该系统可以由单个设备或多个设备组成)进行 IP连通性的检测。

多跳检测:用于检测两个系统之间的任意路径。

双向检测:通过在双向链路两端同时发送检测报文,来检测两个方向上的链路的 状态。

BFD会话的工作方式包括:

控制报文方式:链路两端通过控制报文交互,来监测链路的状态。

Echo(回声)报文方式:链路一端向另一端发送Echo报文,另一端接收到该Echo 报文后,将该Echo报文转发回来,从而实现对链路的双向检测。

在EVI中采用BFD来联动检测邻居状态的变化时,主要采用上述的Echo报文方 式的单跳检测模式来进行BFD。具体的,本端ED通过一个指定的EVI公网端口(即, ED上连接核心网且使能了EVI的实际的物理端口,只有EVI公网端口才能收发EVI 报文)发送Echo报文,并同时启动定时器,与本端ED连接的下一跳设备收到该Echo 报文后,将该Echo报文返回给本端ED,若本端ED在定时器超时后未收到返回的Echo 报文,则认为对应物理链路故障,从而也就间接确定出邻居ED的状态变为DOWN; 否则,确定出邻居ED的状态为可用(UP)。上述方法存在以下问题:

(1)由于通过本端ED与下一跳设备之间的一跳路径的状态变化,来确定本端 ED与邻居ED之间的EVI Link的变化,进而确定邻居ED状态的变化,因此,这种方 法只适用于本端ED上只有唯一的EVI公网端口,且该唯一的EVI公网端口就是本端 ED上的对应的EVI隧道的Source(源)接口(Source接口就是为EVI隧道指定的出 接口,Source接口可以是一个EVI公网端口,也可以是一个逻辑的虚拟接口)的情况, 如图2所示。如果本端ED上建立的EVI隧道的Source接口是一虚拟接口,且本端 ED上有多个EVI公网端口,如图3所示,则,通过指定的一个EVI公网端口进行BFD, 其结果并不能真正反映出本端ED与邻居ED之间的EVI Link的变化情况,此时,采 用这种方法得到的邻居ED的状态是不准确的;

(2)如果本端ED与下一跳设备之间的链路正常,而下一跳设备与邻居ED之间 的链路故障,通过上述方法得到的结果是邻居ED的状态UP,然而,实际结果应该是 DOWN,因此,在这种情况下得到的邻居ED的状态也是不准确的。

发明内容

本申请提供了一种EVI网络中的邻居状态检测方法及装置,以解决现有技术中在 某些情况下通过BFD联动检测得到的邻居ED的状态不准确的问题。

本申请的技术方案如下:

一方面,提供了一种EVI网络中的邻居状态检测方法,该EVI网络中包括至少两 个ED,该方法应用于ED,该方法包括:

针对同一EVI实例中的每一个邻居ED,本端ED获取本端ED与该邻居ED之间 的EVI Link的相关信息,生成BFD报文并根据该相关信息将该BFD报文封装成EVI 报文;其中,该相关信息包括:该EVI Link对应的EVI隧道两端的IP地址;

本端ED根据EVI隧道在该邻居ED上的IP地址,在本地的路由转发表中查找到 对应的出接口,通过查找到的出接口发送该EVI报文,同时启动定时器;

若在定时器超时后没有接收到该EVI报文,则确定该邻居ED的状态为DOWN状 态。

另一方面,还提供了一种EVI网络中的邻居状态检测装置,该EVI网络中包括至 少两个ED,该装置应用于ED中,该装置包括:

EVI封装模块,用于针对同一EVI实例中的每一个邻居ED,获取本端ED与该邻 居ED之间的EVI Link的相关信息,生成BFD报文并根据该相关信息将该BFD报文 封装成EVI报文;其中,该相关信息包括:EVI Link对应的EVI隧道两端的IP地址;

发送模块,用于根据该EVI隧道在该邻居ED上的IP地址,在本地的路由转发表 中查找到对应的出接口,通过查找到的出接口发送该EVI报文;

启动模块,用于在发送模块发送该EVI报文的同时启动定时器;

接收模块,用于接收该邻居ED主动发送给本端ED的封装有BFD报文的EVI报 文;

状态确定模块,用于若接收模块在定时器超时后没有接收到该EVI报文,则确定 该邻居ED的状态为DOWN状态。

通过本申请的技术方案,本端ED针对同一EVI实例中的每一个邻居ED,获取本 端ED与该邻居ED之间的EVI Link的相关信息,生成BFD报文并根据该相关信息将 该BFD报文封装成EVI报文,然后,根据该EVI Link对应的EVI隧道在该邻居ED 上的IP地址,在本地的路由转发表中查找到对应的出接口,通过查找到的出接口将该 EVI报文给该邻居ED,同时启动定时器;若在定时器超时后没有接收到邻居ED主动 发送给本端ED的封装有BFD报文的EVI报文,则确定该邻居ED的状态为DOWN 状态。这样,本端ED与邻居ED之间相互通过建立的EVI Link对应的EVI隧道发送 BFD报文,从而能够真正地检测出两者之间的EVI Link的状态,进而准确地确定出对 方的状态;路由转发表中保存有本端ED与该邻居ED之间的最优路由的信息,当本 端ED上该EVI隧道的Source接口是一虚拟接口,且本端ED上有多个EVI公网端口 时,根据该EVI隧道在该邻居ED上的IP地址,在路由转发表中查找到该最优路由在 本端ED上的EVI公网端口,即出接口,通过查找到的出接口将该EVI报文发送给该 邻居ED,因为该最优路由会随着网络拓扑的变化而更新,因此,BFD报文总能通过 本端ED与该邻居ED之间的正常路由中的最优路由生成的EVI Link发送给该邻居 ED,从而能够真正地检测出两者之间的EVI Link的状态,进而准确地确定出该邻居 ED的状态;另外,由于检测的是整个EVI Link的状态,而不是本端ED与下一跳设 备之间的一跳链路的状态,因此,得到的邻居ED的状态也是准确的。

附图说明

图1是EVI网络的架构示意图;

图2是一种实际的EVI网络中ED1上只有唯一的一个EVI公网端口的示意 图;

图3是一种实际的EVI网络中ED1上有两个EVI公网端口的示意图;

图4是本申请实施例一的EVI网络中的邻居状态检测方法的流程图;

图5是本申请实施例一的封装有BFD报文的EVI报文的报文格式示意图;

图6是现有技术的EVI头的格式示意图;

图7是图5中的EVI头的格式示意图;

图8是图7中的VLAN Bit Map字段的格式示意图;

图9是本申请实施例二的EVI网络中的邻居状态检测装置的结构示意图。

具体实施方式

为了解决现有技术中在某些情况下通过BFD联动检测得到的邻居ED的状态 不准确的问题,本申请以下实施例中提供了一种EVI网络中的邻居状态检测方 法,以及一种可以应用该方法的装置。

为了便于理解,下面对EVI技术中的相关术语进行简单解释。

EVI实例:虚拟互通实例,使用Network ID来唯一标识。

EVI Link:同一EVI实例中的邻居ED之间建立的一条双向的虚拟以太通道。

EVI隧道:即GRE(GenericRoutingEncapsulation,通用路由封装协议)隧道, 用于承载EVI Link,一条隧道上可以承载多条EVI Link。隧道是一条本地ED与 对端ED之间的直连通道,完成ED之间的数据透明传输。

LAV(Local Active VLAN,本地激活VLAN(Virtual Local Area Network, 虚拟局域网)):生效的扩展VLAN。

本申请以下实施例中,EVI网络中包括:至少两个ED。同一EVI实例中的 ED之间建立EVI Link。在相同的EVI实例中,ED之间的EVI Link承载于ED之 间的EVI隧道,每个EVI隧道可承载多个EVI Link。

具体的,各个ED针对同一EVI实例配置相同的EVI隧道,为该EVI隧道分 配一个索引,并为该EVI隧道配置一个Source接口,为该Source接口配置一个IP 地址,该IP地址即为该EVI隧道在本端ED上的IP地址;然后,各个ED将该 EVI实例及其对应的Source接口的IP地址,通过Server(服务器)通知给其他ED。 这样,每一个ED都能得到该EVI实例对应的EVI隧道在每一个其他ED上的IP 地址,并保存到该EVI实例对应的ENDP表中。

然后,每一个ED会根据该EVI实例的实例ID(具体为Network ID)和该ENDP 表中的IP地址,周期性地向该EVI实例中的每一个其他ED(可称为邻居ED)发 送ENDP协议报文,来建立并维护该EVI实例下的任两个ED之间的EVI Link。 其中,每一个ED在建立了与同一EVI实例中的邻居ED之间的EVI Link之后, 可以为该EVI Link分配一个索引,并将该EVI Link对应的EVI隧道两端的IP地 址与该EVI Link的索引之间的对应关系保存到该EVI实例对应的EVI Link维护表 中。

另外,在EVI Link建立完成后,同一EVI实例中的ED之间会通过EVI Link 周期性地交互ISIS Hello报文,实现对邻居ED的状态变化情况的检测,其中,在 ISIS Hello报文中携带有发送该报文的ED上的EVI IS-IS的系统ID,这样,每一 个ED上还会建立并维护邻居表,该邻居表中记录有邻居ED上的EVI IS-IS的系 统ID、以及与该邻居ED之间的EVI Link的索引。

实施例一

本申请实施例中的BFD,采用的是控制报文方式的双向检测模式。即,两端 分别周期性地向对端发送控制报文,通过是否在预定时间段内收到了对端发来的 控制报文,来检测链路是否故障。

本申请实施例的EVI网络中的邻居状态检测方法可以由EVI网络中的任一ED 来执行,为了方便描述,将执行以下方法的ED称为本端ED。如图4所示,该方 法包括以下步骤:

步骤S102,针对同一EVI实例中的每一个邻居ED,本端ED获取本端ED与 该邻居ED之间的EVI Link的相关信息,生成BFD报文并根据该相关信息将该 BFD报文封装成EVI报文;

其中,该相关信息包括:该EVI Link对应的EVI隧道两端的IP(Internet  Protocol,因特网协议)地址,以及,本端ED和该邻居ED上的EVI IS-IS的系统 ID(标识)。

其中,上述的BFD报文是控制报文。

现有技术中,BFD报文中包括:IP头、UDP头和BFD协议内容。在实际实 施过程中,步骤S102中生成的BFD报文可以与现有技术相同,也可以不封装IP 头,而是直接封装UDP头和BFD协议内容。

在步骤S102中,获取本端ED与该邻居ED之间的EVI Link的相关信息的方法可 以包括以下步骤11-14:

步骤11:从该EVI实例对应的ENDP表中,获取该EVI Link对应的EVI隧道在 该邻居ED上的IP地址;

由于一个EVI实例对应一个EVI隧道,该EVI隧道在所有邻居ED上的IP地址 都保存在该EVI实例对应的ENDP表中,因此,从该EVI实例对应的ENDP表中能够 获取到本端ED与同一EVI实例中的邻居ED之间的EVI Link对应的EVI隧道在该邻 居ED上的IP地址。

步骤12:获取该EVI Link对应的EVI隧道在本端ED上的IP地址;

在实际实施过程中,可以根据该实例的实例ID(具体为Network ID),查找到该 EVI隧道的索引,从而,根据该EVI隧道的索引查找到该EVI隧道在本端ED上的IP 地址,即,该EVI隧道的Source接口的IP地址。当该Source接口是一EVI公网端口 时,该Source接口的IP地址就是该EVI公网端口的IP地址,当该Source接口是一虚 拟接口时,该Source接口的IP地址就是该虚拟接口的IP地址。

步骤13:根据该EVI Link对应的EVI隧道在本端ED和在该邻居ED上的IP地 址、该EVI实例的实例ID,在EVI Link维护表中查找到EVI Link的索引,根据查找 到的索引,在邻居表中查找到该邻居ED上的EVI IS-IS的系统ID;

步骤14:获取本端ED上的EVI IS-IS的系统ID。

步骤S102中,根据获取到的相关信息将该BFD报文封装成EVI报文的方法包括 以下步骤21-22:

步骤21:将本端ED上的EVI IS-IS的系统ID作为源系统ID,该邻居ED上的 EVI IS-IS的系统ID作为目的系统ID,为该BFD报文封装EVI头;这样封装的目的 是:对于EVI IS-IS来说,邻居不是通过IP地址标识的,而是通过系统ID标识,因此, 在发送给邻居ED的EVI报文的EVI头中,直接封装系统ID,可以使得该邻居ED接 收到该EVI报文后,其上的BFD协议可以在检测到EVI Link的状态变化时,直接将 EVI头中的源系统ID上报给EVI IS-IS协议以便EVI IS-IS协议确定出是哪一个邻居, 而无需BFD协议先根据源IP地址在对应的EVI实例的EVI Link维护表中查找到对应 的EVI Link的索引,然后再根据查找到的索引在邻居表中查找对应的系统ID,提高 了工作效率;另外,也可以通过EVI头中的源系统ID来检查邻居的有效合法性。

步骤22:将该EVI隧道在本端ED上的IP地址作为源IP地址,EVI隧道在该邻 居ED上的IP地址作为目的IP地址,为该BFD报文封装IP头。

从而,将BFD报文进行EVI封装后,通过EVI隧道发送给邻居ED。

步骤S104,本端ED根据该EVI隧道在该邻居ED上的IP地址,在本地的路由转 发表中查找到对应的出接口,通过查找到的出接口发送该EVI报文,同时启动定时器;

在实际实施过程中,路由转发表中保存有分别从本端ED上的至少一个EVI公网 端口出发到达该邻居ED得到的至少一条路由中的一条最优路由的信息,因此,根据 该EVI隧道在该邻居ED上的IP地址,可以从路由转发表中查找到匹配表项,该匹配 表项中保存有该最优路由的信息,该信息中包括:该最优路由在本端ED上的EVI公 网端口,也就是出接口。

步骤S106,若在定时器超时后没有接收到该邻居ED主动发送给本端ED的封装 有BFD报文的EVI报文,则确定该邻居ED的状态为DOWN状态。

本端ED周期性地执行步骤S102-S104,同时邻居ED也周期性地执行步骤 S102-S104,这样,本端ED可以收到该邻居ED主动发送给本端ED的封装有BFD报 文(即,控制报文)的EVI报文。其中,发送周期的缺省值例如可以是400ms。

在实际实施时,接收检测间隔的缺省值例如可以是400ms,缺省检测次数为5次, 若5次检测均未收到该邻居ED发来的封装有BFD报文的EVI报文,则本端ED确定 本端ED与该邻居ED之间的EVI Link故障,从而,确定该邻居ED的状态为 DOWN状态。因此,步骤S106中的定时器的时长例如可以设置为5×400ms=2000ms。 并且,在本端ED确定出本端ED与该邻居ED之间的EVI Link从发生了故障之后, 会刷新该邻居ED的状态为DOWN,并且删除本地路由表中与该邻居ED有关的 表项。

另外,本端ED若在定时器超时之前接收到了该邻居ED主动发来的封装有 BFD报文的EVI报文,则确定本端ED与邻居ED之间的EVI Link正常,进而确 定该邻居ED的状态为UP(可用)状态。并且,在本端ED确定出本端ED与该 邻居ED之间的EVI Link故障恢复之后,本端ED会重新与该邻居ED建立EVI Link,刷新该邻居ED的状态为UP,并重新创建BFD会话。

此外,本端ED在封装EVI头时,还可在EVI头中封装用于指示本端ED对 每一个LAV的支持情况的信息,这样,邻居ED接收到封装有BFD的EVI报文后, 可以从解析该EVI报文得到的EVI头中,获取到该邻居ED支持的LAV。

由于该邻居ED也会周期性地执行步骤S102-S104,本端ED可以根据先后接 收到的该邻居ED主动发来的封装有BFD报文的EVI报文中,获知该邻居ED支 持的LAV的变化情况,并更新本地保存的该邻居ED支持的LAV。

在实际实施过程中,通过上述步骤封装得到的EVI报文的报文格式如图5所 示。如图5所示,封装有BFD报文的EVI报文中包括:IP头、GRE头、EVI头和 BFD报文,分别介绍如下:

(1)IP头

IP头中包括源IP地址字段、目的IP地址字段和ToS字段:

源IP地址字段:用于携带本端ED与该邻居ED之间的EVI Link对应的EVI 隧道在本端ED上的IP地址;

目的IP地址:用于携带本端ED与该邻居ED之间的EVI Link对应的EVI隧 道在该邻居ED上的IP地址;

ToS(Type of Service,服务类型)字段:其值应该与BFD协议规定的ToS值 一致,以便提高封装有BFD报文的EVI报文在网络中的转发优先级,保证该EVI 报文的优先转发。

(2)GRE头

该GRE头的封装与现有技术相同,这里不再赘述。

(3)EVI头

如图6所示,现有技术的EVU头中包括:Version(版本)字段、C(代码) 字段、Reserve1字段、Network-ID字段和Reserve2字段。

其中,Version字段:占用3bit,默认为0。

C字段:占用1bit,默认为0。

Reserve1字段:为保留字段,占用4bit,默认为0。

Network-ID(网络标识)字段:占用3字节。

Reserve2字段:为保留字段,占用4字节,默认为0。

本实施例中对现有技术的EVI头进行了扩展,扩展的EVI头的报文格式如图 7所示,新增了指示(V)字段和扩展字段,其中,扩展字段中包含有:源系统ID (Source Sys-ID)字段和目的系统ID(Destination Sys-ID)字段和虚拟局域网VLAN 比特映射(VLAN Bit Map)字段:

V字段:用于指示本EVI头中是否携带有扩展字段,占用Reserve1字段中的1 比特(bit);例如,当V字段的值置为1时,表示本EVI头中携带有扩展字段,当 V字段的值置为0时,表示本EVI头中没有携带扩展字段;

Source Sys-ID字段:用于携带本端ED上的EVI IS-IS的系统ID,占用6字节;

Destination Sys-ID字段:用于携带该邻居ED上的EVI IS-IS的系统ID,占用6 字节;

VLAN Bit Map字段:用于指示本端ED对每一个LAV的支持情况,占用520 字节,其中的每一个比特位对应于一个LAV,不同比特位对应的LAV不同,每 一个比特位用于指示本端ED是否支持对应的LAV;当一个比特位的值置为第一 值时,用于表示本端ED支持对应的LAV,当一个比特位的值置为第二值时,用 于表示本端ED不支持对应的LAV,例如,当一个比特位的值置为1时,表示本 端ED支持对应的LAV,当一个比特位的值置为0时,表示本端ED不支持对应的 LAV。

例如,当VLAN Bit Map字段的格式如图8所示时,如图8所示的VLAN Bit Map字段中16比特位以后的比特位的值均为0,此时的VLAN Bit Map字段用于 指示本端ED支持ID为1、3、5、7、8、9、11、13、14的LAV。

另外,在实际实施过程中,当本端ED上有多个EVI实例时,本端ED可以针对 每一个EVI实例中的每一个邻居ED均执行本实施例的方法。为了区分不同的EVI实 例,还可以在EVI头中的Network-ID字段携带对应的EVI实例的实例ID。

这样,邻居ED在收到一个EVI报文后,可以根据EVI头中的V字段确定该EVI 报文是封装有BFD报文的EVI报文,并从中获取到发来该报文的ED支持的LAV。

另外,在步骤S102之前,该方法中还包括:在本端ED与该邻居ED之间的EVI Link 上使能BFD功能,创建BFD会话,并配置该BFD会话的报文发送周期、接收检测间 隔和检测次数的值。同样,该邻居ED也会在该EVI Link上使能BFD功能,创建BFD 会话,并配置该BFD会话的报文发送周期、接收检测间隔和检测次数的值。之后,本 端ED和该邻居ED会通过BFD报文向对方发送自己配置的报文发送周期、接收检测 间隔和检测次数的值,以便进行协商。协商完成后,会使用对方配置的报文发送周期 的值周期性地向对方发送BFD报文,并且,使用对方配置的接收检测间隔和检测次数 的值进行链路状态检测。

本申请实施例的技术方案中,本端ED针对同一EVI实例中的每一个邻居ED,获 取本端ED与该邻居ED之间的EVI Link的相关信息,生成BFD报文并根据该相关信 息将该BFD报文封装成EVI报文,然后,根据该EVI Link对应的EVI隧道在该邻居 ED上的IP地址,在本地的路由转发表中查找到对应的出接口,通过查找到的出接口 将该EVI报文给该邻居ED,同时启动定时器;若在定时器超时后没有接收到邻居ED 主动发送给本端ED的封装有BFD报文的EVI报文,则确定该邻居ED的状态为DOWN 状态。

这样,本端ED与邻居ED之间相互通过建立的EVI Link对应的EVI隧道发送BFD 报文,从而能够真正地检测出两者之间的EVI Link的状态,进而准确地确定出对方的 状态;路由转发表中保存有本端ED与该邻居ED之间的最优路由的信息,当本端ED 上该EVI隧道的Source接口是一虚拟接口,且本端ED上有多个EVI公网端口时,根 据该EVI隧道在该邻居ED上的IP地址,在路由转发表中查找到该最优路由在本端 ED上的EVI公网端口,即出接口,通过查找到的出接口将该EVI报文发送给该邻居 ED,因为该最优路由会随着网络拓扑的变化而更新,因此,BFD报文总能通过本端 ED与该邻居ED之间的正常路由中的最优路由生成的EVI Link发送给该邻居ED,从 而能够真正地检测出两者之间的EVI Link的状态,进而准确地确定出该邻居ED的状 态;另外,由于检测的是整个EVI Link的状态,而不是本端ED与下一跳设备之间的 一跳链路的状态,因此,得到的邻居ED的状态也是准确的。

而且,本申请实施例中没有对BFD报文进行任何修改,只是扩展了EVI头,减少 了对BFD协议改动带来的风险。

另外,封装有BFD报文的EVI报文中还携带有发来该报文的ED对每一个 LAV的支持情况,从而,本端ED能够从邻居ED主动发来的封装有BFD报文的 EVI报文中,获取到邻居ED支持的LAV,实现了对邻居ED支持的LAV的检测, 而且,当检测到邻居ED支持的LAV发生变化时,本端ED就可以进行相应的处 理。并且,通过封装有BFD报文的一个EVI报文就能指示出ED对所有LAV的支 持情况,无需针对每一个LAV单独地发送报文,极大地节约了网络带宽。

实施例二

针对上述实施例一中的方法,本申请实施例中提供了一种EVI网络中的邻居状态 检测装置,该装置应用于ED中。如图9所示,该装置20中包括以下模块:EVI封装 模块201、发送模块202、启动模块203、接收模块204和状态确定模块205,其中:

EVI封装模块201,用于针对同一EVI实例中的每一个邻居ED,获取本端ED与 该邻居ED之间的EVI Link的相关信息,生成BFD报文并根据该相关信息将该BFD 报文封装成EVI报文;其中,该相关信息包括:该EVI Link对应的EVI隧道两端的 IP地址;

发送模块202,用于根据该EVI隧道在该邻居ED上的IP地址,在本地的路由转 发表中查找到对应的出接口,通过查找到的出接口发送该EVI报文;

启动模块203,用于在发送模块202发送该EVI报文的同时启动定时器;

接收模块204,用于接收该邻居ED主动发送给本端ED的封装有BFD报文的EVI 报文;

状态确定模块205,用于若接收模块204在定时器超时后没有接收到该邻居ED主 动发送给本端ED的封装有BFD报文的EVI报文,则确定该邻居ED的状态为DOWN 状态。

其中,该装置中还可以包括:使能模块,用于在本端ED与该邻居ED之间的EVI Link上使能BFD功能。

其中,EVI封装模块中包括:第一获取单元、第二获取单元、第三获取单元和第 四获取单元,其中:

第一获取单元,用于从该EVI实例对应的ENDP表中,获取该EVI隧道在该邻居 ED上的IP地址;

第二获取单元,用于获取该EVI隧道在本端ED上的IP地址;

第三获取单元,用于根据该EVI隧道在本端ED和在该邻居ED上的IP地址、该 EVI实例的实例ID,在EVI Link维护表中查找到EVI Link的索引,根据查找到的索 引,在邻居表中查找到该邻居ED上的EVI IS-IS的系统ID;

第四获取单元,用于获取本端ED上的EVI IS-IS的系统ID。

其中,EVI封装模块中还可以包括:第一封装单元和第二封装单元,其中:

第一封装单元,用于将本端ED上的EVI IS-IS的系统ID作为源系统ID,该邻居 ED上的EVI IS-IS的系统ID作为目的系统ID,为该BFD报文封装EVI头;

第二封装单元,用于将该EVI隧道在本端ED上的IP地址作为源IP地址,该EVI 隧道在该邻居ED上的IP地址作为目的IP地址,为该BFD报文封装IP头。

其中,EVI头中包含有:指示字段和扩展字段,扩展字段中包含有:源系统ID字 段和目的系统ID字段;

其中,指示字段用于指示本EVI头中是否携带有扩展字段;

源系统ID字段用于携带本端ED上的EVI IS-IS的系统ID;

目的系统ID字段用于携带该邻居ED上的EVI IS-IS的系统ID。

其中,扩展字段中还包含有VLAN比特映射字段,其中,VLAN比特映射字段用 于指示本端ED对每一个LAV的支持情况;VLAN比特映射字段中的每一个比特位 对应于一个LAV,不同比特位对应的LAV不同;当一个比特位的值置为第一值时, 用于表示本端ED支持对应的LAV,当一个比特位的值置为第二值时,用于表示 本端ED不支持对应的LAV。

另外,该装置中还可以包括:LAV获取模块,其中:

状态确定模块,还用于若接收模块在定时器超时之前接收到了该邻居ED主动发 送给本端ED的封装有BFD报文的EVI报文,则确定该邻居ED的状态为UP状态;

LAV获取模块,用于从解析接收到的EVI报文得到的EVI头中的VLAN比特映 射字段中,获取到该邻居ED支持的LAV。

综上,本申请以上实施例可以达到以下技术效果:

本申请实施例的技术方案中,本端ED针对同一EVI实例中的每一个邻居ED,获 取本端ED与该邻居ED之间的EVI Link的相关信息,生成BFD报文并根据该相关信 息将该BFD报文封装成EVI报文,然后,根据该EVI Link对应的EVI隧道在该邻居 ED上的IP地址,在本地的路由转发表中查找到对应的出接口,通过查找到的出接口 将该EVI报文给该邻居ED,同时启动定时器;若在定时器超时后没有接收到本端ED 接收该邻居ED主动发送给本端ED的封装有BFD报文的EVI报文,则确定该邻居 ED的状态为DOWN状态。

这样,本端ED与邻居ED之间相互通过建立的EVI Link对应的EVI隧道发送BFD 报文,从而能够真正地检测出两者之间的EVI Link的状态,进而准确地确定出对方的 状态;路由转发表中保存有本端ED与该邻居ED之间的最优路由的信息,当本端ED 上该EVI隧道的Source接口是一虚拟接口,且本端ED上有多个EVI公网端口时,根 据该EVI隧道在该邻居ED上的IP地址,在路由转发表中查找到该最优路由在本端 ED上的EVI公网端口,即出接口,通过查找到的出接口将该EVI报文发送给该邻居 ED,因为该最优路由会随着网络拓扑的变化而更新,因此,BFD报文总能通过本端 ED与该邻居ED之间的正常路由中的最优路由生成的EVI Link发送给该邻居ED,从 而能够真正地检测出两者之间的EVI Link的状态,进而准确地确定出该邻居ED的状 态;另外,由于检测的是整个EVI Link的状态,而不是本端ED与下一跳设备之间的 一跳链路的状态,因此,得到的邻居ED的状态也是准确的。

而且,本申请实施例中没有对BFD报文进行任何修改,只是扩展了EVI头,减少 了对BFD协议改动带来的风险。

另外,封装有BFD报文的EVI报文中还携带有发来该报文的ED对每一个 LAV的支持情况,从而,本端ED能够从邻居ED主动发来的封装有BFD报文的 EVI报文中,获取到邻居ED支持的LAV,实现了对邻居ED支持的LAV的检测, 而且,当检测到邻居ED支持的LAV发生变化时,本端ED就可以进行相应的处 理。并且,通过封装有BFD报文的一个EVI报文就能指示出ED对所有LAV的支 持情况,无需针对每一个LAV单独地发送报文,极大地节约了网络带宽。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请 的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保 护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号