组网及说明
组网:组播源--- S12508 ---华为S9300 ---- 华为MA5680T ---- 中兴ONU ---- IPTV机顶盒
问题描述
2台不同厂家IPTV机顶盒持续播放CCTV1频道(组播组IP:239.253.240.77),多次出现1-2秒卡顿情况,并且IPTV质差率上升
过程分析
1、检查S9300、PON设备上下行口端口及对端设备端口收发光功率正常,,端口带宽利用率不高,无误码增长、无discard报文增长。且S12508 ping 机顶盒丢包率很小,基本排除链路质量问题。
2、检查S9300 cpu防护对IGMP报文的统计,由于设置IGMP阀值较高,dis cpu-defend statistic 查看cpcar无丢弃;检查OLT对于组播报文抑制,设置阀值较大,排除IGMP交互报文中途丢弃的可能。
3、查看二层组播表项有无异常:
display igmp-snooping
port-info vlan 80 group-address 239.253.240.77 verbose 查看组播组的成员端口信息:
The port information of Group
239.253.240.77 on VLAN 80:
Time of this group has been up : 10w:5d
The
port information of (0.0.0.0, 239.253.240.77):
Time of this source has been up : 10w:5d
Port Table on this source(0.0.0.0):
No.1
Port name
: Eth-Trunk3
Time of
this port has been up as a host-port : 01:00:48
Remain time of port expire as dynamic host-port : 00:03:48
Host-port flags : Dynamic
发现Time of this
port has been up as a host-port(该接口成为一个成员端口的时间)时间较短,表示该组播表项老化
重新建立过(正常这个时间应较长)。
4、组播表项老化原因分析:
组播路由器S12508发送IGMP Query后,在S9300 IGMP二层组播表项默认老化时间内无主机回应IGMP Report,S9300便会删除该成员端口表项。
(1)从用户侧发送IGMP Report角度分析:
除非组播路由器S12508查询该OLT下当时无用户看CCTV1频道 或
无新用户开始观看CCTV1频道,该场景才会出现,而我们测试环境下有多台不同厂家机顶盒在持续观看CCTV1节目,故机顶盒或OLT不回应IGMP Report可能性较小。
(2)从组播路由器侧发送IGMP Query的角度分析:
S9300上debugging igmp-snooping
query,查看目的IP地址为224.0.0.1的igmp query信息出现的频率,看到2次debug信息之间的时间间隔为125秒,说明S12508 默认查询间隔为125S。
S9300默认查询间隔为60秒,协议规定的表项老化时间
= 健壮系数 x 查询间隔 + 最大响应时间,即表项老化时间为2 * 60 + 10 = 130秒。
IGMP协议里面允许终端回应IGMP
Report时存在一个0~10秒的最大响应时间,华为OLT MA5680T通用组查询(IGMP Query )最大响应时间:10s,即OLT在收到一条查询消息后,会在0~最大响应时间 范围内随机选取一个数值,在这个时间范围内回应IGMP Report报文。
S12508查询间隔为125秒时,此时S9300组播表项必须要在5秒内收到下面IGMP proxy(OLT)回应的report报文,否则超过130S就会出现组播表项老化,所以当IGMP proxy OLT回应的report报文在5~10秒之间,就会出现断流黑屏,并且这个现象是随机的。
解决方法
了解不同产品关于IGMP报文各类处理特性后,要解决该问题,我们有如下两种处理方案:
(1)调小S12508默认查询间隔,比如改为和S9300一致的60S。
(2)调大S9300 默认查询间隔,比如改为125S,这样老化时间变为 2*125+10=260S
将测试环境所在的S9300 默认查询间隔改为125S,观察IPTV机顶盒未再出现直播卡顿现象。
vlan 80
igmp-snooping query-interval 125