发明内容
本发明的目的在于提供一种二层网络内VRRPE报文处理方法和设备,以节省网络资源,并提高***的稳定性。为此,本发明采用如下技术方案:
一种二层网络内VRRPE报文处理方法,应用于包括二层交换设备和VRRPE备份组的VRRPE组网,所述VRRPE备份组通过二层交换设备实现互联,该方法包括:
所述二层交换设备接收VRRPE报文,并根据该VRRPE报文维护VRRP Snooping表项;所述VRRP Snooping表项中记录有VRRP备份组标识、VRRPE报文的通告时间、源媒体访问控制MAC地址以及入接口;
所述二层交换设备根据所述VRRPE报文中携带的VRRPE备份组标识查询所述VRRP Snooping表项,当所述VRRP Snooping表项中记录有VRRPE备份组标识与所述VRRPE报文中携带的VRRPE备份组标识相同,但源MAC地址与所述VRRPE报文中携带的源MAC地址,以及入接口与接收到所述VRRPE报文的入接口不同的表项时,所述二层交换设备将所述VRRPE报文的目的MAC地址替换为该表项中记录的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE报文进行二层单播转发;否则,二层交换设备终止所述VRRPE报文的二层转发。
其中,所述二层交换设备根据所述VRRPE报文维护VRRP Snooping表项,具体为:
所述二层交换设备根据所述VRRPE报文中携带的VRRPE备份组标识查询所述VRRP Snooping表项;
当所述VRRP Snooping表项中未记录所述VRRPE报文中携带的VRRPE备份组标识对应的表项时,所述二层交换设备建立该VRRPE备份组标识对应的表项,并将所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该表项中;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,但所述VRRPE报文中携带的VRRPE备份组标识对应的表项中不存在源MAC地址与所述VRRPE报文中携带的源MAC地址,以及入接口与接收到所述VRRPE报文的入接口均相同的表项时,所述二层交换设备增加一条对应所述VRRPE报文中携带的VRRPE备份组标识的表项,并将所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该新增的表项中;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在入接口与接收到所述VRRPE报文的入接口相同,但源MAC地址与所述VRRPE报文中携带的源MAC地址不同的表项时,所述二层交换设备将表项中的VRRPE报文的通告时间、源MAC地址以及入接口分别替换为所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到所述VRRPE报文的入接口;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与所述VRRPE报文中携带的源MAC地址、以及入接口与接收到所述VRRPE报文的入接口均相同,但VRRPE报文的通告时间与所述VRRPE报文中携带的VRRPE报文的通告时间不相同的表项时,所述二层交换设备将该表项中的通告时间替换为所述VRRPE报文中携带的VRRPE报文的通告时间。
其中,所述二层交换设备中设置有VRRP Snooping表项老化定时器;
当所述二层交换设备在老化定时器超时前,从该老化定时器对应的表项中的入接口接收到VRRPE备份组标识、VRRPE报文的通告时间与该表项中的VRRPE备份组标识、VRRPE报文的通告时间分别相同的VRRPE报文时,所述二层交换设备更新该老化定时器;
当所述二层交换设备在老化定时器超时前,从该老化定时器对应的表项中记录的入接口接收到VRRPE备份组标识与该表项中记录的VRRPE备份组相同,但VRRPE报文的通告时间与该表项中记录的VRRPE报文的通告时间不同的VRRPE报文时,所述二层交换设备根据该VRRPE报文中携带的VRRPE报文的通告时间重置该老化定时器;
当所述二层交换设备在老化定时器超时前,未从该老化定时器对应的表项中记录的入接口接收到VRRP备份组相同的VRRPE报文时,所述二层交换设备删除该表项。
其中,该方法还包括:
当所述二层交换设备接收到虚拟转发器VF优先级为0的VRRPE通告报文时,所述二层交换设备根据该VRRPE通告报文中携带VRRPE备份组标识以及接收到该VRRPE通告报文的入接口查询并删除所述VRRP Snooping表项中的相应表项;
当所述VRRP Snooping表项中存在VRRPE备份组标识与该VF优先级为0的VRRPE通告报文的VRRPE备份组标识相同,源MAC地址与该VRRPE通告报文的源MAC地址、以及入接口与接收到该VRRPE通告报文的入接口不同的表项时,所述二层交换设备将该VRRPE通告报文的目的MAC地址替换为该表项中的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE通告报文进行二层单播转发。
其中,所述二层交换设备中维护的VRRP Snooping表项中还记录有虚MAC地址和虚互联网协议IP地址;
该方法还包括:
当所述二层交换设备接收到客户端发送的目的IP地址与VRRP Snooping表项中的虚IP地址匹配的地址解析协议ARP请求报文时,所述二层交换设备终止该ARP请求报文,并根据该目的IP地址对应的VRRP Snooping表项确定与该目的IP地址对应的虚MAC地址;
当所述与该目的IP地址对应的虚MAC地址为一个时,所述二层交换设备将所述目的IP地址与该虚MAC地址的对应关系携带在ARP应答报文中返回给所述客户端;
当所述与该目的IP地址对应的虚MAC地址为多个时,所述二层交换设备从所述多个虚MAC地址中选择一个,并将所述目的IP地址与所选择的虚MAC地址的对应关系携带在ARP应答报文中返回给所述客户端。
其中,所述二层交换设备根据所述VRRPE报文维护VRRP Snooping表项,还包括:
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与所述VRRPE报文中携带的源MAC地址、VRRP报文的通告时间与所述VRRPE报文中携带的VRRPE报文的通告时间、以及入接口与接收到所述VRRPE报文的入接口均相同,但虚MAC地址与所述VRRPE报文中携带的虚MAC地址不相同的表项时,所述二层交换设备将所述VRRPE报文中携带的虚MAC地址记录到该表项中。
一种二层交换设备,应用于包括VRRPE备份组 VRRPE组网,所述VRRPE备份组通过二层交换设备实现互联,该二层交换设备包括:
接收模块,用于接收VRRPE报文;
维护模块,用于根据该VRRPE报文维护VRRP Snooping表项;所述VRRP Snooping表项中记录有VRRP备份组标识、VRRPE报文的通告时间、源媒体访问控制MAC地址以及入接口;
发送模块,用于当所述VRRP Snooping表项中记录有VRRPE备份组标识与所述VRRPE报文中携带的VRRPE备份组标识相同,但源MAC地址与所述VRRPE报文中携带的源MAC地址,以及入接口与接收到所述VRRPE报文的入接口不同的表项时,将所述VRRPE报文的目的MAC地址替换为该表项中记录的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE报文进行二层单播转发;否则,终止所述VRRPE报文的二层转发。
其中,所述维护模块具体用于通过以下方式实现根据所述VRRPE报文维护VRRP Snooping表项:
根据所述VRRPE报文中携带的VRRPE备份组标识查询所述VRRP Snooping表项;
当所述VRRP Snooping表项中未记录所述VRRPE报文中携带的VRRPE备份组标识对应的表项时,建立该VRRPE备份组标识对应的表项,并将所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该表项中;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,但所述VRRPE报文中携带的VRRPE备份组标识对应的表项中不存在源MAC地址与所述VRRPE报文中携带的源MAC地址,以及入接口与接收到所述VRRPE报文的入接口均相同的表项时,增加一条对应所述VRRPE报文中携带的VRRPE备份组标识的表项,并将所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该新增的表项中;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在入接口与接收到所述VRRPE报文的入接口相同,但源MAC地址与所述VRRPE报文中携带的源MAC地址不同的表项时,将表项中的VRRPE报文的通告时间、源MAC地址以及入接口分别替换为所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到所述VRRPE报文的入接口;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与所述VRRPE报文中携带的源MAC地址、以及入接口与接收到所述VRRPE报文的入接口均相同,但VRRPE报文的通告时间与所述VRRPE报文中携带的VRRPE报文的通告时间不相同的表项时,将该表项中的通告时间替换为所述VRRPE报文中携带的VRRPE报文的通告时间。
其中,所述二层交换设备中设置有VRRP Snooping表项老化定时器;
所述维护模块还用于,当所述二层交换设备在老化定时器超时前,从该老化定时器对应的表项中的入接口接收到VRRPE备份组标识、VRRPE报文的通告时间与该表项中的VRRPE备份组标识、VRRPE报文的通告时间分别相同的VRRPE报文时,所述二层交换设备更新该老化定时器;当所述二层交换设备在老化定时器超时前,从该老化定时器对应的表项中记录的入接口接收到VRRPE备份组标识与该表项中记录的VRRPE备份组相同,但VRRPE报文的通告时间与该表项中记录的VRRPE报文的通告时间不同的VRRPE报文时,所述二层交换设备根据该VRRPE报文中携带的VRRPE报文的通告时间重置该老化定时器;当所述二层交换设备在老化定时器超时前,未从该老化定时器对应的表项中记录的入接口接收到VRRP备份组相同的VRRPE报文时,所述二层交换设备删除该表项。
其中,所述维护模块还用于,当所述接收模块接收到虚拟转发器VF优先级为0的VRRPE通告报文时,根据该VRRPE通告报文中携带VRRPE备份组标识以及接收到该VRRPE通告报文的入接口查询并删除所述VRRP Snooping表项中的相应表项;
所述发送模块还用于,当所述VRRP Snooping表项中存在VRRPE备份组标识与该VF优先级为0的VRRPE通告报文的VRRPE备份组标识相同,源MAC地址与该VRRPE通告报文的源MAC地址、以及入接口与接收到该VRRPE通告报文的入接口不同的表项时,将该VRRPE通告报文的目的MAC地址替换为该表项中的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE通告报文进行二层单播转发。
其中,所述二层交换设备维护的VRRP Snooping表项中还记录有虚MAC地址和虚互联网协议IP地址;
所述二层交换设备还包括:
地址解析协议ARP应答模块,用于当所述接收模块接收到客户端发送的目的IP地址与VRRP Snooping表项中的虚IP地址匹配的地址解析协议ARP请求报文时,终止该ARP请求报文,并根据该目的IP地址对应的VRRP Snooping表项确定与该目的IP地址对应的虚MAC地址;当所述与该目的IP地址对应的虚MAC地址为一个时,将所述目的IP地址与该虚MAC地址的对应关系携带在ARP应答报文中返回给所述客户端;当所述与该目的IP地址对应的虚MAC地址为多个时,从所述多个虚MAC地址中选择一个,并将所述目的IP地址与所选择的虚MAC地址的对应关系携带在ARP应答报文中返回给所述客户端。
其中,所述维护模块还用于,当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与所述VRRPE报文中携带的源MAC地址、VRRP报文的通告时间与所述VRRPE报文中携带的VRRPE报文的通告时间、以及入接口与接收到所述VRRPE报文的入接口均相同,但虚MAC地址与所述VRRPE报文中携带的虚MAC地址不相同的表项时,将所述VRRPE报文中携带的虚MAC地址记录到该表项中。
在本发明上述实施例中,二层交换设备接收到VRRPE报文后,根据该报文中携带的VRRPE备份组标识、源MAC地址以及接收到该VRRPE报文的入接口判断发送该VRRPE报文的VRRPE备份组中是否还存在其它路由设备,并当判断为是时,将该VRRPE报文的目的MAC地址替换为对应的单播MAC地址,并进行二层单播转发,防止了报文的广播发送;当判断结果为否时,终止该VRRPE报文的转发,有效地减少了二层网络内VRRPE报文的泛洪,节省了网络资源,提高了***稳定性。
具体实施方式
针对现有技术中存在的上述问题,本发明实施例提供了一种二层网络内VRRPE报文处理的技术方案,应用于包括二层交换设备和VRRPE备份组的VRRPE组网。在该技术方案中,VRRPE备份组通过二层交换设备实现互联,当二层交换设备接收到VRRPE备份组中的路由器发送的VRRPE报文时,根据该VRRPE报文维护VRRPE表项;该二层交换设备根据接收到的VRRPE报文中携带的VRRPE备份组标识查询VRRP Snooping表项,并当VRRP Snooping表项中记录有VRRPE备份组标识与该VRRPE报文中携带的VRRPE备份组标识相同,但源MAC地址与该VRRPE报文中携带的源MAC地址,以及入接口与接收到该VRRPE报文的入接口不同的表项时,二层交换设备将接收到的VRRPE报文的目的MAC地址替换为该表项中记录的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE报文进行二层单播转发;否则,二层交换设备终止该VRRPE报文的转发。其中,二层交换设备维护的VRRPE表项中记录有VRRP备份组标识、VRRPE报文的通告时间、源MAC地址、虚MAC地址以及入接口,其格式可以如表1所示:
表1
其中,VRRP VRID、通告时间和源MAC分别为二层交换设备接收到的VRRPE报文中携带的VRRPE备份组标识、通告时间和源MAC地址,入接口为二层交换设备接收到该VRRPE报文的入接口。
在本发明实施例中,二层交换设备接收到VRRPE报文后,根据该报文中携带的VRRPE备份组标识、源MAC地址以及接收到该VRRPE报文的入接口判断发送该VRRPE报文的VRRPE备份组中是否还存在其它路由设备,并当判断为是时,将该VRRPE报文的目的MAC地址替换为对应的单播MAC地址,并进行二层单播转发,防止了报文的广播发送;当判断结果为否时,终止该VRRPE报文的转发(即不对该VRRPE报文进行转发),有效地减少了二层网络内VRRPE报文的泛洪,节省了网络资源,提高了***稳定性。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整的描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。
如图3所示,为本发明实施例提供的一种二层网络内VRRPE报文处理方法的流程示意图,可以包括以下步骤:
步骤301、二层交换设备接收VRRPE报文,并根据该VRRPE报文维护VRRP Snooping表项。
具体的,当二层交换设备接收到报文时,可以根据该报文的报文特征判断该报文是否为VRRPE报文。例如,若二层交换设备接收到的报文的协议号为112,版本号为8或9,则二层交换设备确定该报文为VRRPE报文。
在本发明实施例中,二层交换设备接收到VRRPE报文时,可以根据该VRRPE报文维护VRRP Snooping表项。
其中,在本发明实施例中,二层交换设备根据VRRPE报文维护VRRP Snooping表项可以具体通过以下方式实现:
二层交换设备根据接收到的VRRPE报文中携带的VRRPE备份组标识查询VRRP Snooping表项;
当VRRP Snooping表项中未记录该VRRPE报文中携带的VRRPE备份组标识对应的表项时,二层交换设备建立该VRRPE备份组标识对应的表项,并将该VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该表项中;
当VRRP Snooping表项中记录有该VRRPE报文中携带的VRRPE备份组标识对应的表项,但该VRRPE报文中携带的VRRPE备份组标识对应的表项中不存在源MAC地址与该VRRPE报文中携带的源MAC地址,以及入接口与接收到该VRRPE报文的入接口均相同的表项时,二层交换设备增加一条对应该VRRPE报文中携带的VRRPE备份组标识的表项,并将该VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该新增的表项中;
当VRRP Snooping表项中记录有该VRRPE报文中携带的VRRPE备份组标识对应的表项,且该VRRPE报文中携带的VRRPE备份组标识对应的表项中存在入接口与接收到该VRRPE报文的入接口相同,但源MAC地址与该VRRPE报文中携带的源MAC地址不同的表项时,二层交换设备将表项中的VRRPE报文的通告时间、源MAC地址以及入接口分别替换为该VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口;
当VRRP Snooping表项中记录有该VRRPE报文中携带的VRRPE备份组标识对应的表项,且该VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与该VRRPE报文中携带的源MAC地址、以及入接口与接收到该VRRPE报文的入接口均相同,但VRRPE报文的通告时间与该VRRPE报文中携带的VRRPE报文的通告时间不相同的表项时,二层交换设备将该表项中的通告时间替换为该VRRPE报文中携带的VRRPE报文的通告时间。
步骤302、二层交换设备根据该VRRPE报文中携带的VRRPE备份组标识查询VRRP Snooping表项,当该VRRP Snooping表项中记录有VRRPE备份组标识与VRRPE报文中携带的VRRPE备份组标识相同,但源MAC地址与该VRRPE报文中携带的源MAC地址,以及入接口与接收到该VRRPE报文的入接口不同的表项时,转至步骤303;否则,转至步骤304。
具体的,在本发明实施例中,为了防止二层网络内VRRPE报文泛洪,二层交换设备接收到VRRPE报文后,仅将该VRRPE报文转发给与发送该VRRPE报文的路由器属于同一VRRPE备份组的其他路由器。
其中,二层交换设备可以根据接收到的VRRPE报文中携带的VRRPE备份组标识查询VRRP Snooping表项,当VRRP Snooping表项中记录有VRRPE备份组标识与该VRRPE报文中携带的VRRPE备份组标识相同,但源MAC地址与该VRRPE报文中携带的源MAC地址,以及入接口与接收到该VRRPE报文的入接口不同的表项时,确定发送该VRRPE报文的路由器所属的VRRPE备份组中还存在其他的路由器;否则,确定发送该VRRPE报文的路由器所属的VRRPE备份组中不存在其他的路由器。
步骤303、二层交换设备将该VRRPE报文的目的MAC地址替换为该表项中记录的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE报文进行二层单播转发。
具体的,当二层交换设备确定VRRP Snooping表项中记录有VRRPE备份组标识与接收到的VRRPE报文中携带的VRRPE备份组标识相同,但源MAC地址与该VRRPE报文中携带的源MAC地址,以及入接口与接收到该VRRPE报文的入接口不同的表项,即发送VRRPE报文的路由器所属的VRRPE备份组中还存在其他路由器时,二层交换设备将该VRRPE报文的目的MAC地址替换为相应表项中的源MAC地址,并根据该表项中记录的源MAC地址和入接口将目的MAC地址替换后的VRPPE报文进行二层单播转发
步骤304、二层交换设备终止该VRRPE报文的二层转发。
具体的,当二层交换设备确定发送该VRRPE报文的路由器所属的VRRPE备份组中不存在其他的路由器,二层交换设备不将该VRRPE报文进行转发。其中,二层交换设备可以直接丢弃该VRRPE报文。
进一步地,在本发明实施例中,可以设置VRRP Snooping表项老化定时器,并根据老化定时器对相应表项进行维护。
具体的,对于VRRP Snooping表项中各个表项,二层交换设备均可以根据VRRPE报文的通告时间设置对应的老化定时器。当老化定时器超时前,二层交换设备从该老化定时器对应的表项中记录的入接口接收到VRRPE备份组标识、通告时间与该表项中记录的VRRPE备份组、通告时间分别相同的VRRPE报文时,二层交换设备更新该老化定时器;当老化定时器超时前,二层交换设备从该老化定时器对应的表项中记录的入接口接收到VRRPE备份组标识与该表项中记录的VRRPE备份组相同,但通告时间与该表项中记录的通告时间不同的VRRPE报文时,二层交换设备根据该VRRPE报文中携带的通告时间重置该老化定时器;当老化定时器超时,二层交换设备未从该老化定时器对应的表项中记录的入接口接收到VRRP备份组相同的VRRPE报文时,二层交换设备删除该表项。优选地,老化定时器的超时时限可以设置为3倍的通告时间。
进一步地,VRRPE备份组中的路由器在退出备份组时,会向二层交换设备发送VF(Virtual Forwarder,虚拟转发器)优先级为0的VRRPE通告报文。在本发明实施例中,当二层交换设备接收到VF优先级为0的VRRPE通告报文时,二层交换设备根据该VRRPE通告报文在VRRP Snooping表项中查询并删除对应的表项,并将该VRRPE通告报文的目的MAC地址替换为VRRPE备份组标识与该VRRPE通告报文的VRRPE备份组标识相同,源MAC地址与该VRRPE通告报文的源MAC地址、以及入接口与接收到该VRRPE通告报文的入接口不同的表项中记录的源MAC地址,并将目的MAC地址替换后的VRRPE通告报文转发给对应的路由器。接收到该VRRPE通告报文的路由器根据协议规定的报文处理流程进行处理,接管该VRRPE通告报文中携带的虚MAC地址。接管该VRRPE通告报文中携带的虚MAC地址的路由器向二层交换设备发送两个VRRPE报文,其中一个携带自身的虚MAC,另一个携带所接管的虚MAC,其具体实现流程在此不再赘述。其中,二层交换设备接收到VRRPE报文后,根据接收到的VRRPE报文维护VRRP Snooping表项。
进一步地,在本发明实施例中,VRRP Snooping表项中还可以记录二层交换设备接收到的VRRPE报文中携带的虚MAC地址和虚IP地址。相应地,当二层交换设备接收到客户端发送的ARP请求报文,且该ARP请求报文的目的IP地址与VRRP Snooping表项中的虚IP地址匹配时,二层交换设备终止该ARP请求报文,并根据VRRP Snooping表项中对应该目的IP地址的表项中确定该目的IP地址对应的虚MAC地址,当该目的IP地址对应的虚MAC地址为一个时,二层交换设备将该目的IP地址与虚MAC地址的对应关系携带在ARP应答报文中返回给客户端;当该目的IP地址对应的虚MAC地址为多个时,二层交换设备从该目的IP地址对应的多个虚MAC地址中选择一个虚MAC地址,并将目的IP地址与所选择的虚MAC地址的对应关系携带在ARP应答报文中返回给客户端,避免了ARP请求报文在VLAN内的广播,减少了ARP请求报文的泛洪,节省了网络资源。其中,二层交换设备从目的IP地址对应的多个虚MAC地址中选择一个虚MAC地址的方式可以为轮询选择、随机选择等方式,其具体实现在此不再赘述。
相应地,当二层交换设备接收到VRRPE报文时,且VRRP Snooping表项中记录有该VRRPE报文中携带的VRRPE备份组标识对应的表项,且VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与VRRPE报文中携带的源MAC地址、VRRP报文的通告时间与该VRRPE报文中携带的VRRPE报文的通告时间、以及入接口与接收到VRRPE报文的入接口均相同,但虚MAC地址与该VRRPE报文中携带的虚MAC地址不相同的表项时,该二层交换设备将该VRRPE报文中携带的虚MAC地址记录到该表项中。
下面结合具体的应用场景对本发明实施例提供的技术方案进行更加详细的描述。
在该实施例中,二层交换设备中维护的VRRP Snooping表项可以如表2所示:
表2
其中,二层交换设备对应各VRRP Snooping表项设置有老化定时器,老化定时器的超时时限为3倍的通告时间。
若二层交换设备从接口E0/1接收到VRRP VRID为1、通告时间为1s、源MAC地址为0-0-1、虚MAC地址为000f-e2ff-0011、虚IP地址为20.10.0.10的VRRPE报文,二层交换设备根据该VRRPE交换机根据该VRRPE报文中的相应字段查询VRRP Snooping表项,确定VRRP Snooping表项中存在匹配的表项,则二层交换设备更新该表项对应的老化定时器。
进一步地,二层交换设备根据查询结果可知,VRRP Snooping表项中还存在两条VRRP VRID与接收到的VRRPE报文中携带的VRRP VRID相同,但源MAC地址与该VRRPE报文中携带的源MAC地址(0-0-1)、以及入接口与接接收到该VRRPE报文的入接口(E0/1)不同的表项,二层交换设备分别将该VRRPE报文的目的MAC地址替换为0-0-2和0-0-3,并分别根据相应表项中记录的源MAC地址与入接口的对应关系(0-0-2与E0/2、0-0-3与E0/3)查询二层MAC地址表,进而将目的MAC地址替换后的VRRPE报文通过相应的接口进行二层单播转发。
若二层交换设备从接口E0/4接收到VRRP VRID为2、通告时间为1s、源MAC地址为0-0-4、虚MAC地址为000f-e2ff-0021、虚IP地址为30.10.0.10的VRRPE报文,二层交换设备根据该VRRPE报文的相应字段查询VRRP Snooping表项,确定VRRP Snooping表项中不存在VRRP VRID为2的表项,则二层交换设备建立对应该VRRP VRID(2)的表项,并将该VRRPE报文中携带的相应字段记录到该表项中,其中,该表项可以如表3所示:
表3
二层交换设备建立该表项后,设置对应该表项的老化定时器,其超时时限为3s。
若二层交换设备接收到客户端发送的目的IP地址为20.0.0.10的ARP请求报文,二层交换设备根据该目的IP地址查询VRRP Snooping表项,确定该目的IP地址对应的虚MAC地址包括:000f-e2ff-0011、000f-e2ff-0012和000f-e2ff-0013。二层交换设备通过轮询选择的方式从中选择一个虚MAC地址,如000f-e2ff-0012,并将该虚MAC地址(000f-e2ff-0012)与目的IP地址的对应关系携带在ARP应答报文中返回给该客户端。
通过以上描述可以看出,在本发明实施例提供的技术方案中,二层交换设备接收到VRRPE报文后,不将该VRRPE报文在VLAN内转发,而是通过单播方式将该VRRPE报文转发给与发送该VRRPE报文的路由器属于同一VRRPE备份组的其他路由器,有效地防止了二层网络内VRRPE报文泛洪,节省了网络资源,提高了***稳定性。
基于上述方法实施例***的发明构思,本发明实施例还提供了一种二层交换设备,可以作为二层交换设备应用于上述方法实施例。
如图4所示,为本发明实施例提供的一种二层交换设备的结构示意图,可以应用于包括VRRPE备份组 VRRPE组网,所述VRRPE备份组通过二层交换设备实现互联,该二层交换设备可以包括:
接收模块41,用于接收VRRPE报文;
维护模块42,用于根据该VRRPE报文维护VRRP Snooping表项;所述VRRP Snooping表项中记录有VRRP备份组标识、VRRPE报文的通告时间、源媒体访问控制MAC地址以及入接口;
发送模块43,用于当所述VRRP Snooping表项中记录有VRRPE备份组标识与所述VRRPE报文中携带的VRRPE备份组标识相同,但源MAC地址与所述VRRPE报文中携带的源MAC地址,以及入接口与接收到所述VRRPE报文的入接口不同的表项时,将所述VRRPE报文的目的MAC地址替换为该表项中记录的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE报文进行二层单播转发;否则,终止所述VRRPE报文的二层转发。
其中,所述维护模块42具体用于通过以下方式实现根据所述VRRPE报文维护VRRP Snooping表项:
根据所述VRRPE报文中携带的VRRPE备份组标识查询所述VRRP Snooping表项;
当所述VRRP Snooping表项中未记录所述VRRPE报文中携带的VRRPE备份组标识对应的表项时,建立该VRRPE备份组标识对应的表项,并将所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该表项中;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,但所述VRRPE报文中携带的VRRPE备份组标识对应的表项中不存在源MAC地址与所述VRRPE报文中携带的源MAC地址,以及入接口与接收到所述VRRPE报文的入接口均相同的表项时,增加一条对应所述VRRPE报文中携带的VRRPE备份组标识的表项,并将所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到该VRRPE报文的入接口记录到该新增的表项中;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在入接口与接收到所述VRRPE报文的入接口相同,但源MAC地址与所述VRRPE报文中携带的源MAC地址不同的表项时,将表项中的VRRPE报文的通告时间、源MAC地址以及入接口分别替换为所述VRRPE报文中携带的VRRPE报文的通告时间、源MAC地址以及接收到所述VRRPE报文的入接口;
当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与所述VRRPE报文中携带的源MAC地址、以及入接口与接收到所述VRRPE报文的入接口均相同,但VRRPE报文的通告时间与所述VRRPE报文中携带的VRRPE报文的通告时间不相同的表项时,将该表项中的通告时间替换为所述VRRPE报文中携带的VRRPE报文的通告时间。
其中,所述二层交换设备中设置有VRRP Snooping表项老化定时器;
所述维护模块42还用于,当所述二层交换设备在老化定时器超时前,从该老化定时器对应的表项中的入接口接收到VRRPE备份组标识、VRRPE报文的通告时间与该表项中的VRRPE备份组标识、VRRPE报文的通告时间分别相同的VRRPE报文时,所述二层交换设备更新该老化定时器;当所述二层交换设备在老化定时器超时前,从该老化定时器对应的表项中记录的入接口接收到VRRPE备份组标识与该表项中记录的VRRPE备份组相同,但VRRPE报文的通告时间与该表项中记录的VRRPE报文的通告时间不同的VRRPE报文时,所述二层交换设备根据该VRRPE报文中携带的VRRPE报文的通告时间重置该老化定时器;当所述二层交换设备在老化定时器超时前,未从该老化定时器对应的表项中记录的入接口接收到VRRP备份组相同的VRRPE报文时,所述二层交换设备删除该表项。
其中,所述维护模块42还用于,当所述接收模块接收到虚拟转发器VF优先级为0的VRRPE通告报文时,根据该VRRPE通告报文中携带VRRPE备份组标识以及接收到该VRRPE通告报文的入接口查询并删除所述VRRP Snooping表项中的相应表项;
所述发送模块43还用于,当所述VRRP Snooping表项中存在VRRPE备份组标识与该VF优先级为0的VRRPE通告报文的VRRPE备份组标识相同,源MAC地址与该VRRPE通告报文的源MAC地址、以及入接口与接收到该VRRPE通告报文的入接口不同的表项时,将该VRRPE通告报文的目的MAC地址替换为该表项中的源MAC地址,并根据该表项中记录的源MAC地址和入接口对该目的MAC地址替换后的VRRPE通告报文进行二层单播转发。
其中,所述二层交换设备维护的VRRP Snooping表项中还记录有虚MAC地址和虚互联网协议IP地址;
所述二层交换设备还包括:
地址解析协议ARP应答模块44,用于当所述接收模块41接收到客户端发送的目的IP地址与VRRP Snooping表项中的虚IP地址匹配的地址解析协议ARP请求报文时,终止该ARP请求报文,并根据该目的IP地址对应的VRRP Snooping表项确定与该目的IP地址对应的虚MAC地址;当所述与该目的IP地址对应的虚MAC地址为一个时,将所述目的IP地址与该虚MAC地址的对应关系携带在ARP应答报文中返回给所述客户端;当所述与该目的IP地址对应的虚MAC地址为多个时,从所述多个虚MAC地址中选择一个,并将所述目的IP地址与所选择的虚MAC地址的对应关系携带在ARP应答报文中返回给所述客户端。
其中,所述维护模块42还用于,当所述VRRP Snooping表项中记录有所述VRRPE报文中携带的VRRPE备份组标识对应的表项,且所述VRRPE报文中携带的VRRPE备份组标识对应的表项中存在源MAC地址与所述VRRPE报文中携带的源MAC地址、VRRP报文的通告时间与所述VRRPE报文中携带的VRRPE报文的通告时间、以及入接口与接收到所述VRRPE报文的入接口均相同,但虚MAC地址与所述VRRPE报文中携带的虚MAC地址不相同的表项时,将所述VRRPE报文中携带的虚MAC地址记录到该表项中。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者二层交换设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。