13-组播协议操作
本章节下载 (593.35 KB)
随着Internet网络的不断发展,网络内各种数据、语音和视频信息等多种交互业务与日俱增,另外新兴的电子商务、网上会议、网上拍卖、视频点播、远程教学等对带宽和实时数据交互要求较高的服务逐渐兴起,这些服务对信息安全性、可计费性、网络带宽提出了更高的要求。
在网络中,存在着三种发送报文的方式:单播、广播、组播。下面我们对单播、广播、组播的数据交互过程分别进行介绍和对比。
采用单播(Unicast)方式时,系统为每个需求该信息的用户单独建立一条数据传送通路,并为该用户发送一份独立的拷贝信息,如图1-1:
假设用户B、D和E需要该信息,则信息源Server必须分别和用户B、D、E的设备建立传输通道。由于网络中传输的信息量和要求接收该信息的用户量成正比,因此当用户数量很庞大时,服务器就必须要将多份内容相同的信息发送给用户。因此,带宽将成为信息传输中的瓶颈。
从单播信息的传播过程可以看出,单播的信息传输方式不利于信息规模化发送。
如果采用广播(Broadcast)方式,系统把信息传送给网络中的所有用户,不管他们是否需要,任何用户都会接收到广播来的信息,如图1-2:
假设用户B、D和E需求该信息,则信息源Server通过路由器广播该信息,网络其他用户A和C也同样接收到该信息,信息安全性和有偿服务得不到保障。
从广播信息的传播过程可以看出,广播的保密性和有偿性比较差。并且当同一网络中需求该信息的用户量很小时,网络资源利用率将非常低,带宽浪费严重。
因此,广播不利于对特定用户进行数据交互,并且还严重的占用带宽。
综上所述,单播方式适合用户稀少的网络,而广播方式适合用户稠密的网络,当网络中需求某信息的用户量不确定时,单播和广播方式效率很低。
IP组播技术的出现及时解决了这个问题。当网络中的某些用户需求特定信息时,组播信息发送者(即组播源)仅发送一次信息,借助组播路由协议为组播数据包建立树型路由,被传递的信息在距离用户端尽可能近的节点才开始复制和分发,如图1-3。
假设用户B、D和E需求该信息,为了将信息顺利地传输给真正需要该信息的用户,需要将用户B、D、E组成一个接收者集合,由网络中各路由器根据该集合中各接收者的分布情况进行信息转发和复制,最后信息准确地传输给实际需要的接收者B、D和E。
相比单播来说,组播的优点在于:
l 不论接收者有多少,相同的组播数据流在每一条链路上最多仅有一份。
l 使用组播方式传递信息,用户的增加不会显著增加网络的负载。
相比广播来说,组播的优点在于:
l 组播数据流仅会发送到要求数据的接收者。
l 不会造成网络资源的浪费,合理的利用带宽。
在组播方式中,我们将网络中的各个部分分为以下几个角色:
l “组播源”:信息的发送者称为“组播源”。
l “组播组”:接收相同信息的多个接收者构成一个“组播组”,“组播组”没有地域的限制。
l “组播组成员”:每个组播信息的接收者都是“组播组成员”。
l “组播路由器”:可以提供组播路由功能的路由器称为“组播路由器”,组播路由器除了是一个或多个组播组的接收成员以外,还可以管理组播组的成员。
为了更好的理解,可以将“组播组”概念类比于电视频道。电视台是组播源,它向这个频道内发送数据;观众是接收者,通过打开电视机(计算机)选择一个频道接收节目(即加入某一个组),然后就可以观看电视节目了。所以,组播组应该是发送者和接收者之间的一个约定,如同频道的频率。
注意:
组播源不一定属于组播组,它向组播组发送数据,自己不一定是接收者。可以同时有多个组播源向一个组播组发送报文。
网络中可能有不支持组播的路由器,组播路由器可以使用隧道方式将组播包封装在单播IP包中,顺利通过不支持组播的路由器,最后传送到下一个支持组播的组播路由器,组播路由器再将单播IP头剥掉,然后继续进行组播传输,从而避免对网络的结构进行较大的改动。
组播的优势在于:
l 提高效率:降低网络流量,减轻服务器和CPU负荷。
l 优化性能:减少冗余流量。
l 分布式应用:使多点应用成为可能。
组播技术有效地解决了单点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够节约大量网络带宽、降低网络负载。
组播功能主要有以下的应用:
l 多媒体、流媒体的应用,如:网络电视、网络电台、实时视/音频会议。
l 培训、联合作业场合的通信,如:远程教育。
l 数据仓库、金融应用(股票)等。
l 任何“点到多点”的数据发布应用。
IP组播技术虽然复杂,但是其根本用途是以组播方式将信息从组播源传输到接收者手中,同时满足接收者对信息的各种需求。对于IP组播,需要关注的是:
l 网络中有哪些接收者?即主机注册。
l 这些接收者需要从哪个组播源接收信息?即组播源发现技术。
l 组播源将组播信息传输到哪里?即组播寻址机制。
l 组播信息如何传输?即组播路由。
IP组播属于一种端到端服务,按照协议层从下往上划分,组播机制包括寻址机制、主机注册、组播路由、组播应用四个部分,如图1-4:
组播寻址机制涉及组播地址规划情况;主机注册和组播路由都是基于IP组播协议实现的;组播应用软件本章不再赘述。
l 寻址机制:借助组播地址,实现信息从组播源发送到一组接收者。
l 主机注册:接收主机动态加入和离开某组播组,实现组播成员注册。
l 组播路由:构建报文分发树进行组播路由,从组播源传输报文到接收者。
l 组播应用:组播源必须支持视频会议等组播应用软件,TCP/IP协议栈必须支持组播信息的发送和接收。
由于信息的接收者是一个组播组内的多个主机,因此需要面对以下的问题:
l 如果采用组播方式传输信息,信息源该将信息发往何处?
l 目的地址如何选取,即信息源如何知道信息的需求者是谁?
这些问题简而言之就是组播寻址。为了让信息源和组播组成员(一组信息接收者)进行通讯,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层MAC组播地址。下面分别介绍这两种组播地址。
根据IANA(Internet Assigned Numbers Authority,因特网编号授权委员会)规定,IP地址分为五类,即A类、B类、C类、D类和E类。单播报文按照网络规模大小分别使用ABC三类IP地址。组播报文的目的地址使用D类IP地址,D类地址不能出现在IP报文的源IP地址字段,E类地址保留在今后使用。
单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”(hop-by-hop)的原理在IP网络中传输。然而在IP组播环境中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向该组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包,这个组就是“组播组”。
组播组具有以下的几个特点:
l 组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。
l 组播组可以是永久的也可以是临时的。
l 由IANA分配组播地址的组播组称为永久组播组(又称之保留组播组)。
对于永久组播组,要注意的是:
l 永久组播组的IP地址保持不变,但组中的成员构成可以发生变化。
l 永久组播组中成员的数量可以是任意的,甚至可以为零。
l 那些没有保留下来供永久组播组使用的IP组播地址,可以被临时组播组使用。
D类组播地址范围是从224.0.0.0到239.255.255.255,范围及含义见表1-1。
表1-1 D类地址的范围及含义
D类地址范围 |
含义 |
224.0.0.0~224.0.0.255 |
预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用 |
224.0.1.0~231.255.255.255 233.0.0.0~238.255.255.255 |
用户可用的ASM(Any-Source Multicast,任意源组播模型)组播地址(临时组地址),全网范围内有效 |
232.0.0.0~232.255.255.255 |
用户可用的SSM(Source-Specific Multicast,指定源组播模型)组播组地址 |
239.0.0.0~239.255.255.255 |
本地管理组播地址,仅在特定的本地范围内有效 |
根据IANA的约定,224.0.0.0到224.0.0.255网段地址被预留给本地网络中的路由协议使用,常用的预留IP组播地址列表如下:
表1-2 预留的IP组播地址列表
D类地址范围 |
含义 |
224.0.0.1 |
所有主机的地址 |
224.0.0.2 |
所有组播路由器的地址 |
224.0.0.3 |
不分配 |
224.0.0.4 |
DVMRP(Distance Vector Multicast Routing,距离矢量组播路由协议)路由器 |
224.0.0.5 |
OSPF(Open Shortest Path First,最短路径优先)路由器 |
224.0.0.6 |
OSPF DR(Open Shortest Path First Ddesignated Router,最短路径优先指定路由器) |
224.0.0.7 |
ST(Shared Tree,共享树)路由器 |
224.0.0.8 |
ST(Shared Tree,共享树)主机 |
224.0.0.9 |
RIP-2路由器 |
224.0.0.11 |
活动代理 |
224.0.0.12 |
DHCP服务器/中继代理 |
224.0.0.13 |
所有PIM(Protocol Independent Multicast,协议无关组播)路由器 |
224.0.0.14 |
RSVP(Resource Reservation Protocol,资源预留协议)封装 |
224.0.0.15 |
所有CBT(Core-Based Tree,有核树)路由器 |
224.0.0.16 |
指定SBM(Subnetwork Bandwidth Management,子网带宽管理) |
224.0.0.17 |
所有SBMS |
224.0.0.18 |
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议) |
224.0.0.19– 224.0.0.255 |
未指定 |
& 说明:
和IANA为IP单播传输预留私有地址网段10.0.0.0/8类似,IANA也为IP组播预留了私有地址网段239.0.0.0到239.255.255.255,这些地址属于管理范围地址。通过对管理范围地址的管理,可以灵活地定义组播域范围,实现不同组播域之间的地址隔离,有助于相同组播地址在不同组播域内的重复使用而不会冲突。
以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播报文时,传输目标不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播MAC地址。
IANA规定,组播MAC地址的高24bit为0x01005e,MAC地址的低23bit为组播IP地址的低23bit,映射关系如图1-5所示:
图1-5 组播IP地址与组播MAC地址的映射关系
由于IP组播地址的高4bit是1110,代表组播标识,而低28bit中只有23bit被映射到MAC地址,这样IP地址中就会有5bit信息丢失,直接的结果是出现了32个IP组播地址映射到同一MAC地址上。
IP组播涉及到的协议主要有组播组管理协议和组播路由协议。与组播相关的协议在网络中的应用位置如下图所示:
组播组管理协议采用IGMP(Internet Group Membership Protocol,因特网组管理协议),它运行在主机和组播路由器之间,定义了主机与组播路由器之间组播成员关系的建立和维护机制。
组播路由协议运行在组播路由器之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了一个从数据源端到多个接收端的无环数据传输路径。组播路由协议的任务就是构建分发树结构。组播路由器能采用多种方法来建立数据传输的路径,即分发树。
与单播路由一样,组播路由也分为域内和域间两大类。域内组播路由目前已经相当成熟,在众多的域内组播路由协议中,PIM(Protocol Independent Multicast,协议无关组播协议)是目前应用最多的协议,可以和任何单播路由协议协同工作。
在组播模型中,组播源主机向主机组传送信息,这些主机组是通过IP数据包目的地址字段内的组播组地址所表示的。和单播模型不同的是,组播模型必须将组播数据包转发到多个外部接口上,以便能传送到所有接收站点,因此组播转发过程比单播转发过程更加复杂。
为了保证组播信息包在网络中传输,组播必须依靠单播路由表或者单独提供给组播使用的单播路由表(如MBGP组播路由表)进行转发,同时为了避免接口上收到来自不同对端的相同组播信息,还需要对组播信息包的接收接口进行一定的检查,这种检查机制就是大部分组播路由协议进行组播转发的基础——RPF(Reverse Path Forwarding,逆向路径转发)检查。
组播路由器根据源地址来判断组播报文是否来自指定接口,即RPF检查通过比较组播报文实际到达的接口和应该到达的接口来确定报文入接口是否正确。如果该路由器在SPT有源树(Shortest Path Tree,最短路径树)上,则接收到的组播报文应该到达的接口朝向组播源。该路由器在RPT(Rendezvous Point Tree,汇聚点树)共享树上,则接收到的组播报文应该到达的接口将朝向RP。当组播数据包到达路由器时,如果RPF检查通过,数据包则按照组播转发项进行转发。否则,数据包被丢弃。
IGMP Snooping(Internet Group Management Protocol Snooping,IGMP侦听)是运行在二层以太网交换机上的组播约束机制,用于管理和控制组播组。
当二层以太网交换机收到主机和路由器之间传递的IGMP报文时,IGMP Snooping将对IGMP报文所带的信息进行分析,并进行相应的处理,如表2-1所示:
收到的报文类型 |
发送者 |
接收者 |
交换机处理 |
IGMP主机报告报文(IGMP host report message) |
主机 |
交换机 |
将主机加入相应的组播组列表中 |
IGMP离开报文(IGMP leave message) |
主机 |
交换机 |
将主机相关的组播表项从组播组列表中删除 |
交换机通过监控IGMP报文,可以在数据链路层建立和维护相应的MAC组播地址表,并根据MAC组播地址表转发从路由器下发的组播报文。
如图2-1所示,没有运行IGMP Snooping时,组播报文将在二层广播。运行IGMP Snooping后,报文将不再在二层广播,而是进行二层组播。
图2-1 在关闭/使能IGMP Snooping组播报文传播过程的对比
为描述方便,先介绍一下以太网交换机上与IGMP Snooping相关的概念。
l 路由器端口(Router Port):以太网交换机上直接和组播路由器相连的端口。
l 组播成员端口:与组播组成员相连的端口。组播组成员此处是加入某个组播组的主机。
l MAC组播组:以太网交换机维护的以MAC组播地址标识的组播组。
还有三个时间定时器与IGMP Snooping有密切的关联:
表2-2 IGMP Snooping相关定时器
定时器 |
设定时间 |
老化时间内收到的报文 |
超时后交换机动作 |
路由器端口老化定时器 |
路由器端口老化时间 |
IGMP通用查询报文 |
认定端口不是路由器端口 |
组播组成员端口老化定时器 |
组播组成员端口老化时间 |
IGMP报文/PIM报文/Dvmrp Probe报文 |
向组播组成员端口发送IGMP特定组查询报文 |
响应查询定时器 |
最大响应查询时间 |
IGMP报告报文 |
将端口从组播组成员端口列表上删除 |
以太网交换机通过运行IGMP Snooping实现对IGMP报文的侦测,并为主机、主机对应端口和相应的组播MAC地址之间建立映射关系。
交换机与主机之间通过传递四种特殊的报文,实现了二层组播。下表对这四种报文及其在传输过程中的作用进行了描述。
表2-3 IGMP的四种报文
报文类型 |
发送者 |
接收者 |
目的 |
接收者处理 |
|||
IGMP通用查询报文 |
组播路由器和组播交换机 |
组播成员交换机和主机 |
查询组播组内是否存在成员 |
该查询报文是否来自原路由器端口 |
是,交换机重置路由器端口老化定时器 |
||
不是,交换机通知组播路由器有成员加入相应的某个组播组,同时启动对该路由器端口的老化定时器 |
|||||||
IGMP特定组查询报文 |
组播路由器和组播交换机 |
组播成员交换机和主机 |
查询IGMP特定组播组是否存在成员 |
向被查询的IP组播组发IGMP特定组查询 |
|||
IGMP主机报告报文 |
主机 |
组播路由器和组播交换机 |
申请加入某个组播组或应答IGMP查询报文 |
查询IP组播组对应的MAC组播组是否存在 |
存在,判断端口是否存在于该MAC组播组中 |
存在,则将IP组播组地址加入到MAC组播组列表中 |
|
不存在,则将端口加入MAC组播组,重置端口老化定时器,并判断对应的IP组播组是否存在 |
存在,则将端口加入到对应IP组播组 |
||||||
不存在,则新建IP组播组,将端口加入组播组 |
|||||||
不存在,则: 新建MAC组播组,同时通知组播路由器有成员要加入组播组 将端口加入到MAC组播组,同时启动端口老化定时器 将端口所在VLAN内所有端口加入MAC组播组转发表中 将端口加入到新建的IP组播组中 |
|||||||
IGMP离开报文 |
主机 |
组播路由器和组播交换机 |
告知组播路由器和组播交换机主机离开组播组 |
组播路由器和组播交换机向发出离开报文的主机所在组播组发送IGMP特定组查询报文,用于确认该组播组内是否存在成员,同时启动相应查询定时器 |
如定时器超时,交换机将判断端口是否对应唯一的MAC组播组: l 如是,则删除对应的MAC组播组,同时删除对应的IP组播组 l 不是,则仅删除MAC组播组中对应此端口的表项,同时删除对应的IP组播组表项 |
||
如组播组无应答,且定时器超时,则交换机将通知路由器将该分支从组播树删除 |
注意:
在以太网交换机使能了IGMP-Snooping特性后,当收到某个组播组内的主机发出的IGMP离开报文时,会自动判断该组播组是否存在。如果该组播组不存在,则丢弃这个IGMP离开报文,不再转发。
IGMP Snooping配置任务包括:
配置任务 |
说明 |
详细配置 |
启动IGMP Snooping配置 |
必选 |
|
多种定时器配置 |
可选 |
|
端口从组播组中快速删除功能配置 |
可选 |
|
IGMP Snooping Filter过滤规则配置 |
可选 |
|
端口从组播组通过数量限制配置 |
可选 |
|
IGMP Snooping查询器配置 |
可选 |
|
组播VLAN配置 |
可选 |
为了控制IGMP Snooping是否在二层建立和维护MAC组播组转发表,可以使用下面的命令来启动IGMP Snooping。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动系统视图下的IGMP Snooping功能 |
igmp-snooping enable |
必选 缺省情况下IGMP Snooping功能处于关闭状态 |
进入VLAN视图 |
vlan vlan-id |
- |
启动VLAN视图下的IGMP Snooping功能 |
igmp-snooping enable |
必选 缺省情况下,IGMP Snooping功能处于关闭状态 |
注意:
在配置VLAN视图下的IGMP Snooping前,应首先在系统视图下使能全局IGMP Snooping,然后在VLAN视图下使能IGMP Snooping,否则IGMP Snooping功能不能在VLAN视图下进行配置。
本配置任务用来手工设置路由器端口老化定时器、组播组成员端口老化定时器、响应查询定时器。
l 如果在路由器端口老化时间之内没有收到路由器的IGMP通用查询报文,则交换机把该路由器端口从所有的MAC组播组的端口成员表中删除。
l 如果没有收到IGMP主机报告报文,则交换机向该端口发送IGMP特定组查询报文,同时启动该IP组播组的响应查询定时器。
l 在成员端口老化时间之内,如果没有收到IGMP主机报告报文,则交换机向该端口发送IGMP特定组查询报文,同时启动该IP组播组的响应查询定时器。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置路由器端口老化定时器 |
igmp-snooping router-aging-time seconds |
可选 缺省情况下端口老化时间为105秒 |
配置响应查询定时器 |
igmp-snooping max-response-time seconds |
可选 缺省情况下最大响应时间为10秒 |
配置组播组成员端口老化定时器 |
igmp-snooping host-aging-time seconds |
可选 缺省情况下组播组成员端口老化时间为260秒 |
正常情况下,IGMP-Snooping在接收到IGMP离开报文后不会直接将端口从组播组中删除,而是发送IGMP特定组查询报文,如果等待一段时间后没有得到响应,才将该端口从组播组中删除。
启动快速删除功能后,IGMP-Snooping收到IGMP离开报文时,直接将端口从组播组中删除。当端口下只有一个用户时,快速删除可以节省带宽。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口 |
interface interface-type interface-number |
- |
配置端口从指定VLAN的组播组中快速删除功能 |
igmp-snooping fast-leave [ vlan vlan-list ] |
必选 缺省情况下,端口从组播组中快速删除功能关闭。 |
IGMP Snooping Filter通过对连接交换机不同端口的用户配置组播过滤ACL,来限制用户可以点播的组播节目,从而实现不同的用户可以点播不同的节目组,达到区别对待VOD用户的目的。
在实际应用中,当用户点播某个组播节目时,会发起一个IGMP report报文,该报文到达交换机后,交换机检查接收端口上配置的组播过滤ACL,如果此端口可以加入这个组播组,则将这个端口加入到该组播组的转发端口列表中;否则交换机就丢弃该IGMP report报文,这样,数据流就不会送到该端口,从而达到控制用户点播组播节目的目的。
配置此特性前,请确定ACL规则已经配置完毕。
表2-8 IGMP Snooping Filter过滤规则配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置端口组播过滤功能 |
igmp-snooping group-policy acl-number [ vlan vlan-list ] |
必选 l 用户可在acl中配置过滤相关的组播组IP地址 l 缺省情况下,组播过滤功能关闭。 |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置端口组播过滤功能 |
igmp-snooping group-policy acl-number [ vlan vlan-list ] |
必选 l 用户可在acl中配置过滤相关的组播组IP地址 l 缺省情况下,组播过滤功能关闭。 |
对交换机端口进行端口组播组通过数量限制配置后,用户在点播组播组节目时,由于端口通过的组播组的数量受到限制,因此用户不能无限制的点播组播组。这样一来,端口带宽就得到了控制。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
限制端口上允许通过的组播组数量 |
igmp-snooping group-limit limit [ vlan vlan-list [ overflow-replace ] ] |
必选 缺省情况下,不限制端口通过的组播组数量。 |
在运行了IGMP协议的组播网络中,会有一个专职查询的组播路由器或三层组播交换机,负责发送IGMP查询报文。
但是,由于二层组播交换机上不支持IGMP功能,因此没有办法实现查询器的功能,无法发送通用组查询报文。用户可以通过配置IGMP-Snooping查询器,使二层交换机在数据链路层主动发送通用组查询报文,从而建立并维护组播转发表项。
用户还可以配置IGMP Snooping查询器发送通用组查询报文的源地址、通用组查询报文的最大响应时间以及查询周期。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
系统视图下使能IGMP Snooping功能 |
igmp-snooping enable |
必选 缺省情况下,IGMP Snooping功能关闭 |
进入VLAN视图 |
vlan vlan-id |
- |
VLAN视图下使能IGMP Snooping功能 |
igmp-snooping enable |
必选 缺省情况下,IGMP Snooping功能关闭 |
配置IGMP-Snooping查询器 |
igmp-snooping querier |
必选 缺省情况下,IGMP-Snooping查询器功能关闭 |
配置发送通用查询报文的时间间隔 |
igmp-snooping query-interval seconds |
可选 缺省情况下,发送通用查询报文的时间间隔为60秒 |
配置发送通用查询报文的源IP地址 |
igmp-snooping general-query source-ip { current-interface | ip-address } |
可选 缺省情况下,发送通用查询报文的源IP地址为0.0.0.0 |
基于以往的组播点播方式,当处于不同VLAN的用户点播同一个组播组时,每个VLAN会在本VLAN内复制这个组播流。这样的组播点播方式,浪费了大量的带宽。
通过配置组播VLAN的方式,将交换机的端口加入到组播VLAN,并在使能了IGMP Snooping功能以后,使不同VLAN内的用户共用一个组播VLAN,组播流只在一个组播VLAN内进行传输,从而节省了带宽。由于组播VLAN与用户VLAN完全隔离,安全和带宽都得以保证。
组播VLAN主要应用于二层交换,但在三层交换机上也必须进行相应的配置。
组播VLAN配置过程如下:
表2-11 组播VLAN(三层交换机)配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建组播VLAN,并进入VLAN视图 |
vlan vlan-id |
创建用户需要配置的组播VLAN |
退出 |
quit |
- |
创建组播VLAN接口,并进入VLAN接口视图 |
interface Vlan-interface vlan-id |
- |
使能IGMP |
igmp enable |
必选 缺省情况下,IGMP 功能关闭 |
退出 |
quit |
- |
进入与二层交换机相连的以太网端口视图 |
interface interface-type interface-number |
- |
将端口定义为trunk端口或者hybrid端口 |
port link-type { trunk | hybrid } |
必选 |
设置以太网允许通过的VLAN ID |
port hybrid vlan vlan-id-list { tagged | untagged } |
必选 VLAN中必须包括二层交换机上定义的组播VLAN的ID,并且必须将该组播VLAN设置为tagged |
port trunk pvid vlan vlan-list |
表2-12 组播VLAN(二层交换机)配置过程
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
系统使能IGMP Snooping功能 |
igmp-snooping enable |
必选 |
进入VLAN视图 |
vlan vlan-id |
vlan-id为VLAN号 |
VLAN使能IGMP Snooping功能 |
igmp-snooping enable |
必选 缺省情况下,IGMP Snooping功能关闭 |
使能组播VLAN功能 |
service-type multicast |
必选 |
退出VLAN视图 |
quit |
- |
进入与三层交换机相连的以太网端口视图 |
interface interface-type interface-number |
- |
将端口定义为trunk端口或者hybrid端口 |
port link-type { trunk | hybrid } |
- |
设置以太网允许通过的VLAN ID |
port hybrid vlan vlan-list { tagged | untagged } |
VLAN中必须包括组播VLAN的ID,并且必须将组播VLAN设置为tagged |
port trunk pvid vlan vlan-list |
||
进入与用户相连的以太网端口视图 |
interface interface-type interface-number |
- |
定义端口的类型为Hybrid |
port link-type hybrid |
必选 |
设置以太网端口上允许通过的VLAN ID |
port hybrid vlan vlan-id-list { tagged | untagged } |
必选 VLAN中必须包括组播VLAN的ID,并且必须将组播VLAN设置为untagged |
& 说明:
l 一个端口只可以属于一个组播VLAN。
l 与用户终端相连的端口类型只能够为Hybrid。
l 组播成员端口必须与路由器端口属于同一个组播VLAN,否则无法接收到组播数据报文。
l 当路由器端口加入某个组播VLAN,该路由器端口必须配置成Trunk端口或者是带tag的Hybrid端口,否则在此组播VLAN内的所有的组播成员端口都无法接收到组播数据报文。
l 用户建立了组播VLAN后,所有的IGMP主机报告报文只在组播VLAN内广播。如果是非组播VLAN的组播成员端口,其所属VLAN接口将无法建立对应的二层组播表项。因此,建议用户将此端口从组播VLAN内删除。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IGMP Snooping的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除IGMP Snooping统计信息。
表2-13 IGMP Snooping的显示和维护
命令 |
说明 |
|
显示当前IGMP Snooping的配置信息 |
display igmp-snooping configuration |
display命令可以在任意视图下执行 |
显示IGMP Snooping对收发包的统计信息 |
display igmp-snooping statistics |
|
显示VLAN下的IP组播组和MAC组播组信息 |
display igmp-snooping group [ vlan vlan-id ] |
|
清除IGMP Snooping统计信息 |
reset igmp-snooping statistics |
reset命令可以在用户视图下执行 |
配置交换机实现IGMP Snooping功能。
为了实现交换机的IGMP Snooping功能,需要在交换机上启动IGMP Snooping。
交换机上的路由器端口接到路由器上,其他非路由器端口(属于VLAN10)则接到用户的PC机上。
# 在系统视图下启动全局IGMP Snooping。
<H3C> system-view
[H3C] igmp-snooping enable
# 在VLAN10内启动IGMP Snooping。
[H3C] vlan 10
[H3C-vlan10] igmp-snooping enable
配置交换机实现组播VLAN功能。
组播源为Workstation,Switch A转发组播源发出的组播数据流。组播数据流通过二层交换机Switch B被转发到最终用户PC1、PC2。
具体的设备编号如下:
设备 |
描述 |
说明 |
Switch A |
三层交换机 |
VLAN 20接口的IP地址为168.10.1.1,Ethernet1/0/1属于VLAN 20,Ethernet1/0/1和Work Station相连。 VLAN 10为组播VLAN。 VLAN 2包含端口Ethernet1/0/5,VLAN 3包括端口Ethernet1/0/6。 端口Ethernet1/0/10与Switch B相连。 |
Switch B |
二层交换机 |
VLAN 2包含端口Ethernet1/0/1,VLAN 3包括端口Ethernet1/0/2,两个端口分别与PC1、PC2相连。 端口Ethernet1/0/10和Switch A相连。 |
PC 1 |
用户1 |
与Switch B的Ethernet1/0/1端口相连 |
PC 2 |
用户2 |
与Switch B的Ethernet1/0/2端口相连 |
配置组播VLAN,使VLAN 2和VLAN 3内的用户通过组播VLAN接收组播流。
图2-4 组播VLAN组网示意图
以下配置基于IP地址已配置,并正确连接设备的前提下进行配置操作。
(1) Switch A上的配置
# 配置VLAN 20接口的IP地址为168.10.1.1,并使能PIM DM协议。
<SwitchA> system-view
[SwitchA] multicast routing-enable
[SwitchA] vlan 20
[SwitchA-vlan20] interface Vlan-interface 20
[SwitchA-Vlan-interface20] ip address 168.10.1.1 255.255.255.0
[SwitchA-Vlan-interface20] pim dm
[SwitchA-Vlan-interface20] quit
# 配置组播VLAN 10。
[SwitchA] vlan 10
[SwitchA-vlan10] quit
# 配置VLAN 2。
[SwitchA] vlan 2
[SwitchA-vlan2] quit
[SwitchA] interface Ethernet 1/0/5
[SwitchA-Ethernet1/0/5] port hybrid vlan 2
# 配置VLAN 3。
[SwitchA] vlan 3
[SwitchA-vlan3] quit
[SwitchA] interface Ethernet 1/0/6
[SwitchA-Ethernet1/0/6] port hybrid vlan 3
# 将Ethernet1/0/10定义为Hybrid端口,并将该端口加入到VLAN 2、3、10中,端口发送VLAN 2、VLAN 3和VLAN 10的报文时带VLAN标签。
[SwitchA] interface Ethernet 1/0/10
[SwitchA-Ethernet1/0/10] port link-type hybrid
[SwitchA-Ethernet1/0/10] port hybrid vlan 2 3 10 tagged
[SwitchA-Ethernet1/0/10] quit
# 在VLAN 10接口启动PIM DM协议,并同时启用IGMP。
[SwitchA] interface Vlan-interface 10
[SwitchA-Vlan-interface10] pim dm
[SwitchA-Vlan-interface10] igmp enable
(2) Switch B上的配置
# 启动设备IGMP Snooping。
<SwitchB> system-view
[SwitchB] igmp-snooping enable
# 配置VLAN 10为组播VLAN,并使能IGMP Snooping。
[SwitchB] vlan 10
[SwitchB-vlan10] service-type multicast
[SwitchB-vlan10] igmp-snooping enable
[SwitchB-vlan10] quit
# 将Ethernet 1/0/10定义为Hybrid端口,并将该端口加入到VLAN 2、3、10中,端口发送VLAN 2、VLAN 3和VLAN 10的报文时带VLAN标签。
[SwitchB] interface Ethernet 1/0/10
[SwitchB-Ethernet1/0/10] port link-type hybrid
[SwitchB-Ethernet1/0/10] port hybrid vlan 2 3 10 tagged
[SwitchB-Ethernet1/0/10] quit
# 将Ethernet 1/0/1定义为Hybrid端口,并将该端口加入到VLAN 2、VLAN 10中,端口发送VLAN 2和VLAN 10的报文时不带VLAN标签,端口的缺省VLAN为VLAN 2。
[SwitchB] interface Ethernet 1/0/1
[SwitchB-Ethernet1/0/1] port link-type hybrid
[SwitchB-Ethernet1/0/1] port hybrid vlan 2 10 untagged
[SwitchB-Ethernet1/0/1] port hybrid pvid vlan 2
[SwitchB-Ethernet1/0/1] quit
# Ethernet 1/0/2定义为Hybrid端口,并将该端口加入到VLAN 3、VLAN 10中,端口发送VLAN 3和VLAN 10的报文时不带VLAN标签,端口的缺省VLAN为VLAN 3。
[SwitchB] interface Ethernet 1/0/2
[SwitchB-Ethernet1/0/2] port link-type hybrid
[SwitchB-Ethernet1/0/2] port hybrid vlan 3 10 untagged
[SwitchB-Ethernet1/0/2] port hybrid pvid vlan 3
[SwitchB-Ethernet1/0/2] quit
故障现象:交换机不能实现组播功能。
故障排除:
(1) IGMP Snooping没有启动。
l 输入命令display current-configuration查看IGMP Snooping的状态。
l 如果IGMP Snooping没有启动,则需查看是全局下是否没有使能IGMP Snooping,还是在对应的VLAN下没有使能IGMP Snooping。如果是前者则需在系统视图下输入命令igmp-snooping enable全局使能IGMP Snooping。同时在VLAN视图下输入命令igmp-snooping enable以使能对应的VLAN下IGMP Snooping。如果是后者,则只需在VLAN视图下输入命令igmp-snooping enable以使能对应的VLAN下IGMP Snooping。
(2) IGMP Snooping建立的组播转发表不正确。
l 输入命令display igmp-snooping group查看组播组是否是所预期的。
l 如果IGMP Snooping建立的组播组不正确,请向专业维护人员求助。
l 如果排除了原因2,则进入原因分析3。
(3) IGMP Snooping建立的组播转发表不正确。
l 输入命令display mac-address vlan查看在vlan-id下所建立的MAC组播转发表是否和IGMP Snooping建立的MAC组播转发表一致。
组播公共配置的任务是组播组管理协议和组播路由协议共有的内容。启动这两个协议前,应该在交换机上使能组播公共配置。
组播源端口抑制配置。在网络中,某些用户会私设组播服务器,造成整个组播网络资源紧张,影响组播带宽和网络内合法信息传输。用户可以配置组播源端口抑制特性,在未授权的组播源端口上过滤组播报文,以防止该端口连接的用户私设组播服务器。
表3-1 组播源端口抑制配置过程(系统视图下)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
系统视图配置组播源端口抑制 |
multicast-source-deny [ interface interface-list ] |
必选 缺省情况下,系统关闭组播源端口抑制功能 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
以太网端口视图配置组播源端口抑制 |
multicast-source-deny |
可选 缺省情况下,交换机所有端口关闭组播源端口抑制功能 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后组播公共配置的运行情况,通过查看显示信息验证配置的效果。
操作 |
命令 |
说明 |
显示组播源端口抑制统计信息 |
display multicast-source-deny [ interface interface-type [ interface-number ] ] |
display命令可以在任意视图下执行 l 如不指定端口类型和端口号,则显示交换机上所有端口的组播源端口抑制信息。 l 如果仅指定端口类型,则显示该类型所有端口的组播源端口抑制信息。 l 如果同时指定端口类型和端口号,则显示指定端口的组播源端口抑制信息。 |
在二层的组播过程中,除了通过二层组播协议动态建立组播转发表项外,还可以通过手工配置组播MAC地址表项,将端口与组播地址表项进行静态绑定。
通常情况下,如果交换机收到的组播数据报文中的组播地址没有在本机注册,该报文会在该端口所在的VLAN内广播,通过配置组播静态MAC地址表项可以避免这种情况。
组播MAC地址的配置可以在系统视图或者以太网端口视图下进行:
表4-1 组播MAC地址配置(系统视图下)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建组播MAC地址表项 |
mac-address multicast mac-address interface interface-list vlan vlan-id |
必选 mac-address必须为组播MAC地址 vlan-id为端口所在的VLAN的ID号 |
表4-2 组播MAC地址配置(以太网端口视图下)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
创建组播MAC地址表项 |
mac-address multicast mac-address vlan vlan-id |
必选 mac-address必须为组播MAC地址 vlan-id为端口所在的VLAN的ID号 |
注意:
l 如果要创建的组播MAC地址表项已经存在,则系统会给出提示。
l 如果一个组播MAC地址是手工添加的,则交换机不会再通过IGMP Snooping学习这个组播MAC地址。undo mac-address multicast命令只能够删除通过命令手工创建的组播MAC地址表项,无法删除交换机学习到的组播MAC地址表项。
l 如果要向通过命令创建的组播MAC地址表项中加入端口,需要先将该表项删除,然后重新创建该表项,再将指定端口加入到表项的转发端口中。
l 系统不支持在IRF端口添加组播MAC地址,如端口已经是IRF端口,则系统会提示不可以添加组播MAC地址。
l 如在端口添加了组播MAC地址,则无法在此端口使能端口汇聚。如端口已经是汇聚端口,则不可以添加组播MAC地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后组播MAC地址配置的运行情况,通过查看显示信息验证配置的效果。
表4-3 组播MAC地址的显示和维护
操作 |
命令 |
说明 |
显示已经添加的组播MAC地址表项 |
display mac-address multicast [ static { { { mac-address vlan vlan-id | vlan vlan-id } [ count ] } | count } ] |
display命令可以在任意视图下执行 |
通常情况下,如果交换机收到的组播数据报文的组播地址没有在本机注册,该报文会在VLAN内广播。当启动未知组播丢弃功能后,交换机收到未注册组播地址的组播数据报文,将丢弃该报文,从而节省带宽,并提高系统的处理效率。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置未知组播报文丢弃功能 |
unknown-multicast drop enable |
必选 缺省情况下,未知组播报文丢弃功能关闭 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!