专利名称:Pim-sm中实现对dr冗余保护的方法
技术领域:
本发明涉及计算机网络数据通信组播技术中的DR冗余保护的方法。
背景技术:
组播,也称多播,是点到多点的通信方式,提高了数据传送效率。减少了骨干网络出现拥塞的可能性。目前使用的组播路由协议主要有PIM-SM、PIM-DM、MSDP等。在广域网上,组播接收成员相对稀疏,多采用PIM-SM(ProtocoHncbpendent Multicast-Sparse Mode,协议无关组播稀疏模式)。PIM-SM协议中规定的DR(Designated Router,指定路由器)选举机制如下当启用了 PIM-SM协议的接口接收到一个邻居发来的Hello报文,通过解析Hello 报文,记录下邻居的 primary_ip_address>dr_priority 禾口 dr_prio:rity_present 等三个与 DR选举有关的信息。在得到这两个邻居信息之后,首先确定dr_priority_present是否有效,如果有效比较本接口和邻居的dr_priority,priority高者获胜。如果两者相同,则进一步比较primary_ip_address,其中值较大者获胜。由于同一网络中,IP地址具备唯一性,所以通过比较IP地址,一定能产生DR。如果dr_priority_present无效,则直接对比两者的 primary_ip_address,较大者获胜。PIM-SM协议中,对于DR这样的关键节点,没有相应的保护机制。一旦当前DR故障,网络中其他路由器,至少需要等待3. 5倍的Hello间隔,约105秒,才能重新选举DR。这将导致流量长时间中断。为改善上述现有技术方案一的缺点,现有技术方案二(中国发明专利 CN200710073938. 6)引入 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)来侦测故障,并通知PIM(Protocol-Independent Multicast,协议无关组播) 模块,重新选举DR。该专利为了侦测故障,会在所有的相关Router之间运行VRRP和 BFD(Bidirectional Forwarding Detection,双向转发检测)。该专利 CN200710073938. 6 所述的方案,在故障检测上节省了一些时间,缩短了流量中断的时间。但是,没有解决DR选举所占用的大量时间。并且,现有技术方案二,在本网络所有Router之间运行VRRP和BFD,会引入大量的协议报文到本地网络中,在一定程度上,浪费了网络带宽。尤其,为了实现电信级网络要求的毫秒级切换时,要高频率的发送检测报文,浪费的带宽尤为明显。
发明内容
有鉴于此,本发明目的是在于提供一种PIM-SM中实现对DR冗余保护的方法,以达到加快DR故障时组播路由收敛速度,进而实现组播流量快速恢复。为了实现前述发明目的,本发明提供了一种PIM-SM中对DR冗余保护的方法,依次包括以下过程网络故障之前的DR/BDR选举过程,以确定网络中的DR和BDR,DR行使分发或者接收组播流量的功能;BDR的行为过程,包括故障检测过程,BDR通过不断的检测DR状态,一旦发现DR故障,BDR立即切换成新的DR,然后,再进行BDR选举过程,重新选举出来新的 BDR。相较于现有技术,本发明在网络故障之前,通过DR/BDR的选举,在确定本网络中 DR的同时,确定本网络的备份DR,即BDR。DR行使分发或者接收组播流量的功能。本发明引入一个新的概念BDR,BDR则不间断的探测DR是否故障。一旦探测到DR故障,BDR立即转换成DR,行使DR的职责。省去了重新选举DR的过程,节约了大量的收敛时间。进一步的实施例中,本发明仅仅在DR和BDR之间运行故障侦测协议,可以有效的降低对有效带宽的浪费。
图1为本发明实施例中DR和BDR之间运行故障侦测协议的示意图。图2为本发明实施例中DR和BDR选举机制的示意图。图3为图2中过程S204进一步细化的流程图。图4为图3中过程S310进一步细化的流程5为本发明实施例中BDR选举过程的流程图。图6为本发明实施例中BDR的行为示意图。
具体实施例方式下面参照附图具体介绍本发明的实施例,图中相同的结构或功能用相同的数字标出。应该指出的是,附图的目的只是便于对本发明具体实施例的说明,不是一种多余的叙述或是对本发明范围的限制。本发明提供的PIM-SM中对DR冗余保护的方法,依次包括以下过程网络故障之前的DR选举过程,以确定网络中的DR,DR行使分发或者接收组播流量的功能;BDR选举过程, 以确定网络中的BDR ;BDR的行为过程。相对现有技术,本发明改进后的DR/BDR选举机制具体如下当启用了 PIM-SM的接口开始工作的时候,会周期性的向外发送Hello报文,把自己的 dr_priority> primary_ip_address 禾口 dr_priority_present 等 言;窗、发送给令P居。 同时,也接收邻居发送的Hello报文,根据收到的Hello报文里面携带的dr_priority、 primary_ip_address 禾口 dr_priority_present,对比本接口上的这两个值来决定 DR禾口 BDR。图2说明的就是选举DR/BDR的相关过程,具体包括过程S202,是接口接收邻居发来的Hello的情况。表明该接口上收到了 Hello报文。该过程会提取Hello报文中用于选举的信息dr_priority_present、dr_priority及 primary_ip_address。如果报文中有 dr_priority 字段,贝把 dr_priority_present 置为有效,否则置为无效。这三个参数和接口信息会作为输入参数传递给下一过程。过程S204,即上述过程S202提到的下一过程。本过程将根据上述S202过程的输出信息,结合从本地数据存储过程D206中读取的记录的DR和BDR信息,通过调用dr_is_ better过程,比较出两者之间的更优DR和BDR,然后把比较的结果重新记录到本地存储过程D206里面。图3将会对这一过程进行细化。
5
本地存储过程D206,表明每个启用PIM-SM的接口上,都维护一个本地数据结构, 用于保存该接口上的DR和BDR信息。本过程有如下两个作用一方面,本接口会根据该信息决定本接口是否具备DR或者BDR的功能。另一方面,为DR选举过程提供当前DR和BDR 信息输入。请参阅图3,图3细化了过程S204,过程S204包括过程S308,即经过上述S202 处理之后得到邻居信息;过程S302,表明从本地数据存储过程中读取当前DR信息的过程; 过程S310,根据当前DR信息和邻居信息,判断当前DR是否是最优的,如果是,则转入过程 S314,否则,转入到过程S312,所述过程S312表明如果邻居信息优于当前DR,则选举邻居作为当前DR ;过程S314,表明返回新的DR,并结束选举过程,新的DR将被重新存入本地数据结构D206。过程S204还包括过程S304,是过程S302后进行的一个判定过程,判断本地数据结构里没有当前DR信息,如果没有当前DR信息,则认为本接口就是DR,即进行过程S306 ; 如果有当前DR信息,则使用该信息,进入到过程S310。请参阅图4,图4细化了过程S310,用于判定a是否优于b,a和b表示用于选举 DR/BDR的信息,过程S310包括S402开始;过程S404,判断dr_priority_present是否有效,如果有效,说明Hello消息中携带了 dr_pri0rity信息,则进入过程S406,否则,说明没有dr_priority,则直接比较primary_ip_address的大小,即进入过程S408 ;过程S406判断a的dr_priority是否与b的相同,相同则进一步比较primary_ip_address的大小,即进入过程S408,否则,进入过程S410 ;所述过程S408比较两者primary_ip_address的大小, 并且返回比较结果;S410比较两者dr_priority的大型,并且返回比较结果。请参阅图5,图5说明了 BDR选举的过程,BDR选举过程包括过程S502说明从本地存储的数据结构中,读取当前DR和BDR信息;过程S504,是一个判定过程,判断本地数据结构中没有当前BDR信息,如果没有,则指定本接口就是BDR,即进入过程S506 ;如果有,则使用该信息,进入过程510 ;S506表明在本地没有BDR信息的时候,将本接口指定为BDR ;S508 是经过上述S202处理之后得到的邻居信息,它作为过程S510选举判定的依据;所述过程 S510是一个判定过程,当邻居优于原来BDR且不优于DR时,进入过程S512,过程S512表明将邻居指定为新的BDR,过程S512之后则进入过程S514 ;其他情况时,则进入过程S514,过程S514表明返回新选举的BDR。BDR与DR间的交互请参如下具体说明 如图1,DR和BDR之间运行故障检测协议。关于故障检测协议如BFD、Link OAM等属于标准化组织定义的规范,属于业内技术人员熟知技术,在此不再赘述。图6说明了 BDR的行为,具体说明如下过程S602是运行在BDR上的故障检测过程。由图6可知,BDR会不间断的探测DR 是否正常工作,一旦发现DR故障,BDR立即切换成DR,我们可以称它的工作模式是贪婪模式,即贪婪的想取代DR的地位。探测的频率由具体使用的探测协议决定,对于Link OAM这类规范,每3. 3ms会探测一次,三次探测失败就认为对端故障,可以实现电信级网络要求的毫秒级切换。过程S604表明当故障检测模块发现DR故障之后,通知PIM-SM协议模块。过程S606表明PIM-SM协议模块更新本地数据结构中的DR信息,把当前的BDR指定为DR。本地接口开始具备DR的功能。这一过程与DR/BDR选举过程是相互独立的。经过一段时间的重新选举,会在本网络中重新选举出新的BDR。新的BDR又开始探测当前DR,如此循环,构成该网络新的稳态。需要说明的是,当故障的DR恢复之后,通过重新选举,会重新回到DR的角色,原来的DR会重新被置成BDR,不再具备DR的功能。本发明引入的BDR的策略,对DR进行备份,在DR发生故障的时候,能够迅速替换原来DR,省去了重新选举DR的过程,节约了大量的收敛时间。有效的减少因为DR故障而导致组播流量中断的时间。能够满足在电信级网络中部署组播业务对流量保护的要求。本发明还改进了现有技术二中使用的将本网络所有Router建立full mesh的故障检测连接,而导致大量协议报文泛滥的情况。本发明只在DR和BDR之间建立故障检测连接,有效的降低了协议报文流量。关于故障检测,本发明除了可以使用BFD、VRRP等传统故障检测和冗余保护协议之外,本发明还采用MEF相关规范中定义的Link 0AM,以实现快速检测故障。故障检测过程中,本发明引入BDR的概念来对DR的冗余进行备份,在检测到当前 DR故障的时候,BDR立即切换成DR,实现快速生成新DR,减少收敛时间,省去DR重新选举的时间。为实现以上功能,对原有PIM-SM协议的DR选举机制进行了一些改进。在选举的过程中,不但选举出该网络的DR,同时也选举出BDR。为了在DR故障之前,能够正确的选举出 BDR,本发明改进了 PIM-SM协议RFC4601所规定的DR选举机制。本发明实现了对DR的冗余保护,通过对DR的冗余保护,达到加快DR故障时组播路由收敛速度,进而实现组播流量的快速恢复。以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,利用上述揭示的方法内容对本发明技术方案做出许多可能的变动和修饰,均属于权利要求书保护的范围。
权利要求
1.一种PIM-SM中对DR冗余保护的方法,依次包括以下过程网络故障之前的DR/BDR 选举过程,以确定网络中的DR和BDR,DR行使分发或者接收组播流量的功能;BDR的行为过程,包括故障检测过程,BDR通过不断的检测DR状态,一旦发现DR故障,BDR立即切换成新的DR,然后,再进行BDR选举过程,重新选举出来新的BDR。
2.如权利要求1所述的PIM-SM中对DR冗余保护的方法,其特征在于,故障检测过程中运行故障侦测协议,所述故障侦测协议仅仅在DR和BDR之间运行。
3.如权利要求1所述的PIM-SM中对DR冗余保护的方法,其特征在于,所述DR选举过程包括以下过程过程S202,是接口接收邻居发来的Hello的情况,表明该接口上收到了 Hello报文,该过程会提取Hello报文中的dr_priority和primary_ip_address,如果报文中有dr_priority字段,则把dr_priority_present置为有效,否则置为无效,这三个参数和接口信息会作为输入参数传递给下一过程;本地存储过程D206,表明每个启用PIM-SM的接口上,都维护一个本地数据结构,用于保存该接口上的DR和BDR信息;过程S204,即上述过程S202提到的下一过程,本过程将根据上述S202过程的输出信息,结合从本地数据存储过程D206中读取的记录的DR和BDR信息,通过调用dr_iS_better过程,比较出两者之间的更优DR和BDR,然后把比较的结果重新记录到本地数据结构里面。
4.如权利要求3所述的PIM-SM中对DR冗余保护的方法,其特征在于,过程S204包括 过程S308,即经过上述S202处理之后得到邻居信息;过程S302,表明从本地数据存储过程中读取当前DR信息的过程;过程S310,根据当前DR信息和邻居信息,判断当前DR是否是最优的,如果是,则转入过程S314,否则,转入到过程S312,所述过程S312表明如果邻居信息优于当前DR,则选举邻居作为当前DR ;过程S314,表明返回新的DR,并结束选举过程,新的DR将被重新存入本地数据结构。
5.如权利要求4所述的PIM-SM中对DR冗余保护的方法,其特征在于,过程S204还包括过程S304,是过程S302后进行的一个判定过程,判断本地数据结构里没有当前DR信息,如果没有当前DR信息,则认为本接口就是DR,即进行过程S306;如果有当前DR信息,则使用该信息,进入到过程S310。
6.如权利要求4所述的PIM-SM中对DR冗余保护的方法,其特征在于,过程S310,用于判定a是否优于b,a和b表示用于选举DR/BDR的信息,过程S310包括S402开始;过程S404,判断dr_priority_present是否有效,如果有效,说明Hello消息中携带了 dr_ priority信息,则进入过程S406,否则,说明没有dr_priority,则直接比较primary_ip_ address的大小,即进入过程S408 ;过程S406判断a的dr_priority是否与b的相同,相同则进一步比较primary_ip_address的大小,即进入过程S408,否则,进入过程S410 ;所述过程S408比较两者primary_ip_address的大小,并且返回比较结果;过程S410比较两者dr_ priority的大型,并且返回比较结果。
7.如权利要求1所述的PIM-SM中对DR冗余保护的方法,其特征在于,BDR选举过程包括过程S502说明从本地存储的数据结构中,读取当前DR和BDR信息;过程S504,是一个判定过程,判断本地数据结构中没有当前BDR信息,如果没有,则指定本接口就是BDR,即进入过程S506 ;如果有,则使用该信息,进入过程510 ;S506表明在本地没有BDR信息的时候, 将本接口指定为BDR ;S508是经过上述S202处理之后得到的邻居信息,它作为过程S510选举判定的依据;所述过程S510是一个判定过程,当邻居优于原来BDR且不优于DR时,进入过程S512,过程S512表明将邻居指定为新的BDR,过程S512之后则进入过程S514 ;其他情况时,则进入过程S514,过程S514返回新选举的BDR。
8.如权利要求1所述的PIM-SM中对DR冗余保护的方法,其特征在于,BDR的行为过程还包括S604过程,当故障检测模块发现DR故障之后,通知PIM-SM协议模块;S606过程,表明PIM-SM协议模块更新本地数据结构中的DR信息,把当前的BDR指定为DR,本地接口开始具备DR的功能。
9.如权利要求1所述的PIM-SM中对DR冗余保护的方法,其特征在于,故障检测过程引入BDR的概念,通过对DR的冗余备份,以实现快速生成新DR,减少收敛时间。
全文摘要
本发明公开了一种PIM-SM中对DR冗余保护的方法,依次包括以下过程网络故障之前的DR/BDR选举过程,以确定网络中的DR和BDR,DR行使分发或者接收组播流量的功能;BDR的行为过程,包括故障检测过程,BDR通过不断的检测DR状态,一旦发现DR故障,BDR立即切换成新的DR,然后,再进行BDR选举过程,重新选举出来新的BDR。通过本发明,可加快DR故障时组播路由收敛速度的目的,进而实现组播流量快速恢复。
文档编号H04L12/26GK102377584SQ20101025206
公开日2012年3月14日 申请日期2010年8月12日 优先权日2010年8月12日
发明者吴秀余, 徐锦韬 申请人:盛科网络(苏州)有限公司