宽带接入设备的集群管理及其实现
2004/9/1 来源:中国信息导报 作者:戴 静 张晓玲


  迄今为止,对网络管理的定义众说纷纭。综合来说,网络管理是指对网络的运行状态进行监测和控制,使其能够有效、可靠、安全、经济地提供服务。随着网络规模的增大,数量巨大的网络设备如果逐一管理维护,工作量则会十分巨大。加之大多网络采用以太网技术,要为这些设备配置大量的IP地址,在目前IP地址资源比较紧张的情况下无疑是一种浪费。针对这一问题,集群管理系统提出了一个解决方法。集群是由一组交换机组成的一个集合,集群管理系统提供了一种自动收集设备拓扑的方法,并提供了集中、统一的维护管理通道,并且一个集群只使用一个IP地址,从而简化设备的管理并节约了IP地址。
  
  一、集群中角色功能及转换规则
  
  集群管理系统中共有命令交换机、备份交换机、成员交换机、候选交换机四种角色,功能如下:
  1.命令交换机:在集群中,提供对整个集群的管理接口作用的交换机称为命令交换机,它也是在集群中可以配置公网IP地址的交换机。对集群中的成员进行配置、管理、监控,都必须通过命令交换机来进行。命令交换机对接收到的配置命令等重新定向,把它发送到相应的交换机中进行处理。
  2.备份交换机:命令交换机的备份。命令交换机失效时,最高优先级的备份交换机将成为命令交换机。
  3.成员交换机:对成员交换机的管理是通过命令交换机的代理来完成的,它可以不设置公网IP地址。
  4.候选交换机:是指未加入任何集群管理的具有集群能力的交换机。
  每个集群中必须指定一个且仅一个命令交换机。在命令交换机被指定后,命令交换机通过GMP集群管理协议接收设备信息,确定和发现候选交换机,用户可以通过配置把候选交换机加入到集群中。
  
  二、集群管理系统总体要求及功能
  
  集群管理系统有3个相关的协议,即GTDP集群拓扑发现协议、GTCP集群拓扑收集协议和GMP集群管理协议。
  1.GTDP集群拓扑发现协议:在邻居发现过程中使用。成员交换机在邻居发现过程中发现和本设备直接相连的其它设备及这些设备的相关信息。当交换机的接口Enable或UP后,必须立即从该接口发送3个拓扑发现报文,间隔时间为100ms。
  2.GTCP集群拓扑收集协议:该协议是依赖于在集群拓扑发现协议GTDP运行的基础上,在该协议使能后,由一台交换机主动发起,用于收集相邻设备通过运行集群拓扑发现协议GTDP存储相关设备信息。GTCP在拓扑收集过程中使用,命令交换机在拓扑收集过程中收集设备的拓扑情况。
  3.GMP集群管理协议:该协议用于实现对集群的统一管理,包括对集群成员的加入、删除、信息配置和信息查询等管理,以及外部对集群的访问和集群成员对外部的访问。命令交换机在创建集群后,接收由支持GMP集群管理协议的交换机发送的广播请求报文,并将这些交换机列入候选交换机。用户配置候选交换机为成员交换机后,命令交换机请求候选交换机加入集群,候选交换机加入集群成为成员交换机后,命令交换机可以通过GMP集群管理协议对其进行管理维护。
  当集群建立之后,命令交换机和成员交换机之间就开始握手交互过程,握手报文独立发送,定时发送;时间间隔timer在命令交换机设置,建议缺省为8秒,范围为1~300秒。如果命令交换机连续收不到3个成员交换机的握手报文时,则将该成员交换机的状态从Enable变为Disable状态。成员交换机连续收不到3个命令交换机的握手应答报文,则把该交换机变为候选交换机,重新不断地向外发送广播请求报文。
  
  三、系统函数实现与部分数据描述
  
  1.模块设计:在此次系统实现中,把GTDP、GTCP、GMP各自设计成为一个相对独立的模块。在模块初始化时,启动两个任务,一个是产生时间TICK的任务,负责按配置定期发送时间间隔消息和保持信息时间消息。另一个是接收消息并进行处理的任务,负责接收消息队列中的消息并调用相应的处理过程进行处理。
  2.处理流程:3个模块的处理流程均大致包含以下几个内容:系统协议运行与停止运行,端口协议使能,发送和接受报文的处理以及信息老化的处理。
  3.报文格式:以拓扑收集报文为例,它承载于Eth-ernet2帧之上,采用组播的方式实现。包括拓扑请求和拓扑应答。
  
  4.数据结构:以GMP为例,粌定义了以下数据结构:全局GMP status、GMP设备基本信息、GMP mem-bers、GMP candidates以及GMP packet等数据结构。如GMP candidates的数据结构为:
  typedef struet GMP_Candidates_s{
  GMP_MMBRINFO_T CandidateInfo;
  unsigned char  CandidateDevDescriptiton[32];
  unsigned char  CandidateHostname[32];
  unsigned char  CandidateSoftVer[32];
  unsigned long  CandidateAgetime;
  struct GMP_Candidates_s *pNextCandidate;
......点击查阅全文......↓