专利名称:一种在网络中管理分布式系统的方法
技术领域:
本发明涉及网络管理技术,特别是涉及一种利用简单网络管理协议(SNMP,Simple Network Managing Protocol)在网络中管理分布式系统的方法。
背景技术:
在大型网络中,往往包含一个或一个以上的分布式系统。每个分布式系统由一个控制中心和若干个被控设备组成。例如,由一个存储控制器和若干个磁盘柜组成的存储系统,其中存储控制器就是存储系统的控制中心,而每一个磁盘柜就是存储系统的一个被控设备。在大型网络中,一般由网管工作站利用SNMP对网络中包括各个分布式系统在内的所有网元进行管理。
在网管工作站对某个分布式系统的管理中,有时需要同时设置/获取这个分布式系统中多个被控设备的信息。这就需要所述控制中心具有SNMP报文转发功能,根据一定的转发规则将网管工作站发来的SNMP报文转发到相应的控制对象上。
现有技术实现上述功能的技术方案是,根据SNMP协议,将若干个被控设备对应到一个团体名/安全名,在网管工作站发送给控制中心的SNMP报文中,只要指定了团体名/安全名,控制中心就可以根据上述的对应关系将SNMP报文转发给相应的设备。由于网管工作站发送给控制中心的SNMP报文会有各种类型,每种类型的SNMP报文需要访问的被控设备组合各不相同,因此需要设置多个团体名/安全名来表示这些组合。当然,也可以将若干个被控设备对应到一个SNMP操作,然后由控制中心根据所收到的SNMP报文的操作以及所述对应关系将SNMP报文转发给相应的设备。
例如,在一个分布式系统中,有4个被控设备第一被控设备、第二被控设备、第三被控设备和第四被控设备。在设置团体名/用户名时,将第一被控设备、第二被控设备对应为第一团体名/安全名;将第二被控设备、第三被控设备对应为第二团体名/安全名;将第四被控设备对应为第三团体名/安全名,等等。
现有技术的缺点在于,所述SNMP报文的转发只能根据团体名/安全名或SNMP操作来进行。在实际应用中,为了管理方便,不可能设置大量的团体名/安全名,因此团体名/安全名的数目是有限的;而SNMP操作的数目更是只有少数的几种。但是在网管工作站访问分布式系统中的被控设备时,访问对象会有大量的组合,仅仅采用团体名/安全名以及SNMP操作是无法完全表示这些组合的。例如在上述的例子中,第一被控设备和第四被控设备的组合就没有被团体名/安全名表示。这样,当网管工作站需要同时设置/获取这个分布式系统中多个被控设备的信息,而所述多个被控设备的组合又没有被团体名/安全名以及SNMP操作表示的时候,就只能分别向这些被控设备分别发送SNMP报文,从而降低了网络管理的效率。
发明内容
有鉴于此,本发明的主要目的在于提供一种在网络中管理分布式系统的方法,以提高网络管理的效率。
为了达到上述目的,本发明的技术方案是这样实现的一种在网络中管理分布式系统的方法,分布式系统控制中心保存转发规则,用以记录管理信息库MIB号与分布式系统被控设备的对应关系,该方法包括控制中心接收由管理工作站发送的携带有MIB实例名的报文,对于自身所保存的转发规则,分别比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配,如果匹配,则将所述报文转发给该转发规则所记录的分布式系统被控设备。
其中,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A1、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B1,否则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;B1、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配。
其中,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A2、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B2,否则执行步骤C2;B2、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;C2、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于所述转发规则中记录的MIB号所包含的数字个数,如果是则执行步骤D2,否则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;D2、取所收到的报文中携带的MIB实例名中,前n个数字作为待比较对象,其中n为所述转发规则中记录的MIB号所包含的数字个数;E2、比较步骤D2中得到的待比较对象与所述转发规则中记录的MIB号是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A3、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B3,否则执行步骤C3;B3、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;C3、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于所述转发规则中记录的MIB号所包含的数字个数,如果是则执行步骤D3,否则执行步骤F3;D3、取所收到的报文中携带的MIB实例名中,前n个数字作为待比较对象,其中n为所述转发规则中记录的MIB号所包含的数字个数;E3、比较步骤D3中得到的待比较对象与所述转发规则中记录的MIB号是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配;F3、取所述转发规则中记录的MIB号中,前m个数字作为待比较对象,其中n为所收到的报文中携带的MIB实例名所包含的数字个数;G3、比较步骤F3中得到的待比较对象与所收到的报文中携带的MIB实例名是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A4、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B4,否则执行步骤C4;
B4、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;C4、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否小于所述转发规则中记录的MIB号所包含的数字个数,如果是则执行步骤D4,否则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;D4、取所述转发规则中记录的MIB号中,前m个数字作为待比较对象,其中n为所收到的报文中携带的MIB实例名所包含的数字个数;E4、比较步骤D4中得到的待比较对象与所收到的报文中携带的MIB实例名是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述分布式系统控制中心保存转发规则,用以记录管理信息库MIB实例名与分布式系统被控设备的对应关系为在一条转发规则中记录一个MIB号、一个MIB号掩码和一个分布式系统被控设备,其中MIB号和MIB号掩码所包含的数字个数相同;所述比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配为控制中心对于自身所保存的转发规则,分别将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配,如果匹配,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a1、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b1,否则认为运算结果与转发规则中记录的MIB号不匹配;b1、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a2、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b2,否则执行步骤c2;b2、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c2、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于转发规则中所记录的MIB号掩码所包含的数字个数,如果大于,则执行步骤d2,否则认为运算结果与转发规则中记录的MIB号不匹配;d2、取所收到的报文中携带的MIB实例名中,前n个数字与所述转发规则中所记录的MIB号掩码进行按位与运算,其中n为所述转发规则中记录的MIB号所包含的数字个数;e2、比较步骤d2中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a3、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b3,否则执行步骤c3;b3、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c3、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于转发规则中所记录的MIB号掩码所包含的数字个数,如果大于,则执行步骤d3,否则执行步骤f3;d3、取所收到的报文中携带的MIB实例名中,前n个数字与所述转发规则中所记录的MIB号掩码进行按位与运算,其中n为所述转发规则中记录的MIB号所包含的数字个数;e3、比较步骤d3中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;f3、取所述转发规则中记录的MIB号掩码中,前m个数字与所收到的报文中携带的MIB实例名进行按位与运算,其中m为所收到的报文中携带的MIB实例名所包含的数字个数;g3、比较步骤f3中按位与得到的结果与转发规则中所记录的MIB号的前m个数字是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a4、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b4,否则执行步骤c4;b4、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c4、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于转发规则中所记录的MIB号掩码所包含的数字个数,如果大于,则执行步骤d4,否则执行步骤f4;d4、取所收到的报文中携带的MIB实例名中,前n个数字与所述转发规则中所记录的MIB号掩码进行按位与运算,其中n为所述转发规则中记录的MIB号所包含的数字个数;e4、比较步骤d4中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;f4、将所收到的报文中携带的MIB实例名进行补零操作,直到所收到的报文中携带的MIB实例名所包含的数字个数与所述转发规则中记录的MIB号掩码所包含的数字个数相同;g4、将步骤f4中得到的结果与转发规则中记录的MIB号掩码进行按位与运算,并比较步骤按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a5、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b5,否则执行步骤c5;b5、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c5、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否小于转发规则中所记录的MIB号掩码所包含的数字个数,如果小于,则执行步骤d5,否则认为运算结果与转发规则中记录的MIB号不匹配;d5、取所述转发规则中所记录的MIB号掩码中,前m个数字与所收到的报文中携带的MIB实例名进行按位与运算,其中m为所收到的报文中携带的MIB实例名所包含的数字个数;e5、比较步骤d5中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a6、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b6,否则执行步骤c6;b6、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c6、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否小于转发规则中所记录的MIB号掩码所包含的数字个数,如果小于,则执行步骤d6,否则认为运算结果与转发规则中记录的MIB号不匹配;
d6、将所收到的报文中携带的MIB实例名进行补零操作,直到所收到的报文中携带的MIB实例名所包含的数字个数与所述转发规则中记录的MIB号掩码所包含的数字个数相同;e6、将步骤d6中得到的结果与转发规则中记录的MIB号掩码进行按位与运算,并比较步骤按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
其中,所述报文是简单网络管理协议SNMP报文,所述分布式系统控制中心保存转发规则,用以记录管理信息库MIB实例名与分布式系统被控设备的对应关系为在一条转发规则中记录一个MIB号、一个SNMP操作和一个分布式系统被控设备;控制中心在比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配之前进一步包括判断所收到的SNMP报文所要进行的操作,是否与转发规则中记录的SNMP操作相同,如果相同则继续比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配,否则直接认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配。
其中,所述报文是简单网络管理协议SNMP报文,所述分布式系统控制中心保存转发规则,用以记录管理信息库MIB实例名与分布式系统被控设备的对应关系为在一条转发规则中记录一个MIB号、一个MIB号掩码、一个SNMP操作和一个分布式系统被控设备,其中MIB号和MIB号掩码所包含的数字个数相同;控制中心在将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号掩码进行运算之前进一步包括判断所收到的SNMP报文所要进行的操作,是否与转发规则中记录的SNMP操作相同,如果相同则继续将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号掩码进行运算,否则直接认为将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号不匹配。
采用本发明所提供的技术方案,分布式系统的控制中心根据SNMP报文中携带的管理信息库(MIB,Management Information Base)实例名作为转发的依据,在分布式系统的控制中心上记录需要转发给每个被控设备的SNMP报文类型。在网管工作站需要同时设置/获取某个分布式系统中多个被控设备的信息时,仍然只需要发送一条SNMP报文消息到该分布式系统的控制中心,控制中心针对每个被控设备,分别判断所述SNMP报文是否需要转发给该被控设备,如果需要则转发所述SNMP报文,从而实现了同时访问分布式系统中多个被控设备的功能。由于在本发明所提供的技术方案中,根本不需要表示各种类型的SNMP报文所要访问的被控设备的各种可能的组合的情况下,因此也就不会出现网管工作站只能向多个待访问被控设备分别发送SNMP报文的情况,从而提高了管理分布式系统的效率。
图1是本发明提供的在网络中管理分布式系统的方法流程图。
具体实施例方式
本发明的核心思想是网管工作站向分布式系统的控制中心发送SNMP报文,控制中心采用MIB实例名作为转发依据,将所述SNMP报文转发给自身所控制的被控设备,然后将被控设备返回的响应报文重组后返回给网管工作站。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
在一个SNMP报文中,至少会携带一个MIB实例名;根据报文所要进行的SNMP操作,还可能携带与该MIB实例名对应的MIB值,构成一个MIB实例名/MIB值对。MIB实例名用于指定需要访问的MIB对象实例,它由MIB对象的对象标识符(OID,Object Identifier)加上实例索引构成,一个MIB对象可能会有多个实例,在这些实例的实例名中,对象标识符相同而实例索引不同;而MIB值则用于表示该MIB实例的值。下面是一个MIB实例名/MIB值对的例子1.3.6.1.2.1.1.1.0=‘abc’等号左边的点分数字就是MIB实例名,其中1.3.6.1.2.1.1.1是所述MIB对象的OID,最后一位0就是所述实例索引,等号右边的’abc’就是所述MIB值。这里为了叙述方便,采用十进制表示MIB实例名中的每个数字,实际中是用二进制数字表示的,例如,假设用一个字节表示MIB实例名中的每个数字,则1.3.6.1.2.1.1.1.0在实际中应该表示为00000001.00000011.00000110.00000001.00000010.00000001.00000001.00000001.00000000。
本发明所提供的基于MIB实例名的SNMP报文转发方案,实质上就是控制中心根据所收到的SNMP报文中的MIB实例名中的某几个数字来决定如何转发SNMP报文。
假设,在一个分布式系统中,有2个被控设备第一被控设备、第二被控设备。其中,第一被控设备的互联网协议(IP,Internet Protocol)地址为1.2.3.4,第二被控设备的IP地址为1.2.3.5。
在第一个实施例中,将所携带的MIB实例名中,前若干个数字为指定数值的SNMP报文转发到指定设备。例如,假设将所携带的MIB实例名前7个数字为1.3.6.1.2.1.1的SNMP报文转发到第一被控设备和第二被控设备,可以在控制中心中添加以下两条转发规则1.3.6.1.2.1.1 1.2.3.41.3.6.1.2.1.1 1.2.3.5其中,每条规则的前半部分是一个OID或实例名,为了叙述方便,统称为MIB号;后半部分是一个被控设备的地址。假设网管工作站发送给控制中心的SNMP报文所携带的MIB实例名为1.3.6.1.2.1.1.2,共8位数字。当控制中心收到网管工作站发来的SNMP报文后,发现所述SNMP报文中携带的MIB实例名的前7个数字为1.3.6.1.2.1.1,就将所述SNMP报文分别转发给第一被控设备和第二被控设备。又假设网管工作站发送给控制中心的SNMP报文所携带的MIB实例名为1.3.6.1.2.1.1.2.8,共9位数字。当控制中心收到网管工作站发来的SNMP报文后,发现所述SNMP报文中携带的MIB实例名的前7个数字为1.3.6.1.2.1.1,也将所述SNMP报文分别转发给第一被控设备和第二被控设备。
在上述实施例中,只能利用SNMP报文中携带的MIB实例名的前若干个数字作为转发依据。如果需要能够利用MIB实例名中的任意位置的数字作为转发依据,则需要进一步在转发规则中添加MIB号掩码。另外,如前所述,在实际的报文中,MIB实例名中的数字都是以二进制数的形式表示的,在添加了所述MIB号掩码后,还可以进一步利用所述MIB实例名中的某些二进制位作为转发依据。
例如,如果一个SNMP报文中携带的MIB实例名第一个数字为1,第三个数字为6,则将该SNMP报文转发到第一被控设备和第二被控设备,这时可以在控制中心中添加以下两条转发规则1.0.6.0.0.0.0 0xff.0.0xff.0.0.0.0 1.2.3.41.0.6.0.0.0.0 0xff.0.0xff.0.0.0.0 1.2.3.5其中,0xff.0.0xff.0.0.0.0是所述MIB号掩码,这里为了叙述方便,采用十六进制数表示,在实际中MIB号掩码中的每个数字是用一个8位二进制数表示的。在下面的叙述中,凡是前面带有0x的数字都是用十六进制表示的。在每条转发规则中,MIB号掩码中的数字,与MIB号中的数字是一一对应的关系。当MIB号掩码中的数字和MIB号中的数字都用二进制表示的时候,每条转发规则中的MIB号掩码中的二进制位,与MIB号中的二进制位也是一一对应的关系。
控制中心在判断收到的SNMP报文是否与某条转发规则相匹配的时候,只判断SNMP报文中携带的MIB实例名,与转发规则中的MIB号,在MIB号掩码为1的那些位上是否相同,如果相同则认为报文与转发规则匹配,否则认为不匹配。在具体操作中,可以将报文中所携带的MIB实例名,与MIB号掩码进行按位与操作,得到的结果如果与转发规则中的MIB号相同则认为报文与转发规则匹配。例如,一个SNMP报文中携带的实例名为1.3.6.1.2.1.1,在与MIB号掩码0xff.0.0xff.0.0.0.0按位与操作后,得到的结果是1.0.6.0.0.0.0,与上述两条规则匹配,则控制中心将该SNMP报文转发给第一被控设备和第二被控设备。
如果将上述的两条转发规则修改成如下所示的形式0.0.0.0.0.0x30.0 0.0.0.0.0.0xf0 1.2.3.40.0.0.0.0.0x30.0 0.0.0.0.0.0xf0 1.2.3.5则只要SNMP报文所携带的MIB实例名的第6个数字的高4位为二进制的0011,控制中心就认为该报文与以上两条规则匹配,将报文转发给被第一被控设备和第二被控设备。
当然,也可以规定控制中心在判断收到的SNMP报文是否与某条转发规则相匹配的时候,只判断SNMP报文中携带的MIB实例名,与转发规则中的MIB号,在MIB号掩码为0的那些位上是否相同,如果相同则认为报文与转发规则匹配,否则认为不匹配。
在设置转发规则的时候需要注意,对于同一个控制中心,不应该有重复的转发规则。例如,不应该出现这样的情况根据第一条转发规则,如果SNMP报文所携带的MIB实例名的第6个数字的高4位全为1,则将该SNMP报文转发给第一被控设备;根据第二条转发规则,如果SNMP报文所携带的MIB实例名的第6个数字所有位全为1,则将该SNMP报文转发给第一被控设备。显然,第二条转发规则的情况是包括在了第一条转发规则中的,因此不应该再设置第二条转发规则。当然,如果根据第二条转发规则,如果SNMP报文所携带的MIB实例名的第6个数字低6位全为1,则将该SNMP报文转发给第一被控设备,这样的情况不算是重复的转发规则。
按照上述方法,网管工作站可以根据需要,灵活的设置如上所示的转发规则,并将所设置的转发规则下发到控制中心。控制中心保存网管工作站所下发的转发规则。控制中心在收到在网管工作站所发来的SNMP报文后,根据所保存的转发规则将SNMP报文转发到指定的被控设备,并从指定设备处获得相应的结果,然后重新组织SNMP报文将结果返回给网管工作站。
为了设置所述转发规则,网管工作站需要根据SNMP协议,设置以下六个MIB对象的值,然后将这六个MIB对象提供给控制中心。这六个MIB对象合在一起表示一条转发规则。
需要说明的是,上表只是给出了用于设置转发规则的MIB对象列表的示例。其中snmpRelayProMappingIndex用于表示转发规则的序号,同一个控制中心上的转发规则序号是不重复的;snmpRelayProMappingName用于表示转发规则中的MIB号;snmpRelayProMappingMask用于表示转发规则中的MIB号掩码,对于不采用MIB号掩码的情况,这个MIB对象可以不提供;snmpRelayProMappingOper用于表示转发规则所对应的SNMP操作,即本转发规则只对进行snmpRelayProMappingOper所指定的操作的SNMP报文有效,这个MIB对象也可以不提供;snmpRelayProMappingDest用于表示转发规则所对应的被控设备地址,在现有的SNMP协议中用32位IP地址表示,根据需要也可以用其他形式例如64位IP地址或者MAC地址表示;snmpRelayProMappingRowStatus用于表示转发规则的状态,从而创建或删除该条转发规则。
请参考图1,图1是本发明提供的在网络中管理分布式系统的方法流程图。该流程图表示了分布式系统的控制中心在收到网管工作站所发送的SNMP报文后的处理流程。
步骤U01接收管理工作站所发送的SNMP报文。
步骤U02将自身保存的所有转发规则作为未处理转发规则。
所述转发规则是由管理工作站通过向控制中心提供上述的6个MIB对象中设置的。
步骤U03从未处理转发规则中任选一条作为当前转发规则。
在以下步骤U04到步骤U07的叙述中,假设当前转发规则为1.0.6.0.0.0.0 0xff.0.0xff.0.0.0.0 1.2.3.4步骤U04将当前转发规则中记载的MIB号掩码,与所接收的SNMP报文中所携带的实例名作按位与操作。
步骤U05判断步骤U04中得到的结果,是否与当前转发规则中记载的MIB号匹配,如果匹配则执行步骤U06,否则执行步骤U07。
如果SNMP报文中所携带的实例名的数字个数与转发规则中记载的MIB号掩码的数字个数相同,那么这里所说的匹配指的是步骤U04中所的到的结果与当前转发规则中记载的MIB号完全相同。
如果SNMP报文中所携带的实例名的数字个数m大于转发规则中记载的MIB号掩码的数字个数n,则只取SNMP报文中所携带的实例名中前n个数字与MIB号掩码进行按位与操作。例如,如果SNMP报文中所携带的实例名为1.3.6.1.2.1.1.3.5共9个数字,而转发规则中所记载的MIB号掩码为0xff.0.0xff.0.0.0.0共7个数字,则只取SNMP报文所携带的实例名中的1.3.6.1.2.1.1共7个数字与转发规则中所记载的MIB号掩码进行按位与操作,得到的结果是1.0.6.0.0.0.0。在这种情况下,这里所说的匹配指的也是步骤U04中所的到的结果与当前转发规则中记载的MIB号完全相同。
如果SNMP报文中所携带的实例名的数字个数m小于转发规则中记载的MIB号掩码的数字个数n,则可以对SNMP报文中携带的实例名进行补零操作,即在SNMP报文中携带的实例名后补零,直到实例名的数字个数为n。在这种情况下,这里所说的匹配指的也是步骤U04中所的到的结果与当前转发规则中记载的MIB号完全相同。
如果SNMP报文中所携带的实例名的数字个数m小于转发规则中记载的MIB号掩码的数字个数n,也可以只取转发规则中记载的MIB号掩码的前m个数字与SNMP报文中所携带的实例名进行按位与操作。在这种情况下,这里所说的匹配指的是步骤U04中所得到的结果,与当前转发规则中记载的MIB号的前m个数字相同。
当然,对于SNMP报文中所携带的实例名的数字个数不等于转发规则中记载的MIB号掩码的数字个数的情况,也可以直接认为SNMP报文中携带的实例名与当前转发规则记录的MIB号不匹配。
步骤U06将所述SNMP报文发送给当前转发规则中记载的被控设备。
步骤U07将当前转发规则作为已处理转发规则步骤U08判断自身保存的所有转发规则是否都是已处理转发规则,如果是则执行步骤U09,否则返回执行步骤U03。
步骤U09结束当前流程。
以上流程针对的是网管工作站向控制中心提供用于设置转发规则的MIB对象时,提供了除snmpRelayProMappingOper对象外其他五个对象的情况。也就是说,控制中心不对从网管中心收到的SNMP报文所要进行的操作进行判断。如果网管工作站进一步向控制中心提供了snmpRelayProMappingOper对象,则控制中心还需要判断从网管中心收到的SNMP报文所要进行的操作,是否与当前转发规则中所记载的SNMP操作相同,如果不相同则将当前转发规则标记为已处理转发规则,然后处理下一条转发规则。
而如果网管工作站向控制中心提供用于设置转发规则的MIB对象时,没有提供snmpRelayProMappingMask,即不采用MIB号掩码,则步骤U04可以省略。而在步骤U05中,控制中心直接比较SNMP报文中所携带的实例名与转发规则中记载的MIB号,如果两者匹配则执行步骤U06,否则执行步骤U07。对于SNMP报文中所携带的实例名的数字个数不等于转发规则中记载的MIB号的数字个数的情况,可以参考步骤U05中所述SNMP报文中所携带的实例名的数字个数不等于转发规则中记载的MIB号掩码的数字个数时的处理方法进行处理。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种在网络中管理分布式系统的方法,其特征在于,分布式系统控制中心保存转发规则,用以记录管理信息库MIB号与分布式系统被控设备的对应关系,该方法包括控制中心接收由管理工作站发送的携带有MIB实例名的报文,对于自身所保存的转发规则,分别比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配,如果匹配,则将所述报文转发给该转发规则所记录的分布式系统被控设备。
2.根据权利要求1所述的方法,其特征在于,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A1、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B1,否则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;B1、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配。
3.根据权利要求1所述的方法,其特征在于,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A2、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B2,否则执行步骤C2;B2、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;C2、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于所述转发规则中记录的MIB号所包含的数字个数,如果是则执行步骤D2,否则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;D2、取所收到的报文中携带的MIB实例名中,前n个数字作为待比较对象,其中n为所述转发规则中记录的MIB号所包含的数字个数;E2、比较步骤D2中得到的待比较对象与所述转发规则中记录的MIB号是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
4.根据权利要求1所述的方法,其特征在于,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A3、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B3,否则执行步骤C3;B3、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;C3、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于所述转发规则中记录的MIB号所包含的数字个数,如果是则执行步骤D3,否则执行步骤F3;D3、取所收到的报文中携带的MIB实例名中,前n个数字作为待比较对象,其中n为所述转发规则中记录的MIB号所包含的数字个数;E3、比较步骤D3中得到的待比较对象与所述转发规则中记录的MIB号是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配;F3、取所述转发规则中记录的MIB号中,前m个数字作为待比较对象,其中n为所收到的报文中携带的MIB实例名所包含的数字个数;G3、比较步骤F3中得到的待比较对象与所收到的报文中携带的MIB实例名是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
5.根据权利要求1所述的方法,其特征在于,所述判断所收到的报文中携带的MIB实例名是否与转发规则中记录的MIB号匹配为A4、判断所收到的报文中携带的MIB实例名与转发规则中记录的MIB号,是否所包含的数字个数相同,如果相同则执行步骤B4,否则执行步骤C4;B4、判断收到的报文中携带的MIB实例名与转发规则中记录的MIB号,其对应数字的值是否相同,如果是则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;C4、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否小于所述转发规则中记录的MIB号所包含的数字个数,如果是则执行步骤D4,否则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配;D4、取所述转发规则中记录的MIB号中,前m个数字作为待比较对象,其中n为所收到的报文中携带的MIB实例名所包含的数字个数;E4、比较步骤D4中得到的待比较对象与所收到的报文中携带的MIB实例名是否相同,如果相同,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
6.根据权利要求1所述的方法,其特征在于,所述分布式系统控制中心保存转发规则,用以记录管理信息库MIB实例名与分布式系统被控设备的对应关系为在一条转发规则中记录一个MIB号、一个MIB号掩码和一个分布式系统被控设备,其中MIB号和MIB号掩码所包含的数字个数相同;所述比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配为控制中心对于自身所保存的转发规则,分别将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配,如果匹配,则认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号匹配,否则认为不匹配。
7.根据权利要求6所述的方法,其特征在于,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a1、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b1,否则认为运算结果与转发规则中记录的MIB号不匹配;b1、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
8.根据权利要求6所述的方法,其特征在于,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a2、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b2,否则执行步骤c2;b2、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c2、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于转发规则中所记录的MIB号掩码所包含的数字个数,如果大于,则执行步骤d2,否则认为运算结果与转发规则中记录的MIB号不匹配;d2、取所收到的报文中携带的MIB实例名中,前n个数字与所述转发规则中所记录的MIB号掩码进行按位与运算,其中n为所述转发规则中记录的MIB号所包含的数字个数;e2、比较步骤d2中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
9.根据权利要求6所述的方法,其特征在于,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a3、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b3,否则执行步骤c3;b3、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c3、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于转发规则中所记录的MIB号掩码所包含的数字个数,如果大于,则执行步骤d3,否则执行步骤f3;d3、取所收到的报文中携带的MIB实例名中,前n个数字与所述转发规则中所记录的MIB号掩码进行按位与运算,其中n为所述转发规则中记录的MIB号所包含的数字个数;e3、比较步骤d3中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;f3、取所述转发规则中记录的MIB号掩码中,前m个数字与所收到的报文中携带的MIB实例名进行按位与运算,其中m为所收到的报文中携带的MIB实例名所包含的数字个数;g3、比较步骤f3中按位与得到的结果与转发规则中所记录的MIB号的前m个数字是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
10.根据权利要求8所述的方法,其特征在于,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a4、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b4,否则执行步骤c4;b4、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c4、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否大于转发规则中所记录的MIB号掩码所包含的数字个数,如果大于,则执行步骤d4,否则执行步骤f4;d4、取所收到的报文中携带的MIB实例名中,前n个数字与所述转发规则中所记录的MIB号掩码进行按位与运算,其中n为所述转发规则中记录的MIB号所包含的数字个数;e4、比较步骤d4中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;f4、将所收到的报文中携带的MIB实例名进行补零操作,直到所收到的报文中携带的MIB实例名所包含的数字个数与所述转发规则中记录的MIB号掩码所包含的数字个数相同;g4、将步骤f4中得到的结果与转发规则中记录的MIB号掩码进行按位与运算,并比较步骤按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
11.根据权利要求6所述的方法,其特征在于,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a5、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b5,否则执行步骤c5;b5、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c5、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否小于转发规则中所记录的MIB号掩码所包含的数字个数,如果小于,则执行步骤d5,否则认为运算结果与转发规则中记录的MIB号不匹配;d5、取所述转发规则中所记录的MIB号掩码中,前m个数字与所收到的报文中携带的MIB实例名进行按位与运算,其中m为所收到的报文中携带的MIB实例名所包含的数字个数;e5、比较步骤d5中按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
12.根据权利要求6所述的方法,其特征在于,所述将所收到的报文中携带的MIB实例名与该转发规则中所记录的MIB号掩码进行运算,然后比较运算结果是否与转发规则中记录的MIB号匹配为a6、判断所收到的报文中携带的MIB实例名所包含的数字个数是否与该转发规则中所记录的MIB号掩码所包含的数字个数相同,如果相同则执行步骤b6,否则执行步骤c6;b6、将所收到的报文中携带的MIB实例名与所述转发规则中所记录的MIB号掩码进行按位与运算,并比较得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配;c6、判断所收到的报文中携带的MIB实例名所包含的数字个数,是否小于转发规则中所记录的MIB号掩码所包含的数字个数,如果小于,则执行步骤d6,否则认为运算结果与转发规则中记录的MIB号不匹配;d6、将所收到的报文中携带的MIB实例名进行补零操作,直到所收到的报文中携带的MIB实例名所包含的数字个数与所述转发规则中记录的MIB号掩码所包含的数字个数相同;e6、将步骤d6中得到的结果与转发规则中记录的MIB号掩码进行按位与运算,并比较步骤按位与运算得到的结果与转发规则中所记录的MIB号是否相同,如果相同,则认为运算结果与转发规则中记录的MIB号匹配,否则认为不匹配。
13.根据权利要求1所述的方法,其特征在于,所述报文是简单网络管理协议SNMP报文,所述分布式系统控制中心保存转发规则,用以记录管理信息库MIB实例名与分布式系统被控设备的对应关系为在一条转发规则中记录一个MIB号、一个SNMP操作和一个分布式系统被控设备;控制中心在比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配之前进一步包括判断所收到的SNMP报文所要进行的操作,是否与转发规则中记录的SNMP操作相同,如果相同则继续比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配,否则直接认为所收到的报文中携带的MIB实例名与转发规则中记录的MIB号不匹配。
14.根据权利要求6所述的方法,其特征在于,所述报文是简单网络管理协议SNMP报文,所述分布式系统控制中心保存转发规则,用以记录管理信息库MIB实例名与分布式系统被控设备的对应关系为在一条转发规则中记录一个MIB号、一个MIB号掩码、一个SNMP操作和一个分布式系统被控设备,其中MIB号和MIB号掩码所包含的数字个数相同;控制中心在将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号掩码进行运算之前进一步包括判断所收到的SNMP报文所要进行的操作,是否与转发规则中记录的SNMP操作相同,如果相同则继续将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号掩码进行运算,否则直接认为将所收到的报文中携带的MIB实例名与转发规则中所记录的MIB号不匹配。
全文摘要
本发明公开了一种在网络中管理分布式系统的方法,分布式系统控制中心保存转发规则,用以记录管理信息库MIB号与分布式系统被控设备的对应关系,该方法包括控制中心接收由管理工作站发送的携带有MIB实例名的报文,对于自身所保存的转发规则,分别比较所收到的报文中携带的MIB实例名,是否与转发规则中记录的MIB号匹配,如果匹配,则将所述报文转发给该转发规则所记录的分布式系统被控设备。采用本发明所提供的技术方案,可以避免在需要同时访问分布式系统中多个被控设备时,出现网管工作站只能向多个待访问被控设备分别发送SNMP报文的情况,从而提高了管理分布式系统的效率。
文档编号H04L12/56GK1889460SQ20061008365
公开日2007年1月3日 申请日期2006年6月2日 优先权日2006年6月2日
发明者傅振宇 申请人:杭州华为三康技术有限公司