组播在IPTV中的设计及配置
2020-12-30山东崔冬梅刘伟
■ 山东 崔冬梅 刘伟
整个组播传输的网络拓扑比较简单,总平台部署在省公司,通过省干OTN环网将组播及ICC单播信号通过不同通道分别传输至地市,在本地部署了DCM将省公司传输的复合流转成单节目流,同时DCM也起到一个信号隔离的作用。目前DCM输出200多套高标清节目及9套4K节目源,总带宽流量约2GB,后期可根据用户数据分析将热门频道及4K节目使用组播传输,其余的使用单播传输。
DCM输出组播信号进汇聚组播交换机,再通过市县OTN环网传输至各县公司,每个县公司都部署了一台组播交换机,OLT单独一路上行至县组播交换机,与互联网业务分开上行,本地接入网使用pon接入,本地频道在县公司组播交换机上插入。在组播调试的过程中,我们先期使用了二层组播进行传输,后又改成较为稳定的三层组播,以下是调试过程及遇到问题后的处理方法。
DCM的配置
DCM我们选用的是Cisco的设备,DCM的配置相对简单但比较繁琐,需要仔细,主要配置三个方面的内容:一是IP设置,即设置上下游设备的互联地址;二是收流配置,设置所有的组播源地址,在configuration里的igmp里进行设置,IGMP配置完成,选择Service选项,可以查看收到的相应TS流;三是节目输出配置,在Service里选择左边相应输入节目左键拖到相应输出Port口,双击相应TS流,进入组播地址配置,包括输出组播地址及端口号。通过以上三步,即可完成DCM的基本配置。
交换机的配置
1.交换机二层组播的配置
DCM输出的信号直接使用二层组播传输至组播交换机及OLT,这种方式对于交换机及OLT的配置较为简单,交换机及OLT上启用IGMP协议,具体的配置如下:
vlan batch 350
创建组播VLAN
multicast routingenable
全局开启组播
igmp-snooping enable
二层组播使能
igmp-snooping sendquery enable
配置快速响应二层网络拓扑变化功能
acl number 2000
创建名为2000的ACL,232的组播组地址默认是SSM指定源,该ACL是指定一个空的范围为SSM范围,即所有组播组都不属于SSM范围,此时交换机可以正常把232的组播组当做ASM任意源来使用。
vlan 350
igmp-snooping enable
组播VLAN下开启igmpsnooping
igmp-snooping ssmpolicy 2000
VLAN下应用ACL
igmp-snooping querier enable
使能IGMP Snooping查询器功能
multicast-vlan enable
使能组播VLAN功能
interface XGigabitEthernet0/0/9
此接口为县区分公司互联口,接口为trunk模式,透传组播VLAN350
undo negotiation auto
关闭端口自适应
description chengwang-huaweiolt
端口添加描述
port link-type trunk
端口状态为trunk
port trunk allow-pass vlan 350
端口允许VLAN350通过
interface XGigabitEthernet0/0/22
22口与24口为DCM互联端口
port media type copper
undo negotiation auto
port link-type access
port default vlan 350
igmp-snooping staticrouter-port vlan 350
配置接口为静态路由器端口,目的是使接口长期稳定的转发IGMP Report/Leave报文到上游IGMP查询器。
以下为县区组播交换机的配置
vlan batch 350
创建组播VLAN
multicast routingenable
全局开启组播
igmp-snooping enable
二层组播使能
acl number 2100
创建名为2100的ACL
vlan 350
multicast dropunknown
组播VLAN下设置未知组播丢弃
igmp-snooping enable
开启组播snooping功能
igmp-snooping ssmpolicy 2100
在VLAN下应用访问控制列表
interface XGigabitEth ernet0/0/1
进入端口设置
port link-type trunk
端口模式为trunk
undo port trunk allow-pass vlan 1
不允许VLAN1通过
port trunk allow-pass vlan 350
端口透传VLAN350
二层组播配置上比较简单,但是在我们配置阶段,因为缺少那条空ACL,导致交换机上所有的端口流量都与上行口的流量一致,即使下层的OLT没有组播终端的情况也是一样。
2.交换机三层组播的配置
三层组播的思路是市组播交换机与DCM之间定义接口地址,市县组播交换机之间走PIM,县公司组播交换机下联走IGMP。配置如下:
vlan batch 10 to 11 101 to 112
创建VLAN,其中VLAN10和11为交换机与DCM互联VLAN吗101-112为与县公司互联VLAN
multicast routingenable
全局开启组播路由
multicast loadsplitting source-group
组播组负载分担
acl number 2100
定义空ACL,可实现二层组播按需拉流
interface Vlanif1
将VLAN1关闭,避免环路及广播风暴
interface Vlanif10
给VLAN10定义地址
ip address 150.*.*.5 255.255.248.0
DCM输出口1地址为150.*.*.1
pim sm
开启组播路由协议PIM
igmp enable
开启IGMP协议,方便使用VLC拉流
interface Vlanif11
给VLAN11定义地址
ip address 192.*.*.2 255.255.255.0
DCM输出口3地址为192.*.*.1
pim sm
开启组播路由协议PIM
igmp enable
开启IGMP协议,方便使用VLC拉流
interface Vlanif101
以下为县公司互联VLAN定义互联地址
ip address 10.*.*.1 255.255.255.248
为VLAN101定义IP地址
pim sm
开启组播路由协议PIM
ospf network-type p2p
定义OSPF工作模式为P2P,便于快速收敛
interface Eth-Trunk3
为县区定义trunk组
description yanzhou
为trunk组添加描述
port link-type access
定义trunk组模式为access
port default vlan 103
定义accessVLAN
interface XGigabitEth ernet0/0/10
将端口加入trunk组
undo negotiation auto
description yanzhou
eth-trunk 3
interface LoopBack1
设置loopback地址
ip address *.*.*.*255.255.255.255
ospf 1 router-id 10.*.*.1
设置OSPF
default-routeadvertise always
发布一条0.0.0.0/0.0.0.0的路由到域内其他路由器。其他路由器学习到这条默认路由后,下一跳就是指向发布这条路由的路由器。
area 0.0.0.0
定义域
network *.*.*.*0.0.0.0
将loopback地址发布
network 10.*.*.0 0.0.0.7
将县公司互联地址段发布
network 150.*.*.0 0.0.15.255
将DCM互联的两个网段发布
network 192.*.*.0 0.0.0.255
Pim
全局PIM下定义汇聚组播源
static-rp 1.1.1.1
定义自己为静态RP
ssm-policy 2100
PIM下使能ACL
县区组播交换机配置:
vlan batch 149 350 101
350是组播VLAN,101是与市公司互联VLAN,149是县区频道接入VLAN
multicast routingenable
全局开启组播路由
multicast loadsplitting source
组播负载分担
igmp-snooping enable
全局开启igmp
acl number 2100
定义空ACL
interface Vlanif149
定义县区频道接入VLAN
ip address 192.168.*.1 255.255.255.0
给VLAN定义地址
pim sm
开启PIM
igmp enable
开启igmp
vlan 350
定义组播vlan
igmp-snooping enable
在vlan下开启igmp
igmp-snooping ssmpolicy 2100
在vlan下绑定ACL
vlan 101
定义与市公司互联vlan
description shi_zubo
添加vlan描述
interface Vlanif350
定义vlan350的IP地址,以保证VLAN处于激活状态
ip address 192.168.*.1 255.255.255.0
igmp enable
开启IGMP
interface Vlanif101
ip address 10.*.*.2 255.255.255.248
定义互联地址
pim sm
开启三层组播协议PIM
ospf network-type p2p
定义OSPF模式为P2P
interface eth-trunk1
定义上联trunk组为access
description shi_zubo_9kou
port link-type access
port default vlan 101
interface GigabitEthe rnet0/0/1
将端口加入trunk组
Eth-trunk1
interface XGigabitEth ernet0/0/2 定义下联口模式
port link-type access
port default vlan 350
interface LoopBack1
设置loopback地址
ip address 2.2.2.2 255.255.255.255
pim sm
开启pim
igmp enable
在loopback下使能igmp
igmp static-group 226.2.7.1 inc-step-mask 0.0.0.1 number 350
定义组播源输出地址组
igmp static-group 232.100.0.1 inc-stepmask 0.0.0.1 number 200
ospf 1 router-id 2.2.2.2
定义OSPF
area 0.0.0.0
network *.*.*.*0.0.0.0
发布loopback地址
network 10.*.*.0 0.0.0.7
发布互联地址段
network 192.168.*.0 0.0.0.255
发布本地频道网段,以便市公司取县区频道组播流
Pim
进入全局PIM下
static-rp 1.1.1.1
定义静态组播汇聚点为市公司组播交换机
ssm-policy 2100
绑定ACL
接入网OLT上配置二层组播即可,因厂家不同,配置方法也不同,但是大同小异,这里就不再一一介绍。
故障排查及后期网络优化
DCM、交换机及OLT通过以上的配置后,全市的IPTV组播框架基本搭建起来了,但是在配置及使用过程中,也出现配置失败及直播卡顿的问题,目前我们的IPTV还没有大规模铺开,只是在部分OLT上下发了组播进行测试,在测试过程中出现的故障大概总结了以下几点:
1.部分节目卡顿
在IPTV运行过程中,出现过很多节目都卡顿的现象,排查思路一是查看交换机端口流量是否过高,二是使用笔记本在不同的节点进行拉流,最后故障点是DCM输出口流量溢出所致,每个DCM的输出口流量为1G,当时没有做好规划,加的组播节目过多,删除部分频道后正常。
2.组播流下发失败
组播流下发失败一般也是自上而下逐级排查,排查交换机配置时首先需要排查单播的配置,因为组播是建立在单播之上的,先排查互联地址及组播VLAN的MAC地址学习情况,再通过dis ospf peer查看ospf邻居关系建立情况,以上单播情况都正常时,最后再通过dis pim routing table来查看组播路由地址表,只要形成了(S,G)表项,说明组播流在组播交换机下发正常,需要进一步排查OLT的配置。只有(*,G)表项说明设备只收到组播组请求报文,没有收到源端的报文,需进一步排查组播源。
笔者单位使用的OLT大部分是瑞斯康达的EPON,基本上都支持组播传输,在使用过程中出现过不少组播下发不成功的情况,如主控硬件版本太老需更换,上联口从千兆改万兆重启才能生效,组播流几分钟就中断倒换主控可解决,OLT与其他品牌ONU兼容问题以及配置问题等等,目前这些问题也在逐一解决中。
3.网管及后期设备备份优化
网络虽然已初步建立,因前期用户不多,安全播出压力不大,但是随着用户的增多,如何使网络更加稳定可靠是网络管理最重要的事情,网络优化及管理主要从设备备份及统一网管两个方面入手,核心设备如组播交换机及DCM目前都是单台设备在运行,存在单点故障隐患,下一步需增加备份。设备状态及告警信息网管我们主要是从两个途径进行:一是第三方统一网管软件,主要是监控设备通断及端口利用率,并可投入值班机房大屏进行实时监控;二是建立了日志服务器,将交换机的告警信息细化,如ARP攻击、地址冲突等。
通过配置交换机的二层组播及三层组播,我们的技术人员掌握了组播的一些基本理论知识,下一步的工作除了对设备进行合理网管、提高技术人员快速定位故障的能力外,就是如何优化我们的配置,扬长避短,充分发挥组播在IPTV中的优势作用。