具有循环抑制的最短路径桥接(SPB)增强弹性的方法和系统与流程

文档序号:11517740阅读:572来源:国知局
具有循环抑制的最短路径桥接(SPB)增强弹性的方法和系统与流程

本发明的实施例涉及以太网网络中的帧转发领域。更具体来说,本发明的实施例涉及用于在支持最短路径桥接(spb)协议的实现的以太网网络中增强具有循环抑制的连通性的弹性的方法和系统。



背景技术:

当今以太网是局域网(lan)的主导计算机连网技术。随着以太网在企业、运营商和云服务提供商之中广受欢迎,以太网架构将lan段从仅实现为无源共享介质转变成实现为主动切换网络。在以太网的主动切换网络中,弹性无循环帧转发对有效数据通信是不可缺少的,以及最短路径桥接(spb))协议是已经标准化的以太网连网中的最新演进的一步。在2012年3月29日,电气和电子工程师协会审议委员会(ieeerevcom)批准了spb协议的802.1aq标准。

spb引入到以太网的链路状态路由选择,以取代作为快速生成树协议(rstp,标准化为ieee802.1d)的基础的距离向量,并且使用边缘根最短路径树的多个集合来代替单个或少量生成树。spb网络中的节点保持最短路径树集合,使得节点知道如何将帧转发到网络中的其它节点。根据定义,以太网节点不在帧转发中将帧转发回到达端口(有时称作“反向毒性”),以避免转发循环。但是转发循环仍然可在启用了反向毒性的spb网络中发生。例如,转发循环可在距离反演时发生。距离反演的最简单形式是当两个节点各认为另一个更接近目标节点、因而预计送往目标节点的帧将在两个节点之间来回转发时。毒性反向表示这种循环不能在以太网中发生,但是通过缺乏创建距离反演情形的多个交换机的同步所引起的循环显然能够发生。

转发循环引起对网络带宽的慢性流失。更坏的情况是,对于多播帧转发,转发循环能够是灾难性的,特别是在循环反馈到另一个循环中时,从而引起网络中消耗的带宽的指数增加,并且引起近瞬时的网络“崩溃”。由于这个和其它原因,循环预防对spb网络是至关重要的。

如所规定的最短路径桥接采用反向路径转发检查(rpfc,其在ieee802.1aq中称作入口检查)来扩大。入口检查(又称作入口检查或源地址查找)检查给定以太网帧的源mac地址与那个地址的预计到达端口。如果存在差异,则丢弃该帧。这增加对循环抑制的健壮性,但不是授权的,因此采用控制平面握手来扩大,以在没有同步多个交换机时专门防止循环。rpfc的严格性所添加的是当节点不能“盲”利用到给定目标的预备转发路径时的限制弹性选项,因为通过rpfc,只有来自源的一个路径在任何给定主干虚拟lan标识符(b-vid)中被任何给定节点所准许。所期望的是具有802.1aq的循环抑制的更宽松形式,使得在故障情形中,可利用到无循环预备路径的快速本地切换。



技术实现要素:

公开一种在支持最短路径桥接(spb)协议的网络中的节点的转发以太网帧的方法。该节点包含过滤数据库(fdb)以指导以太网帧转发,以及fdb更新在任一个节点初始化或者网络的拓扑变化时通过该节点与一个或多个相邻节点之间的摘要交换来协调。该方法开始于由节点(称作计算节点)进行的最短路径计算。最短路径计算如802.1aq中所规定来选择到网络中的各目标节点的一个最短路径,其中记录到达各节点的最短路径上的相邻节点。它然后计算目标节点的下游无循环预备(lfa)节点(若存在的话),其中lfa节点在计算节点下游,但是不在从计算节点到目标节点的所选最短路径上,以及计算节点具有与lfa节点的现有数据库摘要协定,使得通过lfa节点从计算节点向目标节点转发以太网帧已知为不会引起转发循环。在下游表示lfa节点比计算节点更接近目标节点,以及摘要协定的存在表示两个节点均商定其相对目标的相对位置。因此,在到所计算最短路径上的相邻节点的连通性因链路或节点故障而被检测为处于异常状态时,节点则可通过具有关于将不会形成循环的置信度的lfa节点来转发与最短路径并且与对应于目标节点的目标介质访问控制(mac)地址关联的主干-vid(b-vid)的任何单播以太网帧。

要使这种技术进行工作,当前规定的rpfc(又称作入口检查)必须修改成在没有丢弃基于rpfc的帧的情况下准许使用无循环预备。这通过仅放宽单播帧的rpfc来实现。该方法开始于确定来自节点的端口(以太网帧的“接收端口”)的所接收以太网帧是多播帧。如果所接收以太网帧是多播帧,则该方法确定在fdb中,以太网帧的源mac地址或vid是否具有匹配mac地址或匹配vid。如果存在匹配,则处理所确定的多播以太网帧供帧转发,否则将它丢弃。如果确定所接收帧不是多播帧,则发送所接收帧,以用于预备入口检查处理。

单播的rpfc的严格性的放宽的技术增加多个故障情形中的单播循环形成的可能性。采取容许端口映射的形式供具有给定目标mac地址的帧的接收附加过滤可使其更为健壮(注意,这与帧中的vid无关,因为总拓扑是所有vid共同的,但是这对多拓扑会需要重新考虑,从而每拓扑实例需要不同的容许端口映射)。容许端口映射基于与映射中的可接受端口关联的、计算节点上游的节点以及当前存在的与那个节点的摘要协定的确定来编程。在网络中的故障时,存在准许端口映射的削减的规则,以去除其循环的风险变成不可接受的候选上游节点。

公开一种配置为支持spb协议的实现的网络中的节点的网络装置。网络装置包括帧处理器。帧处理器包括路径计算处理器,其配置成选择到网络中的各目标节点的一个最短路径,该路径计算处理器还配置成计算目标节点的无循环预备(lfa)节点,lfa节点在网络装置下游但是不在从网络装置到目标节点的所选最短路径上,并且那个网络装置具有与lfa节点的现有数据库摘要协定,使得通过lfa节点从网络装置向目标节点转发以太网帧已知为不会引起转发循环。帧处理器包括:无循环备选(lfa)记录,配置成记录由路径计算处理器对可接受lfa节点的确定;过滤数据库(fdb),配置成包含端口到mac地址的多个映射;以及帧转发处理器,配置成在到最短路径上的相邻节点的连通性被检测为处于异常状态时,通过lfa节点转发具有与目标节点对应的目标介质访问控制(mac)地址的以太网帧。网络装置还包括多播帧检测器,其配置成确定所接收以太网帧是否为多播帧。如果所接收帧不是多播帧,则在没有本领域已知的rpfc检查但是具有称作预备入口检查处理的预备过程的情况下将其转发。如果所接收以太网帧是多播帧,则rpfc检查如本领域已知那样来执行;多播帧检测器还配置成检查所接收以太网帧的源mac地址,以确定以太网帧的接收端口对应于fdb中预计的端口(其也是发送送往mac地址的帧的端口)。多播帧检测器响应fdb中没有找到接收端口的匹配mac地址的确定而丢弃所接收以太网帧。另外,网络装置包括连通性模块,其配置成监测节点与相邻节点的连通性。

附图说明

通过附图、作为示例而不是限制来说明本发明,附图中,相似的参考标号表示相似的元件。应当注意,本公开中的“一”、“一个”实施例的不同说法不一定表示同一个实施例,并且这类说法表示至少一个。此外,在结合一个实施例来描述具体特征、结构或特性时,无论是否明确描述,均认为结合其它实施例来实现这种特征、结构或特性是在本领域的技术人员的知识范围之内的。

图1a是示出支持最短路径桥接(spb)协议的网络配置的一个实施例的框图。

图1b是示出按照本发明的一个实施例的spb帧转发的一个实施例的框图。

图2是示出spb网络的一个实施例中的链路故障时的帧转发的框图。

图3是示出按照本发明的一个实施例、实现单播无循环预备(lfa)的方法的框图。

图4是示出按照本发明的一个实施例、在局部修复点(plr)实现单播lfa的方法的流程图。

图5是示出按照本发明的一个实施例、在所选lfa节点实现单播lfa的方法的流程图。

图6是示出按照本发明的一个实施例、在所选lfa节点实现lfa的方法的流程图。

图7是示出按照本发明的一个实施例、在所选lfa节点选择准许端口集合的方法的流程图。

图8a是示出按照本发明的一个实施例、在所选lfa节点选择准许端口集合的另一种方法的框图。

图8b是示出按照本发明的一个实施例、在所选lfa节点的分割水平端口表的框图。

图9是示出按照本发明的一个实施例、在所选lfa节点的端口水平分割的创建的流程图。

图10是示出按照本发明的一个实施例、用作实现单播lfa的节点的网络装置的框图。

具体实施方式

在以下描述中提出许多具体细节。但是要理解,即使没有这些具体细节也可实施本发明的实施例。在其它情况下,没有详细示出众所周知的电路、结构和技术,以免影响对本描述的了解。然而,本领域的技术人员将会理解,即使没有这类具体细节,也可实施本发明。通过所包含的描述,本领域的技术人员将能够实现适当的功能性而无需过分实验。

说明书中提到“一个实施例”、“一实施例”、“一示例实施例”等表示所述的实施例可包括特定特征、结构或特性,但可能不一定每一个实施例都包括该特定特征、结构或特性。此外,这类词语不一定指同一实施例。此外,在结合一实施例来描述特定特征、结构或特性时,无论是否明确描述,均认为结合其它实施例来实现这种特征、结构或特性是在本领域的技术人员的知识范围之内的。

在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其派生。应当理解,这些术语并不是要作为彼此的同义词。“耦合”用来表示彼此可以有或者可以没有直接物理或电接触的两个或更多元件相互配合或交互。“连接”用来表示相互耦合的两个或更多元件之间的通信的建立。

将参照图10的示范实施例来描述流程图的操作。但是应当理解,流程图的操作能够通过除了参照图4-7和图9所述实施例之外的本发明的实施例来执行,并且参照图10所述的实施例能够与参照图4-7和图9的流程图所述操作不同的操作。

如本文所使用的“网络元件”(例如路由器、交换机和桥接器)是包括硬件和软件的一台连网设备,其在通信上互连网络上的其它设备(例如其它网络元件、端系统)。一些网络装置是“多服务网络装置”,其提供对多个连网功能(例如路由选择、桥接、vlan(虚拟lan)交换、第2层聚合、会话边界控制、服务质量和/或订户管理)的支持,和/或提供对多个应用服务(例如数据、语音和视频)的支持。订户端系统(例如服务器、工作站、膝上型、上网本、掌上型、移动电话、智能电话、多媒体电话、基于因特网协议的语音(voip)电话、用户设备、终端、便携媒体播放器、gps单元、游戏系统、机顶盒)访问通过因特网所提供的内容/服务和/或覆盖于因特网的虚拟专用网络(vpn)上(例如通过其中隧道传递)提供的内容/服务。内容和/或服务通常由属于服务或内容提供商的一个或多个端系统(例如服务器端系统)或者参与对等服务的端系统来提供,并且可包括例如公开网页(例如免费内容、店面、搜索服务)、私人网页(例如提供电子邮件服务的用户名/密码访问网页)和/或基于vpn的公司网络。通常,订户端系统(例如通过与接入网(有线或无线)耦合的客户驻地设备)耦合到边缘网络装置,边缘网络装置(例如通过一个或多个核心网络装置)耦合到与其它端系统(例如服务器端系统)耦合的其它边缘网络装置。网络装置一般通过其介质访问(mac)地址、因特网协议(ip)地址/子网、网络套接字/端口和/或上osi层标识符来识别。

网络装置通常分为控制平面和数据平面(有时称作转发平面或媒体平面)。在网络装置是交换机/桥接器(或者实现桥接器功能性)的情况下,控制平面通常确定将要如何转发帧(例如以太网帧)(例如帧的下一跳和那个帧的外出端口),而数据平面负责转发那个帧。例如,控制平面通常包括一个或多个转发/路由选择协议(例如边界网关协议(bgp)、内部网关协议(igp)(例如开放式最短路径优先(ospf)、路由选择信息协议(rip)、中间系统到中间系统(is-is))、标记分布协议(ldp)、资源保存协议(rsvp)),其与其它网络装置进行通信以交换路径并且基于一个或多个量度来选择那些路径。注意,在控制平面和数据平面处于独立网络装置中时,本发明的实施例也适用。

本发明的不同实施例可使用软件、固件和/或硬件的不同组合来实现。因此,附图所示的技术能够使用在一个或多个电子装置(例如端系统、网络装置)上存储和运行的代码及数据来实现。这类电子装置使用诸如非暂时计算机可读存储介质(例如磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置、相变存储器)和暂时计算机可读传输介质(例如电、光、声或其它形式的传播信号——例如载波、红外信号、数字信号)之类的计算机可读介质来存储和传递(内部通信和/或通过网络与其它计算装置进行通信)代码和数据。另外,这类电子装置通常包括一组一个或多个处理器,处理器耦合到诸如一个或多个存储装置(非暂时机器可读存储介质)、用户输入/输出装置(例如键盘、触摸屏和/或显示器)和网络连接之类的一个或多个其它组件。处理器集合和其它组件的耦合通常通过一个或多个总线和桥接器(又称作控制器)进行。因此,给定电子装置的存储装置通常存储代码和/或数据,供那个电子装置的该组一个或多个处理器上执行。

术语

本描述中使用下列术语。

单播:向通过独特单独mac地址所识别的单个目标节点发送帧。

多播:从单个源节点同时向多个目标节点发送帧,其中独特编组mac地址识别接收方集合。

根:根节点(或“根”)是生成树或最短路径树的中央节点(又称作最高节点)。对于单播帧转发,根是目标节点。相比之下,对于多播帧转发,根是源节点。

上游节点:对于节点计算单播帧转发路径(称作“计算节点”),上游节点是比计算节点更远离根的节点。

下游节点:对于单播,下游节点是比计算节点更接近根的节点。

最短路径桥接—vlan模式(spbv):基于vlan的一种类型的spb,即,各最短路径树通过不同vlan标识符(vid)来定义。

最短路径桥接—mac模式(spbm):另一种类型的spb,其中最短路径树是基于mac的,即,各最短路径树通过独特mac地址或者mac地址的缩写形式来识别。vlan用来描绘多路径变化。

等价树(ect):有时称作等价多树(ecmt)。在到根的多个等价路由存在时,各最短路径树是到根的ect。spb网络中的节点在特定ect的构造中使用所指定打破平局算法。ect集合通过ect算法来识别,以及在一个实施例中,vlan与独特ect算法关联。

网络配置

图1a是示出支持最短路径桥接(spb)协议的网络配置的一个实施例的框图。网络100包含六个节点n1-n6。六个节点经过互连,从而形成网格拓扑。注意,网络100是现实世界中的操作spb网络的简化。spb网络可放大到数千个节点,并且提供数百万独特服务。实际上,符合ieee802.1aq的spbmac模式网络能够支持主干vlan中的多达1600万独特服务。因此,网络100仅用来示出按照本发明的帧转发的实施例,以及作为本文的基础的原理适用于大许多的网络。

图1b是示出按照本发明的一个实施例的spb帧转发的框图。任务框1-3示出执行操作的顺序。在任务框1,各节点计算拓扑及其本地过滤数据库(fdb)。在一个实施例中,操作可通过节点初始化或者拓扑变化来触发。在spb网络中,转发拓扑使用分布式路由选择系统来构成,其中各节点从路由选择系统数据库中的信息来单独计算其本地单播和多播fdb。路由选择系统数据库是网络的链路状态信息的资料库,其将是公共的,并且当网络处于稳定状态时跨所有路由选择节点来同步。公共资料库的一致性通过在网络中的相邻节点之间交换拓扑概括摘要来检查。当摘要相同时,节点知道它们共享网络拓扑的相同视图,并且具有关于到网络中的所有根的距离的显式协定。注意,各节点具有其自己的本地fdb,并且个性化存在,因为各节点在网络中具有不同位置。例如,在节点3和5的拓扑计算之后,两者均计算到根节点1(图中所示)的相同最短路径树(spt)。注意,没有使用不在spt上的端口,因此spt上的帧将不会通过这些端口来转发。节点5与节点3、4和6之间的连接在图1b中是具有复纵线的虚线。该记法代表节点之间的逻辑连通性没有由那个树来使用,即使物理连接完整无缺。

前进到任务框2,当节点5接收目标为节点1的单播帧时,它将帧转发到节点2。节点5没有将帧转发到节点3、4或6,即使它们也与节点5相邻,因为节点5具有其本地fdb,并且知道节点2处于预计送往节点1的单播帧的最短路径上。

在任务框3,当节点3从其面向节点5的端口(例如因故障)接收预计送往节点1的单播帧时,它没有转发而丢弃该帧。进行丢弃判定,因为节点3知道它不在到根1的节点5的最短路径上。另一方面,如果节点3从其面向节点6的端口接收预计送往节点1的单播帧,则它转发该帧(图1b中未示出)。检查进入帧以确定接收端口是否有效在ieee802.1aq规范中又称作入口检查,在本领域也常常称作反向路径转发检查(rpfc)。注意,任务框2和3无需以所述顺序发生。节点3在节点5向节点3发出帧之前或之后进行相同的rpfc判定。换言之,节点3基于它的网络100拓扑的视图进行其自己的rpfc判定。虽然图1b示出spbm网络中的rpfc的一个实施例,但是rpfc也在spbv网络中实现。在spbv网络中,不是检查源mac地址,rpfc而是检查vlan的端口成员资格,并且转发仅到最短路径vid(spvid)的有效入口端口的进入帧。

rpfc也用于多播业务。注意,给定ect集合的单播和多播业务在网络中的任何给定节点对之间均具有沿正向和反向的相同所选路径,甚至当存在多个等价候选路径可用时。因此,对于单播业务示为到根节点1的最短路径是对于多播业务到根节点1的相同最短路径。全等(congruency)是重要的,因为它确保以太网操作执行和管理(oa&m)机制能够在spb网络中正确地起作用,并且为所有业务保存帧排序。

基于vid或mac的rpfc充分改进针对以太网转发循环的保护。实际上,由于对给定根,rpfc允许节点仅接收单入口端口的帧,从两个或更多方向的流量绝不能合并,并且瞬时网络崩溃的概率显著降低。然而,rpfc的刚性加强是有代价的,即,rpfc在异常条件时阻止业务的任何快速单方面重新路由,因此变更需要在多个节点之间同步。

图2是示出spb网络的一个实施例中的链路故障时的帧转发的框图。网络200与网络100相似,并且相同或相似参考标号表示具有相同或相似功能性的元件或组件。任务框1-3示出执行操作的顺序。网络200具有与网络100相同的最短路径生成树,其中节点1作为根。

在任务框1,在节点5检测节点2与节点5之间的链路的异常连通性。在一个实施例中,异常连通性检测可通过链路降级/故障或者在远程节点(本例中为节点2)的节点无响应/故障来触发。在检测到故障时,节点5执行任务框2,它重新计算拓扑,并且提取信息,以构建它的新本地过滤数据库(fdb)。通过重新计算,节点5构建新的最短路径树(spt),其中节点5到节点1的最短路径经过到节点3的链路而不是到节点2的异常链路。通过新的spt和新的fdb条目,节点5这时将预计送往节点1的帧转发到节点3而不是节点2。但是在节点3,因上文所述的rpfc而丢弃来自节点5、预计送往节点1的帧(未示出)。

前进到任务框3,其中通知节点3关于拓扑变化。因为节点3不是与异常条件紧邻,所以可能在比节点5检测异常条件要迟的时间通知节点3关于拓扑变化。节点3执行与节点5相同的拓扑重新计算,并且节点3还重建其fdb。此后,节点3认识到它处于节点5到节点1的最短路径上,则节点3不再丢弃从节点5重定向的、预计送往节点1的帧。

网络200的操作是本领域已知的,并且可称作“先开后合(breakbeforemake)”,因为它没有在其拓扑计算中抢先地计算可能的任何备选路径。因此,业务重新路由花费时间,并且延迟能够是相当大的,此外,它引起帧丢失,特别是当支持ieee802.1aq的spb网络放大到数千个节点和数百万服务时。

实现单播无循环备选(lfa)

图3是示出按照本发明的一个实施例、实现单播无循环预备(lfa)的方法的框图。网络300与网络100相似,并且相同或相似参考标号表示具有相同或相似功能性的元件或组件。任务框1-4示出执行操作的顺序。网络300具有与网络100相同的最短路径树,其中节点1作为根。

在任务框1,各节点计算拓扑、其本地过滤数据库(fdb)和下游无循环预备(lfa)。拓扑和fdb的计算与图1b中的任务框1相似,因此在这里不作赘述。下游lfa的额外计算是新的并且值得详细论述。无循环备选路径是不在计算节点的当前最短路径树上的路径,然而是到给定根的无循环路径。无循环备选路径上到计算节点的紧邻节点是无循环备选节点或者无循环预备。在下文的说明书中,术语“无循环备选节点”和“无循环预备(lfa)”可互换地使用,除非另加说明。在网格spb网络中,多个路径可通向给定根,并且lfa节点在那种情况下存在。这个计算设法查找下游lfa,即,比计算节点更接近根的lfa节点。注意,在一些拓扑中,这种节点可能不存在,而在其它拓扑中,可存在多个可能的选择。在多个选择存在的情况下,与802.1aq的大多数方面不同,不要求计算节点和lfa节点进行相同选择,从而使计算节点能够自由使用它选择的无论什么标准来从候选lfa节点集合中进行选择。在其它标准不存在的情况下,从抑制循环和多个故障情形的角度来看,最接近根的候选lfa节点通常是最健壮选择。通常在拓扑变化之后已经使拓扑视图/数据库稳定、即邻居具有匹配摘要时,执行这些计算操作。

在网络300中,例如,在节点5,节点2如所示处于其到根节点1的所选最短路径上。节点3、4和6不在所选最短路径上。但是节点3、4和6是节点5的lfa节点,因为选择它们其中之一不会引起转发循环。例如,经过节点5-节点4-节点2-节点1的路径没有造成循环,并且它是经过节点5-节点2-节点1的所选路径的有效预备。但是,节点4和6不是节点5到根节点1的“下游”lfa,假定各链路携带相同成本/权重。这是因为节点5是背离根节点1的两跳,以及两个节点4和6也是背离根节点1的两跳。另一方面,节点3只是背离根节点1的单跳,因而从lfa节点3、4和6中,通过任务框1选择节点3作为独特下游lfa。注意,当存在多个下游lfa时,通过任务框1选择单个lfa。节点3的lfa选择由节点5连同其它fdb信息一起来保存。

前进到任务框2,其中节点5检测到节点2的异常连通性。在一个实施例中,异常连通性检测可通过链路降级/故障或者在远程节点(本例中为节点2)的节点无响应/故障来触发。在检测到故障时,节点5立即将预计送往根节点1的帧重定向到预先选择的lfa节点3,而无需执行任何重新计算。注意,帧转发的立即重定向与图2的任务框2(其中不执行帧转发,直到拓扑的新计算完成)相反。

在任务框3,节点3这时接收从节点5所转发的帧,这些帧预计送往节点1。不是如上文所述来执行rpfc,节点3这时不再丢弃从节点5重定向的单播帧。在一个实施例中,节点3只是不采用单播帧的rpfc(经由目标mac地址中编码的m位是可识别的),因而来自节点5或者任何其它节点的进入单播帧被接受并且然后转发。在另一个实施例中,节点3在允许来自给定目标的一组假定安全节点的其它单播帧被处理以用于转发的同时执行丢弃一些单播帧的附加任务。

注意,在网络300中,从链路/节点故障的恢复比网络200的恢复要快许多。故障时的快速恢复在本说明书中称作快速重新路由(frr)。lfa的计算在初始拓扑计算阶段来执行,并且它是查找802.1aq控制平面所执行的最短路径计算的所有成对的副产品,因此lfa的附加查找不消耗显著的附加计算资源。lfa信息能够紧接因链路或节点故障引起的拓扑变化来使用。在缩放spb网络中,网络汇聚的效率使通过附加计算的单播lfa的实现是值得的。

在局部修复点(plr)的单播lfa的实现

图4是示出按照本发明的一个实施例、在局部修复点(plr)实现单播无循环预备(lfa)的方法的流程图。在本说明书中,plr是与链路故障紧邻的节点。例如在图3中,节点5是网络300的plr(因为它直接连接到节点2与5之间的出故障链路),因此方法400可在图3的节点5上实现。

参照图4,在参考标号404,节点在接收计算到目标节点的最短路径的请求时计算从该节点到目标节点的最短路径。该请求可通过网络的所检测或者所通知的拓扑变化来触发。在一个实施例中,该计算基于网络的链路状态信息的公共资料库。在计算中记录到达每个根节点的最短路径上的相邻节点。在参考标号406,计算节点还计算到目标的下游无循环预备节点。如上文所述,下游lfa节点是相对根处于计算节点下游的相邻节点,共享网络的同步视图,并且因此也是在没有引起转发循环的情况下到达目标的有效转接节点。注意,虽然参考标号404和406表示为两个独立步骤以具体指出与常规拓扑计算相比的额外计算,但是在一些实施例中,两个步骤同时执行。换言之,下游lfa的确定与最短路径计算同时地执行。所确定lfa和所计算最短路径则在计算节点保存。

在参考标号408,当计算节点检测到与到根的最短路径连接的链路的异常时,计算节点对预计送往根的所有帧(如通过帧的目标mac地址所示)切换到lfa节点。在一个实施例中,异常可能通过链路降级/故障而引起。在另一个实施例中,异常可能通过节点故障或者某个时间周期之后在远程节点无响应而引起。另外,plr节点可通知网络中的其它节点关于拓扑变化已经发生。

注意,节点可查找各在不同ect集合中的给定根的多个ect。在那种情况下,方法400被执行多次,并且它设法查找给定根的每个ect的lfa节点。在检测到ect集合的最短路径的相邻节点的链路的异常连通性时,计算节点将预计送往根的帧重定向到ect的lfa节点。还要注意,lfa在任何ect集合中可能不可用于那个目标——处于或者不处于目标的粒度,如果一个ect集合具有预备,则其余ect也将这样。当没有lfa可用时,在链路异常时,计算节点例如必须如图2所示重新计算新网络拓扑,而不能参与增强恢复。

方法400能够在spbm网络中实现,因为多播的入口检查(常常称作rpfc)处理能够与对单播不同的方式进行。

在无循环备选(lfa)节点的单播lfa的实现

图5是示出按照本发明的一个实施例、在所选lfa节点实现单播无循环预备(lfa)的方法的流程图。例如在图3中,节点3是节点5的所选lfa,以及方法500可在图3的节点3上实现。参照图5,在参考标号502,节点接收以太网帧。节点确定所接收以太网帧是否为参考标号505的多播帧。该确定可基于所接收以太网帧的帧报头,以及在一个实施例中,节点检查帧报头中的目标mac地址的“m”位,以进行确定。如果所接收以太网帧是多播帧,则节点执行rpfc处理。也就是说,节点在参考标号506确定接收端口是否为过滤数据库(fdb)中的所接收以太网帧的源mac地址的匹配端口。如果所接收以太网帧的源mac地址不是来自每fdb的匹配端口,则在参考标号510丢弃所接收帧。否则,在参考标号508处理所接收多播帧以用于帧转发。

又参照参考标号505,如果节点确定所接收以太网帧不是多播帧,则在参考标号512转发所接收以太网帧以用于预备入口检查处理。换言之,方法500对多播帧但是不对单播帧执行rpfc。与ieee802.1aq下的入口检查当前所允许相比,rpfc的放宽允许spb节点考虑对转发可接受的更多帧。直观地,放宽有代价的。具体来说,在没有加强rpfc的情况下,多个故障情形可引起转发循环。又如上文所述,更坏转发循环通过没有rpfc的多播帧转发而引起,因为循环可馈入另一循环中,因而引起瞬时网络崩溃。由于方法500加强了多播帧的rpfc,所以抑制了网络崩溃的风险。另外,对于单播业务,方法500能够进一步增强。还要注意,仅将下游lfa用于单播不会增加因基本以太网转发引起的循环的风险,即,帧没有在接收端口上回送。

图6是示出按照本发明的一个实施例、在所选lfa节点实现单播无循环预备(lfa)的方法的流程图。方法600当方法500的过程在如图5所示的参考标号a结束时接着方法500处理单播帧,以及参考标号a是图6中的方法600的起始点。与方法500相似,方法600可在所选lfa节点、例如图3的节点3来执行。

参照图6,节点可在参考标号606直接处理所接收单播帧以用于帧转发。也就是说,在无需任何进一步过滤的情况下转发所接收单播帧,以抑制转发循环。备选地,节点可在参考标号602检查所接收单播帧的目标mac地址。节点然后在参考标号604确定接收端口是否处于目标mac地址的准许端口集合中,其中准许端口集合是被确定在节点上游并且具有数据库摘要中的当前协议对其存在的节点的集合(注意,这个端口集合是给定路由选择拓扑的所有ect集合共同的)。在一个实施例中,准许端口集合存储在准许端口映射中。如果该端口处于目标mac地址的准许端口集合中,则在参考标号606处理该帧以用于帧转发,否则在参考标号608丢弃该帧。换言之,没有处理所接收单播帧以用于帧转发,除非它从帧的目标的准许端口集合(其是明确已知为连接到给定目标的最短路径树上的上游节点的集合)其中之一来接收。在参考标号604的增加检查进一步抑制转发循环。直观地,没有对给定目标mac地址的准许端口集合的检查表示对节点的较少过滤/处理必须进行,但是转发循环更有可能发生。因此,关键是选择给定目标mac地址的准许端口的最佳集合,使得不要求节点进行详尽计算,同时使转发循环保持为较低。

图7是示出按照本发明的一个实施例、在所选lfa节点选择准许端口集合的方法的流程图。方法700可在所选lfa节点、例如图3的节点3来执行。在参考标号702,节点检查所接收以太网帧,并且确定其目标mac地址和进入端口。然后在参考标号704,节点先验地确定它是否比面向它用于帧转发的最短路径树上的进入端口的节点要更接近所接收帧的目标。换言之,节点确定它相对根(目标节点)是否在它从其中接收帧的节点(可称作相邻发送节点)的下游。在参考标号706,如果节点更接近目标节点(因而在相邻发送节点的下游),则节点接受所接收帧以用于帧转发,否则丢弃所接收帧。也就是说,如果所接收帧来自相对根处于该节点上游的节点,则节点仅接受所接收帧以用于帧转发。安全端口的已更新集合则能够用来接受或丢弃将来的进入帧。当拓扑变化发生时,给定ect的非plr节点对它没有与其进行数据库同步的所有上游节点将plr位置与离根的先前距离进行比较,并且从可接受集合中去除存在它们这时处于下游的风险的那些节点。由于数据库同步与这些节点重新取得,所以该集合然后能够再次相应地修正。

图8a是示出按照本发明的一个实施例、在所选lfa节点选择准许端口集合的另一种方法的框图。图8a中,节点(节点8或n8)将其端口分为两个编组。给定目标(目标是如参考标号802所示的节点20(n20))的分割(称作“分割水平”)基于端口是否面向更远离n20的节点(与计算节点(n8)相比)。如果进入节点比n8更远离n20,则面向进入节点的端口对帧转发是安全的,否则就不是。在这个示例中,节点9和10比n8更远离节点20,因此连接到节点9和10的端口处于端口的安全集合中,而连接到节点11和12的端口不是。

图8b是示出按照本发明的一个实施例、在所选lfa节点的分割水平端口表的框图。分割水平端口表用于节点8,并且它包含目标节点的一行。该行可包含spb网络中除了计算节点(本例中为节点8)的各节点的一列。该表包含面向给定目标节点的节点的上游端口(即,安全端口)的另一行。该表还可包含面向给定目标节点的节点的非上游端口(即,不安全端口)的另一行。第一列用于目标节点20。如图8a所示,连接到节点9和10的端口处于上游端口的条目中,而连接到节点11和12的端口处于非上游端口的条目中。注意,该表仅用于说明,以及安全集合表可以仅保持端口而不是连接到端口的节点的记录。还要注意,存在构成解释构建端口的安全集合中的分割水平的许多方式。端口的安全集合能够是表、阵列、元组或者使用图8a-b所示的相同原理的其它数据结构。

图9是示出按照本发明的一个实施例、在所选lfa节点的端口分割水平的创建的流程图。方法900可在所选lfa节点、例如图3的节点3来执行。在参考标号902,对于给定目标的节点的ect,节点(“计算节点”)确定给定端口是否为上游端口。如果端口面向比计算节点离目标更远的节点,则该端口是上游端口。在参考标号904,节点将所有端口分为给定目标的两个集合,第一集合是上游端口而第二集合是非上游端口(包括下游端口以及面向与目标等距离的节点的端口)。然后在参考标号906,当帧到达第一集合(上游)端口时,节点接受送往目标节点的帧以用于帧转发。在参考标号908,当帧到达第二组(非上游)端口时,节点丢弃送往目标节点的帧。

实现单播lfa的网络装置的实施例

图10是示出按照本发明的一个实施例、用作实现单播f无循环预备的节点的网络装置的框图。在一个实施例中,网络装置包括一个或多个线路卡/处理器(例如连通性监测模块1002、多播帧检测器1004和通信模块1006)集合、一个或多个控制卡(例如帧处理器1010)集合以及可选的一个或多个服务卡(有时称作资源卡)集合。这些卡通过一个或多个机构(例如耦合线路卡的第一全网格以及耦合全部卡的第二全网格)。线路卡集合组成数据平面,而控制卡集合提供控制平面并且通过线路卡与外部网络装置交换分组。注意,在控制平面和数据平面处于独立网络装置中时,本发明的实施例适用。不仅为了便于说明而示出与实施例相关的模块/处理器,而且还示出使节点正确起作用所要求的其它模块/处理器。

节点1000可包含连通性监测模块1002,其配置成监测到相邻节点的连通性。模块1002检测链路异常性。例如,模块1002可检测链路降级/故障或远程节点故障/在某个时间周期之后无响应。模块1002向帧处理器1010通知链路异常性。节点1000还可包含多播帧检测器1004,其确定进入帧是否为多播帧。该确定是重要的,因为节点1000可加强多播帧的rpfc,同时放宽单播帧的rpfc。另外,节点1000可包含通信模块1006,以便与网络的其余节点进行通信。例如,通信模块1006可执行与相邻节点的拓扑概括摘要交换。

节点1000包含帧处理器1010。帧处理器1010是物理处理器,并且它可包含路径计算处理器1018和帧转发处理器1020。路径计算处理器1018计算到给定目标的最短路径。它还可计算无循环预备,并且确定哪一个无循环预备处于到目标的节点1000的下游。帧转发处理器1020处理帧以用于转发,并且它还在所接收帧的转发不安全时将其丢弃。过滤数据库(fdb)是从网络的链路状态信息的公共资料库所计算的本地数据库。fdb基于节点在网络中的位置。无循环预备(lfa)记录1014保存给定目标的所计算lfa。安全集合记录1016保存给定目标的安全端口集合。注意,fdb1012、lfa记录1014和安全集合记录1016可在帧处理器1010外部来实现。另外,帧处理器1010能够是通用或专用处理器。网络处理器1010中的单独模块能够包含其专用网络处理单元(npu),或者它们能够在多个模块之间共享npu。例如,路径计算处理器1018和帧转发处理器1020可共享同一npu。

节点1000可用作在局部修复点(plr)的spb节点。在一个实施例中,路径计算处理器1018在所检测或者所通知的拓扑变化时计算到网络的其它节点的最短路径。路径计算处理器1018还选择下游lfa,并且将所选下游lfa保存到lfa记录1014。注意,可找出到其它节点的ect集合。然后,路径计算处理器1018将所有所计算ect集合的本地转发配置保存到fdb1012。另外,路径计算处理器1018将每个ect的各目标的所选下游lfa保存到lfa记录1014。当下游lfa对所计算ect的目标为不存在时,没有为所计算ect的目标保存lfa记录。在一个实施例中,将要通过故障所调用的lfa记录集合通过它们将响应连通性异常性而被调用的端口来索引。

然后,在连通性监测模块1002检测到最短路径节点的连接的连通性异常时,帧转发处理器1018通过从lfa记录1014所检索的lfa将进入帧转发到其目标。另外,通过通信模块1006,节点1000通知网络中的其它节点关于网络的拓扑已经改变。

节点1000可用作所选lfa节点的spb节点。在一个实施例中,多播帧检测器1004确定进入帧是否为多播帧。如果进入帧是多播帧,则rpfc适用,以及节点1000检查fdb1012,并且确定接收以太网帧的端口是否为源mac地址的匹配端口。如果是的话,则接收多播帧经过处理以用于帧转发处理器1018进行帧转发。如果不是的话,则丢弃所接收多播帧。在一个实施例中,如果进入帧是单播帧,则节点1000将帧直接放到帧转发处理器1018以用于帧转发。在另一个实施例中,帧处理器1010通过检查安全集合记录1016来检查并且查看进入端口是否处于单播帧的所指定目标的端口的安全集合中。如果进入端口处于所指定目标的端口的安全集合中,则将该帧转发到帧转发处理器1018以用于帧转发,否则丢弃该帧。

在一个实施例中,安全集合记录1016通过对节点1000的端口应用分割水平来形成。在分割水平计算中,对于各目标,端口分类为是否为上游端口,以及上游端口接受给定目标的进入帧被认为是安全的,而非上游端口是不安全的。

虽然上文的附图中的流程图示出本发明的某些实施例所执行的操作的特定顺序,但是应当理解,这种顺序是示范性的(例如备选实施例可按照不同顺序来执行操作、组合某些操作、重叠某些操作等)。

虽然按照若干实施例描述了本发明,但是本领域的技术人员将会知道,本发明并不局限于所述实施例,而是可在所附权利要求书的精神和范围之内,经过修改和变更来实施。因此,本描述被看作是说明性而不是限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1