25-组播协议操作
本章节下载 (670.21 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 信息的发送者称为“组播源”,如图1-3中的Source;
l 所有的接收者都是“组播组成员”,如图1-3中的Receiver;
l 由所有接收者构成一个“组播组”,组播组不受地域的限制;
l 支持三层组播功能的路由器称为“组播路由器”或“三层组播设备”,组播路由器不仅能够提供组播路由功能,也能够提供组播组成员的管理功能。
为了更好地理解,可以将组播方式的信息传输过程类比于电视节目的传送过程,如表1-1所示。
步骤 |
电视节目的传送过程 |
组播方式的信息传输过程 |
1 |
电视台S通过频道G传送电视节目 |
组播源S向组播组G发送组播数据 |
2 |
用户U将电视机的频道调至频道G |
接收者U加入组播组G |
3 |
用户U能够收看到由电视台S通过频道G传送的电视节目了 |
接收者U能够收到由组播源S发往组播组G的组播数据了 |
4 |
用户U关闭电视机 |
接收者U离开组播组G |
l 组播源不一定属于组播组,也就是说其本身不一定是组播数据的接收者;
l 一个组播源可以同时向多个组播组发送数据,而多个组播源也可以同时向一个组播组发送数据。
在组播中,经常出现以下两种表示方式:
l (*,G):通常用来表示共享树,或者由任意组播源发往组播组G的组播报文。其中的“*”代表任意组播源,“G”代表特定组播组G。
l (S,G):也称为“组播源组”,通常用来表示最短路径树,或者由组播源S发往组播组G的组播报文。其中的“S”代表特定组播源S,“G”代表特定组播组G。
组播的优势在于:
l 提高效率:降低网络流量,减轻服务器和CPU负荷。
l 优化性能:减少冗余流量。
l 分布式应用:使多点应用成为可能。
组播技术有效地解决了单点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够节约大量网络带宽、降低网络负载。
组播功能主要有以下的应用:
l 多媒体、流媒体的应用,如:网络电视、网络电台、实时视/音频会议。
l 培训、联合作业场合的通信,如:远程教育。
l 数据仓库、金融应用(股票)等。
l 任何“点到多点”的数据发布应用。
根据对组播源处理方式的不同,组播模型有下列三种:
l ASM(Any-Source Multicast,任意信源组播)
l SFM(Source-Filtered Multicast,信源过滤组播)
l SSM(Source-Specific Multicast,指定信源组播)
简单地说,ASM模型就是任意源组播模型。
在ASM模型中,任意一个发送者都可以成为组播源,向某组播组地址发送信息。众多接收者通过加入由该组播组地址标识的组播组以获得发往该组播组的组播信息。
在ASM模型中,接收者无法预先知道组播源的位置,但可以在任意时间加入或离开该组播组。
SFM模型继承了ASM模型,从发送者角度来看,两者的组播组成员关系完全相同。
同时,SFM模型在功能上对ASM模型进行了扩展。在SFM模型中,上层软件对收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的报文通过。因此,接收者只能收到来自部分组播源的组播数据。从接收者的角度来看,只有部分组播源是有效的,组播源被经过了筛选。
在现实生活中,用户可能只对某些组播源发送的组播信息感兴趣,而不愿接收其它源发送的信息。SSM模型为用户提供了一种能够在客户端指定组播源的传输服务。
SSM模型与ASM模型的根本区别在于:SSM模型中的接收者已经通过其他手段预先知道了组播源的具体位置。SSM模型使用与ASM/SFM模型不同的组播地址范围,直接在接收者和其指定的组播源之间建立专用的组播转发路径。
IP组播技术比较复杂,其根本用途是以组播方式将信息从组播源传输到接收者手中,同时满足接收者对信息的各种需求。对于IP组播,需要关注的是:
l 网络中有哪些接收者?即主机注册。
l 这些接收者需要从哪个组播源接收信息?即组播源发现技术。
l 组播源将组播信息传输到哪里?即组播寻址机制。
l 组播信息如何传输?即组播路由。
IP组播属于一种端到端服务,按照协议层从下往上划分,组播机制包括以下四个部分:
l 寻址机制:借助组播地址,实现信息从组播源发送到一组接收者。
l 主机注册:使用组播成员注册机制实现接收主机动态加入和离开组播组。
l 组播路由:使用组播路由构建报文分发树,从组播源传输报文到接收者。
l 组播应用:组播源必须支持视频会议等组播应用软件,TCP/IP协议栈必须支持组播信息的发送和接收。
由于信息的接收者是一个组播组内的多个主机,因此需要面对信息源该将信息发往何处、目的地址如何选取的问题。
这些问题简而言之就是组播寻址。为了让信息源和组播组成员进行通讯,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层MAC组播地址。下面分别介绍这两种组播地址。
根据IANA(Internet Assigned Numbers Authority,因特网编号授权委员会)规定,IP地址分为五类,即A类、B类、C类、D类和E类。
l 单播报文按照网络规模大小分别使用A、B、C三类IP地址。
l 组播报文的目的地址使用D类IP地址,D类地址不能出现在IP报文的源IP地址字段。
l 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-2。
表1-2 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-3 预留的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/8,这些地址属于管理范围地址。通过对管理范围地址的管理,可以灵活地定义组播域范围,实现不同组播域之间的地址隔离,有助于相同组播地址在不同组播域内的重复使用而不会冲突。
以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播报文时,传输目标不再是一个具体的接收者,而是一个成员不确定的组,所以需要使用组播MAC地址作为目的地址。
IANA规定,组播MAC地址的高24bit为0x01005e,MAC地址的低23bit为组播IP地址的低23bit,映射关系如图1-4所示:
图1-4 组播IP地址与组播MAC地址的映射关系
由于IP组播地址的高4bit是1110,代表组播标识,而低28bit中只有23bit被映射到MAC地址,这样IP地址中就会有5bit信息丢失,直接的结果是出现了32个IP组播地址映射到同一MAC地址上。
l 通常,我们把工作在网络层的IP组播称为“三层组播”,相应的组播协议称为“三层组播协议”,包括IGMP、PIM、MSDP等;把工作在数据链路层的IP组播称为“二层组播”,相应的组播协议称为“二层组播协议”,包括IGMP Snooping。
l 本节主要针对二、三层组播协议在网络中的应用位置和功能进行总体介绍,有关各协议的详细介绍请分别参见本手册其他各章节的介绍。
三层组播协议包括组播组管理协议和组播路由协议两种类型,它们在网络中的应用位置如图1-5所示。
(1) 组播组管理协议
在主机和与其直接相连的三层组播设备之间通常采用组播组的管理协议IGMP(Internet Group Management Protocol,互联网组管理协议),该协议规定了主机与三层组播设备之间建立和维护组播组成员关系的机制。
(2) 组播路由协议
组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。
对于ASM模型,可以将组播路由分为域内和域间两大类:
l 域内组播路由用来在AS(Autonomous System,自治系统)内部发现组播源并构建组播分发树,从而将组播信息传递到接收者。在众多域内组播路由协议中,PIM(Protocol Independent Multicast,协议无关组播)是目前较为典型的一个。按照转发机制的不同,PIM可以分为DM(Dense Mode,密集模式)和SM(Sparse Mode,稀疏模式)两种模式。
l 域间组播路由用来实现组播信息在AS之间的传递,目前比较成型的解决方案有MSDP(Multicast Source Discovery Protocol,组播源发现协议)等。
对于SSM模型,没有域内和域间的划分。由于接收者预先知道组播源的具体位置,因此只需要借助PIM-SM构建的通道即可实现组播信息的传输。
二层组播协议包括IGMP Snooping、组播VLAN等,它们在网络中的应用位置如图1-6所示。
(1) IGMP Snooping
IGMP Snooping(Internet Group Management Protocol Snooping,IGMP侦听)是运行在二层设备上的组播约束机制,通过侦听和分析主机与三层组播设备之间交互的IGMP来管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。
(2) 组播VLAN
在传统的组播点播方式下,当连接在二层设备上、属于不同VLAN的用户分别进行组播点播时,三层组播设备需要向该二层设备的每个VLAN分别发送一份组播数据;而当二层设备运行了组播VLAN之后,三层组播设备只需向该二层设备的组播VLAN发送一份组播数据即可,从而既避免了带宽的浪费,也减轻了三层组播设备的负担。
在组播模型中,IP报文的目的地址字段为组播组地址,组播源向以此目的地址所标识的主机群组传送信息。因此,转发路径上的组播路由器为了将组播报文传送到各个方位的接收站点,往往需要将从一个入接口收到的组播报文转发到多个出接口。与单播模型相比,组播模型的复杂性就在于此:
l 为了保证组播报文在网络中的传输,必须依靠单播路由表或者单独提供给组播使用的组播路由表来指导转发;
l 为了处理同一设备在不同接口上收到来自不同对端的相同组播信息,需要对组播报文的入接口进行RPF(Reverse Path Forwarding,逆向路径转发)检查,以决定转发还是丢弃该报文。RPF检查机制是大部分组播路由协议进行组播转发的基础。
RPF机制除了可以保证正确地按照组播路由的配置转发组播报文外,还能避免由于各种原因而造成的环路。
路由器在收到由组播源S向组播组G发送的组播报文后,首先查找组播转发表:
(1) 如果存在对应的(S,G)表项,且该报文实际到达的接口与组播转发表中的入接口一致,则向所有的出接口执行转发。
(2) 如果存在对应的(S,G)表项,但是该报文实际到达的接口与组播转发表中的入接口不一致,则对此报文执行RPF检查:
l 若检查结果表明RPF接口与现存(S,G)表项的入接口相同,则说明(S,G)表项正确,丢弃这个来自错误路径的报文;
l 若检查结果表明RPF接口与现存(S,G)表项的入接口不符,则说明(S,G)表项已过时,将入接口修改为该报文实际到达的接口,然后向所有的出接口执行转发。
(3) 如果不存在对应的(S,G)表项,则也对该报文执行RPF检查。将RPF接口作为入接口,结合相关路由信息创建相应的表项,并下发到组播转发表中:
l 如果该报文实际到达的接口正是RPF接口,则RPF检查通过,向所有的出接口执行转发;
l 如果该报文实际到达的接口不是RPF接口,则RPF检查失败,丢弃该报文。
执行RPF检查的依据是单播路由。单播路由表中汇集了到达各个目的网段的最短路径。组播路由协议并不独立维护某种单播路由,而是依赖于网络中现有的单播路由信息创建组播路由表项。
在执行RPF检查时,路由器查找单播路由表的具体过程:以“报文源”的IP地址为目的地址查找单播路由表,自动选取一条最优单播路由。对应表项中的出接口为RPF接口,下一跳为RPF邻居。路由器认为来自RPF邻居且由该RPF接口收到的组播报文所经历的路径是从源S到本地的最短路径。
如图1-7所示,假设网络中单播路由畅通。组播报文沿从组播源(Source)到接收者(Receiver)的SPT进行传输。
图1-7 RPF检查过程
l SwitchC从接口Vlan-int 1收到来自Source的组播报文,组播转发表中没有相应的转发表项。执行RPF检查,发现单播路由表中到达网段192.168.0.0/24的出接口是Vlan-int 2 ,于是判断该报文实际到达的接口不是RPF接口。RPF检查失败,该组播报文被丢弃。
l Switch C从接口Vlan-int 2收到来自Source的组播报文,组播转发表中没有相应的转发表项。执行RPF检查,发现单播路由表中到达网段192.168.0.0/24的出接口正是该报文实际到达的接口。RPF检查通过,向所有的出接口转发该报文。
IGMP Snooping(Internet Group Management Protocol Snooping,IGMP侦听)是运行在二层以太网交换机上的组播约束机制,用于管理和控制组播组。
运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
如图2-1所示,当二层设备没有运行IGMP Snooping时,组播数据在二层被广播;当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者。
如图2-2所示,Router A连接组播源,在Switch A和Switch B上分别运行IGMP Snooping,Host A和Host C为接收者主机(即组播组成员)。
结合图2-2,介绍一下IGMP Snooping相关的端口概念:
l 路由器端口(Router Port):交换机上靠近三层组播设备(即DR或IGMP查询器)一侧的端口,如Switch A和Switch B各自的Ethernet1/0/1端口。交换机将本设备上的所有路由器端口都记录在路由器端口列表中。
l 成员端口(Member Port):又称组播组成员端口,表示交换机上靠近组播组成员一侧的端口,如Switch A的Ethernet1/0/2和Ethernet1/0/3端口,以及Switch B的Ethernet1/0/2端口。交换机将本设备上的所有成员端口都记录在IGMP Snooping转发表中。
表2-1 IGMP Snooping端口老化定时器
定时器 |
说明 |
超时前应收到的报文 |
超时后交换机的动作 |
路由器端口老化定时器 |
交换机为其上的每个路由器端口都启动一个定时器,其超时时间为路由器端口老化时间 |
IGMP通用查询报文或PIM Hello报文 |
将该端口从路由器端口列表中删除 |
成员端口老化定时器 |
当一个端口加入某组播组时,交换机为该端口启动一个定时器,其超时时间为成员端口老化时间 |
IGMP成员关系报告报文 |
将该端口从组播组的转发表中删除 |
运行了IGMP Snooping的交换机对不同IGMP动作的具体处理方式如下:
IGMP查询器定期向本地网段内的所有主机与路由器发送IGMP通用查询报文,以查询该网段有哪些组播组的成员。
在收到IGMP通用查询报文时,交换机将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:
l 如果该端口是路由器端口列表中已有的路由器端口,则重置该路由器端口的老化定时器。
l 如果该端口不是路由器端口列表中已有的路由器端口,则将其加入路由器端口列表,并启动该路由器端口的老化定时器。
以下情况,主机会向组播路由器发送IGMP成员关系报告报文:
l 当组播组的成员主机收到IGMP查询报文后,会回复IGMP成员关系报告报文。
l 如果主机要加入某个组播组,它会主动向组播路由器发送IGMP成员关系报告报文以声明加入该组播组。
在收到IGMP成员关系报告报文时,交换机将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的组播组地址,并对该报文的接收端口做如下处理:
l 如果该端口已存在于组播组转发表中,则重置该端口的成员端口老化定时器;
l 如果该端口不在组播组转发表中,则在组播组转发表中为该端口增加转发表项,并启动该端口的成员端口老化定时器。
交换机不会将IGMP成员关系报告报文通过非路由器端口转发出去,原因如下:根据IGMP成员关系报告抑制机制,如果非路由器端口下还有该组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使交换机无法获知这些端口下还有该组播组的成员主机。
运行IGMPv1的主机离开组播组时不会发送IGMP离开组报文,因此交换机无法立即获知主机离开的信息。但是,由于主机离开组播组后不会再发送IGMP成员关系报告报文,因此当其对应的成员端口的老化定时器超时后,交换机就会将该端口对应的转发表项从转发表中删除。
运行IGMPv2或IGMPv3的主机离开组播组时,会通过发送IGMP离开组报文,以通知组播路由器自己离开了某个组播组。
当从最后一个成员端口上收到IGMP离开组报文时,交换机会将该报文通过VLAN内的所有路由器端口转发出去,同时由于并不知道该报文的接收端口下是否还有该组播组的其它成员,所以交换机不会立刻把该端口对应的转发表项从转发表中删除,而是重置该成员端口的老化定时器。
当IGMP查询器收到IGMP离开组报文后,从中解析出主机要离开的组播组的地址,并通过接收端口向该组播组发送IGMP特定组查询报文。交换机在收到IGMP特定组查询报文后,将其通过VLAN内的所有路由器端口和该组播组的所有成员端口转发出去。
对于IGMP离开组报文的接收端口,交换机在该成员端口的老化时间内:
l 如果从该端口收到了主机发送的响应该组播组的IGMP成员关系报告报文,则表示该端口下还有该组播组的成员,于是重置该成员端口的老化定时器;
l 如果没有从该端口收到主机发送的响应该组播组的IGMP成员关系报告报文,则表示该端口下已没有该组播组的成员,则在该成员端口老化时间超时后,将转发表中该端口对应该组播组的转发表项删除。
交换机在启动了IGMP Snooping功能后,当收到某个组播组内的主机发出的IGMP离开报文时,会自动判断该组播组是否存在。如果该组播组不存在,则丢弃这个IGMP离开报文,不再转发。
配置任务 |
说明 |
详细配置 |
启动IGMP Snooping |
必选 |
|
配置IGMP-Snooping版本 |
可选 |
|
配置IGMP Snooping相关定时器 |
可选 |
|
配置端口从组播组中快速删除功能 |
可选 |
|
配置组播组过滤功能 |
可选 |
|
配置端口可以通过的组播组最大数量 |
可选 |
|
配置IGMP Snooping查询器 |
可选 |
|
配置IGMP Snooping禁止广播 |
可选 |
|
配置静态成员端口 |
可选 |
|
配置静态路由器端口 |
可选 |
|
配置IGMP Snooping模拟主机加入功能 |
可选 |
|
配置查询报文的VLAN Tag |
可选 |
|
配置组播VLAN |
可选 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
全局启动的IGMP Snooping功能 |
igmp-snooping enable |
必选 缺省情况下,全局IGMP Snooping功能处于关闭状态 |
进入VLAN视图 |
vlan vlan-id |
- |
启动VLAN视图下的IGMP Snooping功能 |
igmp-snooping enable |
必选 缺省情况下,所有VLAN的IGMP Snooping功能都处于关闭状态 |
l 在启动指定VLAN的IGMP Snooping前,应首先在系统视图下启动全局IGMP Snooping功能,否则将无法配置成功。
l 如果在某VLAN内同时启动了IGMP Snooping和VLAN VPN,有可能会造成IGMP查询报文不能够通过VLAN,可以通过配置查询报文的VLAN Tag解决,详细情况请参见“2.2.12 配置查询报文的VLAN Tag”。
配置IGMP Snooping的版本,实际上就是配置IGMP Snooping可以处理的IGMP报文的版本:
l 当IGMP Snooping的版本为2时,IGMP Snooping能够对IGMPv1和IGMPv2的报文进行处理,对IGMPv3的报文则不进行处理,而是在VLAN内将其广播;
l 当IGMP Snooping的版本为3时,IGMP Snooping能够对IGMPv1、IGMPv2和IGMPv3的报文进行处理。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置VLAN的 IGMP-Snooping版本 |
igmp-snooping version version-number |
可选 缺省情况下,IGMP-Snooping版本为2 |
l 配置IGMP Snooping版本前,首先要在指定VLAN内启动IGMP Snooping。
l IGMPv3 Snooping的功能不能区分组播组相同而组播源不同的组播数据,只能点播组播组不同和组播源也不同的组播数据,所以规划网络时每个组播源的组播组地址不能相同。
本配置任务用来手工设置路由器端口老化定时器、组播组成员端口老化定时器、响应查询定时器。
表2-5 配置IGMP Snooping相关定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置路由器端口老化定时器 |
igmp-snooping router-aging-time seconds |
可选 缺省情况下,路由器端口老化时间为105秒 |
配置响应查询定时器 |
igmp-snooping max-response-time seconds |
可选 缺省情况下,最大响应查询时间为10秒 |
配置组播组成员端口老化定时器 |
igmp-snooping host-aging-time seconds |
可选 缺省情况下,组播组成员端口老化时间为260秒 |
当启动快速删除功能后,交换机从某端口收到离开某组播组的IGMP离开报文时,直接将端口从组播组中删除。
当端口下只有一个用户时,可以通过使能端口从组播组中快速删除功能来节约带宽和资源;而在连接有多个接收者的端口上,如果未知组播报文丢弃或禁止广播功能同时开启的情况下,则不要再使能端口从组播组中快速删除功能,否则,一个接收者的离开将导致该端口下属于同一组播组的其它接收者无法收到组播数据。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置端口从组播组中快速删除功能 |
igmp-snooping fast-leave [ vlan vlan-list ] |
必选 缺省情况下,端口从组播组中快速删除功能关闭 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口 |
interface interface-type interface-number |
- |
配置端口从指定VLAN的组播组中快速删除功能 |
igmp-snooping fast-leave [ vlan vlan-list ] |
必选 缺省情况下,端口从组播组中快速删除功能关闭 |
l 端口从组播组中快速删除功能只能在客户端支持IGMP V2或V3时生效。
l 当在系统视图下的配置时,如果没有指定VLAN,则交换机的所有端口都启动快速删除功能;如果指定了VLAN,则该VLAN内的所有端口都启动快速删除功能。
l 当在以太网端口视图下时,如果没有指定VLAN,则无论该端口属于哪个VLAN,该端口都启动快速删除功能;如果指定了VLAN,配置只对指定VLAN内的该端口有效。
在启动了IGMP Snooping的交换机上,通过配置组播组过滤器,可以限制用户对组播节目的点播。
在实际应用中,当用户点播某个组播节目时,会发起一个IGMP报告报文,该报文到达交换机后,交换机检查接收端口上配置的组播过滤ACL,如果此端口可以加入这个组播组,则将这个端口加入到该组播组的转发端口列表中;否则交换机就丢弃该IGMP报告报文,这样数据流就不会送到该端口,从而控制用户点播组播。
配置此功能前,请确定ACL规则已经配置完毕。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置组播过滤功能 |
igmp-snooping group-policy acl-number [ vlan vlan-list ] |
必选 缺省情况下,组播过滤功能关闭 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置组播过滤功能 |
igmp-snooping group-policy acl-number [ vlan vlan-list ] |
必选 缺省情况下,组播过滤功能关闭 |
l 一个端口可属于多个VLAN,端口所属每个VLAN只能配置一个ACL规则。
l 在配置此命令时,如果用户没有配置ACL规则,则会过滤掉所有组播组。
l 由于绝大多数的设备采用广播方式处理未知组播报文,因此,为了确保组播数据流不会被当成未知组播送到被过滤的端口,该功能一般都和未知组播丢弃功能组合使用。
l 当在系统视图下的配置时,如果没有指定VLAN,则交换机的所有端口都启动组播过滤功能;如果指定了VLAN,则该VLAN内的所有端口都启动组播过滤功能。
l 当在以太网端口视图下配置时,如果没有指定VLAN,则在所有VLAN内都启动了组播过滤功能,且只对启动IGMP Snooping的VLAN生效;如果指定了VLAN,配置只对指定VLAN内的该端口有效。
在配置端口可以加入的组播组最大数量后,用户在点播组播组节目时,由于端口通过的组播组的数量受到限制,因此用户不能无限制的点播组播组。这样一来,端口带宽就得到了控制。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置端口可以通过的组播组最大数量 |
igmp-snooping group-limit limit [ vlan vlan-list [ overflow-replace ] ] |
必选 缺省情况下,S5100-SI系列交换机端口可以加入的组播组最大数量为128;S5100-EI系列交换机端口可以加入的组播组最大数量数为256 |
l 为了避免因组播组数量过多引起网络流量过大或导致设备的处理能力下降,可以限定交换机支持的最大组播组数量。
l 当组播组数量超过限定值时,交换机会根据组播组建立的先后顺序删除最先的建立的多余组播组,此时被删除的组播组内一些正被转发的组播流会被当成未知组播报文在本VLAN内广播,导致一段时间内非成员端口也会收到组播流。
为了避免上述情况的发生,请打开未知组播报文丢弃功能或IGMP Snooping禁止广播功能。
在运行了IGMP协议的组播网络中,会有一个专职查询的组播路由器或三层组播交换机,负责发送IGMP查询报文。
但是,由于二层组播交换机上不支持IGMP功能,因此没有办法实现查询器的功能,无法发送通用组查询报文。用户可以通过配置IGMP Snooping查询器,使二层交换机在数据链路层主动发送通用组查询报文,从而建立并维护组播转发表项。
用户还可以配置IGMP Snooping查询器发送通用组查询报文的源地址、通用组查询报文的最大响应时间以及查询周期。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动IGMP Snooping |
igmp-snooping enable |
必选 缺省情况下,IGMP Snooping功能处于关闭状态 |
进入VLAN视图 |
vlan vlan-id |
- |
启动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内配置了IGMP Snooping功能后,当交换机收到发往未知组播组的报文时,数据报文会在VLAN内广播,这样会占用大量的网络带宽,影响转发效率。
此时用户可以在交换机上启动IGMP Snooping禁止广播功能,当交换机收到发往未知组播组的报文时,交换机将建立nonflooding表项,使数据报文只向交换机的路由器端口转发,不在VLAN内广播。如果交换机没有路由器端口,数据报文会被丢弃,不再转发。
IGMP Snooping禁止广播功能与未知组播报文丢弃功能的区别就在于:前者将未知的组播数据报文向路由器端口转发,而后者则会直接丢弃未知组播数据报文。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启IGMP Snooping禁止广播功能 |
igmp-snooping nonflooding-enable |
必选 缺省情况下,没有启动IGMP Snooping禁止广播功能 |
如果已经配置了未知组播报文丢弃功能的情况下,IGMP Snooping禁止广播功能不能配置。
如果某端口所连接的主机需要固定接收某个组播组的组播数据,可以配置该端口静态加入该组播组,成为静态成员端口。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置当前端口作为静态成员端口 |
multicast static-group group-address vlan vlan-id |
必选 缺省情况下,没有配置静态成员端口 |
表2-14 在VLAN接口视图下配置静态成员端口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN接口视图 |
interface Vlan-interface interface-number |
- |
配置指定端口作为静态成员端口 |
multicast static-group group-address interface interface-list |
必选 缺省情况下,没有配置静态成员端口 |
在拓扑稳定的网络中,可以将交换机上的路由器端口配置为静态路由器端口,交换机可以通过该端口接收路由器发来的IGMP报文。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置当前端口作为静态路由器端口 |
multicast static-router-port vlan vlan-id |
必选 缺省情况下,没有配置静态路由器端口 |
表2-16 在VLAN视图下配置静态路由器端口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置指定端口作为静态路由器端口 |
multicast static-router-port interface-type interface-number |
必选 缺省情况下没有配置静态路由器端口 |
通常情况下,运行IGMP的主机会对组播路由器的IGMP查询报文进行响应,如果由于某种原因无法响应,就可能导致组播路由器认为该网段没有该组播组的成员,从而取消相应的路径。
为避免这种情况的发生,配置交换机VLAN下的某个端口为组播组成员,当该端口收到IGMP查询报文时,由组播交换机进行响应,从而保证VLAN下的该端口能够继续收到组播报文。
IGMP Snooping模拟主机加入功能实现原理如下:
l 在以太网端口上启动模拟主机加入功能时,交换机会主动从该端口发送一个IGMP成员关系报告报文,同时回环给自身一个相同的IGMP成员关系报告报文,通过这个回环报文建立相应的IGMP表项;
l 当启动了模拟主机加入功能后,如果再收到IGMP通用查询报文后,交换机同样会响应一个IGMP成员关系报告报文,同时回环给自身一个相同的IGMP成员关系报告报文,通过这个回环报文来保证IGMP表项不被老化掉;
l 在以太网端口上关闭模拟主机加入功能后,交换机也会发送一个IGMP离开组报文。
因此,为了使IGMP表项不被老化掉,必须保证端口能够周期性的收到IGMP通用查询报文。
表2-17 配置IGMP Snooping模拟主机加入功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置IGMP Snooping模拟主机加入功能 |
igmp host-join group-address [ source-ip source-address ] vlan vlan-id |
可选 缺省情况下,模拟主机加入功能处于关闭状态 |
l 配置IGMP Snooping模拟主机加入功能前,应该先在VLAN视图下启动IGMP Snooping功能;
l 当前端口必须属于指定VLAN,否则配置不会生效;
l 用户可以配置source-ip source-address来指定模拟主机要加入的组播源地址,只有VLAN内启动了IGMPv3 Snooping 时,该参数才有效。
可以通过配置在指定VLAN转发/发送的通用查询报文和特定组查询报文,实现在上行VLAN与下行VLAN不同的二层组播网络环境中的组播报文的跨VLAN转发。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置查询报文的VLAN Tag |
igmp-snooping vlan-mapping vlan vlan-id |
必选 缺省情况下,不对IGMP Snooping转发/发送的通用查询报文和特定组查询报文所带的VLAN Tag进行设置 |
该功能建议不要与组播VLAN功能同时使用。
基于以往的组播点播方式,当处于不同VLAN的用户点播同一个组播组时,数据在组播路由器上会为每个包含接收者的VLAN进行复制和转发。这样的组播点播方式,浪费了大量的带宽。
在启动了IGMP Snooping功能后,通过配置组播VLAN的方式,将交换机的端口加入到组播VLAN,使不同VLAN内的用户共用一个组播VLAN接收组播数据,组播流只在一个组播VLAN内进行传输,从而节省了带宽。而且由于组播VLAN与用户VLAN完全隔离,安全和带宽都得以保证。
组播VLAN主要应用于二层交换,但在三层交换机上也必须进行相应的配置。
组播VLAN配置过程如下:
表2-19 配置组播VLAN(三层交换机)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建组播VLAN,并进入VLAN视图 |
vlan vlan-id |
- |
退出至系统视图 |
quit |
- |
进入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,并且如果端口类型为Hybrid,则必须设置该端口在转发组播VLAN内的报文时保留VLAN Tag |
port trunk permit vlan vlan-list |
表2-20 组播VLAN配置过程(二层交换机)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动IGMP Snooping |
igmp-snooping enable |
- |
进入VLAN视图 |
vlan vlan-id |
- |
启动IGMP Snooping |
igmp-snooping enable |
必选 |
启动组播VLAN功能 |
service-type multicast |
必选 |
退出至系统视图 |
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,并且如果端口类型为Hybrid,则必须设置该端口在转发组播VLAN内的报文时保留VLAN Tag |
port trunk permit 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端口或者是允许组播VLAN报文带Tag发送的Hybrid端口,否则在此组播VLAN内的所有的组播成员端口都无法接收到组播数据报文。
l 用户建立了组播VLAN后,所有的IGMP主机报告报文只在组播VLAN内处理。
在完成上述配置后,在任意视图下执行display命令可以显示配置后IGMP Snooping的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除IGMP Snooping统计信息。
表2-21 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。
l 如图2-3所示,Router A通过GigabitEthernet1/0/2接口连接组播源(Source),通过GigabitEthernet1/0/1接口连接Switch A。
l 在Router A上运行PIM DM和IGMP,在Switch A上运行IGMP Snooping,并由Router A充当IGMP查询器。
l 组播源(Source)发送组播数据的地址为224.1.1.1;接收者Host A和Host B加入到组播组224.1.1.1。
(1) 配置各设备接口的IP地址
请按照图2-3配置各接口的IP地址和子网掩码,具体配置过程略。
(2) 配置Router A
# 启动组播路由,在各接口上启动PIM-DM,并在接口GigabitEthernet1/0/1上启动IGMP。
<RouterA> system-view
[RouterA] multicast routing-enable
[RouterA] interface GigabitEthernet1/0/1
[RouterA-GigabitEthernet1/0/1] igmp enable
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface GigabitEthernet1/0/2
[RouterA-GigabitEthernet1/0/2] pim dm
[RouterA-GigabitEthernet1/0/2] quit
(3) 配置Switch A
# 全局启动IGMP Snooping。
<SwitchA> system-view
[SwitchA] igmp-snooping enable
Enable IGMP-Snooping ok.
# 创建VLAN 100,把端口GigabitEthernet1/0/1到GigabitEthernet1/0/4添加到该VLAN中,并在该VLAN内启动IGMP Snooping。
[SwitchA] vlan 100
[SwitchA-vlan100] port GigabitEthernet1/0/1 to GigabitEthernet1/0/4
[SwitchA-vlan100] igmp-snooping enable
[SwitchA-vlan100] quit
(4) 检验配置效果
# 查看Switch A上VLAN 100内的组播组详细信息。
<SwitchA> display igmp-snooping group vlan 100
Total 1 IP Group(s).
Total 1 MAC Group(s).
Vlan(id):100.
Total 1 IP Group(s).
Total 1 MAC Group(s).
Static Router port(s):
Dynamic Router port(s):
GigabitEthernet1/0/1
IP group(s):the following ip group(s) match to one mac group.
IP group address: 224.1.1.1
Static host port(s):
Dynamic host port(s):
GigabitEthernet1/0/3 GigabitEthernet1/0/4
MAC group(s):
MAC group address: 0100-5e01-0101
Host port(s): GigabitEthernet1/0/3 GigabitEthernet1/0/4
以上显示信息表明,SwitchA上已经建立起以动态路由器端口为GigabitEthernet1/0/1和动态主机成员端口为GigabitEthernet1/0/3和GigabitEthernet1/0/4的组播组224.1.1.1,说明HostA和HostB已经成功加入到组播组224.1.1.1。
组播源为Workstation,Switch A转发组播源发出的组播数据流。组播数据流通过二层交换机Switch B被转发到最终用户HostA、HostB。
具体的设备编号如下:
设备 |
描述 |
说明 |
Switch A |
三层交换机 |
VLAN 20接口的IP地址为168.10.1.1,GigabitEthernet1/0/1属于VLAN 20,GigabitEthernet1/0/1和Work Station相连 VLAN 10接口的IP地址为168.10.2.1,GigabitEthernet1/0/10属于VLAN 10,GigabitEthernet1/0/10和Switch B相连 |
Switch B |
二层交换机 |
l VLAN 2包含端口GigabitEthernet1/0/1,VLAN 3包括端口GigabitEthernet1/0/2,两个端口分别与HostA、HostB相连 l 端口GigabitEthernet1/0/1和GigabitEthernet1/0/2的缺省VLAN分别为VLAN2和VLAN3 l VLAN 10包含端口GigabitEthernet1/0/10 、GigabitEthernet1/0/1和GigabitEthernet1/0/2,并且端口GigabitEthernet1/0/10与SwitchA相连 l VLAN 10为组播VLAN l 端口GigabitEthernet1/01以untag方式发送VLAN2 和VLAN10的报文 l 端口GigabitEthernet1/02以untag方式发送VLAN3 和VLAN10的报文 |
HostA |
用户1 |
与Switch B的GigabitEthernet1/0/1端口相连 |
HostB |
用户2 |
与Switch B的GigabitEthernet1/0/2端口相连 |
在该配置举例中,将SwitchA和SwitchB之间相连的端口配置为hybrid端口,配置过程如下面配置过程所示。用户也可以将SwitchA和SwitchB之间相连的端口配置为trunk端口,配置过程略,可参考2.2.13 配置组播VLAN。
配置组播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]port GigabitEthernet1/0/1
[SwitchA-vlan20] quit
[SwitchA] 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
# 将GigabitEthernet1/0/10定义为Hybrid端口,并将该端口加入到VLAN10中,端口发送VLAN 10的报文时带VLAN标签。
[SwitchA] interface GigabitEthernet1/0/10
[SwitchA-GigabitEthernet1/0/10] port link-type hybrid
[SwitchA-GigabitEthernet1/0/10] port hybrid vlan 10 tagged
[SwitchA-GigabitEthernet1/0/10] quit
# 配置VLAN 10接口的IP地址为168.10.2.1,并启动PIM DM和IGMP。
[SwitchA] interface Vlan-interface 10
[SwitchA-Vlan-interface10] ip address 168.10.2.1 255.255.255.0
[SwitchA-Vlan-interface10] igmp enable
(2) Switch B上的配置
# 启动设备IGMP Snooping。
<SwitchB> system-view
[SwitchB] igmp-snooping enable
# 创建VLAN2,3,10,并将VLAN 10配置为组播VLAN,启动IGMP Snooping。
[SwitchB] vlan 2 to 3
Please wait.... Done.
[SwitchB] vlan 10
[SwitchB-vlan10] service-type multicast
[SwitchB-vlan10] igmp-snooping enable
[SwitchB-vlan10] quit
# 将GigabitEthernet1/0/10定义为Hybrid端口,并将该端口加入到VLAN 2、3、10中,端口发送VLAN 2、VLAN 3和VLAN 10的报文时带VLAN标签。
[SwitchB] interface GigabitEthernet1/0/10
[SwitchB-GigabitEthernet1/0/10] port link-type hybrid
[SwitchB-GigabitEthernet1/0/10] port hybrid vlan 2 3 10 tagged
[SwitchB-GigabitEthernet1/0/10] quit
# 将GigabitGigabitEthernet1/0/1定义为Hybrid端口,并将该端口加入到VLAN 2、VLAN 10中,端口发送VLAN 2和VLAN 10的报文时不带VLAN标签,端口的缺省VLAN为VLAN 2。
[SwitchB] interface GigabitEthernet1/0/1
[SwitchB-GigabitEthernet1/0/1] port link-type hybrid
[SwitchB-GigabitEthernet1/0/1] port hybrid vlan 2 10 untagged
[SwitchB-GigabitEthernet1/0/1] port hybrid pvid vlan 2
[SwitchB-GigabitEthernet1/0/1] quit
# GigabitEthernet1/0/2定义为Hybrid端口,并将该端口加入到VLAN 3、VLAN 10中,端口发送VLAN 3和VLAN 10的报文时不带VLAN标签,端口的缺省VLAN为VLAN 3。
[SwitchB] interface GigabitEthernet1/0/2
[SwitchB-GigabitEthernet1/0/2] port link-type hybrid
[SwitchB-GigabitEthernet1/0/2] port hybrid vlan 3 10 untagged
[SwitchB-GigabitEthernet1/0/2] port hybrid pvid vlan 3
[SwitchB-GigabitEthernet1/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建立的组播组不正确,请向专业维护人员求助。
在二层的组播过程中,除了通过二层组播协议动态建立MAC组播组转发表项外,还可以通过手工配置组播MAC地址表项,将端口与组播地址表项进行静态绑定。
通常情况下,如果交换机收到的组播数据报文中的组播地址没有在本机注册,该报文会在该端口所在的VLAN内广播,通过配置组播静态MAC地址表项可以避免这种情况。
表3-1 添加组播MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
添加组播MAC地址表项 |
mac-address multicast mac-address interface interface-list vlan vlan-id |
必选 mac-address必须为组播MAC地址 |
表3-2 添加组播MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
添加组播MAC地址表项 |
mac-address multicast mac-address vlan vlan-id |
必选 mac-address必须为组播MAC地址 |
l 如果要添加的组播MAC地址表项已经存在,则系统会给出提示。
l 如果要向通过命令添加的组播MAC地址表项中加入端口,需要先将该表项删除,然后重新添加该表项,将指定端口加入到表项的转发端口中。
l 如在端口添加了组播MAC地址,则无法在此端口启动端口汇聚。如端口已经是汇聚端口,则不可以添加组播MAC地址。
l 如果用户需要在启动了IGMP-Snooping的VLAN内添加组播MAC地址,将不能配置以01005e开头的组播MAC地址;如果VLAN内没有启动IGMP Snooping,可以配置包括以01005e开头的组播MAC地址。
通常情况下,如果交换机收到的组播数据报文的组播地址没有在本机注册,该报文会在在其所属的VLAN内进行广播。当启动未知组播丢弃功能后,交换机收到未注册组播地址的组播数据报文,将丢弃该报文,从而节省带宽,并提高系统的处理效率。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置未知组播报文丢弃功能 |
unknown-multicast drop enable |
必选 缺省情况下,未知组播报文丢弃功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后组播公共配置的运行情况,通过查看显示信息验证配置的效果。
操作 |
命令 |
说明 |
显示已经添加组播MAC地址表项 |
display mac-address multicast [ static { { { mac-address vlan vlan-id | vlan vlan-id } [ count ] } | count } ] |
display命令可以在任意视图下执行 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!