某型设备接收组播数据异常现象研究
2021-10-21勇红亮
勇红亮
(中国卫星海上测控部 江苏 江阴 214431)
1 引言
2021年后,我国空间站建设及载人航天任务进入高密度发射阶段。在任务中,需要传输相关实时数据。我部与中心以及飞行器之间需要传输相关数据信息以完成相关任务的要求。我部在交换机上接入某型设备用于数据通道的检查,接收其他设备处理后环回的组播数据,然后经某型设备解码后送监视设备用于监视监听。
2 组播基本概念
组播可分为ASM(任意源组播)和SSM(指定源组播)[1],相对于任意源组播,指定源组播的安全性更高。目前,我部使用的数据为指定源组播,为使组播数据能够在网络中正常传输,需要在数据途径各网络设备上开启组播功能(multicast routing-enable),网络设备的互联接口开启pim sm功能,用户接收主机的交换机端口下开启igmp功能。
2.1 组播静态引入
在交换机接入端接入组播用户,默认情况下为动态端口,存在老化时间。如果某终端需要接收固定组播组的数据,可以在接口下配置组播静态引入,这样就不存在端口老化的问题。
2.2 IGMP Snooping基本原理
当交换机收到组播报文后,由于组播报文的目的IP地址为组播组IP,交换机只能学习单播数据的MAC地址,而学习不到组播组这一类MAC表项,所以会在同一VLAN内所有接口进行广播,同一VLAN组播成员及非成员都能收到组播报文,这样就会造成交换机资源的浪费和无关用户网卡的处理负担。IGMP Snooping对路由设备和终端之间交互的IGMP协议报文进行侦听,建立起端口和组播MAC地址的映射关系,实现按需转发[2]。为了节省交换机资源,经常需要开启IGMP-Snooping功能。
2.3 IGMP SSM-Mapping基本原理
SSM可以指定组播源,安全性更高,组播组管理协议只有IGMPv3版本协议支持SSM,如果用户主机只能运行IGMPv1/IGMPv2,则不能使用指定源组播[3]。这时,为了使其能够使用SSM服务,则需要借助SSM-Mapping功能,从而实现组播(*,G)表项向(S,G)表项的转变。
3 设备数据收发异常分析
3.1 组播静态引入方法
3.1.1 数据分析
通过使用wireshark软件在交换机镜像口抓包分析,发现发送的RTP数据存在异常,经过排查发现RTP数据包的包头格式以及发送的包频与规定配置不一致,协调修改相关参数后,某型设备仍然接收不到组播数据,说明还存在其他原因导致数据接收异常。
通过查阅相关资料及wireshark抓包分析,发现某型设备不支持IGMPv3协议,发送的组播加入请求为IGMPv2,由于发送的组播数据为指定源组播,用户接收侧只有IGMPv3版本协议支持指定源组播,所以不支持IGMPv3版本的主机无法使用指定源组播服务。见图1。
图1 组播加入请求
3.1.2 IGMP-Snooping功能研究
目前,在接入交换机上设备VLANIF内配置了组播组静态引入。关闭IGMP-Snooping,设备能正常接收数据,开启IGMP-Snooping后,导致设备接收不到组播数据,原理分析如下。
关闭IGMP-Snooping时,由于设备配置组播组静态引入,所以无论交换机下是否有接收用户,交换机都默认有组播接收成员,能够建立正确的组播转发表项,并向所有VLAN的端口转发组播数据。
开启IGMP-Snooping时,该功能侦听组播用户与上游交换机之间的IGMP报文从而建立二层组播转发表,控制组播报文只转发给加入组播组的用户,非组播组用户接收不到数据[4]。如图2所示,由于某型设备不支持IGMPv3协议,发送的加入请求为IGMPv2,交换机直接忽略该请求报文。最终并没有有效的igmp报文,查看组播用户可以看出IGMP group记录里没有某型设备的IP地址(10.1.1.2),结果见图3,从而不会向相应设备上转发组播数据。
图2 点播请求被忽略
图3 组播用户表项
从图4可以看出,开启组播组静态引入,交换机匹配到的静态引入组播数据数量一直在增加,但转发的组播数据数量没有变化,说明IGMP-Snooping在控制组播转发的优先级上高于组播组静态引入,从而导致组播数据无法正常转发。
图4 组播转发表项
3.2 SSM-Mapping方法
利用eNSP平台进行仿真,使用S5700交换机,VLANIF下启用IGMPv3协议[5],并且在信宿的VLAN下和全局都启用了IGMP-Snooping enable,接收终端以IGMPv2通告加入指定源组播组进行测试。
3.2.1 测试验证
在没有启用ssm-mapping的情况下,终端接收不到组播信息,点播请求被直接忽略,现象同图2。在启用IGMP-Snooping的情况下,接受不到组播数据。关闭IGMP-Snooping功能,可以正常接收组播数据。
3.2.2 IGMP-Snooping功能的影响
经测试,必须关闭信宿所在vlan的IGMP-Snooping,否则信宿收不到任何信息;但信宿不能和信源在同一个VLAN内,否则也点播不到信息。所以,信宿和信源在不同VLAN中时,必须在信宿VLANIF上执行IGMP ssm-mapping enable,并关闭IGMP-Snooping,否则无法收到信息。
3.3 总结
个人认为这是交换机软件存在的问题,在IGMPv3通告到指定源组播或IGMPv2通告到任意源组播条件下,此时配置IGMP-Snooping才会正常生效,其他条件下均不可以正常传输数据。在IGMPv2通告到指定源条件下配置IGMP-Snooping,此时不能建立正确的组播路由表项,也不能建立正确的IGMP group表项,数据无法正常传输。
4 优化及建议
通过测试验证,在交换机上使用组播组静态引入或者使用IGMP SSM-Mapping都可以使设备正常接收组播数据,话音及图像能够正常解析,监控设备上观察各项指标均正常。但是该方法需要关闭交换机的IGMP-Snooping功能,所以存在的弊端是交换机下相同VLAN下的用户都会接收到同样的数据,导致网络资源的浪费以及非接收设备的网卡处理负担[6]。
5 结语
本文完成了对某型设备及交换机转发机制的分析与研究,后续空间站建设及载人航天任务密集,某型设备的使用频率也会增加,需要全方位掌握设备的运行原理及设备性能,以保障设备能够正确稳定的传输数据,通过本文的研究使岗位人员更准确、清晰地了解数据的转发,为网络及各设备的稳定运行提供了可靠保障。经过实验验证,证明了相关配置的制约性,具有较高的推广使用价值[7]。
本文只针对无法使用IGMPv3的终端进行了研究,后续可以在组播各项配置生效的优先级及制约性方面进行进一步的深入研究。