摘要:文章介绍了现有的交换机网络管理技术和交换机集群技术的优点及其关键内容,并针对当前交换机网络管理的要求,提出了一种易于实现、配置简单方便,能够很好地帮助网络管理员实时监控集群网络中各设备的自陷(trap)信息的方法,并详细介绍了在交换机集群网络中如何收集和处理成员交换机上报的trap信息。
关键词:以太网;交换机;集群管理;自陷收集
0 引 言
随着通信技术的不断发展,交换机在以太网中的应用越来越广泛,无论是简单的二层交换设备还是核心网骨干网的多层交换机都在复杂的以太网中充当着及其重要的角色。然而随着交换机等网络设备的增加,传统的分散管理方式要求每台网络设备都占有一个公网IP地址,使得现有的IP资源相当紧张,而且日常维护量非常大。因此现有的网络环境要求交换机的管理方案也必须不断改进,交换机集群管理技术的出现很好地解决了上述问题,所谓集群是由一组交换机组成的一个集合,集群管理提供了一种自动收集设备拓扑的方法,并提供了集中、统一的维护管理通道。对外使用一个IP地址和一个管理接口,并提供对集群中每个成员管理和访问的能力。
一个集群中的交换机扮演4种角色:命令交换机、备份交换机、成员交换机和候选交换机。一个集群中仅有一台命令交换机,命令交换机可以自动收集设备拓扑,并建立集群,随后命令交换机提供一个对集群的管理通道,对成员交换机进行管理。集群中各交换机之间的拓扑结构可以为网格形、星形等。
1 集群管理的优点及其结构
目前与以太网交换机管理相关的主要技术有级联、堆叠和集群。级联为管理远程交换机提供基本保证,但不提供管理手段。堆叠是多台交换机的组合,通过交换机背板上的堆叠模块和堆叠电缆来实现。它虽提供了管理手段,但由于其基于硬件的设计思想,使被管理的交换机之间的距离受到限制。级联和堆叠均未从根本上解决交换机的远程管理问题,而只有集群技术能实现真正意义上的交换机远程管理功能。
集群技术出现之前,网络管理员需要在配线柜前登录每一台交换机或交换机堆叠的管理控制端口,设置IP地址和默认网关。当设备出现故障时,管理员需要检查每一台设备的运行状态,查找故障端口,网络规模越大,故障查找的时间就越长。对于具有集群能力的交换机组成的可管理设备群,只需要为其中的一台主交换机配置IP地址,便可监控和管理集群中的其他交换机。管理员可以通过主交换机及时发现集群中出现的故障,大大缩短了故障排除时间,提高了远程交换机管理和维护的效率。
集群中成员交换机不需要配置公网IP地址,节约了宝贵的IP地址资源。集群管理满足了网络运营商建立分布式架构、可运营可管理的动态网络的要求。由于所有的集群管理报文均通过以太网帧的格式封装,因此该技术可在IPv4、IPv6,或者两者并存的网络中运用,能够适应未来网络的发展。
目前常见的交换机管理方式有串口(Console)配置方式、远程(Telnet)配置方式、简单网络管理协议(SNMP)配置方式和网页(Web)管理方式。集群网管的体系结构如图1所示。交换机集群网管是通过分布式协议代理(Agent)实现对集群中交换机的统一管理,该网管存在多种管理形式,如命令行、Web和图形化网管等,其实质都是通过各自的网管通信协议与命令交换机的信息数据库(IDB)接口,由命令交换机将IDB管理命令封装到集群管理协议(CMP)报文中,发送给成员交换机,待成员交换机响应并发回应答后,再由各网管协议从命令交换机的IDB中获取成员信息。协议代理的功能是实现上层协议与CMP之间的有效沟通。它能区分不同的网管任务并分别进行处理,将网管的IDB命令封装到SNMP报文中,并通过进一步封装,以CMP报文形式向成员交换机发出管理命令;在接收到成员的应答报文后,该协议负责解析SNMP报文,并将应答数据返回给IDB。

图1 集群网管的体系结构
2 集群网络的自陷(trap)收集方法
在原有的CMP中,命令交换机通过集群拓扑协议(CTP)可以自动收集拓扑并建立集群,建立集群后,命令交换机通过CMP提供一个管理通道,管理员可以通过HTTP、Telnet和SNMP等方式对成员交换机进行管理。在通过命令交换机管理的过程中,如果各个成员交换机出现特殊情况,如端口的link up或link down、交换机温度过高和交换机风扇转速超过门限值等,交换机会发出trap告警,若仅在实现CMP的基础上要收集这些成员交换机上报的trap告警,则必须为每个成员交换机配置IP地址和收集trap信息的trap服务器(trap sever)地址,而这样就违背了集群技术的初始目的。
交换机集群管理的直接操作对象是命令交换机,若所有的成员交换机上报的trap告警能够全部上报到命令交换机,再由命令交换机上报到trap sever,那就只需要给命令交换机配置一个IP地址和trap sever地址,便可以收集到一个集群网络中所有的trap告警。基于这种思想,对成员交换机上报的trap告警必须以CMP提供的帧格式进行封装。
集群的拓扑发现和拓扑收集报文都承载于Ethernet2帧之上,CMP报文可以承载于Ethernet2帧和用户数据报协议(UDP)之上,但大部分报文都承载于Ethernet2,Ethernet2格式如图2所示,其中802.1Q标记域是为802.1Q标识虚拟局域网(VLAN)预留的4个字节,如果不使用802.1Q,则该域无意义。
图2 集群报文Ethernet2帧格式
CMP类型为0x88A7,报文类型取值可能有3种,如表1所示。
表1 集群管理报文类型

由于拓扑发现报文和拓扑收集报文是建立集群时由成员交换机和命令交换机交互的,所以对于成员交换机上报的trap必须封装在CMP报文内。对于集群的管理帧格式如图3所示。

图3 CMP报文帧格式
图中,版本是指CMP的版本号,设为0x01;O是命令标志位,取0表示该报文由命令交换机发送,取1表示该报文由成员交换机或候选交换机发送;校验和为报文的校验和,报文长度为整个报文的长度,单位为byte;设备MAC为发送报文的设备MAC地址;主命令字与子命令字组合表示报文的类型,分为主命令字和子命令字是为了使扩展性更强;参数长度为参数区的长度,参数区根据主命令字与子命令字的不同组合代表不同的意义,其大小不仅仅只限于图3中的参数区部分。对于成员交换机上报的trap的封装,主命令字与子命令字可以根据自己的定义去标识此参数区为trap的透传信息。参数区中所携带的信息为发送trap信息的设备MAC地址和trap的信息内容。trap收集流程如图4所示。

图4 trap收集流程图
具体处理过程如下:
(1) 为交换机和备份交换机指定IP地址和接收trap的网络管理站(NMS),对于原来是命令交换机现在不作为命令交换机的设备,其IP资源可以回收。
(2) 当成员交换机有告警发出时,从设备的trap处理模块中复制要发送的trap的内容到集群的trap处理模块,复制过程中应该不影响原处理流程,只在原处理流程之后复制trap包内容,达到灵活可控的目的。
(3) 将收集到的trap内容发给CMP trap处理模块之后,CMP trap模块根据当前自身角色来决定后续的处理流程。如果当前角色已经是命令交换机,则不必处理,因为当前设备的trap处理流程已经处理过该trap信息包。只有当前设备是成员交换机或者候选交换机的时候,才通过CMP将该trap信息包和成员自身唯一标识(比如成员MAC,但不仅限于MAC)封装成CMP trap报文送交给命令交换机处理。
(4) 命令交换机在接收到成员发送过来的CMP trap报文后,需要单独解析出成员的唯一标识和原trap信息包,然后分别作为绑定变量一起构造新的trap信息包,根据用户配置的trap server信息发送到指定的server。NMS收到命令交换机上报的集群trap报文后,只需根据trap报文结构解析出成员标识和trap信息包,就可获悉是集群网络中哪个成员发送了什么trap告警,完全可以做到实时性与准确性并重。
3 结束语
本文提出的这种收集处理集群网络中trap的方法具有易于实现、配置简单方便、功能受控灵活、可随时裁减和不需要占用过多IP资源的特点,且不受网络拓扑改变的影响,能够很好地帮助网络管理员实时监控集群网络中各设备的trap信息。