一种路由表项处理的方法及装置
技术领域
本发明涉及通信领域,特别是涉及一种路由表项处理的方法及装置。
背景技术
为保证网络的安全可靠,组网设备常有冗余,常见的技术方案是将若干台物理设备按照一定的拓扑结构虚拟为一台逻辑设备。在若干台物理设备中,仅允许一台物理设备作为主成员设备Master,负责该逻辑设备整体系统的管理和维护,而其余物理设备作为备成员设备Slave,负责承载该逻辑设备的部分业务流量,并在Master故障时,从中选出一台新的Master,继续对该逻辑设备整体系统进行管理和维护。在这种系统中,因为要求各个Slave也能够正常处理业务,所以,为了确保各个Slave与Master数据的一致性,常常涉及配置的同步备份。Master负责管理用户的配置,整个逻辑设备的路由表是在Master中计算生成的,然后通过专门的通道,Master将生成的路由表项同步备份到各个Slave,以保证路由表在各个物理设备中都是完全一致的。为了更好的阐述现有技术的不足,以下将结合具体示例对配置同步的过程加以说明:
首先,服务器在Web页面上配置虚拟局域网(VLAN:Virtual Local Area)接口,并为该VLAN接口添加一个网络之间互联的协议(IP:Internet Protocol)地址;然后,服务器将把与该创建的VLAN接口对应的接口配置信息发送给Master,在接收到该接口配置信息后,Master会根据该接口配置信息在本地创建该VLAN接口,并将该VLAN接口的IP地址绑定到该VLAN接口上,同时把该接口配置信息发送给Slave;此后,Master将根据该VLAN接口的IP地址创建一条路由表项,其中,该路由表项的目的网段是该IP地址的所属网段,路由出接口是该创建的VLAN接口,当该路由表项创建完成时,Master会判断该路由表项包含的VLAN接口在本地是否存在,如果存在,则将该路由表项添加至本地路由表,并将该路由表项对应的路由表项配置信息发送到Slave。
由以上描述可知,Slave的路由表只依赖于Master的同步备份,即什么时候添加路由表项,完全由Master控制。所以,当出现某些异常情况,如Master将创建的路由表项对应的路由表项配置信息先于将该VLAN接口对应的接口配置信息发送给Slave时,该路由表项配置信息中的VLAN接口在Slave本地将尚未创建,此时,根据该路由表项配置信息生成的路由表项,将因无法通过参数检查而不能被添加到Slave本地的路由表中,这将造成Slave本地路由表中路由表项的丢失,破坏Master和Slave路由表的一致性,并最终导致业务流量的异常转发。
发明内容
本发明提供一种路由表项处理的方法及装置,以在Slave收到Master发送的路由表项配置信息中路由出接口标识对应的路由出接口尚未创建时,避免出现Master和Slave路由表不一致的情况,避免流量转发异常。
根据本发明的第一方面,提供一种路由表项处理的方法,该方法包括:
接收Master发送的路由表项配置信息,所述路由表项配置信息包含路由出接口标识;
当路由表项配置信息中的路由出接口标识对应的路由出接口不存在时,依据所述路由表项配置信息生成路由表项,为所述路由表项设置无效标记,得到无效路由表项并添加至本地路由表;
之后当所述路由出接口创建完成时,将所述无效路由表项恢复为有效。
根据本发明的第二方面,提供一种路由表项处理的装置,该装置包括:
第一接收单元,用于接收Master发送的路由表项配置信息,所述路由表项配置信息包含路由出接口标识;
第一添加单元,用于当路由表项配置信息中的路由出接口标识对应的路由出接口不存在时,依据所述路由表项配置信息生成路由表项,为所述路由表项设置无效标记,得到无效路由表项并添加至本地路由表;
恢复单元,用于当所述路由出接口创建完成时,将所述无效路由表项恢复为有效。
由以上方法可以看出,当Master向Slave发送路由表项配置信息时,如果Slave发现该路由表项配置信息中的路由出接口标识对应的路由出接口在本地尚未创建,则Slave会将依据更新后的该路由表项配置信息生成的路由表项设置为无效,并添加至路由表中,避免该路由表项的丢失。之后当上述路由出接口标识对应的路由出接口创建完成时,Slave会将该设置为无效的路由表项恢复为有效,则通过该恢复为有效的路由表项转发报文,可以保证Slave业务流量的正常转发。
附图说明
图1是本发明实施例中一种逻辑设备的网络拓扑示意图。
图2是本发明提供的一种路由表项处理的方法的流程图。
图3是本发明提供的一种路由表项处理的方法的一个实施例流程图。
图4是本发明提供的一种路由表项处理的方法的另一个实施例流程图。
图5是本发明提供的一种路由表项处理的装置的结构图。
图6是本发明提供的一种路由表项处理的装置的另一个结构图。
具体实施方式
为了使本技术领域的人员更好的理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中的技术方案作进一步详细的说明。
参见图1,图1是本发明实施例中一种逻辑设备的网络拓扑示意图,该逻辑设备由若干台物理设备按照一定的拓扑结构虚拟而成。其中,主成员设备Master负责该逻辑设备整体系统的管理和维护,其余的备成员设备Slaves负责承载该逻辑设备的部分业务流量。当Master出现故障时,该逻辑设备将从Slaves中选出一台新的Master,继续对该逻辑设备整体系统进行管理和维护。
至此完成对图1的说明。
下面通过图2对本发明提供的方法进行描述:
参见图2,图2为本发明提供的一种路由表项处理的方法,该流程可以包括以下步骤:
步骤201:接收Master发送的路由表项配置信息,上述路由表项配置信息包含路由出接口标识。
步骤202:当路由表项配置信息中的路由出接口标识对应的路由出接口不存在时,依据上述路由表项配置信息生成路由表项,为上述路由表项设置无效标记,得到无效路由表项并添加至本地路由表。
步骤203:之后当上述路由出接口创建完成时,将上述无效路由表项恢复为有效。
至此,完成图2所示的流程。
通过图2所示的流程可以看出,当Master向Slave发送路由表项配置信息时,如果Slave发现该路由表项配置信息中的路由出接口标识对应的路由出接口在本地尚未创建,则Slave会将依据更新后的该路由表项配置信息生成的路由表项设置为无效,并添加至路由表中,避免该路由表项的丢失。之后当上述路由出接口标识对应的路由出接口创建完成时,Slave会将该设置为无效的路由表项恢复为有效,则通过该恢复为有效的路由表项转发报文,可以保证Slave业务流量的正常转发。
下面通过两个优选的实施例对图2所示的流程进行描述:
实施例1:
参见图3,图3是本发明提供的一种路由表项处理的方法的一个实施例流程图,该流程可以包括以下步骤:
步骤301:Slave接收Master发送的配置信息。
步骤302:Slave识别接收到的配置信息是接口配置信息还是路由表项配置信息,如果是接口配置信息,则执行下述步骤307;如果是路由表项配置信息,则执行以下步骤303。
本实施例中,接口配置信息,用于创建接口,下文会详细描述,这里暂不赘述。
路由表项配置信息,用于生成路由表项,其包含了路由出接口标识等,下文会详细描述,这里暂不赘述。
步骤303:Slave判断本地是否存在路由表项配置信息中的路由出接口标识对应的路由出接口,如果不存在,则执行以下步骤304;如果存在,则根据该路由表项配置信息生成路由表项,并将该路由表项添加至本地路由表中,结束当前流程。
步骤304:Slave依据路由表项配置信息生成如下路由表项:将路由表项中的路由出接口更改为设定接口,路由表项中的接口标识仍然保存路由表项配置信息中的路由出接口标识。
本实施例中,上述设定接口可以为在本步骤304之前生成的虚接口(记为Null_1),也可以为回环接口loopback。
需要指出的是,上述loopback也是虚接口的一种,是由系统管理员在完成网络规划之初为每台路由器创建完成的,而且,loopback接口作为一种虚接口,其物理状态和协议状态永远都处于UP状态,所以可以根据需要随时使用。
作为一个优选的实施例,本步骤304中生成的路由表项可包含:设定接口、以及接收到的路由表项配置信息中的目的网段和路由出接口标识。其中,目的网段是Master根据路由出接口的IP地址确定的网段。
作为一个实施例,以设定接口为虚接口为例,假如设定该目的网段为192.168.1.0/25、虚接口为Null_1、路由出接口标识为1,则步骤304中生成的路由表项如表1所示:
目的网段 |
出接口 |
出接口标识 |
192.168.1.0/25 |
Null_1 |
1 |
表1
步骤305:Slave为步骤304生成的路由表项设置无效标记,并将该设置了无效标记的路由表项添加至本地路由表中。
本实施例中,Slave为路由表项设置无效标记,其目的是指示该设置了无效标记的路由表项暂不可用,若Slave在为接收到的报文选取路由表项时,遇到了设置有无效标记的路由表项,Slave会自动忽略该路由表项,以保证该接收到的报文不被异常转发或丢弃。
步骤306:Slave将上述设置了无效标记的路由表项在本地路由表中存放的地址添加至本地设定存储区域,结束当前流程。
本实施例中,设定存储区域用于存放设置了无效标记的路由表项在本地路由表中存放的地址,依据其在本实施例中的作用可以记为无效数据容器。
步骤307:Slave依据接收到的接口配置信息创建出接口。
本实施例中,该接口配置信息至少包含待创建出接口的标识以及待创建出接口的IP地址。
在完成出接口的创建后,将接口配置信息中的IP地址绑定到该创建的出接口。
步骤308:Slave判断本地设定存储区域是否为空,如果不为空,则执行以下步骤309;如果为空,则结束当前流程。
步骤309:Slave遍历本地设定存储区域中存放的地址,针对遍历到的每一个地址,依据该地址在本地路由表中找到路由表项,并判断该找到的路由表项中的路由出接口标识与上述创建的出接口的标识是否一致,若一致,则执行以下步骤310。
本实施例中,因为设定存储区域中存放的地址个数较少,所以遍历设定存储区域中的地址并依据其中地址在本地路由表中找到路由表项的时间很短,这样可以节省Slave直接遍历本地路由表中大量路由表项并逐一进行标识匹配所耗费的时间,提高了遍历效率,节省了CPU的资源。
步骤310:Slave对找到的路由表项进行以下更新:将该路由表项中包含的设定接口更改为创建的出接口。
作为一个实施例,设定上述创建的出接口为vlan_if1,那么将步骤304中的路由表项进行更新后的路由表项如表2所示:
目的网段 |
出接口 |
出接口标识 |
192.168.1.0/25 |
vlan_if1 |
1 |
表2
需要指出的是,该找到路由表项也可能是除上述步骤304中的路由表项以外的其它路由表项,此时,Slave会把该找到的路由表项中的设定接口更正为上述创建的出接口。
步骤311:Slave去掉该找到的路由表项的无效标记,并将该路由表项在本地路由表中存放的地址从本地设定存储区域中删除,结束当前流程。
本实施例中,Slave为该路由表项去掉无效标记,表明该路由表项可以使用,即Slave可以根据该路由表项正常转发接收到的报文。
至此,完成对实施例1的描述。
以上通过实施例1对本发明的方法进行了说明,通过该说明可以看出,当Master向Slave发送路由表项配置信息时,如果Slave发现该路由表项配置信息中的路由出接口标识对应的路由出接口在本地尚未创建,则Slave会将依据更新后的该路由表项配置信息生成的路由表项设置为无效,并添加至路由表中,避免该路由表项的丢失。之后当上述路由出接口标识对应的路由出接口创建完成时,Slave会将该设置为无效的路由表项恢复为有效,则通过该恢复为有效的路由表项转发报文,可以保证Slave业务流量的正常转发。
实施例2:
参见图4,图4是本发明提供的一种路由表项处理的方法的另一个实施例流程图,该流程可以包括以下步骤:
步骤401:Slave接收Master发送的配置信息。
步骤402:Slave识别接收到的配置信息是接口配置信息还是路由表项配置信息,如果是接口配置信息,则执行下述步骤406;如果是路由表项配置信息,则执行以下步骤403。
步骤403:Slave判断本地是否存在路由表项配置信息中的路由出接口标识对应的路由出接口,如果不存在,则执行以下步骤404;如果存在,则根据该路由表项配置信息生成路由表项,并将该路由表项添加至本地路由表中,结束当前流程。
步骤404:Slave在本地创建上述路由出接口。
本实施例中,该路由表项配置信息可包含目的网段以及路由出接口标识。
步骤405:Slave根据上述路由表项配置信息生成路由表项,并将该路由表项添加至本地路由表中,结束当前流程。
步骤406:Slave判断上述接口配置信息中待创建出接口的标识对应的出接口是否已经创建,如果该出接口已经创建,但没有绑定对应的IP地址,则将接口配置信息中该创建的出接口的IP地址绑定到该创建的出接口。
本实施例中,上述接口配置信息包含:待创建出接口的标识、以及待创建出接口的IP地址。
需要指出的是,出现上述出接口已经创建,但没有绑定对应的IP地址的情况,是因为:Slave在接收到接口配置信息之前,先接收到了路由表项配置信息,为了使根据该路由表项配置信息生成的路由表项有效,Slave率先根据该路由表项配置信息中的路由出接口标识创建了该接口。但是,由于路由表项配置信息中不包含该接口的IP地址,所以需要等到该接口对应的接口配置信息到达时,将接口配置信息中的接口IP地址绑定到该接口上。
作为一个实施例,如果该出接口未被创建,则创建该出接口,并在完成出接口的创建后,将接口配置信息中包含的该创建的出接口的IP地址绑定到该创建的出接口。
至此,完成对实施例2的描述。
以上通过实施例2对本发明的方法进行了说明,通过该说明可以看出,当Master向Slave发送路由表项配置信息时,如果Slave发现该路由表项配置信息中的路由出接口标识对应的路由出接口在本地尚未创建,那么Slave此时将根据路由表项配置信息中的路由出接口标识主动创建该路由出接口,并根据该路由表项配置信息生成路由表项,添加至路由表中,之后当Slave接收到接口配置信息时,Slave会将其中出接口的IP地址绑定到根据路由表项配置信息创建的出接口,保证Slave业务流量的正常转发。
以上对本发明提供的方法进行了描述,下面通过2个实施例对本发明提供的装置进行描述:
对于装置实施例而言,由于其基本对应方法实施例,所以相关之处参见方法实施例的部分说明即可。以下所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方法的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
实施例1:
请参考图5,图5是本发明提供的一种路由表项处理的装置结构图,该装置包括第一接收单元510、第一添加单元520、恢复单元530。
其中,第一接收单元510,用于接收Master发送的路由表项配置信息,上述路由表项配置信息包含路由出接口标识;
第一添加单元520,用于当路由表项配置信息中的路由出接口标识对应的路由出接口不存在时,依据上述路由表项配置信息生成路由表项,为上述路由表项设置无效标记,得到无效路由表项并添加至本地路由表;
恢复单元530,用于当上述路由出接口创建完成时,将上述无效路由表项恢复为有效。
作为一个优选的实施例,上述第一添加单元520具体用于:
依据上述路由表项配置信息生成如下路由表项:将路由表项中的路由出接口更改为设定接口,路由表项中的接口标识仍然保存路由表项配置信息中的路由出接口标识。
作为另一个优选的实施例,上述第一添加单元520,还用于将上述无效路由表项在本地路由表中存放的地址添加至本地设定存储区域;
上述恢复单元530,包括:创建子单元531、判断子单元532、恢复子单元533;
创建子单元531,用于根据Master发送的接口配置信息创建出接口,上述接口配置信息包含待创建出接口的标识;
判断子单元532,用于在上述设定存储区域不为空,则遍历设定存储区域中的地址,依据上述地址在本地路由表中找到路由表项,判断上述找到的路由表项中的路由出接口标识与创建的出接口的标识是否一致;
恢复子单元533,用于在判断子单元的判断结果为是时,将上述找到的路由表项中的设定接口更正为创建的出接口,并去掉上述找到的路由表项的无效标记,将上述找到的路由表项恢复为有效;
上述恢复单元530,还用于将恢复为有效的路由表项在本地路由表中存放的地址从设定存储区域中删除。
至此,完成对图5所示装置结构的描述。
以上通过实施例1对本发明的装置进行了说明,通过该说明可以看出,当Master向Slave发送路由表项配置信息时,如果Slave发现该路由表项配置信息中的路由出接口标识对应的路由出接口在本地尚未创建,则Slave会将依据更新后的该路由表项配置信息生成的路由表项设置为无效,并添加至路由表中,避免该路由表项的丢失。之后当上述路由出接口标识对应的路由出接口创建完成时,Slave会将该设置为无效的路由表项恢复为有效,则通过该恢复为有效的路由表项转发报文,可以保证Slave业务流量的正常转发。
实施例2:
请参考图6,图6是本发明提供的一种路由表项处理的装置结构图,该装置包括第二接收单元610、创建单元620、第二添加单元630。
其中,第二接收单元610,用于接收Master发送的路由表项配置信息,上述路由表项配置信息包含路由出接口标识;
创建单元620,用于当路由表项配置信息中的路由出接口标识对应的路由出接口不存在时,在本地创建上述路由出接口标识对应的路由出接口;
第二添加单元630,用于根据上述路由表项配置信息生成路由表项,并添加至本地路由表中。
作为一个优选的实施例,上述装置还包括:第三接收单元640、绑定单元650。
其中,第三接收单元640,用于接收Master发送的接口配置信息,上述接口配置信息包含待创建出接口的标识、待创建出接口的IP地址;
绑定单元650,用于当上述待创建出接口的标识对应的出接口已经创建时,若已经创建的出接口尚未绑定IP地址,则将上述接口配置信息中出接口的IP地址绑定到上述已经创建的出接口。
至此,完成对图6所示装置结构的描述。
以上通过实施例2对本发明的装置进行了说明,通过该说明可以看出,当Master向Slave发送路由表项配置信息时,如果Slave发现该路由表项配置信息中的路由出接口在本地尚未创建,那么Slave此时将根据路由表项配置信息中的路由出接口标识主动创建该路由出接口,并根据该路由表项配置信息生成路由表项,添加至路由表中,之后当Slave接收到接口配置信息时,Slave会将其中出接口的IP地址绑定到根据路由表项配置信息创建的出接口,保证Slave业务流量的正常转发。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。