天天看点

IP 视频会议中的组播实现

清华同方应用信息系统本部 刘松林

  近年来,基于IP的视频会议在交通等行业广泛得到应用,同传统的H.323视频会议系统(由MCU中心控制)相比,IP的视频会议具有下面优点:

  保证音视频流占用网络通道更为合理、有效。

  网络资源充分利用,可使用高清晰度占用带宽资源较大的MPEG2编解码标准,展现优质图像和动感细节。

  系统设计与图像标准无关,可兼容MPEG-4或其它随时出现的新编解码器产品。

  由于不存在音视频流交换的瓶颈,控制点数不受限制,使得造价较低,系统规模扩容能力强。

  IP视频会议系统是通过组播实现的,所以在IP视频会议系统中,组播的合理设计是非常关键的,本人结合工程实例,对基于Cisco网络设备的组播实现做一些介绍:

  一、网络拓扑结构简介

  网络的结构分三层结构:由核心层、汇聚层和接入层组成。

  核心层由5个核心节点(每个核心节点配置一台 路由交换机CiscoCatalyst6509)构成,通过千兆光纤,以不完全网状结构互连。

  汇聚层由53个节点(每个节点配置一台路由交换机CiscoCatalyst4006),根据地理位置的不同,通过千兆光纤,分别与5个核心节点以星型方式连接。

  接入层根据具体单位信息点的数量和业务需求,分别采用CiscoCatalyst3524、3548等,以百兆或千兆光纤连接到汇聚层。

  二、组播地址的规划

  IPMulticast地址为D类地址,地址范围224.0.0.0-239.255.255.255,并将D类地址划分为本地链接组播地址、预留组播地址、管理权限组播地址

  本地链接地址:224.0.0.0~224.0.0.255,用于 局域网,路由器不转发属于此范围的IP包,本地链接地址分配如下:

  224.0.0.1–在本地子网的所有系统

  224.0.0.2–在本地子网的所有路由器

  224.0.0.5–OSPF 路由器

  224.0.0.6–OSPF 指定路由器

  224.0.0.9–RIPv2 路由器

  224.0.0.10–IGRP 路由器

  224.0.0.13–PIMv2 路由器

  224.0.0.22–IGMPv3

  预留组播地址:224.0.1.0~238.255.255.255,用于全球范围或网络 协议,网络范围地址(224.0.1.0–224.0.1.255)分配如下:

  224.0.1.39–Cisco-RP-Announce (Auto-RP)

  224.0.1.40–Cisco-RP-Discovery (Auto-RP)

  管理权限地址:239.0.0.0~239.255.255.255,组织内部使用,用于限制组播范围;

  本工程中组播地址采用了管理权限地址,在管理权限地址范围内,定义了本组织(Organization-local)及本场所(Site-local)的组播地址。

  本组织的地址范围:239.8.0.0–239.8.126.255– 全局应用

  本场所的地址范围:239.8.128.0–239.8.255.255– 本地应用

  三、组播路由的选择

  组播路由我们选择了协议无关组播(ProtocolIndependentMulticast:PIM),顾名思义,PIM不依赖于某一特定单播 路由协议,它可利用各种单播路由协议建立的单播路由表完成反向路径转发RPF(Reversepath forwarding)检查功能,而不是维护一个分离的组播路由表实现组播转发。由于PIM无需收发组播路由更新,所以与其它组播协议相比,PIM开销降低了许多。PIM的设计出发点是在Internet范围内同时支持最短路径树SPT和共享树,并使两者之间灵活转换,因而集中了它们的优点提高了组播效率。PIM定义了两种模式:密集模式(Dense-Mode)和稀疏模式(Sparse-Mode)

  1.密集模式(Dense-Mode)

  PIM-DM密集模式协议,采用了“扩散/剪枝”机制。同时,假定带宽不受限制,每个路由器都想接收组播数据包。PIM-DM采用反向路径转发RPF动态建立最短路径树SPT。

  该模式适合于下述几种情况:规模较小的高速网络;组播源和接收者比较靠近,发送者少,接收者多;组播数据流比较大且比较稳定。

  2.稀疏模式(Sparse-Mode)

  PIM-SM与基于“扩散/剪枝”模型的根本差别在于PIM-SM是基于显式加入模型,即接收者向集合点RP发送加入消息,而路由器只在已加入某个组播组输出接口上转发那个组播组的数据包。

  PIM-SM采用共享树进行组播数据包转发。每一个组有一个集合点(RendezvousPoint:RP),组播源沿最短路径向RP发送数据,再由RP沿最短路径将数据发送到各个接收端。PIM-SM主要优势之一是它不局限于通过共享树接收组播信息,还提供从共享树向SPT转换的机制。

  由于工程网络规模较大,视频源多,所以选择了PIM-SM稀疏模式。

  三、集合点RP的选择

  由于视频源大都集中在核心层,所以RP选择在核心路由设备上,从网络的可靠性、可用性等方面综合考虑,选用5个核心设备为RP,通过CiscoAnycastRP技术可实现负载均衡及冗余,Multicast Source Discovery Protocol (MSDP)是实现Anycast RP的关键协议,MSDP容许RP 共享活动源信息。

  在AnycastRP环境,两个或多个RP在Loopback接口配置相同的 IP地址。AnycastRP loopback地址应当是32位掩码的主机地址。 IP 路由将自动选择最好的RP。Anycast RP提供了IP Multicast的快速切换(几秒内)及负载均衡。

  所有汇聚层的交换机CiscoCatalyst4006都配置10.6.2.1为它们的RP地址。配置如下:

  router(config)#ippimrp-address10.6.2.1

  四、二层环境中的组播设计(IGMP-SnoopingandCGMP)

  IGMP-Snooping运行于二层交换机,IGMP-Snooping需要LAN交换机检查某些三层信息(IGMPjoin/leave信息)。当交换机看到IGMP主机报告加入某个组,交换机增加主机的端口号到相应的组播表项。当交换机看到IGMP主机报告离开某个组,交换机删除主机的端口号到相应的组播表项。因为IGMP控制信息为组播包,在二层不能将它从组播数据中分开。运行IGMP-Snooping的交换机必须检查每一个组播数据包,决定它是否含相关的IGMP控制信息。Catalyst交换机使用ASIC支持IGMP-Snooping。

  CiscoGroupManagementProtocol (CGMP)是Cisco开发的协议,我们必须在路由器及二层交换机上配置CGMP。

  为了使CGMP客户端(交换机)对实际的IGMPleave信息作出响应,我们需要在二层 交换机配置:

  switch(config)#cgmpleave-processing

  由于在接入层,大部分单位使用了CiscoCatalyst二层交换机,也有部分单位使用了其他厂家的二层交换设备,所以在接入层,根据用户的设备情况,分别选择二层组播协议IGMP-Snooping或 CGMP

  五、Non-RPF流量

  路由器丢弃所有在non-RPF接口收到的multicast包。如果在一个子网中有两个路由器,DR将转发负载,non-DR将在其VLAN接口接收到负载,此负载将不能通过RPF的检查,将丢弃。

  RACL在VLAN接口必须仅允许本地源的multicast流量。‘noipunreachables’也必须配置在此接口。

  为了在non-DR路由器上禁止non-RPF流量,配置如下:

  interfaceVLANX

  ipaccess-group100in

  noipunreachables

  access-list100permitip w.x.y.z 0.0.0.255 any – 本地子网地址

  access-list100permitip any 224.0.0.0 0.0.0.255

  access-list100permitip any 224.0.1.0 0.0.0.255

  access-list100deny ip any 224.0.0.0 15.255.255.255

  如果路由交换机的 IOS版本在12.1(8)E/12.1(5)EX或之后的版本,可支持ACL-basedRPF过滤,ACL-based RPF过滤利用硬件(TCAM)实现。只需配置:mls ip multicast stub即可。工程中的路由交换机IOS 版本都满足上述条件,所以采用硬件的过滤方法。

  六、流量控制

  流量控制包括定义范围边界–“ipmulticastboundary”和定义TTL范围–“ip multicast ttl-threshold”两种方法。

  范围边界—“ipmulticastboundary”用于配置一个范围边界,许可或拒绝在 访问控制列表ACL中的组播组地址。配置命令如下:

  interface

  ipmulticastboundary

  TTL范围--“ipmulticastttl-threshold” 用于配置TTL的门限,任意小于TTL值的包被丢弃。配置命令如下:

  ipmulticastttl-threshold

  InterfaceGigabitEthernet0/1

  ipmulticastttl-threshold8

  七、管理

  为使网管工作站检测、管理组播信息流,需要SNMPtraps能够发送IPMulticast, MSDP 及PIM 信息到 SNMP服务器,二层交换机激活 IGMP traps。配置命令如下所示:

  snmp-serverenabletrapsipmulticast

  snmp-serverenabletrapsmsdp

  snmp-serverenabletrapspim

  八、小结

  对上述工程中组播的实现,归纳在IP视频会议的环境中组播的实施,需要注意的要点如下:

  为不同类型和带宽的组播应用分配管理权限组播地址(AdministrativelyScopedAddresses)

  尽可能使用AnycastRP,第二优先的选择是Auto-RP

  选择IGMP-Snooping或CGMP

  确保正确的RP及Multicat源被使用

  理解并配置non-RFP流量的硬件过滤

  使用Multicast边界(boundaries)控制multicast流

  使用SNMPtraps记录 multicast事件

----《通信世界》  

继续阅读