CN103139067B - 基于vrrp协议扩展虚拟路由器数量的方法、系统和装置 - Google Patents

基于vrrp协议扩展虚拟路由器数量的方法、系统和装置 Download PDF

Info

Publication number
CN103139067B
CN103139067B CN201110385718.3A CN201110385718A CN103139067B CN 103139067 B CN103139067 B CN 103139067B CN 201110385718 A CN201110385718 A CN 201110385718A CN 103139067 B CN103139067 B CN 103139067B
Authority
CN
China
Prior art keywords
virtual router
vrid
notification packet
vrrp
network entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110385718.3A
Other languages
English (en)
Other versions
CN103139067A (zh
Inventor
吴教仁
刘涛
刘宁
张�诚
傅江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201110385718.3A priority Critical patent/CN103139067B/zh
Publication of CN103139067A publication Critical patent/CN103139067A/zh
Application granted granted Critical
Publication of CN103139067B publication Critical patent/CN103139067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于VRRP协议扩展虚拟路由器数量的方法,包括以下步骤:第一网络实体设备中的第一虚拟路由器创建VRRP通告报文;第一虚拟路由器根据VRRP通告报文中的第一虚拟地址生成虚拟路由号VRID,并将VRID添加至VRRP通告报文;第一网络实体设备将VRRP通告报文发送至交换机,交换机向与交换机相连的第二网络实体设备发送VRRP通告报文;第二网络实体设备根据VRRP通告报文中的VRID和VIP地址查找第一虚拟路由器对应的虚拟路由器。本发明还公开了一种基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的系统和装置。本发明可以通过虚拟地址生成虚拟路由号VRID,从而扩展虚拟路由器的数量。

Description

基于VRRP协议扩展虚拟路由器数量的方法、系统和装置
技术领域
本发明涉及通信技术领域,特别涉及一种基于VRRP协议扩展虚拟路由器数量的方法、系统和装置。
背景技术
在基于TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议的网络中,为了保证不直接物理连接的设备之间的通信,需要指定路由。传统常用的指定路由的方法包括通过路由协议(例如:内部路由协议RIP和OSPF)动态学习和静态配置两种方式。虽然静态路由的方法简化了网络管理的复杂度和减轻了终端设备的通信开销,但是仍存在下述缺点:如果作为默认网关的路由器损坏,所有使用该网关为下一跳主机的通信必然要中断。即便配置了多个默认网关,如果不重新启动终端设备,也不能切换到新的网关。
为了克服静态指定网关的上述缺陷,通常采用VRRP协议(Virtual RouterRedundancy Protocol,虚拟路由冗余)进行配置。VRRP协议是一种LAN接入设备备份协议。一个局域网络内的所有主机都设置缺省网关,主机发出的目的地址不在本网段的报文将被通过缺省网关发往三层交换机,从而实现了主机和外部网络的通信。
但是,VRRP协议本身对VRID(virtual router id,虚拟路由器的ID)只定义了8位(bit)空间,而导致虚拟出的路由器只能有256个,从而限制了虚拟路由器的数量。此外,传统的区分不同的虚拟路由器实体的方法是采用加密技术,即通过不同的密钥区分不同的虚拟路由器实体。这种方式虽然可以由VRRP协议本身就支持,但是所需的VRRP报文解密算法需要生成和分配不同的加密密钥,会给处理器造成额外的压力,不便于大规模数据中心的部署。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明的第一个目的在于提供一种基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法,该方法可以扩展VRRP协议的虚拟路由器的数量。本发明的第二个目的在于提供一种基于VRRP协议扩展虚拟路由器数据的系统。本发明的第三个目的在于提供一种网络实体设备。
为实现上述目的,本发明第一方面的实施例提供一种基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法,包括如下步骤:第一网络实体设备中的第一虚拟路由器创建VRRP通告报文;所述第一虚拟路由器根据所述VRRP通告报文中的第一虚拟地址VIP地址生成虚拟路由号VRID,并将所述VRID添加至所述VRRP通告报文;所述第一网络实体设备将所述VRRP通告报文发送至交换机,所述交换机向与所述交换机相连的第二网络实体设备发送所述VRRP通告报文;以及所述第二网络实体设备根据所述VRRP通告报文中的所述VRID和所述VIP地址查找所述第一虚拟路由器对应的虚拟路由器。
根据本发明实施例的基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法,可以通过VRRP通告报文中的全部虚拟地址生成虚拟路由号VRID,利用该虚拟路由号VRID区分不同的虚拟路由器实体,不仅可以扩展虚拟路由器的数量,而且不会给处理器造成额外的压力,便于大规模数据中心的部署。
本发明第二方面的实施例提供了一种基于VRRP协议扩展虚拟路由器数量的系统,包括:第一虚拟路由器,用于创建VRRP通告报文,并根据所述VRRP通告报文中的第一VIP地址生成VRID,并将所述VRID添加至所述VRRP通告报文;第一网络实体设备,用于将所述VRRP通告报文发送至交换机;所述交换机,用于向与交换机相连的第二网络实体设备发送所述VRRP通告报文;以及所述第二网络实体设备,用于根据所述VRRP通告报文中的所述VRID和所述VIP地址查找所述第一虚拟路由器对应的虚拟路由器。
根据本发明实施例的基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的系统,可以通过VRRP通告报文中的全部虚拟地址生成虚拟路由号VRID,利用该虚拟路由号VRID区分不同的虚拟路由器实体,不仅可以扩展虚拟路由器的数量,而且不会给处理器造成额外的压力,便于大规模数据中心的部署。
本发明第三方面的实施例提供了一种网络实体设备,所述网络实体设备具有第一虚拟路由器,所述第一虚拟路由器包括:创建模块,用于创建第一VRRP通告报文;生成模块,用于根据所述第一VRRP通告报文中的第一虚拟地址VIP地址生成第一VRID;添加模块,用于将所述第一VRID添加至所述第一VRRP通告报文;以及发送模块,用于将所述第一VRRP通告报文通过所述网络实体设备发送至交换机。
根据本发明实施例的网络实体设备,可以通过VRRP通告报文中的全部虚拟地址生成虚拟路由号VRID,利用该虚拟路由号VRID区分不同的虚拟路由器实体,不仅可以扩展虚拟路由器的数量,而且不会给处理器造成额外的压力,便于大规模数据中心的部署。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法的流程图;
图2为根据本发明实施例的虚拟路由器实体的哈希桶容器示意图;
图3为根据本发明实施例的基于VRRP协议扩展虚拟路由器数量的系统的结构框图;
图4为根据本发明实施例的第一虚拟路由器的结构框图;
图5为根据本发明实施例的生成模块的结构框图;以及
图6为根据本发明实施例的网络实体设备的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
下面参考图1描述根据本发明实施例的基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法。
如图1所示,本发明实施例提供的基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法,包括如下步骤:
步骤S101,第一网络实体设备中的第一虚拟路由器创建VRRP通告报文。
网络实体设备可以为路由器和服务器,在一个网络实体设备上可以运行由多个虚拟路由器。具体地,网络实体设备将多个虚拟路由器划分为一个备份组。备份组中的一部分为主虚拟路由器(Master路由器),另一部分为备虚拟路由器(Backup路由器)。
在一台路由器的一个接口上可以创建多个备份组,该路由器在每个备份组中的角色可以不同。例如:路由器在一个备份组中可以为主虚拟路由器,在另一个备份组中可以为备虚拟路由器。
主虚拟路由器需要定时发送VRRP通告报文,以通知备份组内的其他路由器自己工作正常。备虚拟路由器则启动定时器等待VRRP通告报文。
在本发明的一个实施例中,第一网络实体设备的第一虚拟路由器为主虚拟路由器。
具体地,第一网络实体设备的第一虚拟路由器构建VRRP通告报文,并将IPv6地址转换为伪IPv4地址加入到VRRP通告报文中。表1示出了VRRP通告报文的格式。
表1
其中,Version:协议版本号;
Type:VRRP报文的类型,该字段取值为1;
Virtual Rtr ID(VRID):虚拟路由器号(即备份组号),取值范围为1-255;
Priority:路由器在备份组中的优先级,取值范围为0-255,数值越大则表明优先级越高;
Count IP Addrs:备份组虚拟IP地址的个数,其中,一个备份组可以对应多个虚拟IP地址;
Auth Type:认证类型,其中,0表示无认证;1表示简单字符认证;2表示MD5认证;
Adver Int:发送通告报文的时间间隔;
Checksum:16位校验和,用于检测VRRP通过报文中的数据破坏情况;
IP Address:本分组虚拟IP地址表项,其中,所包含的地址数定义在CountIP Addrs中;
Authentication Data:验证字,目前只用于简单字符认证,对于其他认证方式,该值为0。
步骤S102,第一虚拟路由器根据VRRP通告报文中的第一虚拟地址VIP地址生成虚拟路由号VRID,并将VRID添加至所述VRRP通告报文。
表1中的IP address 1、IP address 2......IP address n共同组成第一虚拟地址VIP。第一虚拟路由器可以首先对VRRP通告报文中的全部第一VIP地址进行或操作,即ip address_1|ip address_2|...|ip address_n,其中,“|”表示或操作。可以理解的是,对全部第一VIP地址进行的操作不限于或操作,还可以为加操作“+”、与操作“&”和异或操作“~”。上述对全部第一VIP地址的操作仅出于示例的目的,对第一VIP地址的操作还可以为其他运算。
下面以对全部第一VIP地址进行或操作为例对VRID的生成进行说明。
第一虚拟路由器对或操作之后的全部第一VIP地址进行散列(hash)运算,从而生成VRID。
VRID=hash(ip address_1|ip address_2|...|ip address_n)%255+1
其中,散列运算可以为MD5(Message Digest Algorithm MD5,消息摘要算法第五版)、sha1(Secure Hash Algorithm,安全哈希算法)、des(Data EncryptStandard,数据加密标准)或CRC(Class,Responsibility,and Collaboration,循环冗余码校验)。
步骤S103,第一网络实体设备将VRRP通告报文发送至交换机,交换机向与交换机相连的第二网络实体设备发送VRRP通告报文。
在本发明的一个实施例中,交换机向第二网络实体设备发送VRRP通告报文时,统一使用IPv4组播地址:224.0.0.18。
在本发明的另一个实施例中,交换机向第二网络实体设备发送VRRP通告报文时,也可以统一使用IPv6组播地址:FF02:0:0:0:0:0:0:12。
步骤S104,第二网络实体设备根据VRRP通告报文中的VRID和VIP地址查找第一虚拟路由器对应的虚拟路由器。
在第二网络实体设备中设置有虚拟路由器实体容器,用于对应与多个虚拟路由器。如图2所示,在第二网络实体设备中设置有哈希桶,其中,哈希桶中包括键值key和与键值key对应的链表。链表中包括一个或多个虚拟路由器,且键值key与VRID对应。由于VRID对应8bit空间,因此键值key共255个。在一个键值key的下面的链表中可以对应由多个虚拟路由器,vrrp1、vrrp2......vrrpn。如果一个键值下面的链表中对应有多个虚拟路由器,则说明虚拟路由器的VRID之间发生了冲突,需要将第一VIP地址与链表中虚拟路由器对应的第二VIP地址一一进行比对,以查找第一虚拟路由器对应的虚拟路由器。
在查找第一虚拟路由器对应的虚拟路由器之前,可以先将同一个虚拟路由器实体(vrrp instance)中的ip address进行排序,由此可以实现对接收VRRP报文对应的虚拟路由器实体的快速查找。
首先,第二网络实体设备将VRID作为键值key查找哈希桶,根据该VRID值定位到哈希桶中该key至对应的链表。然后,第二网络实体设备依次查找VRID对应的链表中的虚拟路由器,并确定每个虚拟路由器所对应的第二VIP地址。然后将VRRP通告报文中的第一VIP地址与链表中虚拟路由器所对应的第二VIP地址进行比较,以确定虚拟路由器是否是与第一虚拟路由器互为主备的虚拟路由器。
具体地,对第一VIP地址和第二VIP地址的比较包括:
将第一VIP地址与第二VIP地址的个数进行比较。即,将链表中虚拟路由器所对应的第二VIP地址的数量和VRRP通告报文中的Count IP Addrs字段进行比较,以判断第一VIP地址与第二VIP地址的个数是否相等。如果第一VIP地址与第二VIP地址的个数相等,则进一步比较第一VIP地址和第二VIP地址是否一一匹配。由于上述匹配过程是在对IP Address进行排序后进行的,所以在0(1)时间复杂度内可以实现。如果第一VIP地址与第二VIP地址一一匹配,则判断虚拟路由器为与第一虚拟路由器互为主备的虚拟路由器。
在查找到第一虚拟路由器对应的虚拟路由器后,可以由该虚拟路由器进行相应的处理,例如执行VRRP协议定义的主备选举流程。
如果第一VIP地址与第二VIP地址的个数不同或不匹配,则继续比对链表中的下一个虚拟路由器。如果链表下所有的虚拟路由器均对比过,仍未找到匹配的虚拟路由器,则丢弃该VRRP通告报文。
根据本发明实施例的基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法,可以通过VRRP通告报文中的全部虚拟地址生成虚拟路由号VRID,利用该虚拟路由号VRID区分不同的虚拟路由器实体。通过在网络实体设备中设置数据存储结构,将VRID与数据存储结构的键值对应,从而可以扩展虚拟路由器的数量,而且不会给处理器造成额外的压力,便于大规模数据中心的部署。
下面参考图3描述根据本发明实施例的基于VRRP协议扩展虚拟路由器数量的系统300。
如图3所示,本发明实施例提供的基于VRRP协议扩展虚拟路由器数量的系统300包括第一虚拟路由器310、第一网络实体设备320、交换机330和第二网络实体设备340。其中,第一虚拟路由器310用于创建VRRP通告报文,并根据VRRP通告报文中的第一VIP地址生成VRID,并将VRID添加至VRRP通告报文,第一网络实体设备320用于将VRRP通告报文发送至交换机,交换机330用于向与交换机330相连的第二网络实体设备发送VRRP通告报文,第二网络实体设备340用于根据VRRP通过报文中的VRID和VIP地址查找第一虚拟路由器310对应的虚拟路由器。
网络实体设备可以为路由器和服务器,在一个网络实体设备上可以运行由多个虚拟路由器。具体地,网络实体设备将多个虚拟路由器划分为一个备份组。备份组中的一部分为主虚拟路由器(Master路由器),另一部分为备虚拟路由器(Backup路由器)。
在一台路由器的一个接口上可以创建多个备份组,该路由器在每个备份组中的角色可以不同。例如:路由器在一个备份组中可以为主虚拟路由器,在另一个备份组中可以为备虚拟路由器。
主虚拟路由器需要定时发送VRRP通告报文,以通知备份组内的其他路由器自己工作正常。备虚拟路由器则启动定时器等待VRRP通告报文。
在本发明的一个实施例中,第一网络实体设备320的第一虚拟路由器310为主虚拟路由器。
具体地,第一网络实体设备320的第一虚拟路由器310构建VRRP通告报文,并将IPv6地址转换为伪IPv4地址加入到VRRP通告报文中。
VRRP通告报文中的IP address 1、IP address 2......IP address n共同组成第一虚拟地址VIP。第一虚拟路由器310可以首先对VRRP通告报文中的全部第一VIP地址进行或操作,即ip address_1|ip address_2|...|ip address_n,其中,“|”表示或操作。可以理解的是,对全部第一VIP地址进行的操作不限于或操作,还可以为加操作“+”、与操作“&”和异或操作“~”。上述对全部第一VIP地址的操作仅出于示例的目的,对第一VIP地址的操作还可以为其他运算。
下面以对全部第一VIP地址进行或操作为例对VRID的生成进行说明。
第一虚拟路由器310对或操作之后的全部第一VIP地址进行散列(hash)运算,从而生成VRID。
VRID=hash(ip address_1|ip address_2|...|ip address_n)%255+1
其中,散列运算可以为MD5(Message Digest Algorithm MD5,消息摘要算法第五版)、sha1(Secure Hash Algorithm,安全哈希算法)、des(Data EncryptStandard,数据加密标准)或CRC(Class,Responsibility,and Collaboration,循环冗余码校验)。
第一网络实体设备320将VRRP通告报文发送至交换机330,交换机330进而向与交换机330相连的第二网络实体设备340发送VRRP通告报文。
在本发明的一个实施例中,交换机330向第二网络实体设备340发送VRRP通告报文时,统一使用IPv4组播地址:224.0.0.18。
在本发明的另一个实施例中,交换机330向第二网络实体设备340发送VRRP通告报文时,也可以统一使用IPv6组播地址:FF02:0:0:0:0:0:0:12。
在第二网络实体设备340中设置有虚拟路由器实体容器,用于对应与多个虚拟路由器。在本发明的一个实施例中,在第二网络实体设备340中设置有哈希桶,其中,哈希桶中包括键值key和与键值key对应的链表。链表中包括一个或多个虚拟路由器,且键值key与VRID对应。
如果一个键值下面的链表中对应有多个虚拟路由器,则说明虚拟路由器的VRID之间发生了冲突,需要第二网络实体设备340将第一VIP地址与链表中虚拟路由器对应的第二VIP地址一一进行比对,以查找第一虚拟路由器对应的虚拟路由器。
在查找第一虚拟路由器对应的虚拟路由器之前,第二网络实体设备340可以先将同一个虚拟路由器实体(vrrp instance)中的ip address进行排序,由此可以实现对接收VRRP报文对应的虚拟路由器实体的快速查找。
首先,第二网络实体设备340将VRID作为键值key查找哈希桶,根据该VRID值定位到哈希桶中该key至对应的链表。然后,第二网络实体设备340依次查找VRID对应的链表中的虚拟路由器,并确定每个虚拟路由器所对应的第二VIP地址。然后将VRRP通告报文中的第一VIP地址与链表中虚拟路由器所对应的第二VIP地址进行比较,以确定虚拟路由器是否是与第一虚拟路由器互为主备的虚拟路由器。
具体地,第二网络实体设备340对第一VIP地址和第二VIP地址的比较包括:
第二网络实体设备340将第一VIP地址与第二VIP地址的个数进行比较。即,将链表中虚拟路由器所对应的第二VIP地址的数量和VRRP通告报文中的Count IP Addrs字段进行比较,以判断第一VIP地址与第二VIP地址的个数是否相等。如果第一VIP地址与第二VIP地址的个数相等,则第二网络实体设备340进一步比较第一VIP地址和第二VIP地址是否一一匹配。由于上述匹配过程是在对IP Address进行排序后进行的,所以在0(1)时间复杂度内可以实现。如果第一VIP地址与第二VIP地址一一匹配,则第二网络实体设备340判断虚拟路由器为与第一虚拟路由器310互为主备的虚拟路由器。
在查找到第一虚拟路由器对应的虚拟路由器后,可以由该虚拟路由器进行相应的处理,例如执行VRRP协议定义的主备选举流程。
如果第一VIP地址与第二VIP地址的个数不同或不匹配,则第二网络实体设备340继续比对链表中的下一个虚拟路由器。如果链表下所有的虚拟路由器均对比过,仍未找到匹配的虚拟路由器,则丢弃该VRRP通告报文。
根据本发明实施例的基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的系统,可以通过VRRP通告报文中的全部虚拟地址生成虚拟路由号VRID,利用该虚拟路由号VRID区分不同的虚拟路由器实体。通过在网络实体设备中设置数据存储结构,将VRID与数据存储结构的键值对应,从而可以扩展虚拟路由器的数量,而且不会给处理器造成额外的压力,便于大规模数据中心的部署。
下面参考图4描述根据本发明实施例的网络实体设备。
如图4所示,本发明实施例提供的网络实体设备具有第一虚拟路由器,其中,第一虚拟路由器包括创建模块311、生成模块312、添加模块313和发送模块314。其中,创建模块311用于创建第一VRRP通告报文,生成模块312用于根据第一VRRP通告报文中的第一虚拟地址VIP地址生成第一VRID,添加模块313用于将第一VRID添加至第一VRRP通告报文,发送模块314用于将第一VRRP通告报文通过所述网络实体设备发送至交换机。
具体地,创建模块311构建VRRP通告报文,并将IPv6地址转换为伪IPv4地址加入到VRRP通告报文中。
生成模块312根据VRRP通告报文中的第一虚拟地址VIP地址生成虚拟路由号VRID,并由添加模块313将VRID添加至VRRP通告报文。
如图5所示,生成模块312进一步包括或操作子模块3121和散列运算子模块3122。具体地,VRRP通告报文中的IP address 1、IP address 2......IP addressn共同组成第一虚拟地址VIP。或操作子模块3121可以首先对VRRP通告报文中的全部第一VIP地址进行或操作,即ip address_1|ip address_2|...|ipaddress n,其中,“|”表示或操作。可以理解的是,对全部第一VIP地址进行的操作不限于或操作,还可以为加操作“+”、与操作“&”和异或操作“~”。上述对全部第一VIP地址的操作仅出于示例的目的,对第一VIP地址的操作还可以为其他运算。
下面以对全部第一VIP地址进行或操作为例对VRID的生成进行说明。
散列运算子模块3122对或操作之后的全部第一VIP地址进行散列(hash)运算,从而生成VRID,然后由添加模块313将VRID添加至VRRP通告报文中。
VRID=hash(ip address_1|ip address_2|...|ip address_n)%255+1
其中,散列运算可以为MD5(Message Digest Algorithm MD5,消息摘要算法第五版)、sha1(Secure Hash Algorithm,安全哈希算法)、des(Data EncryptStandard,数据加密标准)或CRC(Class,Responsibility,and Collaboration,循环冗余码校验)。
发送模块314将VRRP通告报文发送至交换机,交换机向与交换机相连的第二网络实体设备发送VRRP通告报文。
在本发明的一个实施例中,交换机向第二网络实体设备发送VRRP通告报文时,统一使用IPv4组播地址:224.0.0.18。
在本发明的另一个实施例中,交换机向第二网络实体设备发送VRRP通告报文时,也可以统一使用IPv6组播地址:FF02:0:0:0:0:0:0:12。
如图6所示,本发明实施例提供的网络实体设备包括保存模块610、接收模块620、查表模块630、比较模块640和判断模块650,其中,保存模块610用于存储哈希桶,其中哈希桶中包括键值key和与键值key对应的链表。链表中包括一个或多个虚拟路由器,且键值与VRID对应。接收模块620用于从交换机接收第二VRRP通告报文,查表模块630用于将第二VRRP通告报文中的第二VRID作为键值查找哈希桶以确定第二VRID对应的链表,比较模块640用于将第二VRRP通告报文中的第一VIP地址与链表中虚拟路由器所对应的第二VIP地址进行比较,判断模块650用于根据比较模块640的比较结果判断虚拟路由器是否是与第一虚拟路由器互为主备的虚拟路由器。
如果一个键值下面的链表中对应有多个虚拟路由器,则说明虚拟路由器的VRID之间发生了冲突,需要比较模块640将第一VIP地址与链表中虚拟路由器对应的第二VIP地址一一进行比对,从而判断模块650可以根据比对结果查找第一虚拟路由器对应的虚拟路由器。
在本发明的一个实施例中,网络实体设备还包括排序模块660,用于将链表中每个虚拟路由器对应的第二VIP地址进行排序。具体地,在查找第一虚拟路由器对应的虚拟路由器之前,排序模块660可以先将同一个虚拟路由器实体(vrrp instance)中的ip address进行排序,由此可以实现对接收VRRP报文对应的虚拟路由器实体的快速查找。
查表模块630将VRID作为键值key查找保存模块610中的哈希桶,根据该VRID值定位到哈希桶中该key至对应的链表。然后,查表模块630依次查找VRID对应的链表中的虚拟路由器,并确定每个虚拟路由器所对应的第二VIP地址。比较模块640将VRRP通告报文中的第一VIP地址与链表中虚拟路由器所对应的第二VIP地址进行比较,以确定虚拟路由器是否是与第一虚拟路由器互为主备的虚拟路由器。
具体地,比较模块640对第一VIP地址和第二VIP地址的比较包括将第一VIP地址与第二VIP地址的个数进行比较。即,比较模块640将链表中虚拟路由器所对应的第二VIP地址的数量和VRRP通告报文中的Count IP Addrs字段进行比较,以判断第一VIP地址与第二VIP地址的个数是否相等。如果第一VIP地址与第二VIP地址的个数相等,则比较模块640进一步比较第一VIP地址和第二VIP地址是否一一匹配。由于上述匹配过程是在对IP Address进行排序后进行的,所以在0(1)时间复杂度内可以实现。如果第一VIP地址与第二VIP地址一一匹配,则判断模块650判断虚拟路由器为与第一虚拟路由器互为主备的虚拟路由器。
在查找到第一虚拟路由器对应的虚拟路由器后,可以由该虚拟路由器进行相应的处理,例如执行VRRP协议定义的主备选举流程。
如果第一VIP地址与第二VIP地址的个数不同或不匹配,则比较模块640继续比对链表中的下一个虚拟路由器。如果链表下所有的虚拟路由器均对比过,仍未找到匹配的虚拟路由器,则丢弃该VRRP通告报文。
根据本发明实施例的网络实体设备,可以通过VRRP通告报文中的全部虚拟地址生成虚拟路由号VRID,利用该虚拟路由号VRID区分不同的虚拟路由器实体。通过在网络实体设备中设置数据存储结构,将VRID与数据存储结构的键值对应,从而可以扩展虚拟路由器的数量,而且不会给处理器造成额外的压力,便于大规模数据中心的部署。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (16)

1.一种基于虚拟路由器冗余VRRP协议扩展虚拟路由器数量的方法,其特征在于,包括以下步骤:
第一网络实体设备中的第一虚拟路由器创建VRRP通告报文;
所述第一虚拟路由器根据所述VRRP通告报文中的第一虚拟地址VIP地址生成虚拟路由号VRID,并将所述VRID添加至所述VRRP通告报文;
所述第一网络实体设备将所述VRRP通告报文发送至交换机,所述交换机向与所述交换机相连的第二网络实体设备发送所述VRRP通告报文;以及
所述第二网络实体设备根据所述VRRP通告报文中的所述VRID和所述VIP地址查找所述第一虚拟路由器对应的虚拟路由器。
2.如权利要求1所述的基于VRRP协议扩展虚拟路由器数量的方法,其特征在于,所述第一虚拟路由器根据所述第一VIP地址生成VRID进一步包括:
所述第一虚拟路由器对所述VRRP通告报文中的全部第一VIP地址进行或操作;
所述第一虚拟路由器对或操作之后的所述全部第一VIP地址进行散列运算以生成所述VRID。
3.如权利要求2所述的基于VRRP协议扩展虚拟路由器数量的方法,其特征在于,所述第二网络实体设备中设置有哈希桶,其中,所述哈希桶中包括键值和与所述键值对应的链表,其中,所述链表中包括一个或多个虚拟路由器,且所述键值与所述VRID对应。
4.如权利要求3所述的基于VRRP协议扩展虚拟路由器数量的方法,其特征在于,所述第二网络实体设备根据所述VRID和所述第一VIP地址查找所述第一虚拟路由器对应的虚拟路由器进一步包括:
所述第二网络实体设备将所述VRID作为键值查找所述哈希桶,以确定所述VRID对应的链表;
所述第二网络实体设备依次查找所述VRID对应的链表中的虚拟路由器,并确定每个虚拟路由器所对应的第二VIP地址;
将所述VRRP通告报文中的第一VIP地址与所述链表中虚拟路由器所对应的第二VIP地址进行比较,以确定所述虚拟路由器是否是与所述第一虚拟路由器互为主备的虚拟路由器。
5.如权利要求4所述的基于VRRP协议扩展虚拟路由器数量的方法,其特征在于,将所述VRRP通告报文中的第一VIP地址与所述链表中虚拟路由器所对应的第二VIP地址进行比较进一步包括:
将所述第一VIP地址与所述第二VIP地址的个数进行比较;
如果个数相同,则进一步比较所述第一VIP地址与所述第二VIP地址是否一一匹配;
如果所述第一VIP地址与所述第二VIP地址一一匹配,则判断所述虚拟路由器为与所述第一虚拟路由器互为主备的虚拟路由器。
6.如权利要求3-5任一项所述的基于VRRP协议扩展虚拟路由器数量的方法,其特征在于,还包括:
所述第二网络实体设备将所述链表中每个虚拟路由器对应的第二VIP地址进行排序。
7.一种基于VRRP协议扩展虚拟路由器数量的系统,其特征在于,包括:
第一虚拟路由器,用于创建VRRP通告报文,并根据所述VRRP通告报文中的第一虚拟地址VIP地址生成VRID,并将所述VRID添加至所述VRRP通告报文;
第一网络实体设备,用于将所述VRRP通告报文发送至交换机;
所述交换机,用于向与交换机相连的第二网络实体设备发送所述VRRP通告报文;以及
所述第二网络实体设备,用于根据所述VRRP通告报文中的所述VRID和所述VIP地址查找所述第一虚拟路由器对应的虚拟路由器。
8.如权利要求7所述的基于VRRP协议扩展虚拟路由器数量的系统,其特征在于,所述第一虚拟路由器对所述VRRP通告报文中的全部第一VIP地址进行或操作,并对或操作之后的所述全部第一VIP地址进行散列运算以生成所述VRID。
9.如权利要求8所述的基于VRRP协议扩展虚拟路由器数量的系统,其特征在于,其中,所述第二网络实体设备中设置有哈希桶,其中,所述哈希桶中包括键值和与所述键值对应的链表,且所述链表中包括一个或多个虚拟路由器,且所述键值与所述VRID对应。
10.如权利要求9所述的基于VRRP协议扩展虚拟路由器数量的系统,其特征在于,所述第二网络实体设备将所述VRID作为键值查找所述哈希桶,以确定所述VRID对应的链表,并依次查找所述VRID对应的链表中的虚拟路由器,及确定每个虚拟路由器所对应的第二VIP地址,以及将所述VRRP通告报文中的第一VIP地址与所述链表中虚拟路由器所对应的第二VIP地址进行比较,以确定所述虚拟路由器是否是与所述第一虚拟路由器互为主备的虚拟路由器。
11.如权利要求10所述的基于VRRP协议扩展虚拟路由器数量的系统,其特征在于,当所述第一VIP地址与所述第二VIP地址的个数相同,且所述第一VIP地址与所述第二VIP地址一一匹配时,所述第二网络实体设备判断所述虚拟路由器为与所述第一虚拟路由器互为主备的虚拟路由器。
12.一种网络实体设备,其特征在于,所述网络实体设备具有第一虚拟路由器,所述第一虚拟路由器包括:
创建模块,用于创建第一VRRP通告报文;
生成模块,用于根据所述第一VRRP通告报文中的第一虚拟地址VIP地址生成第一VRID;
添加模块,用于将所述第一VRID添加至所述第一VRRP通告报文;以及
发送模块,用于将所述第一VRRP通告报文通过所述网络实体设备发送至交换机。
13.如权利要求12所述的网络实体设备,其特征在于,所述生成模块进一步包括:
或操作子模块,用于对所述第一VRRP通告报文中的全部第一VIP地址进行或操作;以及
散列运算子模块,用于对或操作之后的所述全部第一VIP地址进行散列运算以生成所述第一VRID。
14.如权利要求13所述的网络实体设备,其特征在于,所述网络实体设备包括:
保存模块,用于存储哈希桶,其中,所述哈希桶中包括键值和与所述键值对应的链表,其中,所述链表中包括一个或多个虚拟路由器,且所述键值与所述VRID对应;
接收模块,用于从所述交换机接收第二VRRP通告报文;
查表模块,用于将所述第二VRRP通告报文中的第二VRID作为键值查找所述哈希桶,以确定所述第二VRID对应的链表;
比较模块,用于将所述第二VRRP通告报文中的第一VIP地址与所述链表中虚拟路由器所对应的第二VIP地址进行比较;以及
判断模块,用于根据所述比较模块的比较结果判断所述虚拟路由器是否是与所述第一虚拟路由器互为主备的虚拟路由器。
15.如权利要求14所述的网络实体设备,其特征在于,当所述第一VIP地址与所述第二VIP地址的个数相同,且所述第一VIP地址与所述第二VIP地址一一匹配时,所述判断模块判断所述虚拟路由器为与所述第一虚拟路由器互为主备的虚拟路由器。
16.如权利要求14所述的网络实体设备,其特征在于,所述网络实体设备还包括:
排序模块,用于将所述链表中每个虚拟路由器对应的第二VIP地址进行排序。
CN201110385718.3A 2011-11-28 2011-11-28 基于vrrp协议扩展虚拟路由器数量的方法、系统和装置 Active CN103139067B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110385718.3A CN103139067B (zh) 2011-11-28 2011-11-28 基于vrrp协议扩展虚拟路由器数量的方法、系统和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110385718.3A CN103139067B (zh) 2011-11-28 2011-11-28 基于vrrp协议扩展虚拟路由器数量的方法、系统和装置

Publications (2)

Publication Number Publication Date
CN103139067A CN103139067A (zh) 2013-06-05
CN103139067B true CN103139067B (zh) 2015-08-05

Family

ID=48498397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110385718.3A Active CN103139067B (zh) 2011-11-28 2011-11-28 基于vrrp协议扩展虚拟路由器数量的方法、系统和装置

Country Status (1)

Country Link
CN (1) CN103139067B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CZ306142B6 (cs) * 2013-08-26 2016-08-17 Microrisc S. R. O. Způsob potvrzování zpráv a/nebo sběru dat komunikačních zařízení s paketovým přenosem zpráv v bezdrátových mesh sítích a způsob zpřístupnění tohoto potvrzování a sběru dat pro vytvoření generické platformy
CN110213778B (zh) * 2018-02-28 2021-11-05 中兴通讯股份有限公司 一种网元主备智能配对的方法及装置
CN111064662B (zh) * 2020-01-02 2021-05-25 重庆紫光华山智安科技有限公司 虚拟路由冗余协议配置方法及相关装置
CN112437007A (zh) * 2020-11-20 2021-03-02 深圳前海微众银行股份有限公司 报文认证方法、装置、设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101352003A (zh) * 2005-12-30 2009-01-21 极进网络股份有限公司 提供虚拟路由器功能的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7929420B2 (en) * 2006-02-02 2011-04-19 Avaya, Inc. Method and apparatus for learning VRRP backup routers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101352003A (zh) * 2005-12-30 2009-01-21 极进网络股份有限公司 提供虚拟路由器功能的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
S.Knight,et al..Virtual Router Redundancy Protocol.《Network Working Group Request for Comments:2338》.1998,全文. *
左延智,牛晓华.VRRP及其在专网中的应用.《无线电工程》.2008,第38卷(第2期),第13-15页. *

Also Published As

Publication number Publication date
CN103139067A (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
US11151163B2 (en) Scalable spine nodes with partial replication of routing information in a network environment
US10764119B2 (en) Link handover method for service in storage system, and storage device
CN108173691B (zh) 一种跨设备聚合的方法及装置
US9294390B2 (en) Hash table storage and search methods and devices
CN106559246B (zh) 集群的实现方法和服务器
EP3451592B1 (en) Packet transmission between vxlan domains
CN109639579B (zh) 组播报文的处理方法及装置、存储介质、处理器
US20160112297A1 (en) Auto Management of a Virtual Device Context Enabled Network Infrastructure
CN103139067B (zh) 基于vrrp协议扩展虚拟路由器数量的方法、系统和装置
CN110944068B (zh) 从重复网络地址自动恢复的方法、网络设备及其存储介质
CN101588304A (zh) 一种vrrp的实现方法和设备
CN108199962B (zh) 地址迁移方法、装置、网络设备及可读存储介质
CN106878184A (zh) 一种数据报文传输方法和装置
CN105634832B (zh) 一种服务器的备份方法和装置
US20180278577A1 (en) High availability bridging between layer 2 networks
CN103139077B (zh) 扩展IPv6虚拟路由器的方法、系统及装置
CN103441932A (zh) 一种主机路由表项生成方法及设备
US20190349293A1 (en) Managing Data Frames in Switched Networks
CN108540386B (zh) 一种防止业务流中断方法及装置
CN115333991B (zh) 跨设备链路聚合方法、装置、系统及计算机可读存储介质
US8811158B1 (en) Fast reroute for common network routes
CN103229480A (zh) 分布式存储系统中的数据处理方法及设备、客户端
CN104780201A (zh) 一种ipvs集群中的数据包处理方法及装置
CN101510837A (zh) 以太网桥设备、迁移聚合口地址的方法及装置
CN101420327B (zh) 平滑重启过程中避免路由振荡的方法及平滑重启设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant