蔡 浩 代博兰 熊 驰
1 武汉铁路职业技术学院 武汉 430205
2 中国船舶重工集团公司第七二二研究所 武汉 430079
3 武汉船舶职业技术学院 武汉 430050
随着光纤到用户(FTTx)技术的发展和普及,我国互联网已经进入宽带网络时代。各种各样类型丰富的通信及媒体网关也逐步进入到万千公司、企业和家庭。这类家庭网关(简称网关)设备,一方面能够很好地适用于FTTx各类用户的各种业务场景,另一方面也给网关设备厂商和电信运营商的海量维护工作带来巨大挑战。通常,通信产品在布放到最终用户时或者在运维管理过程中,都会遇到设备软件需要进行固件升级的情况。对这类网关设备的固件进行升级的活动,需要设备厂商和电信运营商投入相当多的人力、物力、财力来进行升级、运维、保障。
本文基于IP组播技术提出一种仅通过比较简单的技术实现和辅助设备组网,就能同时完成多台网关设备的固件或者XML配置升级的方法,避免重复性的人力投入,提升运维管理工作效率。
在运维管理过程中,电信运营商基于终端综合管理系统(ITMS)或者网元管理系统(EMS)的网管系统,通过光线路终端 (OLT)设备完成其下挂网关设备的远程固件和XML配置升级操作。以家庭网关的固件升级场景为例,各网元组网关系如图1所示。
图1 运营商网关固件升级场景
但网关设备在某些情况下,不能够被网管系统管理到,比如EMS/ITMS网络条件不具备或者需进行网关设备批量替换的情况时。这类网关由于没有被网管系统注册认证过,无法通过图1所述方法实现其固件升级[1]。这时,电信运营商不得不组织人员,对待布放网关设备进行逐台设备手工固件升级。1台网关设备进行固件升级,软件升级过程大约需要耗时3分钟,操作人员的操作过程和升级后版本验证需2分钟。当网关设备数量多时,整个升级过程耗时长,人工成本较高。同时,人员由于重复劳动,难免出错且工作效率很低。
如果操作人员按图2所示对待升级网关设备进行组网,实现“一对多”的通信场景,就可以让一台固件升级服务器(简称服务器)同时处理多台网关设备的固件升级操作。整个固件升级过程的工作效率,就能够呈现数量级的提升;因此,通常会考虑采用广播或者组播技术来实现网关设备固件升级场景。广播或者组播技术具有如下优点。1)减少人力成本,减少服务器空载时间,提升工作效率。2)使“一对多”传输成为可能,实现固件升级的分布式应用。但是,在网关设备的固件升级过程中,既可能存在网关个体的升级进度差异,又可能存在部分网关无需升级或者被重复升级的情况。如图3广播技术固件升级场景所示,服务器和网关间无法避免大量不必要的网络流量,因此,在升级场景中采用广播技术时,难以控制网络流量和消除流量冗余情况。而组播技术的IGMP(Internet Group Management Protocol,互联网组管理协议)报文处理机制,可以很好地规避组播服务器和网关间的流量冗余情况。网关固件升级场景,可以看成是组播服务器向网关推送组播节目的过程,加入组播节目组的网关能够接收到服务器的组播服务。如图4组播技术固件升级场景所示,组播升级方式可以有效规避部分网关无需升级或者被重复升级的情况。
图2 网关升级场景
图3 广播技术固件升级场景
图4 组播技术固件升级场景
IP组播属于端到端的服务,它的寻址机制是借助组播地址(即IP组播地址),实现数据信息从组播源发送到一组接收者的过程。同时,还必须提供一种技术将IP组播地址映射为数据链路层的组播MAC地址。以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据包时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用组播MAC地址。互联网编号分配委员会(Internet Assigned Numbers Authority,IANA)规定(如图5所示),IPv4组播MAC地址的高24位为0x01005E,第25位为0,低23位为IPv4组播地址的低23位。IPv4组播地址与MAC地址的映射关系如图6所示。例如,组播IP地址224.8.8.8就映射为组播MAC地址01-00-5e-08-08-08[2]。
图5 IP地址到MAC地址的映射
IANA将D类地址空间分配给IPv4组播使用,范围从224.0.0.0到239.255.255.255,具体分类及其含义如表1所示[2]。
表1 IPv4 组播地址的范围及含义
通常,把工作在数据链路层的IP组播称为“二层组播”,相应的组播协议称为“二层组播协议”,包括IGMP Snooping、组播VLAN 等;把工作在网络层的IP组播称为“三层组播”,相应的组播协议称为“三层组播协议”,包括IGMP、PIM、MSDP、MBGP 等。
互联网组管理协议窥探(Internet Group Management Protocol Snooping,IGMP Snooping)是运行在二层设备上的组播约束机制,通过窥探和分析主机与三层组播路由器之间交互的IGMP报文来管理和控制组播组,可以有效抑制组播数据在二层网络中的扩散[2]。IGMP Snooping功能需要借助于二层交换机的组播MAC地址转发表机制。如图6所示,通常网关B会接收到网关A的成员关系报文(Membership Report),发现是相同的组播组地址,而自己产生抑制的情况。这时,交换机将抑制网关A的请求报文传送到网关B和组播服务器处(如图6步骤3所示)。从而有效避免交换机由于不能接收到网关B的请求报文,而不能建立正确的组播MAC地址转发表的情况。
图6 交换机IGMP Snooping抑制消息报告
IGMP Snooping协议工作原理如图7所示,交换机“窥探”网关与服务器之间的交互报文,跟踪组播组信息及申请的端口。当交换机“窥探”到网关朝服务器发出的成员关系报文时,交换机便把该端口加入组播MAC地址转发表中;当交换机“窥探”到网关离开(IGMP Leave)报文时,交换机便把该端口从表中删除[3]。服务器会定时发送通用查询(General Query)报文,交换机在收到Query报文后,如果在一定的时间段内没有收到网关的IGMP Report报文,便把该端口从表中删除。
图7 IGMP Snooping工作过程
IGMP是TCP/IP协议族中负责IP组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系[4-5];IGMP的TTL参数永远是1,保证了IGMP的使用范围;因此,IGMP消息不能被路由器转发,只能限制在本地网段内部。在网关的固件升级场景中,待接收固件升级的组播数据网关与服务器在同一个子网内,不涉及路由选择,无需考虑组播路由的相关协议。
目前,IGMP的版本有V1/V2/V3三种。如表2所示,需要在网关上开启一个组播流接收进程,支持V1/V2/V3版本通用报文的处理;同时,服务器端也需要支持组播服务器端的IGMP报文处理。网关上的组播接收进程用来接收、校验收到的IGMP报文和组播数据,并将组播数据组装成固件升级文件供固件升级进程处理。
表2 IGMP报文分类
在网关固件升级场景中,如果同一组网环境下,同一时间段内仅通过服务器对同一批网关进行同一固件版本的升级服务,则可以无需考虑在服务器端实现通用查询报文的相关功能。但通常情况下,组网环境中的交换机需要开启IGMP Snooping功能。如图6所示,在开启IGMP Snooping之后,交换机的MPU在收到网关的成员关系报文时,不会将报文转发到其他端口。其他端口下的网关由于无法收到本网段内此网关发出的成员关系报文,将不会自己产生消息报告抑制现象。这样,交换机能够学习到包含所有网关的完整组播MAC地址转发表。但由于交换机的IGMP Snooping抑制了消息报告,成员关系报文将无法发送到服务器。这样,服务器也将无法将用于固件升级的组播数据发送到相应的组播组子网内,实现组播升级功能。为此,可以在交换机上,将本设备上的所有路由器端口都记录在路由器端口列表中,并给这些路由器端口设置老化定时器。如果路由器端口老化定时器超时后,还没有收到IGMP通用查询报文,交换机就认为这个端口不再是一个路由器端口;因此,为保证连接服务器的交换机端口为路由器端口,需要保留服务器发送通用查询报文的功能。这样,交换机上与组播服务器连接的端口是路由器端口,可以转发网关的成员关系报文,不影响正常的网关加入组播升级服务过程。
在网关的固件升级场景中,服务器和网关间组成一个邻接网络,需要在服务器端实现组播源的UDP格式组播数据流播送功能及组播路由器的IGMP功能;在网关上实现组播主机的IGMP功能及组播数据与固件程序的接口功能。
服务器端只需维护一个邻接物理网络的组播组成员(网关)的列表和一个针对每个网关的定时器[6]。其IGMP功能是使用IGMP来了解它的物理网络上的组播升级组拥有哪些网关。当服务器接收到了来自网关的成员关系报文,它就会把该网关的成员报告加入到一个组播组成员列表中,并且会为其成员关系设一个值为组成员生存周期的定时器,并通知组播源模块开始播送UDP格式的组播数据流。其它网关的重复报告会刷新该组播成员关系定时器,该服务器会依据组播成员关系定时器,周期性地在这个邻接网络上发出通用查询报文,请求得到网关的成员关系信息。
如图8所示,网关端需要实现组播主机的IGMP功能。当网关通过发送成员关系报文,加入到一个组播组(地址是224.8.8.8)后,它就能够接收服务器发送过来的组播升级UDP数据包。由UDP协议栈保证收到的每个组播升级包的数据有效性,由组播数据与固件程序的接口功能保证整个升级数据的完整性。当升级数据验证完整性后,其IGMP功能模块发送离开报文,网关退出固件组播升级模式。当固件升级完成后,网关通过点亮相关LED灯,指示升级人员为此台网关完成相应的升级任务。
图8 固件服务器端功能模块
如图9所示,按RFC2236定义说明[7-9],通常情况下组播主机的IGMP处理流程包含以下三个状态,即“无成员”状态、“滞留成员”状态和“空闲成员”状态。当一个组播主机(网关)加入了一个组播组,会立即发送针对此组播组的一个成员关系报文;当一个主机(网关)正常退出一个组播组时,它会发送一条离开报文给所有组播路由器组播组(地址为224.0.0.2);当一个主机(网关)接收到了通用查询报文或者特定组的查询(Group-Specific Query)报文后[7-8],该主机刷新查询应答定时器,并在查询报文中所设定的最大响应时间(Max Response Time)内发送一个成员关系报文到该组播组中,其IP中TTL的值为1。组播服务器接收到成员关系报文后,将继续维护该升级组播组的成员关系。
本方案如图10所示,将RFC2236定义的组播主机状态机进行了简化,应用到网关端的IGMP处理流程中。网关的状态机由“无成员”状态和“有成员”状态两个状态组成。网关端具体的IGMP行为由图10所示的IGMP报文状态机定义。网关上,通过实现Query Timer和Report Timer这两个定时器及其超时处理,来维护其与服务器的IGMP协议通信。Report Timer定时器用来实现网关在组播组内作为组播成员加入和离开场景的功能;Query Timer定时器用来应答组播服务器的查询报文,并在查询报文的Max Response Time内应答一个成员关系报文,让组播服务器维持组播升级组播组关系。
图9 组播主机的IGMP状态机
图10 网关的IGMP状态机
综上所述,网关和服务器间的组网关系非常简单,仅通过二层交换机连接待升级的网关和服务器即可。以Dlink的二层交换机为例,组网结构如图11所示。
图11 组网结构图
网关组播升级场景,需要在此交换机上进行下列配置。1)创建VLAN;2)添加端口到VLAN;3)创建VLAN接口IP地址;4)IGMP Snooping使能。
Dlink交换机的参考配置如下。1)删除默认VLAN default包含的端口1-28,config vlan default delete 1-28。2)创建VLAN名为vlan10,并标记VID为10,create vlan v10 tag 10。3)把端口1-26添加到VLAN10,config vlan v10 add untagged 1-26。4)创建虚拟的接口if10给VLAN10的VLAN子网,并且指定该接口的IP为192.168.1.254/24,创建后enable激活该接口,create ipif if10 192.168.1.254/24 v10 state enable。5)配置IGMP Snooping,config igmp all version 2 state enable//配置IGMP版本为2,enable igmp_snooping,config igmp_snooping all state enable。
服务器端需要开启固件升级软件,并进行如下配置操作。
1)选择服务器网卡。如果组播服务器是多网卡,那么需要选择跟网关是同一个网段的网卡,如图12示例选取192.168.1.2网段的网卡,设置组播组IP地址为224.8.8.8。2)选择需要升级的版本,如图13所示。3)组播升级,如图14所示。4)家庭网关端组播升级结果判断,如表3所示[10-11]。5)整个组播固件升级完成,停止组播升级,按“Stop”按钮。
本方案在江苏省移动运营商的网关固件升级场景下进行验证,升级效率参考图15所示。测试场景的硬件设备,由1 200台待升级网关,1台2层交换机和1台PC机组成。按通常人工升级方式,需要两名操作人员,至少3天,且每天连续工作10小时以上才能够完成这些网关设备的固件升级工作;采用组播升级方式,两名操作人员仅需要7小时就完成任务。而且采用组播升级方式,可保证在网关固件升级过程中,不会人为引入固件升级误操作。
图12 固件升级软件配置界面
图13 选择需要固件升级的软件版本
图14 固件升级过程
表3 网关升级过程LED指示灯定义表
图15 网关固件升级效率提升分析图
目前,运营商的网关设备固件升级主要借助2种方式,即EMS/ITMS远程升级和人工升级。如表4所示,组播升级方式为运营商在无网管网络环境或者网管网络暂时不具备的情况下,进行网关固件升级场景提供了更有效的技术手段。由表4可知,组播升级网关固件方式最适合小批量网关待升级,且无法满足网关固件升级的网元组网条件的场景。
表4 网关升级场景分析
组播技术涵盖了地址方案、成员管理、路由和安全等各个方面,其中组播地址的分配方式、域间组播路由以及组播安全等仍是目前研究的热点。从目前的情况看,组成员管理普遍采用IGMP v2版本。本文仅尝试了组播技术成员管理在局域网组网条件下的技术修改和功能实现,后续可以结合FTTx和光纤通信技术,探索组播技术中相关域间组播路由技术方向,尝试提出更多、更有效的运营商远程管理海量网关设备的方式和方法,为提升运营商的运维管理应用体验,做更多有益的尝试。
参考文献
[1]中国电信.中国电信家庭网关与终端综合管理系统接口技术要求[S].2012,9:6-9
[2] 尹海春.二层交换机上IGMP Snooping协议的实现研究[D].电子科技大学,2004:1-13
[3] 何英,陆正福,方刚.二层交换机中IGMP/MLD探听机制的原理分析[J].云南民族大学学报:自然科学版,2005(1):78-82
[4]RFC 4286,Multicast Router Discovery[S].2005:1-18
[5] 柏勇,何春,王赏.基于IP组播的MPLS组播架构[J].通信技术,2010(10):62-64
[6] 梅瑜华,甘朝钦,马雪娇.EPON系统中IGMP的优化实现[J].光通信技术.2013(2):15-17
[7]RFC 2236,Internet Group Management Protocol, Version 2[S].1997:1-16
[8]RFC 3376,Internet Group Management Protocol, Version 3[S].2002:1-53
[9]RFC 1112,Host Extensions for IP Multicasting[S].1989:1-17
[10]中国电信.中国电信“我的e家”技术规范-e家终端(e8)[S].2009:46
[11]中国电信.中国电信“我的e家”技术规范-e家终端与终端综合管理系统接口[S].2009:6-9