一种基于IPv6的双活路由冗余方法及系统与流程

文档序号:26275177发布日期:2021-08-13 19:30阅读:391来源:国知局
一种基于IPv6的双活路由冗余方法及系统与流程

本申请涉及通信技术领域,尤其涉及一种基于ipv6的双活路由冗余方法及系统。



背景技术:

传统的虚拟路由冗余协议vrrpv3要求两台设备路由口同一个网段,并在局域网内进行组播通告vrrpv3报文,然后双方选择由主设备来转发流量。当从设备一段时间没有收到组播报文时才切换到主设备状态进行转发。这个过程不但消耗路由设备的资源,且在该局域网内的设备都在处理vrrpv3报文丢弃。

vrrpv3默认每一秒钟发送一次报文,所以监听时间必须大于1秒钟才能进行主备切换,也就是说切换延时会大于1秒,这就容易造成传输数据或者报文的丢失。而且两台设备同时只有一台在工作,使得设备资源产生浪费。



技术实现要素:

本申请实施例提供了一种基于ipv6的双活路由冗余方法及系统,用以解决现有的网络冗余方法会出现设备资源浪费,以及在主从设备切换时容易造成报文丢失的技术问题。

一方面,本申请实施例提供了一种基于ipv6的双活路由冗余方法,包括:基于第一交换机与第二交换机,构建跨设备链路聚合组mlag系统;确定第三交换机,并将所述第三交换机通过agg聚合口,接入所述mlag系统中;配置所述第一交换机的虚拟mac地址以及虚拟ipv6地址,并将所述第二交换机的虚拟mac地址以及虚拟ipv6地址配置与所述第一交换机完全相同的地址;将所述第三交换机对应的网关配置为所述虚拟ipv6地址。

在本申请的一种可能实现方式中,所述方法还包括:确定所述mlag系统可以正常传输报文;在所述mlag系统传输的报文为三层报文的情况下,所述第三交换机向其对应的网关发送ns请求报文;基于接收到的来自所述第三交换机的ns请求报文,所述第一交换机向所述第三交换机回复na响应报文。

在本申请的一种可能实现方式中,在所述第三交换机向其对应的网关发送ns请求报文之后,所述方法还包括:确定所述第二交换机接收到所述ns请求报文;基于接收到的来自所述第三交换机的ns请求报文,所述第二交换机向所述第三交换机回复na响应报文。

在本申请的一种可能实现方式中,所述方法还包括:所述第一交换机通过所述虚拟mac地址以及所述虚拟ipv6地址,向所述第三交换机回复所述na响应报文;以及,所述第二交换机通过所述虚拟mac地址以及所述虚拟ipv6地址,向所述第三交换机回复所述na响应报文。

在本申请的一种可能实现方式中,所述方法还包括:在所述第一交换机向所述第三交换机发送ns请求报文时,所述第三交换机基于接收到的来自所述第一交换机的ns请求报文,向所述第一交换机或者所述第二交换机中的任意一个回复na响应报文;在所述第三交换机将所述na响应报文回复到了所述第二交换机的情况下,所述第二交换机通过所述mlag系统将所述na响应报文转发至所述第一交换机;以及,在所述第三交换机将所述na响应报文回复到了所述第一交换机的情况下,所述第一交换机通过所述mlag系统将所述na响应报文转发至所述第二交换机。

在本申请的一种可能实现方式中,所述方法还包括:在所述第二交换机向所述第三交换机发送ns请求报文时,所述第三交换机基于接收到的来自所述第二交换机的ns请求报文,向所述第一交换机或者所述第二交换机中的任意一个回复na响应报文;在所述第三交换机将所述na响应报文回复到了所述第一交换机的情况下,所述第一交换机通过所述mlag系统将所述na响应报文转发至所述第二交换机;以及,在所述第三交换机将所述na响应报文回复到了所述第二交换机的情况下,所述第二交换机通过所述mlag系统将所述na响应报文转发至所述第一交换机。

在本申请的一种可能实现方式中,所述方法还包括:确定所述mlag系统发生故障;在所述mlag系统传输的报文为三层报文的情况下,所述第三交换机通过所述agg聚合口,确定所述第一交换机与所述第二交换机中的正常交换机;所述第三交换机将待传输报文通过所述正常交换机进行转发。

在本申请的一种可能实现方式中,所述方法还包括:确定所述第二交换机为正常交换机;在所述第一交换机由故障状态恢复为正常状态的情况下,所述第二交换机将其对应的邻居表进行老化,并向所述第三交换机重新发送ns请求报文。

在本申请的一种可能实现方式中,所述方法还包括:在所述mlag系统传输的报文为二层报文的情况下,直接将所述二层报文通过所述第一交换机和/或所述第二交换机进行转发。

另一方面,本申请实施例还提供了一种基于ipv6的双活路由冗余系统,包括:mlag系统以及第三交换机;所述mlag系统包括第一交换机以及第二交换机;其中,所述第一交换机的虚拟mac地址与所述第二交换机的虚拟mac地址相同;所述第一交换机的虚拟ipv6地址与所述第二交换机的虚拟ipv6地址相同;所述第三交换机通过agg聚合口接入所述mlag系统中,且所述第三交换机的默认网关配置为所述第一交换机和/或所述第二交换机的虚拟ipv6地址。

本申请实施例提供的一种基于ipv6的双活路由冗余方法及系统,具有以下有益效果:

1.双活路由系统配置简单、网络部署容易;对网络工程师要求低、只需理解好报文转发原理既可以熟练运用。无需增加协议、不依赖其他防环措施。

2.结合mlag系统快速切换,且在mlag系统中的两个交换机使用相同的虚拟ipv6地址和虚拟mac地址双活工作,完成无缝切换,不存在冗余设备主备切换可能带来的丢包问题。

3.没有协议报文的转发,不存在资源的消耗;且可以多设备,多接口一起冗余并且可以同时工作,解决了传统冗余造成备设备资源浪费的同时增加带宽的问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的一种基于ipv6的双活路由冗余方法流程图;

图2为本申请实施例提供的一种基于ipv6的双活路由冗余系统架构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

相对ipv4,ipv6技术更年轻,也是未来网络发展的方向,这不容置疑。但是目前针对ipv6的各种技术都相对欠缺,很多ipv4的技术都在慢慢开始支持ipv6。本申请实施例提出的技术方案就是针对ipv6设计的一种网络冗余方法,着重实现一种优于现有的虚拟路由冗余协议vrrpv3的双活路由。

现有的vrrpv3技术,在配置方面:vrrpv3组里的路由器使用一个虚拟路由配置相同vrrpid,并为该vrrp分配虚拟ipv6地址,然后指定该vrrp使用的端口,接着配置相应抢占模式、通告时间间隔、bfd会话,最后使能该vrrpv3组。在报文处理方面:vrrpv3定义了一种报文格式,通告(advertisement)报文,它被封装在ipv6报文中,使用链路本地地址为源发送组播报文,报文里包括优先级、ipv6地址个数、认证类型、通告间隔、vrrpv3虚拟ipv6地址、认证数据。在路由状态方面:vrrpv3定义了三种状态分别是初始化状态、备份状态、主机状态。在路由接收更新方面:当路由处于主机状态时,它承担数据转发任务。当收到关于虚拟ipv6地址的ns报文请求时,以虚拟的mac地址进行回应,并转发目的mac地址为虚拟mac地址报文。当收到一个vrrpv3报文时,该vrrpv3报文优先级为0,则继续发送自己的报文,若该vrrpv3报文优先级不为0,并且比本接口的vrrpv3优先级更大或者vrrpv3报文的源ipv6地址比本接口ipv3地址更大,则接口状态切到backup。

因此,现有的网络冗余技术,存在以下缺点:

1、路由组必须只一个局域网并且保证有效的报文通讯才能建立。

2、配置固定,而且繁琐。需要网络工程师深入了解该协议的状态切换及原理才能很好部署网络。

3、报文实时发送,主备间切换路由更新开销高。

4、一旦路由组不能通讯就会形成三层环路,增加路由协议的收敛时间。

5、在配合mlag系统使用时,二层、三层组合更大的消化资源开销。

6、vrrpv3组只能有一台设备在工作,一台在等待状态。

7、主备切换期间有可能形成报文的丢失。

本申请实施例提供了一种基于ipv6的双活路由冗余方法及系统,通过在ns/na上做虚拟化,以及通过mlag实现三层无缝切换冗余,以解决上述现有方案中的缺点。

下面通过附图对本申请实施例提出的技术方案进行详细的说明。

图1为本申请实施例提供的一种基于ipv6的双活路由冗余方法流程图。通过如图1所示的各个步骤,建立起一种基于ipv6的双活路由冗余系统(如图2所示),基于该双活路由冗余系统,在进行报文传输时,实现无缝切换,不影响报文的转发。

如图1所示,本申请实施例提出的基于ipv6的双活路由冗余方法主要包括以下步骤:

步骤101、基于第一交换机与第二交换机,构建跨设备链路聚合组mlag系统。

跨设备链路聚合组(multichassislinkaggregationgroup,mlag),是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级,组成双活系统。

本申请实施例中,即是将第一交换机与第二交换机组成mlag系统,然后基于该mlag系统与其他交换机或者设备进行聚合,以此实现报文或者数据传输。通俗来说,就是将第一交换机以及第二交换机看作一个设备/系统,与其他的设备进行通信。需要说明的是,mlag系统的第一交换机与第二交换机之前通过peer-link接口连接。

步骤102、确定第三交换机,并将所述第三交换机通过agg聚合口,接入所述mlag系统中。

在构建完成mlag系统之后,将第三交换机接入该mlag系统中。具体的,第三交换机与第一交换机之间通过二层接口连接、第三交换机与第二交换机之间通过二层接口连接,将这两个二层接口配置为一个agg聚合口,以使第三交换机可以与mlag系统之间进行通信。需要说明的是,本申请实施例中将第三交换机通过agg聚合口实现与mlag系统的连接,可以通过现有的技术或者算法实现,本申请实施例对此不作限定。

步骤103、配置所述第一交换机以及第二交换机的虚拟mac地址以及虚拟ipv6地址。

本申请实施例提出的技术方案,实际上是在ns/na上做虚拟化,虚拟的ns/na允许多台交换机根据相同的目的mac地址同时路由报文。每台交换机都会配置相同的虚拟mac地址,作为vlan接口上的虚拟ipv6地址的对应mac地址。因为虚拟ns/na工作在双活模式,并且没有额外的开销。那么将虚拟ns/na结合mlag就能实现三层无缝切换冗余。

因此,本申请实施例在构建完成mlag系统之后,对mlag系统中的第一交换机与第二交换机进行配置。具体的配置过程如下:

首先,配置第一交换机的虚拟mac地址以及虚拟ipv6地址。然后,将第二交换机的虚拟mac地址以及虚拟ipv6地址配置为与第一交换机的地址完全相同的对应地址。即,给第一交换机以及第二交换机的malg成员所在的vlaninterface配置相同的虚拟mac和虚拟ipv6地址。

步骤104、将所述第三交换机对应的网关配置为所述虚拟ipv6地址。

完成mlag系统中第一交换机与第二交换机的配置过程之后,确定出了第一交换机和/或第二交换机的虚拟mac地址以及虚拟ipv6地址。然后,将接入mlag系统的第三交换机的默认网关配置为上述第一交换机和/或第二交换机的虚拟ipv6地址。这样,在后续进行数据或者报文传输时,第三交换机无论通过哪条路径传输,都会达到相同的一个ipv6地址。

通过上述步骤101-步骤104,搭建出一个双活路由冗余系统,具体架构如图2所示。图2为本申请实施例提供的一种基于ipv6的双活路由冗余系统架构示意图。如图2所示,改系统包括第一交换机switch1、第二交换机switch2以及第三交换机switch3。其中,第一交换机switch1与第二交换机switch2之间通过peer-link端口连接,共同组成mlag系统。第三交换机switch3通过agg聚合口接入该mlag系统中。

通过本申请实施例提出的双活路由冗余系统进行数据或者报文转发时,可以很好的解决或者避免现有的网络冗余技术中存在的问题。下面就该冗余系统实现的报文转发流程进行详细说明。

虚拟ns/na结合在mlag系统正常时的报文处理流程:

1、对于二层报文,由malg系统直接进行冗余转发。需要说明的是,mlag系统进行二层报文转发的原理,是本领域技术人员容易得知的,本申请实施例在此不做赘述。

2、对于三层报文,由于虚拟ns/na处于双活模式下,因此,在第三交换机switch3向其网关发生ns请求报文时,通过agg聚合口任意哈希到第一交换机switch1或者第二交换机switch2。

由于ns请求报文是一个组播报文,都会通过mlag系统进行组播硬转,所以第一交换机switch1和第二交换机switch2都会收到ns请求报文,并基于该ns请求报文回复na响应报文。需要说明的是,第一交换机switch1和第二交换机switch2在恢复na响应报文时,会使用虚拟ipv6地址和虚拟mac地址进行回复。这样第一交换机switch1和第二交换机switch2都会学习到第三交换机switch3邻居表,第三交换机switch3也会学习到其网关邻居表。

进一步地,当第一交换机switch1向第三交换机switch3发送ns请求报文时,如果第三交换机switch3回复na响应报文到了第二交换机switch2,那么第二交换机switch2学习这条邻居(na响应报文)的同时,把该条na响应报文通过mlag系统软转给第一交换机switch1;如果第三交换机switch3回复na响应报文到了第一交换机switch1,那么第一交换机switch1学习到这条邻居(na响应报文)的同时也把该条na响应报文通过mlag系统软转给第二交换机switch2。

更进一步地,当第二交换机switch2向第三交换机switch3发送ns请求报文时,如果第三交换机switch3回复na响应报文到了第一交换机switch1,那么第一交换机switch1学习这条邻居(na响应报文)的同时,把该条na响应报文通过mlag系统软转给第二交换机switch2;如果第三交换机switch3回复na响应报文到了第二交换机switch2,那么第二交换机switch2学习到这条邻居(na响应报文)的同时也把该条na响应报文通过mlag系统软转给第一交换机switch1。

这样,第一交换机switch1和第二交换机switch2就完成了邻居表同步,对于第三交换机switch3它不在乎上层(mlag系统)的变化,它只管在agg聚合口学到网关邻居表。

虚拟ipv6-nd结合mlag故障时的报文处理流程:

需要说明的是,虚拟ipv6-nd是根据ipv6-nd(邻居发现协议neighbordiscoveryprotocol)协议使用虚拟ip地址回复虚拟mac。

1、对于二层报文,mlag系统进行主备切换,实现冗余。

本领域技术人员可以明确的是,此处的主备切换与传统的冗余技术中的主备切换是不同的。由于本申请实施例中的mlag系统成员(第一交换机与第二交换机)使用相同的虚拟ipv6地址和虚拟mac地址双活工作,因此,此处的主备切换实现的无缝切换或者快速切换,该切换过程对报文的转发或者传输不会产生影响。

2、对于三层报文,当第一交换机switch1或者第二交换机switch2中的一个发生故障时,由第三交换机switch3的agg聚合口进行选路,确定可以正常传输报文的一个交换机。但不管报文从哪个交换机出去,都能找到相同的虚拟ipv6的网关。

在本申请的一个实施例中,当第一交换机switch1出现故障时,传输报文只能从第二交换机switch2转出,而这时候第二交换机switch2有完整的邻居表可以正常转发,无需任何切换。同样的,当第二交换机switch2出现故障时,传输报文只能从第一交换机switch1转出,而这时候第一交换机switch1有完整的邻居表可以正常转发,也无需任何切换。

进一步地,当第一交换机switch1从故障状态恢复正常时,由于这时候第一交换机switch1没有任何邻居表项,只需要第二交换机switch2老化其所有表项,然后重新发出ns请求报文,就可以实现第一交换机switch1和第二交换机switch2的表项同步。同样的,当第二交换机switch2从故障状态恢复正常时,由于这时候第二交换机switch2没有任何邻居表项,只需要第一交换机switch1老化其所有表项,然后重新发出ns请求报文,就可以实现第一交换机switch1和第二交换机switch2的表项同步。

通过上述报文转发流程可知,本申请实施例提出的双活路由冗余方法或者系统,解决了现有的网络冗余方法配置方式不灵活,网络规划难以做出较大改动或改动的配置负担较重问题。减少了配置命令数量,加快了配置速度,减轻了维护人员负担。解决了主备切换造成的较长时间断网问题,结合mlag系统使用快速切换不影响报文转发;并且mlag系统中的各成员使用相同的虚拟ipv6地址和虚拟mac地址双活工作,实现的是无缝切换。同时解决了主备路由之间变化引起的路由更新开销,有效提升处理性能。解决了主备不能同时工作,浪费资源无法增加带宽问题。也解决了不能多设备、多端口同时冗余的问题。

并且,本申请实施例中的第三交换机通过agg聚合口连接到mlag系统中,并在mlag系统故障时,通过agg聚合口的特性进行选路,保证了数据或者报文的完美传输。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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