我们有一个局域网,其中有 2 个 Cisco 4500 作为运行 HSRP 的网关。我们使用 Exterity HD IP 编码器来获取高清视频并将其作为多播 UDP 流(可在 VLC 中播放)放到网络上。
我在 Linux 上安装了相当广泛的 Nagios,并想找到某种方法来检查:
- 网络上有组播流。
- 多播流没有冻结,因此请检查音频或......
- 确认流的源 IP 与我们期望的多播地址相匹配。
1和3也许可以合并。
我迄今为止的方法:
在 Cisco HSRP 网关 IP 上使用 SNMP:Nagios 发送 2 个参数,主机的 IP(应该是多播的源),即 172.18.25.101 第二个参数是流的 IP ($mroute),即 239.101.0.1
snmpwalk -v 2c -c 更改了 172.30.0.1 1.3.6.1.3.59.1.1.2.1.4 | grep $mroute | sed -e 's/.*IpAddress: //'
稍后我会判断几个 if,如果流在网络上,我所侦测的多播是否与主机 ip 匹配,如果不匹配,它会告诉我它来自哪里。然后退出 nagios 时会正确。
或者说我是这样认为的。一般来说,它按预期工作,但对于某些主机,源 IP 随机地不是预期的,而是不同的,手动检查时它显然不正确。我想可能是拓扑结构发生了变化或其他原因(我们的网络很大),并且从另一个网关看到它... 抱歉,我不擅长多播。
我基本被上面的部分难住了。
然后我想检查视频/音频是否没有冻结,我认为另一种检查方法是使用 mplayer 将 2 秒钟的流转储到一个文件中,然后根据文件的大小进行检查。如果文件非常小,则可能是冻结了。但是流仍会发送图像,因此请在更长的时间内(例如 10 秒内)进行音频检查。我对此思考得越多,就越觉得“一定有更好的方法”……
如今 IPTV 非常流行,人们如何监控多播流。
非常感谢。
答案1
您是否考虑过使用 IP-MROUTE-STD-MIB 而不是 IGMP MIB?您可以根据每个多路由获取统计数据 - 这将使您更好地了解源。此 MIB 还有一组 Cisco 扩展,可以提供更多平台特定的信息。您可能要查找的一项是多路由路径上各个路由器上的计数器是否存在显著差异。可能会出现一些差异,但这是一个跟踪阈值的好地方。
对于跟踪流冻结,有一个非常简单的答案:ip 多播心跳(http://www.cisco.com/en/US/docs/ios/12_2/ip/configuration/guide/1cfmulti.html#wp1003131)。您可以配置给定路由器,如果在配置的多播组中 10 秒内未看到任何数据包,则抛出 SNMP 陷阱。
还有一项名为 mrm(多播路由监视器)的功能,可以从 Cisco CLI 调用来设置和跟踪合成多播组。您可能希望使用 EEM 或类似程序定期调用它,然后在其行为不正常时抛出陷阱或系统日志。这也是一个很好的故障排除工具。
此外,正如您(应该)监控 IGP 邻接的变化一样,您也应该跟踪 PIM。邻居状态变化、选举等事件可能表明树不稳定。这不一定在所有情况下都是大问题,但在稳定的网络上通常应该很安静。
我不确定您在 4500 中运行的是哪种监控器,但一些较新的型号支持多播的 netflow。这将为您提供更细致、更全面的多播性能视图,并且自然有助于统计趋势、存储等。这绝对是一种不错的方法。
我希望这有帮助-