• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

H3C S3600系列以太网交换机 操作手册-Release 1702(V1.01)

17-组播协议操作

本章节下载 17-组播协议操作  (1.55 MB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S3600/S3600-EI/Configure/Operation_Manual/H3C_S3600_OM-Release_1702(V1.01)/201004/672995_30005_0.htm

17-组播协议操作

  录

1 组播概述

1.1 组播简介

1.1.1 单播方式的信息传输过程

1.1.2 广播方式的信息传输过程

1.1.3 组播方式传输信息

1.1.4 组播中各部分的角色

1.1.5 组播中常用的表示法

1.1.6 组播的优点和应用

1.2 组播模型分类

1.3 组播的框架结构

1.3.1 组播地址

1.3.2 组播协议

1.4 组播报文的转发机制

1.4.1 RPF机制的应用

1.4.2 RPF检查

2 组播公共配置

2.1 组播公共配置

2.1.1 启动组播数据报文存储机制

2.1.2 启动组播路由

2.1.3 配置组播路由表项数量限制

2.1.4 配置组播源端口抑制

2.1.5 清除组播相关表项内容

2.1.6 添加组播MAC地址表项

2.1.7 配置未知组播报文丢弃

2.1.8 跟踪组播数据的传输路径

2.2 组播公共配置显

3 IGMP配置

3.1 IGMP简介

3.1.1 IGMP的版本

3.1.2 IGMPv1工作机制

3.1.3 IGMPv2的改进

3.1.4 IGMPv3的改进

3.1.5 IGMP Proxy

3.2 配置IGMP

3.2.1 配置任务简介

3.2.2 启动IGMP

3.2.3 配置IGMP版本

3.2.4 配置IGMP查询报文的相关参数

3.2.5 配置接口可以通过的组播组最大数量

3.2.6 配置组播组过滤功能

3.2.7 配置IGMP模拟主机加入功能

3.2.8 配置IGMP Proxy

3.2.9 删除接口上已加入的IGMP组播组

3.3 IGMP配置显示

4 PIM配置

4.1 PIM简介

4.1.1 PIM-DM简介

4.1.2 PIM-DM工作机制

4.1.3 PIM-SM简介

4.1.4 PIM-SM工作机制

4.2 配置PIM-DM

4.2.1 启动PIM-DM

4.3 配置PIM-SM

4.3.1 启动PIM-SM

4.3.2 配置RP

4.3.3 配置BSR

4.3.4 配置RP对DR发送来的注册报文过滤

4.3.5 禁止从共享树切换到最短路径树

4.4 PIM公共配置

4.4.1 配置组播数据过滤器

4.4.2 配置Hello报文发送间隔

4.4.3 配置PIM邻居

4.4.4 配置组播源生存时间

4.4.5 配置PIM剪枝延迟时间

4.4.6 清除PIM相关表项

4.5 PIM显示

4.6 PIM典型配置举例

4.6.1 PIM-DM典型配置举例

4.6.2 PIM-SM典型配置举例

4.7 PIM故障诊断与排除

5 MSDP配置

5.1 MSDP简介

5.1.1 MSDP概述

5.1.2 MSDP原理

5.1.3 协议规范

5.2 配置MSDP基本功能

5.2.1 配置准备

5.2.2 配置MSDP基本功能

5.3 配置MSDP对等体连接

5.3.1 配置准备

5.3.2 配置MSDP对等体描述信息

5.3.3 配置MSDP全连接组

5.3.4 配置MSDP对等体连接控制

5.4 配置SA消息传递

5.4.1 配置准备

5.4.2 配置SA消息中的RP地址

5.4.3 配置SA消息缓存

5.4.4 配置SA请求消息的发送和过滤

5.4.5 配置SA消息的组播源过滤规则

5.4.6 配置接收和转发SA消息的过滤规则

5.5 MSDP显示和维护

5.6 MSDP配置举例

5.6.1 Anycast RP应用配置举例

5.7 常见配置错误举例

5.7.1 MSDP对等体一直处于DOWN状态

5.7.2 路由器SA缓存中没有SA表项

6 IGMP Snooping配置

6.1 IGMP Snooping简介

6.1.1 IGMP Snooping原理

6.1.2 IGMP Snooping基本概念

6.1.3 IGMP Snooping工作机制

6.2 配置IGMP Snooping

6.2.1 启动IGMP Snooping

6.2.2 配置IGMP Snooping版本

6.2.3 配置IGMP Snooping相关定时器

6.2.4 配置端口从组播组中快速删除功能

6.2.5 配置组播组过滤功能

6.2.6 配置端口可以通过的组播组最大数量

6.2.7 配置IGMP Snooping查询器

6.2.8 配置IGMP Snooping禁止广播

6.2.9 配置静态成员端口

6.2.10 配置静态路由器端口

6.2.11 配置禁止端口成为路由器端口功能

6.2.12 配置IGMP Snooping模拟主机加入功能

6.2.13 配置查询报文的VLAN Tag

6.2.14 配置组播VLAN

6.3 IGMP Snooping显示和维护

6.4 IGMP Snooping典型配置举例

6.4.1 配置IGMP Snooping功能

6.4.2 配置组播VLAN功能

6.5 常见配置错误举例

 


1 组播概述

l    文中所述的路由器代表了一般意义下的路由器以及运行了IP组播协议的三层以太网交换机。

l    新增“配置PIM剪枝延迟时间”功能,具体请参见“4.4.5  配置PIM剪枝延迟时间”。

l    新增“IGMP特定组查询报文的源IP地址”功能,具体请参见“6.2.7  配置IGMP Snooping查询器”。

l    新增“配置禁止端口成为路由器端口功能”,具体请参见“6.2.11  配置禁止端口成为路由器端口功能”。

 

1.1  组播简介

随着Internet的不断发展,数据、语音和视频信息等多种交互业务与日俱增,另外新兴的电子商务、网上会议、网上拍卖、视频点播、远程教学等对带宽和实时数据交互要求较高的服务逐渐兴起,这些服务对信息安全性、可计费性、网络带宽提出了更高的要求。

在网络中,存在着三种发送报文的方式:单播、广播、组播。下面我们对这三种传输方式的数据交互过程分别进行介绍和对比。

1.1.1  单播方式的信息传输过程

采用单播(Unicast)方式时,系统为每个需求该信息的用户单独建立一条数据传送通路,并为该用户发送一份独立的拷贝信息,如图1-1

图1-1 单播方式传输信息

 

假设用户B、D和E需要该信息,则信息源Server必须分别和用户B、D、E的设备建立传输通道。由于网络中传输的信息量和要求接收该信息的用户量成正比,因此当需要相同信息的用户数量很庞大时,服务器就必须要将多份内容相同的信息发送给用户。因此,带宽将成为信息传输中的瓶颈。

从单播信息的传播过程可以看出,单播的信息传输方式不利于信息规模化发送。

1.1.2  广播方式的信息传输过程

如果采用广播(Broadcast)方式,系统把信息传送给网络中的所有用户,不管他们是否需要,任何用户都会接收到广播来的信息,如图1-2

图1-2 广播方式传输信息

 

假设用户B、D和E需求该信息,则信息源Server通过路由器广播该信息,网络其他用户A和C也同样接收到该信息,信息安全性和有偿服务得不到保障。

从广播信息的传播过程可以看出,广播的保密性和有偿性比较差。并且当同一网络中需求该信息的用户量很小时,网络资源利用率将非常低,带宽浪费严重。

因此,广播不利于对特定用户进行数据交互,并且还严重的占用带宽。

1.1.3  组播方式传输信息

综上所述,单播方式适合用户较少的网络,而广播方式适合用户稠密的网络,当网络中需求某信息的用户量不确定时,单播和广播方式效率很低。

IP组播技术的出现及时解决了这个问题。当网络中的某些用户需要特定信息时,组播信息发送者(即组播源)仅发送一次信息,借助组播路由协议为组播数据包建立组播分发树,被传递的信息在距离用户端尽可能近的节点才开始复制和分发,如图1-3

图1-3 组播方式传输信息

 

假设用户B、D和E需求该信息,为了将信息顺利地传输给真正需要该信息的用户,需要将用户B、D、E组成一个接收者集合,由网络中各路由器根据该集合中各接收者的分布情况进行信息转发和复制,最后准确地传输给实际需要的接收者B、D和E。

相比单播来说,组播的优点在于:

l              不论接收者有多少,相同的组播数据流在每一条链路上最多仅有一份。

l              使用组播方式传递信息,用户数量的增加不会显著增加网络的负载。

相比广播来说,组播的优点在于:

l              组播数据流仅会发送到要求数据的接收者。

l              不会造成网络资源的浪费,合理的利用带宽。

1.1.4  组播中各部分的角色

在组播方式的信息传输过程中,网络中各部分的角色如下:

l              信息的发送者称为“组播源”,如图1-3中的Source;

l              所有的接收者都是“组播组成员”,如图1-3中的Receiver;

l              由所有接收者构成一个“组播组”,组播组不受地域的限制;

l              支持三层组播功能的路由器称为“组播路由器”或“三层组播设备”,组播路由器不仅能够提供组播路由功能,也能够提供组播组成员的管理功能。

为了更好地理解,可以将组播方式的信息传输过程类比于电视节目的传送过程,如表1-1所示。

表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    一个组播源可以同时向多个组播组发送数据,而多个组播源也可以同时向一个组播组发送数据。

 

1.1.5  组播中常用的表示法

在组播中,经常出现以下两种表示方式:

l              (*,G):通常用来表示共享树,或者由任意组播源发往组播组G的组播报文。其中的“*”代表任意组播源,“G”代表特定组播组G。

l              (S,G):也称为“组播源组”,通常用来表示最短路径树,或者由组播源S发往组播组G的组播报文。其中的“S”代表特定组播源S,“G”代表特定组播组G。

有关共享树和最短路径树的详细介绍,请参见PIM配置

 

1.1.6  组播的优点和应用

1. 组播的优点

组播的优势在于:

l              提高效率:降低网络流量,减轻服务器和CPU负荷。

l              优化性能:减少冗余流量。

l              分布式应用:使多点应用成为可能。

2. 组播的应用

组播技术有效地解决了单点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够节约大量网络带宽、降低网络负载。

组播功能主要有以下的应用:

l              多媒体、流媒体的应用,如:网络电视、网络电台、实时视/音频会议。

l              培训、联合作业场合的通信,如:远程教育。

l              数据仓库、金融应用(股票)等。

l              任何“点到多点”的数据发布应用。

1.2  组播模型分类

根据对组播源处理方式的不同,组播模型有下列三种:

l              ASM(Any-Source Multicast,任意信源组播)

l              SFM(Source-Filtered Multicast,信源过滤组播)

l              SSM(Source-Specific Multicast,指定信源组播)

1. ASM模型

简单地说,ASM模型就是任意源组播模型。

在ASM模型中,任意一个发送者都可以成为组播源,向某组播组地址发送信息。众多接收者通过加入由该组播组地址标识的组播组以获得发往该组播组的组播信息。

在ASM模型中,接收者无法预先知道组播源的位置,但可以在任意时间加入或离开该组播组。

2. SFM模型

SFM模型继承了ASM模型,从发送者角度来看,两者的组播组成员关系完全相同。

同时,SFM模型在功能上对ASM模型进行了扩展。在SFM模型中,上层软件对收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的报文通过。因此,接收者只能收到来自部分组播源的组播数据。从接收者的角度来看,只有部分组播源是有效的,组播源被经过了筛选。

3. SSM模型

在现实生活中,用户可能只对某些组播源发送的组播信息感兴趣,而不愿接收其它源发送的信息。SSM模型为用户提供了一种能够在客户端指定组播源的传输服务。

SSM模型与ASM模型的根本区别在于:SSM模型中的接收者已经通过其他手段预先知道了组播源的具体位置。SSM模型使用与ASM/SFM模型不同的组播地址范围,直接在接收者和其指定的组播源之间建立专用的组播转发路径。

1.3  组播的框架结构

IP组播技术比较复杂,其根本用途是以组播方式将信息从组播源传输到接收者手中,同时满足接收者对信息的各种需求。对于IP组播,需要关注的是:

l              网络中有哪些接收者?即主机注册。

l              这些接收者需要从哪个组播源接收信息?即组播源发现技术。

l              组播源将组播信息传输到哪里?即组播寻址机制。

l              组播信息如何传输?即组播路由。

IP组播属于一种端到端服务,按照协议层从下往上划分,组播机制包括以下四个部分:

l              寻址机制:借助组播地址,实现信息从组播源发送到一组接收者。

l              主机注册:使用组播成员注册机制实现接收主机动态加入和离开组播组。

l              组播路由:使用组播路由构建报文分发树,从组播源传输报文到接收者。

l              组播应用:组播源必须支持视频会议等组播应用软件,TCP/IP协议栈必须支持组播信息的发送和接收。

1.3.1  组播地址

由于信息的接收者是一个组播组内的多个主机,因此需要面对信息源该将信息发往何处、目的地址如何选取的问题。

这些问题简而言之就是组播寻址。为了让信息源和组播组成员进行通讯,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层MAC组播地址。下面分别介绍这两种组播地址。

1. IP组播地址

根据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

DVMRPDistance 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,这些地址属于管理范围地址。通过对管理范围地址的管理,可以灵活地定义组播域范围,实现不同组播域之间的地址隔离,有助于相同组播地址在不同组播域内的重复使用而不会冲突。

 

2. 以太网组播MAC地址

以太网传输单播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地址上。

1.3.2  组播协议

l    通常,我们把工作在网络层的IP组播称为“三层组播”,相应的组播协议称为“三层组播协议”,包括IGMP、PIM、MSDP等;把工作在数据链路层的IP组播称为“二层组播”,相应的组播协议称为“二层组播协议”,包括IGMP Snooping。

l    本节主要针对二、三层组播协议在网络中的应用位置和功能进行总体介绍,有关各协议的详细介绍请分别参见本手册其他各章节的介绍。

 

1. 三层组播协议

三层组播协议包括组播组管理协议和组播路由协议两种类型,它们在网络中的应用位置如图1-5所示。

图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构建的通道即可实现组播信息的传输。

2. 二层组播协议

二层组播协议包括IGMP Snooping和组播VLAN等,它们在网络中的应用位置如图1-6所示。

图1-6 二层组播协议的应用位置

 

(1)        IGMP Snooping

IGMP Snooping(Internet Group Management Protocol Snooping,IGMP侦听)是运行在二层设备上的组播约束机制,通过侦听和分析主机与三层组播设备之间交互的IGMP来管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。

(2)        组播VLAN

在传统的组播点播方式下,当连接在二层设备上、属于不同VLAN的用户分别进行组播点播时,三层组播设备需要向该二层设备的每个VLAN分别发送一份组播数据;而当二层设备运行了组播VLAN之后,三层组播设备只需向该二层设备的组播VLAN发送一份组播数据即可,从而既避免了带宽的浪费,也减轻了三层组播设备的负担。

1.4  组播报文的转发机制

在组播模型中,IP报文的目的地址字段为组播组地址,组播源向以此目的地址所标识的主机群组传送信息。因此,转发路径上的组播路由器为了将组播报文传送到各个方位的接收站点,往往需要将从一个入接口收到的组播报文转发到多个出接口。与单播模型相比,组播模型的复杂性就在于此:

l              为了保证组播报文在网络中的传输,必须依靠单播路由表或者单独提供给组播使用的组播路由表来指导转发;

l              为了处理同一设备在不同接口上收到来自不同对端的相同组播信息,需要对组播报文的入接口进行RPF(Reverse Path Forwarding,逆向路径转发)检查,以决定转发还是丢弃该报文。RPF检查机制是大部分组播路由协议进行组播转发的基础。

RPF机制除了可以保证正确地按照组播路由的配置转发组播报文外,还能避免由于各种原因而造成的环路。

1.4.1  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检查失败,丢弃该报文。

1.4.2  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检查通过,向所有的出接口转发该报文。

 


2 组播公共配置

l    文中所述的路由器代表了一般意义下的路由器以及运行了IP组播协议的三层以太网交换机。

l    S3600-SI系列交换机仅支持本章中“2.1.4  配置组播源端口抑制”、“2.1.6  添加组播MAC地址表项”和“2.1.7  配置未知组播报文丢弃”三个功能,S3600-EI系列交换机支持本章中的所有功能。

 

2.1  组播公共配置

表2-1 配置任务简介

配置任务

说明

详细配置

启动组播数据报文存储机制

可选

2.1.1 

启动组播路由

必选

2.1.2 

配置路由项数量限制

可选

2.1.3 

配置组播源端口抑制

可选

2.1.4 

清除组播相关表项内容

可选

2.1.5 

添加组播MAC地址表项

可选

2.1.6 

配置未知组播报文丢弃

可选

2.1.7 

跟踪组播数据的传输路径

可选

2.1.8 

 

2.1.1  启动组播数据报文存储机制

组播数据报文存储机制是指在建立组播转发表项的过程中,将上送至CPU的组播数据报文缓存起来,等到组播转发表项建立好之后,再将缓存起来的数据报文按照组播转发表项转发出去。

该机制有利于对表项建立期间收到的组播数据进行正确转发,但在存储和转发过程中会增大CPU负担并占用额外的系统内存空间,用户可以根据需要进行配置。

表2-2 启动组播数据报文存储机制

操作

命令

说明

进入系统视图

system-view

-

启动组播数据报文存储机制

multicast storing-enable

可选

缺省情况下,没有启动组播数据报文存储机制

指定最多为每个组播转发表项缓存的报文个数

multicast storing-packet packet-number

可选

缺省情况下,为每个组播转发表项最多缓存100个报文

 

启动组播数据报文存储机制,必须在启动组播路由之前。

 

2.1.2  启动组播路由

表2-3 启动组播路由

操作

命令

说明

进入系统视图

system-view

-

启动组播路由

multicast routing-enable

必选

缺省情况下,没有启动组播路由

 

为防止恶意用户对未使用SOCKET的攻击,提高交换机的安全性,提供了如下功能:

l    在启动组播路由功能时,系统才打开组播路由使用的RAW Socket端口。

l    在关闭组播路由功能时,同时关闭组播路由使用的RAW Socket端口。

 

只有启动了组播路由,IGMP、PIM和MSDP等才能配置或生效。

 

2.1.3  配置组播路由表项数量限制

组播路由表项指明了组播源发送的组播分组要到达某组播组的接收者侧,应通过组播路由器的哪个接口发送。用户在配置组播路由协议后,会有大量的组播路由项上传至上游路由器。为了防止大量的组播路由项耗尽路由器的内存,用户可以通过配置组播路由项限制,防止大量的组播路由项上传。

表2-4 启动组播路由并配置路由项数量限制

操作

命令

说明

进入系统视图

system-view

-

配置组播路由项数量限制

multicast route-limit limit

可选

缺省情况下,组播路由项的数量限制为256

 

2.1.4  配置组播源端口抑制

在网络中,某些用户会私设组播服务器,造成整个组播网络资源紧张,影响组播带宽和网络内合法信息传输。用户可以配置组播源端口抑制功能,在未授权的组播源端口上过滤组播报文,以防止该端口连接的用户私设组播服务器。

1. 在系统视图下配置组播源端口抑制

表2-5 配置组播源端口抑制

操作

命令

说明

进入系统视图

system-view

-

配置组播源端口抑制

multicast-source-deny [ interface interface-list ]

可选

缺省情况下,组播源端口抑制功能处于关闭状态

 

2. 在以太网端口视图下配置组播源端口抑制

表2-6 配置组播源端口抑制

操作

命令

说明

进入系统视图

system-view

-

进入以太网端口视图

interface interface-type interface-number

-

配置组播源端口抑制

multicast-source-deny

可选

缺省情况下,组播源端口抑制功能处于关闭状态

 

2.1.5  清除组播相关表项内容

用户可以通过清除路由器存贮的组播路由表项或组播转发表项,从而释放系统内存。

在用户视图下执行reset命令可以清除组播公共配置的相关统计信息。

表2-7 清除组播相关表项内容

操作

命令

说明

清除MFC转发项或转发项的统计信息

reset multicast forwarding-table [ statistics ] { all | { group-address [ mask {mask | mask-length } ] | source-address [ mask  { mask |mask-length  } ] | incoming-interface interface-type interface-number } * }

reset命令可以在用户图下执行

清除组播核心路由表的路由项

reset multicast routing-table { all | { group-address [ mask { mask |mask-length  } ] | source-address [ mask { mask | mask-length } ] | { incoming-interface interface-type interface-number } } * }

 

2.1.6  添加组播MAC地址表项

在二层的组播过程中,除了通过二层组播协议动态建立MAC组播组转发表项外,还可以通过手工配置组播MAC地址表项,将端口与组播地址表项进行静态绑定。

通常情况下,如果交换机收到的组播数据报文中的组播地址没有在本机注册,该报文会在该端口所在的VLAN内广播,通过配置组播静态MAC地址表项可以避免这种情况。

1. 在系统视图下添加组播MAC地址表项

表2-8 添加组播MAC地址表项

操作

命令

说明

进入系统视图

system-view

-

添加组播MAC地址表项

mac-address multicast mac-address interface interface-list  vlan vlan-id

可选

mac-address必须为组播MAC地址

 

2. 在以太网端口视图下添加组播MAC地址表项

表2-9 添加组播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    在启动了IRF Fabic功能的设备上,将不能配置以01005e开头的组播MAC地址。

l    如在端口添加了组播MAC地址,则无法在此端口启动端口汇聚。如端口已经是汇聚端口,则不可以添加组播MAC地址。

l    如果用户需要在启动了IGMP Snooping的VLAN内添加组播MAC地址,将不能配置以01005e开头的组播MAC地址;如果VLAN内没有启动IGMP  Snooping,可以配置包括以01005e开头的组播MAC地址。

 

2.1.7  配置未知组播报文丢弃

通常情况下,当交换机收到发往未知组播组的组播数据报文时,会将该未知组播数据报文在其所属的VLAN内进行广播。当启动未知组播丢弃功能后,交换机收到发往未知组播组的报文后,将丢弃该报文,从而节省带宽,并提高系统的处理效率。

表2-10 配置未知组播报文丢弃

操作

命令

说明

进入系统视图

system-view

-

配置未知组播报文丢弃功能

unknown-multicast drop enable

可选

缺省情况下,未知组播报文丢弃功能处于关闭状态

 

2.1.8  跟踪组播数据的传输路径

可在任意视图下执行mtracert命令来跟踪组播数据从第一跳到最后一跳路由器所经过的路径。

表2-11 跟踪组播数据的传输路径

操作

命令

说明

跟踪组播数据的传输路径

mtracert source-address [ [ last-hop-router-address ] group-address ]

必选

可在任意视图下执行

 

2.2  组播公共配置显示

在完成上述配置后,在任意视图下执行display命令可以显示配置后组播公共配置的运行情况,通过查看显示信息验证配置的效果。

组播转发表主要用于调试,一般情况下,用户可以查看组播核心路由表获得需要的信息。

在以太网交换机中,影响组播数据传输的共有三种表,这三种表的相互关系如下:

l              每个组播路由协议有一个协议自身的组播路由表。

l              各个组播路由协议的组播路由信息经过综合形成组播核心路由表。

l              组播核心路由表与组播转发表保持一致,而组播转发表真正控制着组播数据包的转发。

表2-12 组播公共配置的显示

操作

命令

说明

显示组播源端口抑制统计信息

display multicast-source-deny [ interface interface-type [ interface-number ] ]

display命令可以在任意视图下执行

显示组播路由表信息

display multicast routing-table [ group-address [ mask { mask | length } ] | source-address [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number | register } ]*

显示组播转发表信息

display multicast forwarding-table [ group-address [ mask { mask | length } ] | source-address  [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number ] register } ]*

查看含端口信息的组播转发表信息

display mpm forwarding-table [ group-address ]

查看交换机的所有VLAN或某一VLAN下的IP组播组和MAC组播组信息

display mpm group [ vlan vlan-id ]

显示已经添加组播MAC地址表项

display mac-address multicast [ static { { { mac-address vlan vlan-id | vlan vlan-id } [ count ] } | count } ]

 


3 IGMP配置

l    文中所述的路由器代表了一般意义下的路由器以及运行了IP组播协议的三层以太网交换机。

l    S3600-SI系列交换机不支持IGMP特性。

 

3.1  IGMP简介

IGMP(Internet Group Management Protocol,互联网组管理协议),它是TCP/IP协议族中负责IP组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

3.1.1  IGMP的版本

到目前为止,IGMP有三个版本:

l              IGMPv1(由RFC 1112定义)

l              IGMPv2(由RFC 2236定义)

l              IGMPv3(由RFC 3376定义)

所有版本的IGMP都支持ASM(Any-Source Multicast,任意信源组播)模型,另外IGMPv3为SSM(Source-Specific Multicast,指定信源组播)模型也提供了有力的支持。

3.1.2  IGMPv1工作机制

IGMPv1主要基于查询和响应机制来完成对组播组成员的管理。

当一个网段内有多台组播路由器时,由于它们都能从主机那里收到IGMP成员关系报告报文(Membership Report Message),因此只需要其中一台路由器发送IGMP查询报文(Query Message)就足够了。这就需要有一个查询器(Querier)的选举机制来确定由哪台路由器作为IGMP查询器。

对于IGMPv1来说,由组播路由协议(如PIM)选举出唯一的组播信息转发者DR(Designated Router,指定路由器)作为IGMP查询器。

有关DR的介绍,请参见“4.1.4  2. DR选举”。

图3-1 IGMP加入组播组示意图

 

图3-1所示,假设Host B与Host C想要收到发往组播组G1的组播数据,而Host A想要收到发往组播组G2的组播数据,则主机加入组播组的基本过程如下:

(1)        IGMP查询器(Router B)周期性地以组播方式向本地网段内的所有主机与路由器发送IGMP查询报文(目的地址为224.0.0.1);

(2)        在收到该查询报文后,希望加入组播组G1的主机Host B与Host C的其中之一(这取决于谁的延迟定时器Delay Timer先超时),譬如Host B会首先以组播方式发送IGMP成员关系报告报文(目的地址为G1的组地址),以宣告自己要加入G1;

(3)        由于本地网段中的所有主机和路由器都能收到Host B发往G1的报告报文,因此当Host C收到该报告报文后,将不再发送同样针对相同组播组G1的报告报文,因为IGMP路由器(Router A和Router B)已知道本地网段中有对G1感兴趣的主机了。这个机制称为IGMP成员关系报告抑制机制,该机制有助于减少本地网段的信息流量;

(4)        与此同时,由于Host A关注的是G2,所以它仍将以组播方式发送报告报文(目的地址为G2的组地址),以宣告自己要加入G2;

(5)        经过以上的查询和响应过程,IGMP路由器了解到本地网段中有组播组G1和G2的成员,于是由组播路由协议(如PIM)生成(*,G1)和(*,G2)组播转发项作为组播数据的转发依据,其中的“*”代表任意组播源;

(6)        当由组播源发往G1或G2的组播数据经过组播路由到达IGMP路由器时,由于IGMP路由器上存在(*,G1)和(*,G2)组播转发项,于是将该组播数据转发到本地网段,接收者主机便能收到该组播数据了。

IGMPv1没有专门定义离开组播组的报文。当运行IGMPv1的主机离开某组播组后,将不再发送以该组播组地址为目的地址的报告报文。当网段中不再存在该组播组的成员后,IGMP路由器将收不到任何发往该组播组的报告报文,于是IGMP路由器在一段时间之后便删除该组播组所对应的组播转发项。

3.1.3  IGMPv2的改进

与IGMPv1相比,IGMPv2增加了查询器选举机制和离开组机制。

1. 查询器选举机制

在IGMPv1中,当某共享网段上存在多个组播路由器时,由组播路由协议(如PIM)选举的指定路由器充当查询器。

在IGMPv2中,增加了独立的查询器选举机制,其选举过程如下:

(1)        所有IGMPv2路由器在初始时都认为自己是查询器,并向本地网段内的所有主机和路由器发送IGMP通用查询(General Query)报文(目的地址为224.0.0.1);

(2)        本地网段中的其它IGMPv2路由器在收到该报文后,将报文的源IP地址与自己的接口地址作比较。通过比较,IP地址最小的路由器将成为查询器,其它路由器成为非查询器(Non-Querier);

(3)        所有非查询器上都会启动一个定时器(即非查询器存在时间定时器Other Querier Present Timer)。在该定时器超时前,如果收到了来自查询器的IGMP查询报文,则重置该定时器;否则,就认为原查询器失效,并发起新的查询器选举过程。

2. 离开组机制

在IGMPv1中,主机离开组播组时不会向任何组播路由器发出任何通知,导致组播路由器只能依靠IGMP查询的响应超时来获知组播组成员的离开。

而在IGMPv2中,当一个主机离开某组播组时:

(1)        该主机向本地网段内的所有组播路由器(目的地址为224.0.0.2)发送离开组(Leave Group)报文;

(2)        当查询器收到该报文后,向该主机所声明要离开的那个组播组发送特定组查询(Group-Specific Query)报文(目的地址字段和组地址字段均填充为所要查询的组播组地址);

(3)        如果该网段内还有该组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间(Max Response Time)内发送成员关系报告报文;

(4)        如果在最大响应时间内收到了该组播组其它成员发送的成员关系报告报文,查询器就会继续维护该组播组的成员关系;否则,查询器将认为该网段内已无该组播组的成员,于是不再维护这个组播组的成员关系。

3.1.4  IGMPv3的改进

IGMPv3在兼容和继承IGMPv1和IGMPv2的基础上,进一步增强了主机的控制能力,并增强了查询和报告报文的功能。

1. 主机控制能力的增强

IGMPv3增加了针对组播源的过滤模式(INCLUDE/EXCLUDE),使主机在加入某组播组G的同时,能够明确要求接收或拒绝来自某特定组播源S的组播信息。当主机加入组播组时:

l              若要求只接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为INCLUDE Sources(S1,S2,……);

l              若拒绝接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为EXCLUDE Sources(S1,S2,……)。

图3-2所示,网络中存在Source 1(S1)和Source 2(S2)两个组播源,均向组播组G发送组播报文。Host B仅对从Source 1发往G的信息感兴趣,而对来自Source 2的信息没有兴趣。

图3-2 指定源组的组播流路经

 

如果主机与路由器之间运行的是IGMPv1或IGMPv2,Host B加入组播组G时无法对组播源进行选择,因此无论Host B是否需要,来自Source 1和Source 2的组播信息都将传递给Host B。

当主机与路由器之间运行了IGMPv3之后,Host B就可以要求只接收来自Source 1、发往G的组播信息(S1,G),或要求拒绝来自Source 2、发往G的组播信息(S2,G),这样就只有来自Source 1的组播信息才能传递给Host B了。

2. 查询和报告报文功能的增强

(1)        携带源地址的查询报文

IGMPv3不仅支持IGMPv1的普遍组查询和IGMPv2的特定组查询,而且还增加了对特定源组查询的支持:

l              普遍组查询报文中,既不携带组地址,也不携带源地址;

l              特定组查询报文中,携带组地址,但不携带源地址;

l              特定源组查询报文中,既携带组地址,还携带一个或多个源地址。

(2)        包含多组记录的报告报文

IGMPv3报告报文的目的地址为224.0.0.22,可以携带一个或多个组记录。在每个组记录中,包含有组播组地址和组播源地址列表。组记录可以分为多种类型,如下:

l              IS_IN:表示组播组与组播源列表之间的过滤模式为INCLUDE,即只接收从指定组播源列表发往该组播组的组播数据。

l              IS_EX:表示组播组与组播源列表之间的过滤模式为EXCLUDE,即只接收从指定组播源列表之外的组播源发往该组播组的组播数据。

l              TO_IN:表示组播组与组播源列表之间的过滤模式由EXCLUDE转变为INCLUDE。

l              TO_EX:表示组播组与组播源列表之间的过滤模式由INCLUDE转变为EXCLUDE。

l              ALLOW:表示在现有状态的基础上,还希望从某些组播源接收组播数据。如果当前的对应关系为INCLUDE,则向现有组播源列表中添加这些组播源;如果当前的对应关系为EXCLUDE,则从现有组播源列表中删除这些组播源。

l              BLOCK:表示在现有状态的基础上,不再希望从某些组播源接收组播数据。如果当前的对应关系为INCLUDE,则从现有组播源列表中删除这些组播源;如果当前的对应关系为EXCLUDE,则向现有组播源列表中添加这些组播源。

目前S3600系列以太网交换机只支持IGMPv1和IGMPv2。

 

3.1.5  IGMP Proxy

在一个大规模的网络中应用组播路由协议时(例如PIM-DM),会存在很多末梢网络(末梢区域),对这些末梢网络进行配置和管理是一件很繁重的工作。

为了减少这些配置和管理工作,同时又不影响末梢网络的组播连接,可以在末梢网络的三层交换机(图3-3中的Switch B)上配置IGMP Proxy,三层交换机将自己所连接的主机发出的IGMP主机报告报文或IGMP离开报文进行转发。配置了IGMP Proxy后,对于外部网络来说,末梢三层交换机不再是一个PIM邻居,而是一台主机,只有当该三层交换机有直连组播成员时,才会接收相应组的组播数据。

图3-3 IGMP Proxy示意图

 

图3-3是一个末梢网络IGMP Proxy示意图,称Switch B的VLAN 2接口为被代理接口,Switch B的VLAN 1接口为代理接口。

Switch B做如下配置:

启动组播路由,然后在VLAN 1接口和VLAN 2接口上启动PIM和IGMP,并在VLAN 1接口上配置命令igmp proxy,将VLAN 1接口配置为VLAN2接口的代理接口。

Switch A做如下配置:

l              VLAN 1接口上首先启动组播路由,并配置IGMP和PIM。

l              配置pim neighbor-policy,滤除33.33.33.0/24网段的PIM邻居,即不将Switch B作为其PIM邻居。

这样,当末梢网络中的Switch B从VLAN 2接口收到主机发出的IGMP加入或IGMP离开消息后,将该IGMP消息的源地址改为VLAN 1接口地址33.33.33.2,并将该消息向Switch A的VLAN 1接口发送。对Switch A来说,就象接口VLAN 1有直连主机存在一样。

同样,Switch B在收到外部网络三层交换机Switch A发送的IGMP通用组或IGMP特定组查询消息后,也将查询消息的源IP地址改为VLAN 2接口IP地址22.22.22.1,并将该消息从VLAN 2接口发送出去。

3.2  配置IGMP

3.2.1  配置任务简介

表3-1 配置任务简介

配置任务

说明

详细配置

启动IGMP

必选

3.2.2 

配置IGMP版本

可选

3.2.3 

配置IGMP查询报文

可选

3.2.4 

配置接口可以通过的组播组最大数量

可选

3.2.5 

配置组播组过滤功能

可选

3.2.6 

配置IGMP模拟主机加入功能

可选

3.2.7 

配置IGMP Proxy

可选

3.2.8 

删除接口上已经加入的IGMP组播组

可选

3.2.9 

 

3.2.2  启动IGMP

表3-2 启动IGMP

操作

命令

说明

进入系统视图

system-view

-

启动组播路由

multicast routing-enable

必选

进入接口视图

interface interface-type interface-number

-

启动IGMP

igmp enable

必选

缺省情况下, IGMP处于关闭状态

 

本章中以下的配置都是在启动组播路由并在接口上启动IGMP的情况下实现的,请用户在配置过程中注意。

 

3.2.3  配置IGMP版本

表3-3 配置IGMP版本

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置IGMP版本

igmp version { 1 | 2 }

可选

缺省情况下,IGMP的版本为IGMPv2

 

IGMP各版本之间不能自动转换。因此应该配置连接到同一网段上的接口使用同一IGMP版本。

 

3.2.4  配置IGMP查询报文的相关参数

1. IGMP通用查询报文

启动路由器接口的IGMP功能后,该接口会向所连接的网段周期性的发送IGMP通用查询报文,通过解析返回的IGMP主机报告报文,获知该网段内哪些组播组有成员。

2. IGMP特定组查询报文

在共享网络上,由查询器负责维护组播组成员关系。用户配置相关功能后,在IGMP查询器收到主机发送的IGMP离开报文时,将按照用户配置的时间间隔和次数发送IGMP特定组查询报文。

假定组播组内的某一主机决定离开组播组,相关的过程如下:

l              该主机发送IGMP离开报文。

l              IGMP查询器收到该报文,按照IGMP特定组查询报文的时间间隔(lastmember-queryinterval秒),向外发送发送指定次数(robust-value次)的IGMP特定组查询报文。

l              其他主机收到IGMP查询器发送的IGMP特定组查询报文,如果对该组感兴趣,就会在该报文规定的最大响应时间内发送IGMP主机报告报文。

l              IGMP查询器如果在robust-value×lastmember-queryinterval时间内,收到其他主机发送的IGMP主机报告报文,就会继续维护该组的组成员关系。

l              如果经过robust-value×lastmember-queryinterval时间后,查询器仍然没有收到任何主机发送的IGMP主机报告报文,就认为该组已经超时,不再维护该组的组成员关系。

IGMP通用查询报文使用的最大响应时间是使用igmp max-response-time 命令配置的;而IGMP特定组查询报文使用的最大响应时间是通过robust-value ×lastmember-queryinterval得到的。

 

此过程只符合IGMP查询路由器运行在IGMP版本2时的情况。

3. IGMP查询器取代规则

如果同一网段内存在多个启动了IGMP的接口,IP地址最小的接口将成为IGMP查询器。如果在IGMP查询器存在时间内(igmp timer other-querier-present命令指定的时间)非查询器接口没有收到查询器发出的查询消息,这些接口就认为原来的查询器失效,IP地址次小的接口将成为新的IGMP查询器。

4. IGMP通用查询的报文最大响应时间

当主机接收到一条通用查询查询消息后,主机会为其所属的每个组播组都设置一个计时器,计时器的值在最大响应时间范围内随机选取,当某组播组对应的计时器的值减为0时,主机就会发送该组播组的成员报告消息。

合理设置最大响应时间,可以使主机快速响应查询信息,三层交换机也就能快速地掌握组播组成员的存在状况。

表3-4 配置IGMP查询报文的相关参数

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置发送IGMP通用查询报文的查询间隔

igmp timer query seconds

可选

缺省情况下,间隔为60秒

配置发送IGMP特定组查询报文的时间间隔

igmp lastmember-queryinterval seconds

可选

缺省情况下,IGMP特定组查询报文的时间间隔为1秒

配置发送IGMP特定组查询报文的次数

igmp robust-count robust-value

可选

缺省情况下,发送2次IGMP特定组查询报文

配置IGMP查询器存在时间

igmp timer other-querier-present seconds

可选

缺省情况下,IGMP查询器存在的时间值为120秒,IGMP通用查询报文的时间间隔的2倍

配置IGMP通用查询的最大响应时间

igmp max-response-time seconds

可选

缺省情况下,IGMP通用查询的最大响应时间为10秒

 

3.2.5  配置接口可以通过的组播组最大数量

在配置接口可以通过的组播组最大数量后,用户在点播组播组节目时,由于接口通过的组播组的数量受到限制,因此用户不能无限制的点播组播组。这样一来,接口带宽就得到了控制。

表3-5 配置接口可以通过的组播组最大数量

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口可以加入IGMP组的最大数量

igmp group-limit limit

必选

缺省情况下,接口上可以通过的组播组最大数量为256

 

l    在接口配置可以通过的组播组最大数量时,如果接口已有的IGMP组播组已经达到最大值,将不允许新的组播组加入。

l    在接口上配置的IGMP组的数量为1时,采用新加入组优先的原则。即如用户将新的组播组加入接口时,新组播组将自动取代原有的组播组,原组播组将会自动脱离接口。

l    在接口配置可以通过的组播组最大数量时,如果接口已有的IGMP组播组比要配置的值多,交换机会根据组播组建立的先后顺序删除最先的建立的多余组播组,直到接口组播组数量符合配置的数量限制。

 

3.2.6  配置组播组过滤功能

组播路由器通过分析接收到的IGMP主机报告报文来确定指定网段的组成员关系。用户可以通过配置,在组播路由器的接口上设过滤器,以限制接口所服务的组播组范围。

组播组过滤功能可以在接口视图和以太网端口视图下进行配置:

l              在接口视图下配置的是当前接口所服务的组播组范围;

l              在以太网端口视图下配置的是当前端口所在VLAN对应的接口所服务的组播组范围。

1. 在接口视图下配置组播组过滤功能

表3-6 配置组播组过滤功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置组播组过滤功能

VLAN接口视图

igmp group-policy acl-number [ 1 | 2 | port interface-list ]

可选

缺省情况下,允许任意组播组通过

LoopBack接口视图

igmp group-policy acl-number [ 1 | 2 ]

 

2. 在以太网端口视图下配置组播组过滤功能

表3-7 配置组播组过滤功能

操作

命令

说明

进入系统视图

system-view

-

进入以太网端口视图

interface interface-type interface-number

-

配置组播组过滤功能

igmp group-policy acl-number vlan vlan-id

可选

缺省情况下,允许任意组播组通过;该端口必须属于命令所指定的VLAN

 

3.2.7  配置IGMP模拟主机加入功能

通常情况下,运行IGMP的主机会对IGMP查询器发出的查询报文进行响应,如果主机由于某种原因无法响应,就可能导致组播路由器认为该网段没有该组播组的成员,从而取消相应的路径。

为避免这种情况的发生,可以将交换机的端口配置成为组播组成员(即配置模拟主机加入),当该端口收到IGMP查询报文时,由模拟主机进行响应,从而保证三层接口所在网段能够继续收到组播报文。

IGMP模拟主机加入功能实现原理如下:

l              在某端口上启动模拟主机加入功能时,交换机会通过该端口主动向外发送一个IGMP成员关系报告报文,同时向自身发送一个相同的IGMP成员关系报告报文,通过该报文建立相应的IGMP表项;

l              在某端口上启动了模拟主机加入功能后,当该端口收到IGMP通用查询报文时,交换机会通过该端口响应一个IGMP成员关系报告报文,同时向自身发送一个相同的IGMP成员关系报告报文,通过该报文来保证IGMP表项不被老化掉;

l              在某端口上关闭模拟主机加入功能后,交换机会通过该端口发送一个IGMP离开报文。

为了使IGMP表项不被老化掉,必须保证端口能够周期性的收到IGMP通用查询报文。

1. 在接口视图下配置IGMP模拟主机加入功能

表3-8 在接口视图下配置IGMP模拟主机加入功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置IGMP模拟主机加入功能

VLAN接口视图

igmp host-join group-address port interface-list

必选

缺省情况下,模拟主机加入功能处于关闭状态

LoopBack接口视图

igmp host-join group-address

 

2. 在以太网端口视图下配置IGMP模拟主机加入功能

表3-9 在以太网端口视图下配置IGMP模拟主机加入功能

操作

命令

说明

进入系统视图

system-view

-

进入以太网端口视图

interface interface-type interface-number

-

配置IGMP模拟主机加入功能

igmp host-join group-address vlan vlan-id

必选

缺省情况下,模拟主机加入功能处于关闭状态

 

l    配置IGMP模拟主机加入功能前,应该先在接口视图下启动IGMP功能。

l    在以太网端口视图下,配置IGMP模拟主机加入功能的端口必须属于指定VLAN,否则配置不会生效。

 

3.2.8  配置IGMP Proxy

表3-10 配置IGMP Proxy

操作

命令

说明

进入系统视图

system-view

-

进入VLAN 接口视图

interface Vlan-interface interface-number

-

配置IGMP Proxy

igmp proxy Vlan-interface interface-number

必选

缺省情况下,IGMP Proxy功能处于关闭状态

 

l    配置igmp proxy前需要先在接口上启动PIM,否则IGMP Proxy功能不能生效。

l    同一个接口不能作为两个及两个以上其它接口的IGMP代理接口。

l    一般情况下,作为IGMP查询器的接口不能作为IGMP代理接口,如果必须要将作为IGMP查询器的接口配置为IGMP代理接口,则必须在属于该代理接口的端口上启动静态路由器端口功能。有关静态路由器端口的相关配置请参考“6.2.10   配置静态路由器端口”。

 

3.2.9  删除接口上已加入的IGMP组播组

用户可以删除路由器所有接口上所有已加入的IGMP组播组,也可以删除特定接口上所有已加入的IGMP组播组,或者删除特定接口上某个特定IGMP组播组地址或组播组地址网段。

表3-11 删除接口上已加入的IGMP组播组

操作

命令

说明

删除接口上已加入的IGMP组播组

reset igmp group { all | interface interface-type interface-number { all | group-address [ group-mask ] } }

reset命令可以在用户视图下执行

 

删除接口上已加入的IGMP组后,不影响该组的再次加入。

 

3.3  IGMP配置显示

在完成上述配置后,在任意视图下执行display命令可以显示配置后IGMP的运行情况,通过查看显示信息验证配置的效果。

表3-12 IGMP配置显示

操作

命令

说明

显示IGMP组播组成员信息

display igmp group [ group-address | interface interface-type interface-number ]

display命令可以在任意视图下执行

显示接口的IGMP配置和运行信息

display igmp interface [ interface-type interface-number ]

 


4 PIM配置

l    文中所述的路由器代表了一般意义下的路由器以及运行了IP组播协议的三层以太网交换机。

l    S3600-SI系列交换机不支持PIM特性。

 

4.1  PIM简介

PIM是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP等)所生成的单播路由表为IP组播提供路由。组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。PIM借助RPF机制实现对组播报文的转发。当组播报文到达本地设备时,首先对其进行RPF检查:若RPF检查通过,则创建相应的组播路由表项,从而进行组播报文的转发;若RPF检查失败,则丢弃该报文。

根据转发机制的不同,PIM分为以下两种模式:

l              PIM-DM(Protocol Independent Multicast-Dense Mode,协议无关组播—密集模式)

l              PIM-SM(Protocol Independent Multicast-Sparse Mode,协议无关组播—稀疏模式)

为了描述的方便,本文中把由支持PIM的组播路由器所组成的网络简称为“PIM域”。

 

4.1.1  PIM-DM简介

PIM-DM属于密集模式的组播路由协议,使用“推(Push)模式”传送组播数据,通常适用于组播组成员相对比较密集的小型网络。

PIM-DM的基本原理如下:

l              PIM-DM假设网络中的每个子网都存在至少一个组播组成员,因此组播数据将被扩散(Flooding)到网络中的所有节点。然后,PIM-DM对没有组播数据转发的分支进行剪枝(Prune),只保留包含接收者的分支。这种“扩散—剪枝”现象周期性地发生,被剪枝的分支也可以周期性地恢复成转发状态。

l              当被剪枝分支的节点上出现了组播组的成员时,为了减少该节点恢复成转发状态所需的时间,PIM-DM使用嫁接(Graft)机制主动恢复其对组播数据的转发。

一般说来,密集模式下数据包的转发路径是有源树(Source Tree,即以组播源为“根”、组播组成员为“枝叶”的一棵转发树)。由于有源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树(Shortest Path Tree,SPT)。

4.1.2  PIM-DM工作机制

PIM-DM的工作机制可以概括如下:

l              邻居发现

l              构建SPT

l              嫁接

l              断言

1. 邻居发现

在PIM域中,路由器通过周期性地的向所有PIM路由器(224.0.0.13)以组播方式发送PIM Hello报文(以下简称Hello报文),以发现PIM邻居,维护各路由器之间的PIM邻居关系,从而构建和维护SPT。

路由器每个激活的接口都会周期性地发送Hello报文,从而了解与该接口相关的PIM邻居信息。

 

2. 构建SPT

构建SPT的过程也就是“扩散—剪枝”的过程:

(1)        在PIM-DM域中,组播源S向组播组G发送组播报文时,首先对组播报文进行扩散:路由器对该报文的RPF检查通过后,便创建一个(S,G)表项,并将该报文向网络中的所有下游节点转发。经过扩散,PIM-DM域内的每个路由器上都会创建(S,G)表项。

(2)        然后对那些下游没有接收者的节点进行剪枝:由没有接收者的下游节点向上游节点发剪枝报文(Prune Message),以通知上游节点将相应的接口从其组播转发表项(S,G)所对应的出接口列表中删除,并不再转发该组播组的报文至该节点。

l    (S,G)表项包括组播源的地址S、组播组的地址G、出接口列表和入接口等。

l    路由器上收到组播数据的接口称为“上游”,转发组播数据的接口称为“下游”。

 

剪枝过程最先由叶子路由器发起,如图4-1所示,没有接收者(Receiver)的路由器(如与Host A直连的路由器)主动发起剪枝,并一直持续到PIM-DM域中只剩下必要的分支,这些分支共同构成了SPT。

图4-1 PIM-DM中构建SPT示意图

 

“扩散—剪枝”的过程是周期性发生的。各个被剪枝的节点提供超时机制,当剪枝超时后便重新开始这一过程。

剪枝在PIM-SM中有着相似的应用。

 

3. 嫁接

当被剪枝的节点上出现了组播组的成员时,为了减少该节点恢复成转发状态所需的时间,PIM-DM使用嫁接机制主动恢复其对组播数据的转发,过程如下:

(1)        需要恢复接收组播数据的节点向组播源的方向逐跳发送嫁接报文(Graft Message)给其上游节点以申请重新加入到SPT中;

(2)        当上游节点收到该报文后恢复该下游节点的转发状态,并向其回应一个嫁接应答报文(Graft-Ack Message)以进行确认;

(3)        如果发送嫁接报文的下游节点没有收到来自其上游节点的嫁接应答报文,将重新发送嫁接报文直到被确认为止。

4. 断言

在一个网段内如果存在多台组播路由器,则相同的组播报文可能会被重复发送到该网段。为了避免出现这种情况,就需要通过断言(Assert)机制来选定唯一的组播数据转发者。

图4-2 Assert机制示意图

 

图4-2所示,当Router A和Router B从上游节点收到(S,G)组播报文后,都会向本地网段转发该报文,于是处于下游的节点Router C就会收到两份相同的组播报文,Router A和Router B也会从各自的本地接口收到对方转发来的该组播报文。此时,Router A和Router B会通过本地接口向所有PIM路由器(224.0.0.13)以组播方式发送断言报文(Assert Message),该报文中携带有以下信息:组播源地址S、组播组地址G、到组播源的单播路由的优先级和度量值。通过一定的规则对这些参数进行比较后,Router A和Router B中的获胜者将成为(S,G)组播报文在本网段的转发者,比较规则如下:

(1)        到组播源的单播路由的优先级较高者获胜;

(2)        如果到组播源的单播路由的优先级相等,那么到组播源的度量值较小者获胜;

(3)        如果到组播源的度量值也相等,则本地接口IP地址较大者获胜。

4.1.3  PIM-SM简介

PIM-DM使用以“扩散—剪枝”方式构建的SPT来传送组播数据。尽管SPT的路径最短,但是其建立的过程效率较低,并不适合大中型网络。

PIM-SM属于稀疏模式的组播路由协议,使用“拉(Pull)模式”传送组播数据,通常适用于组播组成员分布相对分散、范围较广的大中型网络。

PIM-SM的基本原理如下:

l              PIM-SM假设所有主机都不需要接收组播数据,只向明确提出需要组播数据的主机转发。PIM-SM实现组播转发的核心任务就是构造并维护RPT(Rendezvous Point Tree,共享树或汇集树),RPT选择PIM域中某台路由器作为公用的根节点RP(Rendezvous Point,汇集点),组播数据通过RP沿着RPT转发给接收者;

l              连接接收者的路由器向某组播组对应的RP发送加入报文(Join Message),该报文被逐跳送达RP,所经过的路径就形成了RPT的分支;

l              组播源如果要向某组播组发送组播数据,首先由与组播源直连的路由器负责向RP进行注册,把注册报文(Register Message)通过单播方式发送给RP,该报文到达RP后触发建立SPT。之后组播源把组播数据沿着SPT发向RP,当组播数据到达RP后,被复制并沿着RPT发送给接收者。

复制仅发生在分发树的分支处,这个过程能够自动重复直到数据包最终到达接收者。

 

4.1.4  PIM-SM工作机制

PIM-SM的工作机制可以概括如下:

l              邻居发现

l              DR选举

l              RP发现

l              构建RPT

l              组播源注册

l              RPT向SPT切换

l              断言

1. 邻居发现

PIM-SM使用与PIM-DM完全相同的邻居发现机制,具体请参见“4.1.2  1. 邻居发现”一节。

2. DR选举

借助Hello报文还可以为共享网络选举DR(Designated Router,指定路由器),DR将作为该共享网络中组播数据的唯一转发者。

无论是与组播源相连的网络,还是与接收者相连的网络,只要是共享网络,就需要选举DR。接收者侧的DR负责向RP发送加入报文;组播源侧的DR负责向RP发送注册报文。

l    各路由器之间通过比较Hello报文中所携带的优先级和IP地址,可以为多路由器网段选举DR。选举出的DR对于PIM-SM有实际的意义;而对于PIM-DM来说,其本身其实并不需要DR,但如果PIM-DM域中的共享网络上运行了IGMPv1,则需要选举出DR来充当共享网络上的IGMPv1查询器。

l    在充当DR的设备上必须启动IGMP,否则连接在该DR上的接收者将不能通过该DR加入组播组。

 

图4-3 DR选举示意图

 

图4-3所示,DR的选举过程如下:

(1)        共享网络上的各路由器相互之间发送Hello报文(携带有竞选DR优先级的参数),拥有最高优先级的路由器将成为DR;

(2)        如果优先级相同,或者网络中至少有一台路由器不支持在Hello报文中携带竞选DR优先级的参数,则根据各路由器的IP地址大小来竞选DR,IP地址最大的路由器将成为DR。

当DR出现故障时,其余路由器在超时后仍没有收到来自DR的Hello报文,则会触发新的DR选举过程。

l    S3600系列以太网交换机不支持DR优先级,而直接利用IP地址的大小选举DR。

l    在PIM-DM网络中,DR主要是充当IGMPv1的查询器。

 

3. RP发现

RP是PIM-SM域中的核心设备。在结构简单的小型网络中,组播信息量少,整个网络仅依靠一个RP进行组播信息的转发即可,此时可以在PIM-SM域中的各路由器上静态指定RP的位置;但是在更多的情况下,PIM-SM域的规模都很大,通过RP转发的组播信息量巨大。为了缓解RP的负担,并优化RPT的拓扑结构,不同的组播组应该对应不同的RP,这就需要通过自举机制来动态选举RP,此时需要配置BSR(BootStrap Router,自举路由器)。

BSR是PIM-SM域中的管理核心,负责收集网络中由C-RP(Candidate-RP,候选RP)发来的宣告报文(Advertisement Message),然后为每个组播组选择部分C-RP信息以组成RP-Set(RP集,即组播组与RP的映射关系数据库),并发布到整个PIM-SM域。网络中所有的路由器(包括DR)能够根据这些RP-Set提供的信息算出所需RP的位置。

在一个PIM-SM域(或管理域)内只能有一个BSR,但可以配置多个C-BSR(Candidate-BSR,候选BSR)。这样,一旦BSR发生故障,其余C-BSR能够通过自动选举产生新的BSR,从而确保业务免受中断。同样,一个PIM-SM域内也可以配置多个C-RP,并通过BSR机制计算出每个组播组所对应的RP。

RP和BSR在网络中的位置如图4-4所示。

图4-4 RP与BSR的位置示意图

 

4. 构建RPT

图4-5 PIM-SM中构建RPT示意图

 

图4-5所示,RPT的构建过程如下:

(1)        当接收者加入一个组播组G时,先通过IGMP报文通知与其直连的DR;

(2)        DR掌握了组播组G的接收者的信息后,向该组所对应的RP方向逐跳发送加入报文;

(3)        从DR到RP所经过的路由器就形成了RPT的分支,这些路由器都在其转发表中生成了(*,G)表项,这里的“*”表示来自任意组播源。RPT以RP为根,以DR为叶子。

当发往组播组G的组播数据流经RP时,数据就会沿着已建立好的RPT到达DR,进而到达接收者。

当某接收者对组播组G的信息不再感兴趣时,与其直连的DR会逆着RPT向该组的RP方向逐跳发送剪枝报文;上游节点收到该报文后在其接口列表中删除与下游节点之间的链路,并检查自己是否拥有该组播组的接收者,如果没有则继续向其上游转发该剪枝报文。

5. 组播源注册

组播源注册的目的是向RP通知组播源的存在。

图4-6 组播源注册示意图

 

图4-6所示,组播源向RP注册的过程如下:

(1)        当组播源S向组播组G发送了一个组播报文时,与组播源直连的DR在收到该报文后,就将其封装成注册报文,并通过单播方式发送给相应的RP;

(2)        当RP收到该报文后,一方面解封装注册报文并将封装在其中的组播报文沿着RPT转发给接收者,另一方面向组播源逐跳发送(S,G)加入报文。这样,从RP到组播源所经过的路由器就形成了SPT的分支,这些路由器都在其转发表中生成了(S,G)表项。SPT以组播源为根,以RP为叶子。

(3)        组播源发出的组播数据沿着已建立好的SPT到达RP,然后由RP把组播数据沿着RPT向接收者进行转发。当RP收到沿着SPT转发来的组播数据后,通过单播方式向与组播源直连的DR发送注册停止报文(Register-Stop Message),组播源注册过程结束。

6. RPT向SPT切换

最初组播数据是通过RPT发送到接收者的,但由于RPT不是最优的数据传输路径当接受者侧的DR接收到第一个组播数据报文的后,会立即发起从RPT向SPT的切换,过程如下:

(1)        首先,接收者侧DR向组播源S逐跳发送(S,G)加入报文,并最终送达组播源侧DR,沿途经过的所有路由器在其转发表中都生成了(S,G)表项,从而建立了SPT分支;

(2)        随后,接收者侧DR向RP逐跳发送剪枝报文,RP收到该报文后会向组播源方向将其转发,从而最终实现从RPT向SPT的切换。

从RPT切换到SPT后,组播数据将直接从组播源发送到接收者。通过由RPT向SPT的切换,PIM-SM能够以比PIM-DM更经济的方式建立SPT。

7. 断言

PIM-SM使用与PIM-DM完全相同的断言机制,具体请参见“4.1.2  4. 断言”一节。

4.2  配置PIM-DM

4.2.1  启动PIM-DM

在接口上启动了PIM-DM后,路由器会定期发送Hello报文以发现PIM邻居,并对收到的来自PIM邻居的报文进行处理。在部署PIM-DM域时,建议在非边界路由器的所有接口上启动PIM-DM。

表4-1 启动PIM-DM

操作

命令

说明

进入系统视图

system-view

-

启动组播路由

multicast routing-enable

必选

缺省情况下,组播路由处于关闭状态

进入接口视图

interface interface-type interface-number

-

启动PIM-DM

pim dm

必选

缺省情况下,PIM-DM处于关闭状态

 

4.3  配置PIM-SM

表4-2 配置任务简介

配置任务

说明

详细配置

启动PIM-SM

必选

4.3.1 

配置RP

可选

4.3.2 

配置BSR

可选

4.3.3 

配置RP对DR发送来得注册报文过滤

可选

4.3.4 

禁止从共享树切换到最短路径树

可选

4.3.5 

 

4.3.1  启动PIM-SM

在接口上启动了PIM-SM后,路由器会定期发送Hello报文以发现PIM邻居,并对收到的来自PIM邻居的报文进行处理。在部署PIM-SM域时,建议在非边界路由器(边界路由器是指那些处于BSR管理域边界上的PIM路由器)的所有接口上启动PIM-SM。

表4-3 启动PIM-SM

操作

命令

说明

进入系统视图

system-view

-

启动组播路由

multicast routing-enable

必选

缺省情况下,组播路由处于关闭状态

进入接口视图

interface interface-type interface-number

-

启动PIM-SM

pim sm

必选

缺省情况下,PIM-SM处于关闭状态

 

4.3.2  配置RP

RP可以通过手工方式静态配置,也可以通过BSR机制动态选举。对于大型PIM网络,配置静态RP将会非常繁琐。所以,通常静态RP是作为动态选举RP机制的备份手段,以提高网络的健壮性,增强组播网络的运营管理能力。

1. 配置静态RP

当网络内仅有一个动态RP时,通过手工配置静态RP可以避免因单一节点故障而引起的通信中断,同时也可以避免C-RP与BSR之间频繁的信息交互而占用带宽。为了让静态RP功能正常发挥作用,必须在PIM-SM域内的所有路由器上都进行此项配置,并指定相同的RP地址。

表4-4 配置静态RP

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置静态RP

static-rp rp-address [ acl-number ]

可选

缺省情况下,交换机没有设置静态RP

 

2. 配置C-RP

在PIM-SM域中,可以把有意成为RP的路由器配置为C-RP。BSR通过接收来自C-RP的C-RP信息,或者接收来自其它路由器的自动RP宣告,收集C-RP信息并将其汇总为RP-Set信息,然后在全网内扩散。之后,网络内的其它路由器根据RP-Set信息计算出特定组播组范围所对应的RP。建议在骨干网路由器上配置C-RP。

为了防止C-RP欺骗,需要在BSR上配置合法的C-RP地址范围及其所服务的组播组范围。同时由于每个C-BSR都可能成为BSR,因此必须在PIM-SM域内的所有C-BSR上都配置相同的过滤策略。

表4-5 配置C-RP

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置候选RP

c-rp interface-type interface-number [ group-policy acl-number | priority priority ]*

可选

缺省情况下,交换机没有设置候选RP,优先级的缺省值为0

限定合法C-RP的范围

crp-policy acl-number

可选

缺省情况下,交换机没有设置合法的C-RP范围

 

l    配置RP时,若没有指定所服务的组播组范围,该RP为所有组播组服务。

l    如果配置的静态RP地址是本机某个状态为UP的接口地址,本机就作为静态RP。

l    在BSR机制选举产生的RP有效时,静态RP不起作用。

 

4.3.3  配置BSR

在一个PIM-SM域中只能有一个BSR,但需要配置至少一个C-BSR。任意一台路由器都可以被配置为C-BSR。在C-BSR之间通过自动选举产生BSR,BSR负责在PIM-SM域中收集并发布RP信息。

1. 配置C-BSR

C-BSR应配置在骨干网的路由器上,在将路由器配置为C-BSR时,必须同时指定一个使能了PIM-SM的接口。C-BSR间的自动选举机制简单描述如下:

l              最初,每个C-BSR都认为自己是本PIM-SM域的BSR,并使用接口的IP地址作为BSR地址,发送自举报文(Bootstrap Message);

l              当某C-BSR收到其它C-BSR发来的自举报文时,首先比较自己与后者的优先级,优先级较高者获胜;在优先级相同的情况下,再比较自己与后者的BSR地址,拥有较大IP地址者获胜。如果后者获胜,则用后者的BSR地址替换自己的BSR地址,并不再认为自己是BSR;否则,保留自己的BSR地址,并继续认为自己是BSR。

通过在路由器上配置合法BSR的地址范围,可以对收到的BSR报文按照地址范围进行过滤,从而防止某些恶意主机非法伪装成BSR,以避免合法的BSR被恶意取代。必须在PIM-SM域内的所有路由器上进行相同的配置。通常针对以下两类情况实施预防措施:

(1)        某些恶意主机通过伪造BSR报文以欺骗路由器,试图更改RP映射关系。这种攻击通常发生在边缘路由器上,由于BSR处于网络内部,主机在网络外部,因此边缘路由器通过对收到的BSR报文进行邻居检查和RPF检查,丢弃不符合要求的报文,就可以避免外部网络用户对内部网络BSR的攻击;

(2)        网络中某台路由器被攻击者控制,或者有非法接入的路由器时,攻击者可以将这样的路由器配置为C-BSR,并使其在竞争中获胜,从而控制网络中RP信息的发布权。由于在被配置为C-BSR后,路由器会自动向整个网络扩散BSR报文,而BSR报文是TTL值为1的组播报文,所以只要其邻居路由器不接收该BSR报文,就不会影响整个网络。因此,通过在整个网络的所有路由器上都配置合法BSR的地址范围,从而丢弃合法范围之外的BSR报文,就可以防止此类攻击。

以上两种预防策略可以部分地保护网络中BSR的安全。但是如果某台合法的BSR路由器被攻击者控制,还是可能导致问题。

表4-6 配置BSR

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置候选BSR

c-bsr interface-type interface-number hash-mask-len [ priority ]

可选

缺省情况下,交换机没有设置候选BSR,优先级的缺省值为0

限定合法BSR的范围

bsr-policy acl-number

可选

缺省情况下,交换机没有设置合法BSR的范围

 

在同一台三层交换机上只能配置一个候选BSR,在另外的接口上配置BSR会取代先前的配置。

 

2. 配置BSR服务边界

BSR作为PIM-SM域中的管理核心,负责将收集到的RP-Set信息以自举报文的形式发向PIM-SM域中的所有路由器。

BSR的服务边界,即PIM-SM域的边界。BSR是针对特定的服务范围而言的,众多的BSR服务边界接口将网络划分成不同的PIM-SM域,自举报文无法通过PIM-SM域的边界,BSR服务边界之外的路由器也不能参与本PIM-SM域内的组播转发。

请在有待成为BSR服务边界的路由器上进行如下配置。

表4-7 配置BSR服务边界

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置PIM-SM域边界

pim bsr-boundary

必选

缺省情况下,没有配置BSR的服务边界

 

在配置了此功能之后,自举报文不能通过该边界,但其他PIM报文可以通过域边界。能够有效地将网络划分成使用不同BSR的区域。

 

4.3.4  配置RP对DR发送来的注册报文过滤

在PIM-SM域内,组播源侧DR向RP发送注册报文,而这些注册报文拥有不同的组播源或组播组地址。为了让RP服务于特定的组播组,可以对注册报文进行过滤。如果某个(S,G)表项被过滤规则拒绝,或者过滤规则中没有定义对它的操作,RP都会向DR发送注册停止报文,以停止该组播数据的注册过程。

表4-8 配置RP对DR发送来的注册报文过滤

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置RP对DR发来的注册报文进行过滤

register-policy acl-number

必选

缺省情况下,交换机对DR发来的注册报文不进行过滤

 

只有与ACL的permit语句匹配的注册报文才会被RP接受。指定一个没有定义的ACL将使RP拒绝所有的注册报文。

 

4.3.5  禁止从共享树切换到最短路径树

PIM-SM路由器最初通过共享树转发组播数据包,缺省情况下,组播数据经过的最后一跳以太网交换机就会发起从共享树到最短路径树的切换过程,用户也可以通过配置使共享树永远不会切换到最短路径树。

表4-9 禁止从共享树切换到最短路径树

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

禁止从共享树切换到最短路径树

spt-switch-threshold infinity [ group-policy acl-number [ order order-value ] ]

必选

缺省情况下,设备从RPT收到第一个组播数据包后便立即向SPT切换

 

通常,只需在接收者侧DR和RP上配置上述参数。但由于DR和RP都是经过选举产生的,所以本节的命令应在可能竞选成为DR的路由器和可能竞选成为RP的C-RP上进行配置。

 

4.4  PIM公共配置

表4-10 配置任务简介

配置任务

说明

详细配置

配置组播数据过滤器

可选

4.2.1 

配置Hello报文发送间隔

可选

4.4.2 

配置PIM邻居

可选

4.4.3 

配置组播源生存时间

可选

4.4.4 

配置PIM剪枝延迟时间

可选

4.4.5 

清除PIM相关表项

可选

4.4.6 

 

4.4.1  配置组播数据过滤器

无论在PIM-DM还是PIM-SM域内,各路由器都可以对流经自己的组播数据进行检查,通过比较是否符合过滤规则,从而决定是否继续转发组播数据。也就是说PIM域内的路由器能够成为组播数据的过滤器。过滤器的存在,一方面有助于实现信息流量控制,另一方面可以在安全性方面限定下游接收者能够获得的信息。

表4-11 配置组播数据过滤器

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置组播数据过滤器

source-policy acl-number

可选

缺省情况下,没有配置组播数据过滤器

 

l    如果配置基本访问控制列表,则对接收的所有组播数据报文匹配组播源地址,未通过匹配的报文将被丢弃。

l    如果配置高级访问控制列表,则对接收的所有组播数据报文匹配组播源地址和组播组地址,未通过匹配的报文将被丢弃。

 

4.4.2  配置Hello报文发送间隔

PIM路由器通过周期性地发送Hello报文,以发现PIM邻居,并维护各路由器之间的PIM邻居关系。

表4-12 Hello报文发送间隔配置

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface–type interface-number

-

配置接口Hello报文发送间隔

pim timer hello seconds

必选

缺省情况下,Hello报文发送间隔是30秒

 

在接口上配置PIM相关功能之前,应该先启动PIM DM或PIM SM协议。

 

4.4.3  配置PIM邻居

为防止建立大量的PIM邻居关系后耗尽路由器内存,导致路由器故障,用户可以对路由器接口上PIM邻居的数量进行限制。而路由器PIM邻居总数量的限制由系统内部定义,用户不能通过命令改变。

用户可以通过配置基本访问控制列表,限制只有符合条件的路由器才能作为当前接口的PIM邻居。

表4-13 配置PIM邻居

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口的PIM邻居数量限制

pim neighbor-limit limit

可选

缺省情况下,接口的PIM邻居数量上限为128

配置PIM邻居过滤规则

pim neighbor-policy acl-number

可选

缺省情况下,不对当前接口的PIM邻居进行过滤

 

如果在用户配置的时候,该接口上的PIM邻居数已经超过了配置值,原有的PIM邻居不会被删除。

 

4.4.4  配置组播源生存时间

在最初组播接收者接收组播源发送的组播数据时,都会出现有部分数据包丢失情况。这是由于在没有数据流的情况下,PIM路由表和组播路由表中的(S,G)项会定期老化(PIM 路由表和组播路由表中的(S,G)项的老化时间也称为组播源生存时间),所以在组播源数据再次到达组播交换机时需要重新建立这些表项,在这个过程中的组播转发会出现丢失数据包现象。

如果能在组播流已停止的情况下,将组播源生存时间适当的延长,这样当组播源数据再次流经组播交换机时就不再需要重新建立这些表项,也就将不再出现丢失数据包现象。

表4-14 配置组播源生存时间

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置组播源生存时间

source-lifetime interval

可选

缺省情况下,组播源的生存时间为210秒

 

只能配置PIM路由表和组播路由表中所有(S,G)项统一的老化时间,不能配置某一个指定(S,G)项的老化时间,并且配置会改变已经存在的所有的(S,G)项的老化时间。

 

4.4.5  配置PIM剪枝延迟时间

PIM剪枝延迟时间功能仅适用于PIM-SM网络,不适用于PIM-DM网络。

 

当下游路由器向上游发送剪枝报文后,上游节点会将连接该下游路由器的接口从其组播转发表项(S,G)所对应的出接口列表中删除;如果下游路由器在短时间内又在本地发现了该组播组的成员,会立刻向上游发送剪枝否决报文,通知上游节点撤销刚才的剪枝操作。

S3600系列交换机提供的剪枝延迟时间功能可以使本路由器在收到下游路由器发来的剪枝报文后并不立即执行剪枝动作,而是仍然对该节点保持转发状态,在剪枝延迟时间内,如果收到下游路由器发送的剪枝否决报文,则对该节点不进行剪枝;如果超过剪枝延迟时间后仍没有收到下游路由器的剪枝否决报文,则对该下游节点进行正常的剪枝操作。

配置适当的PIM剪枝延迟时间可以减少本地路由器对下游节点进行的剪枝/嫁接操作,减轻设备和网络的负担。

表4-15 配置PIM剪枝延迟时间

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置PIM剪枝延迟时间

prune delay interval

可选

缺省情况下,PIM剪枝延迟时间为5秒

 

4.4.6  清除PIM相关表项

在用户视图下执行reset命令可以清除组播PIM的相关统计信息。

表4-16 清除PIM相关表项配置

操作

命令

说明

清除PIM路由项

reset pim routing-table { all | { group-address [ mask { mask-length | mask } ] | source-address [ mask { mask-length | mask } ] | incoming-interface interface-type interface-number } * }

reset命令可以在用户视图下执行

清除PIM邻居

reset pim neighbor { all | { neighbor-address | interface interface-type interface-number } * }

 

4.5  PIM显示

在完成上述配置后,在任意视图下执行display命令可以显示配置后PIM的运行情况,通过查看显示信息验证配置的效果。

表4-17 PIM配置显示和维护

配置

命令

说明

显示PIM组播路由表

display pim routing-table [ { { *g [ group-address [ mask { mask-length | mask } ] ] | **rp [ rp-address [ mask { mask-length | mask } ] ] } | { group-address [ mask { mask-length | mask } ] | source-address [ mask { mask-length | mask } ] } * } | incoming-interface { interface-type interface-number | null } | { dense-mode | sparse-mode } ] *

display命令可以在任意视图下执行

显示PIM接口信息

display pim interface [ interface-type interface-number ]

显示PIM相邻路由器信息

display pim neighbor [ interface interface-type interface-number ]

显示BSR信息

display pim bsr-info

显示RP信息

display pim rp-info [ group-address ]

 

4.6  PIM典型配置举例

4.6.1  PIM-DM典型配置举例

1. 组网需求

l              接收者通过组播方式接收视频点播信息,不同组织的接收者群体组成末梢网络,每个末梢网络中都存在至少一个接收者,整个PIM域采用DM方式;

l              Host A和Host C为两个末梢网络中的组播信息接收者;

l              Switch D通过Vlan-interface300接口与组播源(Source)所在的网络连接;

l              Switch A通过Vlan-interface100接口连接末梢网络N1,通过Vlan-interface103接口连接Switch D;

l              Switch B和Switch C通过各自的Vlan-interface200接口连接末梢网络N2,分别通过Vlan-interface101和Vlan-interface102接口连接Switch D;

l              Switch A与末梢网络N1之间运行IGMP;Switch B和Switch C与末梢网络N2之间也运行IGMP,通常Switch B充当IGMP查询器。

2. 组网图

图4-7 PIM-DM典型配置组网图

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int100

10.110.1.1/24

Switch D

Vlan-int300

10.110.5.1/24

 

Vlan-int103

192.168.1.1/24

 

Vlan-int103

192.168.1.2/24

Switch B

Vlan-int200

10.110.2.1/24

 

Vlan-int101

192.168.2.2/24

 

Vlan-int101

192.168.2.1/24

 

Vlan-int102

192.168.3.2/24

Switch C

Vlan-int200

10.110.2.2/24

 

 

 

 

Vlan-int102

192.168.3.1/24

 

 

 

 

3. 配置步骤

(1)        配置各交换机接口的IP地址和单播路由协议

请按照图4-7配置各接口的IP地址和子网掩码,具体配置过程略。

配置PIM-DM域内的各交换机之间采用OSPF协议进行互连,确保PIM-DM域中Switch A、Switch B、Switch C和Switch D之间能够在网络层互通,并且各交换机之间能够借助单播路由协议实现动态路由更新,具体配置过程略。

(2)        启动组播路由,并在各接口上启动PIM-DM

# 在Switch A上启动组播路由,在各接口上启动PIM-DM,并在Switch A连接末梢网络的接口Vlan-interface100上启动IGMP。

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] igmp enable

[SwitchA-Vlan-interface100] pim dm

[SwitchA-Vlan-interface100] quit

[SwitchA] interface vlan-interface 103

[SwitchA-Vlan-interface103] pim dm

[SwitchA-Vlan-interface103] quit

Switch B和Switch C的配置与Switch A相似,配置过程略。

# 在Switch D上启动组播路由,并在其各接口上启动PIM-DM。

<SwitchD> system-view

[SwitchD] multicast routing-enable

[SwitchD] interface vlan-interface 300

[SwitchD-Vlan-interface300] pim dm

[SwitchD-Vlan-interface300] quit

[SwitchD] interface vlan-interface 103

[SwitchD-Vlan-interface103] pim dm

[SwitchD-Vlan-interface103] quit

[SwitchD] interface vlan-interface 101

[SwitchD-Vlan-interface101] pim dm

[SwitchD-Vlan-interface101] quit

[SwitchD] interface vlan-interface 102

[SwitchD-Vlan-interface102] pim dm

[SwitchD-Vlan-interface102] quit

4. 检验配置效果

可以通过使用display pim neighbor命令可以查看交换机之间的PIM邻居关系。例如:

# 查看Switch D上PIM的邻居关系信息。

[SwitchD] display pim neighbor

Neighbor's Address  Interface Name                Uptime    Expires

192.168.1.1        Vlan-interface1               00:47:08  00:01:39

192.168.2.1        Vlan-interface1               00:48:05  00:01:29

192.168.3.1        Vlan-interface1               00:49:08  00:01:34

通过使用display pim routing-table命令可以查看交换机PIM路由表信息。例如:

# 查看Switch APIM路由表信息。

<SwitchA> display pim routing-table

PIM-DM Routing Table

Total 1 (S,G) entry

 

(10.110.5.100, 225.1.1.1)

    Protocol 0x40: PIMDM, Flag 0xC: SPT NEG_CACHE

    Uptime: 00:00:23, Timeout in 187 sec

    Upstream interface: Vlan-interface103, RPF neighbor: 192.168.1.2

    Downstream interface list:

      Vlan-interface100, Protocol 0x1: IGMP, never timeout

 

Matched 1 (S,G) entry

Switch B和Switch C上的显示信息与Switch A类似。

# 查看SwitchD上PIM路由表信息。

<SwitchD> display pim routing-table

PIM-DM Routing Table

Total 1 (S,G) entry

 

(10.110.5.100, 225.1.1.1)

    Protocol 0x40: PIMDM, Flag 0xC: SPT NEG_CACHE

    Uptime: 00:00:23, Timeout in 187 sec

    Upstream interface: Vlan-interface300, RPF neighbor: NULL

    Downstream interface list:

      Vlan-interface101, Protocol 0x200: SPT, timeout in 147 sec

      Vlan-interface103, Protocol 0x200: SPT, timeout in 145 sec

      Vlan-interface103, Protocol 0x200: SPT, timeout in 145 sec

 

Matched 1 (S,G) entry

4.6.2  PIM-SM典型配置举例

1. 组网需求

l              接收者通过组播方式接收视频点播信息,不同组织的接收者群体组成末梢网络,每个末梢网络中都存在至少一个接收者,整个PIM域采用SM方式(不划分BSR管理域);

l              Host A和Host C为两个末梢网络中的组播信息接收者;

l              Switch D通过Vlan-interface300接口与组播源(Source)所在网络连接;

l              Switch A通过Vlan-interface100接口连接末梢网络N1,通过Vlan-interface101接口和Vlan-interface102接口分别连接Switch D和Switch E;

l              Switch B和Switch C通过各自的Vlan-interface200接口连接末梢网络N2,分别通过Vlan-interface103和Vlan-interface104接口连接Switch E;

l              Switch E连接Switch A、Switch B、Switch C和Switch D,并且将其Vlan-interface102接口作为C-BSR和C-RP,且该C-RP所服务的组播组范围为225.1.1.0/24。

2. 组网图

图4-8 PIM-SM典型配置组网图

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlanint100

10.110.1.1/24

Switch D

Vlanint300

10.110.5.1/24

 

Vlanint101

192.168.1.1/24

 

Vlanint101

192.168.1.2/24

 

Vlanint102

192.168.9.1/24

 

Vlanint105

192.168.4.2/24

Switch B

Vlanint200

10.110.2.1/24

Switch E

Vlanint104

192.168.3.2/24

 

Vlanint103

192.168.2.1/24

 

Vlanint103

192.168.2.2/24

Switch C

Vlanint200

10.110.2.2/24

 

Vlanint102

192.168.9.2/24

 

Vlanint104

192.168.3.1/24

 

Vlanint105

192.168.4.1/24

 

3. 配置步骤

(1)        配置各交换机接口的IP地址和单播路由协议

请按照图4-8配置各接口的IP地址和子网掩码,具体配置过程略。

配置PIM-SM域内的各交换机之间采用OSPF协议进行互连,确保PIM-SM域中Switch A、Switch B、Switch C、Switch D和Switch E之间能够在网络层互通,并且各交换机之间能够借助单播路由协议实现动态路由更新,具体配置过程略。

(2)        启动组播路由,并在各接口上启动PIM-SM

# 在Switch A上启动组播路由,在各接口上启动PIM-SM,并在Switch A连接末梢网络的接口Vlan-interface100上启动IGMP。

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] igmp enable

[SwitchA-Vlan-interface100] quit

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] pim sm

[SwitchA-Vlan-interface101] quit

[SwitchA] interface vlan-interface 102

[SwitchA-Vlan-interface102] pim sm

[SwitchA-Vlan-interface102] quit

Switch B和Switch C的配置与Switch A相似,Switch D和Switch E除了不需要在相应接口上启动IGMP外,其它的配置也与Switch A相似,配置过程略。

(3)        配置C-BSR和C-RP

# 在Switch E上配置RP通告的服务范围,以及C-BSR和C-RP的位置。

<SwitchE> system-view

[SwitchE] acl number 2005

[SwitchE-acl-basic-2005] rule permit source 225.1.1.0 0.0.0.255

[SwitchE-acl-basic-2005] quit

[SwitchE] pim

[SwitchE-pim] c-bsr vlan-interface 102 24

[SwitchE-pim] c-rp vlan-interface 102 group-policy 2005

[SwitchE-pim] quit

4. 检验配置效果

# 查看Switch E上PIM的邻居关系信息。

<SwitchE> display pim neighbor

Neighbor's Address  Interface Name                  Uptime    Expires

192.168.9.1         Vlan-interface102               02:47:04  00:01:42

192.168.2.1         Vlan-interface103               02:45:04  00:04:46

192.168.3.1         Vlan-interface104               02:42:24  00:04:45

192.168.4.2         Vlan-interface105               02:43:44  00:05:44

# 查看Switch E上的BSR信息。

<SwitchE> display pim bsr-info

  Current BSR Address: 192.168.9.2

             Priority: 0

          Mask Length: 24

              Expires: 00:01:39

  Local host is BSR 

# 查看Switch E上的RP信息。

<SwitchE> display pim rp-info

 PIM-SM RP-SET information:

    BSR is: 192.168.9.2

 

    Group/MaskLen: 225.1.1.0/24

      RP 192.168.9.2

        Version: 2

        Priority: 0

        Uptime: 00:49:44

        Expires: 00:01:46

# 查看Switch A上PIM路由表信息。

<SwitchA> display pim routing-table

PIM-SM Routing Table

Total 1 (S,G) entries, 1 (*,G) entries, 0 (*,*,RP) entry

 

(*, 225.1.1.1), RP 192.168.9.2

    Protocol 0x20: PIMSM, Flag 0x2003: RPT WC NULL_IIF

    Uptime: 00:23:21, never timeout

    Upstream interface: Vlan-interface102, RPF neighbor: 192.168.9.2

    Downstream interface list:

      Vlan-interface100, Protocol 0x1: IGMP, never timeout

(10.110.5.100, 225.1.1.1)

    Protocol 0x20: PIMSM, Flag 0x80004: SPT

    Uptime: 00:03:43, Timeout in 199 sec

    Upstream interface: Vlan-interface102, RPF neighbor: 192.168.9.2

    Downstream interface list:

      Vlan-interface100, Protocol 0x1: IGMP, never timeout

Matched 1 (S,G) entries, 1 (*,G) entries, 0 (*,*,RP) entry  

Switch B和Switch C上的显示信息与Switch A类似。

# 查看SwitchD上PIM路由表信息。

<SwitchD> display pim routing-table

PIM-SM Routing Table

Total 1 (S,G) entry, 0 (*,G) entry, 0 (*,*,RP) entry

 

(10.110.5.100, 225.1.1.1)

    Protocol 0x20: PIMSM, Flag 0x4: SPT

    Uptime: 00:03:03, Timeout in 27 sec

    Upstream interface: Vlan-interface300, RPF neighbor: NULL

    Downstream interface list:

      Vlan-interface101, Protocol 0x200: SPT, timeout in 147 sec

      Vlan-interface105, Protocol 0x200: SPT, timeout in 145 sec

Matched 1 (S,G) entry, 0 (*,G) entry, 0 (*,*,RP) entry

# 查看Switch E上的PIM路由表信息。

<SwitchE> display pim routing-table

PIM-SM Routing Table

Total 1 (S,G) entry, 1 (*,G) entry, 0 (*,*,RP) entry

 

(*,225.1.1.1), RP 192.168.9.2

    Protocol 0x20: PIMSM, Flag 0x2003: RPT WC NULL_IIF

    Uptime: 00:02:34, Timeout in 176 sec

    Upstream interface: Null, RPF neighbor: 0.0.0.0

    Downstream interface list:

      Vlan-interface102, Protocol 0x100: RPT, timeout in 176 sec

      Vlan-interface103, Protocol 0x100: SPT, timeout in 135 sec

 

(10.110.5.100, 225.1.1.1)

    Protocol 0x20: PIMSM, Flag 0x4: SPT

    Uptime: 00:03:03, Timeout in 27 sec

    Upstream interface: Vlan-interface105, RPF neighbor: 192.168.4.2

    Downstream interface list:

      Vlan-interface102, Protocol 0x200: SPT, timeout in 147 sec

      Vlan-interface103, Protocol 0x200: SPT, timeout in 145 sec

Matched 1 (S,G) entry, 1 (*,G) entry, 0 (*,*,RP) entry

4.7  PIM故障诊断与排除

故障:路由器不能正确建立组播路由表。

故障排除:可以按照如下步骤进行。

解决问题之前,首先应保证单播路由是正确的。

l              PIM-SM协议需要有RP和BSR的支持,所以首先使用display pim bsr-info,看是否有BSR信息,如果不存在,则需要查看是否有通向BSR的单播路由。这个问题解决后,看RP信息是否正确,使用display pim rp-info命令。如果没有RP信息,也需要检查单播路由。

l              使用display pim neighbor来查看是否正确建立了邻居关系。

 


5 MSDP配置

l    文中所述的路由器代表了一般意义下的路由器以及运行了IP组播协议的三层以太网交换机。

l    S3600-SI系列交换机不支持MSDP特性。

l    MSDP不支持IRF Fabric功能,因此不能在IRF Fabric中配置MSDP。

 

5.1  MSDP简介

5.1.1  MSDP概述

MSDP是Multicast Source Discovery Protocol(组播源发现协议)的简称,是为了解决多个PIM-SM(Protocol Independent Multicast Sparse Mode,协议无关组播—稀疏模式)域之间的互连而开发的一种域间组播解决方案,用来发现其它PIM-SM域内的组播源信息。

在基本的PIM-SM模式下,组播源只向本PIM-SM域内的RP注册,且各域的组播源信息是相互隔离的,因此RP仅知道本域内的组播源信息,只能在本域内建立组播分发树,将本域内组播源发出的组播数据分发放给本地用户。如果能够有一种机制,将其它域内的组播源信息传递给本域内的RP,则本域内的RP就可以向其它域内的组播源发起加入过程并建立组播分发树,从而实现组播数据的跨域传输。

基于这一设想,MSDP通过在各PIM-SM域的RP之间建立MSDP对等体关系,使它们能够在域间相互转发SA(Source Active,信源有效)消息,共享组播源信息。

l    MSDP的适用前提:域内组播路由协议必须是PIM-SM。

l    MSDP仅对ASM(Any-Source Multicast,任意信源组播)模型有意义。

 

5.1.2  MSDP原理

1. MSDP对等体

通过在网络中配置一对或多对MSDP对等体,形成彼此相连的一张“MSDP连通图”,以连通各个PIM-SM域的RP。通过这些MSDP对等体之间的接力,可以把某RP发出的SA消息传递给其它所有的RP。

图5-1 MSDP对等体的位置

 

图5-1所示,MSDP对等体可以创建在任意的PIM-SM路由器上,在不同角色的PIM-SM路由器上所创建的MSDP对等体的功能有所不同:

(1)        在RP上创建的MSDP对等体

l              源端MSDP对等体:即离组播源(Source)最近的MSDP对等体(通常也就是源端RP,如RP 1)。源端RP创建SA消息并发送给远端MSDP对等体,通告在本RP上注册的组播源信息。源端MSDP对等体必须配置在RP上,否则将无法向外发布组播源信息。

l              接收者端MSDP对等体:即离接收者(Receiver)最近的MSDP对等体(如RP 3)。接收者端MSDP对等体在收到SA消息后,根据该消息中所包含的组播源信息,跨域加入以该组播源为根的SPT;当来自该组播源的组播数据到达后,再沿RPT向本地接收者转发。

l              中间MSDP对等体:即拥有多个远端MSDP对等体的MSDP对等体(如RP 2)。中间MSDP对等体把从一个远端MSDP对等体收到的SA消息转发给其它远端MSDP对等体,其作用相当于传输组播源信息的中转站。

(2)        在普通的PIM-SM路由器(非RP)上创建的MSDP对等体

如Router A和Router B,其作用仅限于将收到的SA消息转发出去。

RP是由C-RP通过动态选举产生的。为了增强网络的健壮性,一个PIM-SM域内往往存在不只一个C-RP。由于无法预计RP选举的结果,为了保证选举获胜的C-RP能始终位于“MSDP连通图”上,需要在所有的C-RP之间建立MSDP对等体关系。而选举落败的C-RP在“MSDP连通图”上所担当的角色相当于普通的PIM-SM路由器。

 

2. 借助MSDP对等体实现域间组播

图5-2所示,PIM-SM 1域内存在激活的组播源(Source),RP 1通过组播源注册过程了解到了该组播源的存在。如果PIM-SM 2和PIM-SM 3域也希望知道该组播源的具体位置,进而能够从该组播源获取组播数据,则需要在RP 1与RP 3、RP 2与RP 3之间分别建立MSDP对等体关系。

图5-2 MSDP对等体示意图

 

借助MSDP对等体进行域间组播的工作过程如下:

(1)        当PIM-SM 1域内的组播源向组播组G发送第一个组播数据包时,DR 1将该组播数据封装在注册消息(Register Message)中,并发给RP 1。RP 1因此获知了该组播源的相关信息。

(2)        RP 1作为源端RP,创建SA消息,并周期性地向其它MSDP对等体发送。SA消息中包含组播源的地址S、组播组的地址G以及创建该SA消息的源端RP(即RP 1)的地址。

(3)        MSDP对等体对收到的SA消息进行RPF(Reverse Path Forwarding,逆向路径转发)检查,以及各种转发策略的过滤,从而只接受和转发来自正确路径并通过过滤的SA消息,以避免SA消息传递环路;另外,可以在MSDP对等体之间配置MSDP全连接组(Mesh Group),以避免SA消息在MSDP对等体之间的泛滥。

(4)        SA消息在MSDP对等体之间转发,最终该组播源的相关信息将传遍所有建立了MSDP对等体关系的PIM-SM域(即PIM-SM 2和PIM-SM 3)。

(5)        PIM-SM 2中的RP 2在收到该SA消息后,检查本域内是否有组播组G的接收者(Receiver)存在:

l              如果有接收者,RP 2与接收者之间维护组播组G的RPT。RP 2创建(S,G)表项,向源端的DR 1逐跳发送(S,G)加入消息(Join Message),从而跨越各PIM-SM域直接加入以该组播源为根的SPT。组播数据沿SPT到达RP 2后,再沿RPT向接收者转发。当接收者端的DR 2收到来自组播源的组播数据后,可以自行决定是否发起从RPT向SPT的切换;

l              如果没有接收者,RP 2不会创建(S,G)表项,也不加入以该组播源为根的SPT。

l    MSDP全连接组:要求所有组成员之间两两建立MSDP对等体关系,且所有组成员均使用相同的组名称。

l    在使用MSDP进行域间组播时,RP在收到组播源的信息后就不再需要依赖其它PIM-SM域内的RP,此时接收者可以跨越各PIM-SM域内的RP,而直接加入基于组播源的SPT。

 

3. SA消息的RPF检查规则

图5-3所示,网络中有五个自治系统AS 1~AS 5,AS内部使用IGP互联,AS之间使用EBGP互联。每个AS中包含至少一个PIM-SM域,且每个PIM-SM域中包含至少一个RP。各RP之间建立起MSDP对等体关系,其中RP 3、RP 4和RP 5之间建立MSDP全连接组,并在RP 7上将RP 6配置为其静态RPF对等体。

当PIM-SM域内只存在一个MSDP对等体时,该域又称为STUB域(如图5-3中的AS 4)。STUB域内的MSDP对等体可以同时拥有多个远端MSDP对等体,用户可以从中选取其中一个或多个配置为静态RPF对等体。对于来自静态RPF对等体的SA消息不进行RPF检查,直接接受并向其它对等体转发。

 

图5-3 SA消息的RPF检查规则

 

对照图5-3,这些MSDP对等体将按照如下RPF检查规则处理收到的SA消息:

(1)        当RP 2收到RP 1发来的SA消息时

由于SA消息中所携带的源端RP的地址与MSDP对等体的地址相同,说明发出SA消息的MSDP对等体就是创建该SA消息的RP,于是RP 2接受该SA消息并向其它对等体(RP 3)转发。

(2)        当RP 3收到RP 2发来的SA消息时

由于SA消息来自同一个AS的MSDP对等体(RP 2),且该对等体是到源端RP最佳路径上的下一跳,于是RP 3接受该SA消息并向其它对等体(RP 4和RP 5)转发。

(3)        当RP 4和RP 5分别收到RP 3发来的SA消息时

由于SA消息来自同一个全连接组的MSDP对等体(RP 3),于是RP 4和RP 5均接受该SA消息并不再向本组其它成员转发,而只向本组之外的其它MSDP对等体(RP 6)转发。

(4)        当RP 6收到RP 4和RP 5(假设RP 5的IP地址较大)发来的SA消息时

尽管同处AS 3的RP 4和RP 5都与RP 6建立了MSDP对等体关系,但由于RP 5的IP地址较大,于是RP 6只接受IP地址较高的MSDP对等体(RP 5)发来的SA消息。

(5)        当RP 7收到RP 6发来的SA消息时

由于SA消息来自其静态RPF对等体(RP 6),于是RP 7接受该SA消息并向其它对等体(RP 8)转发。

(6)        当RP 8收到RP 7发来的SA消息时

属于不同AS的MSDP对等体之间存在EBGP路由。由于SA消息来自不同AS的MSDP对等体(RP 7),且该对等体是到源端RP的EBGP路由的下一跳,于是RP 8接受该SA消息并向其它对等体(RP 9)转发。

(7)        当RP 9收到RP 8发来的SA消息时

由于只有一个MSDP对等体(RP 8),于是RP 9接受该SA消息。

对于由其它路径到来的SA消息,MSDP对等体将不接受也不转发。

4. 借助MSDP对等体实现域内Anycast RP

Anycast RP(任播RP)是指在同一个PIM-SM域内设置两个或多个具有相同地址的RP,并在这些RP之间建立MSDP对等体关系,以实现域内各RP之间的负载分担和冗余备份。

图5-4所示,在一个PIM-SM域内,组播源(Source)向组播组G发送组播数据,接收者(Receiver)是组播组G的成员。分别在Router A和Router B上配置相同的IP地址(称为Anycast RP地址,通常使用私有地址),同时将这些接口配置为C-RP,并在Router A和Router B之间建立MSDP对等体关系。

通常在设备的逻辑接口(如Loopback接口)上配置Anycast RP地址。

 

图5-4 Anycast RP典型组网图

 

Anycast RP的工作过程如下:

(1)        组播源选择距离最近的RP进行注册。如:Source向RP 1注册,注册消息中封装有Source发出的组播数据。当该注册消息到达RP 1后,进行解封装。

(2)        接收者向距离最近的RP发送加入消息,加入以该RP为根的RPT。如:Receiver加入以RP 2为根的RPT。

(3)        RP之间通过发送SA消息,共享注册的组播源信息。如:RP 1创建一个SA消息,发送给RP 2,该SA消息中封装有Source发出的组播数据。当该SA消息到达RP 2后,进行解封装。

(4)        接收者沿RPT收到组播数据后,直接加入以该组播源为根的SPT。如:RP 2沿RPT将组播数据向下转发。当Receiver收到来自Source的组播数据后,直接加入以Source为根的SPT。

Anycast RP的意义如下:

l              RP路径最优:组播源向距离最近的RP进行注册,建立路径最优的SPT;接收者向距离最近的RP发起加入,建立路径最优的RPT。

l              RP间的负载分担:每个RP上只需维护PIM-SM域内的部分源/组信息、转发部分的组播数据,从而实现了RP间的负载分担。

l              RP间的冗余备份:当某RP失效后,原先在该RP上注册或加入的组播源或接收者会自动选择就近的RP进行注册或加入操作,从而实现了RP间的冗余备份。

l    必须为Anycast RP地址配置32位的子网掩码(即255.255.255.255),即将其配置为一个主机地址。

l    MSDP对等体的地址不能与Anycast RP地址相同。

 

5.1.3  协议规范

与MSDP相关的协议规范有:

l              RFC 3618:Multicast Source Discovery Protocol (MSDP)

l              RFC 3446:Anycast Rendevous Point (RP) mechanism using Protocol Independent Multicast (PIM) and Multicast Source Discovery Protocol (MSDP)

5.2  配置MSDP基本功能

两台形成MSDP对等体关系的路由器之间需要存在路由,从而通过该路由传递PIM-SM域间的SA消息,对于只有一个MSDP对等体的区域(称为STUB区域),可以不需要路由,而直接通过配置静态RPF对等体来实现SA消息的传递。同时,静态RPF对等体方式将避免对接收到的SA消息进行RPF检查,因此可以减少资源消耗。

必须先创建MSDP对等体连接,然后才能配置静态RPF对等体。如果在一台路由器上只配置了一个MSDP对等体,这个MSDP对等体将被当作静态RPF对等体;如果配置了多个静态RPF对等体,根据配置的过滤策略的不同而处理原则不同。

当为同一路由器配置多个静态RPF对等体时,必须遵守如下两种配置方法:

l              都使用rp-policy参数:多个静态RPF对等体同时起作用,并按照所配置的前缀列表对SA消息中的RP进行过滤,只接收RP地址通过过滤的SA消息。如果同时配置了多个使用相同rp-policy参数的静态RPF对等体,则从其中一个对等体接收到的SA消息会向其他对等体转发。

l              都不使用rp-policy参数:按照配置的先后顺序,只有第一个连接状态是UP的静态RPF对等体是激活的,接收来自该对等体所有的SA消息,从其它静态RPF对等体接收到的SA消息将被丢弃。如果这个激活的静态RPF对等体失效(如配置取消或连接断开),仍然按照配置的先后顺序,重新选择第一个连接状态是UP的静态RPF对等体作为激活的静态RPF对等体。

5.2.1  配置准备

在配置MSDP基本功能之前,需完成以下任务:

l              配置某单播路由协议

l              配置PIM-SM基本功能

5.2.2  配置MSDP基本功能

表5-1 配置MSDP基本功能

操作

命令

说明

进入系统视图

system-view

-

启动MSDP功能,并进入MSDP视图

msdp

必选

缺省情况下,MSDP处于关闭状态

创建MSDP对等体连接

peer peer-address connect-interface interface-type interface-number

必选

缺省情况下,没有创建MSDP对等体连接

配置静态RPF对等体

static-rpf-peer peer-address [ rp-policy ip-prefix-name ]

可选

缺省情况下,没有配置静态RPF对等体

 

5.3  配置MSDP对等体连接

一个自治系统内可能包含多个MSDP对等体,为了避免这些MSDP对等体之间泛滥SA消息,可以使用MSDP全连接组(Mesh group)机制来改善流量。当多个MSDP对等体之间两两相互连接(即完全连接),这些MSDP对等体就可以形成一个全连接组。

构成MSDP全连接组的某对等体,一方面接收来自全连接组外的SA消息,并发送给组内其它成员;另一方面,对来自组内对等体的SA消息不再进行对等体RPF检查,也不在组内进行重复性转发。这种操作既避免了SA消息泛滥,同时因为不需要在MSDP对等体之间运行BGP或MBGP,所以也简化了对等体RPF检查机制。

可以对MSDP对等体之间的会话进行关闭,根据需要再进行激活。关闭MSDP对等体之间的会话后,TCP连接关闭,并不再重试建立连接,但配置信息会保留。

5.3.1  配置准备

在配置MSDP对等体连接之前,需完成以下任务:

l              配置某单播路由协议

l              配置IP组播基本功能

l              配置PIM-SM基本功能

l              配置MSDP基本功能

表5-2 配置任务简介

配置任务

说明

详细配置

配置MSDP对等体的描述信息

必选

5.3.2 

配置MSDP全连接组

可选

5.3.3 

配置MSDP对等体连接控制

可选

5.3.4 

 

5.3.2  配置MSDP对等体描述信息

可以为各MSDP对等体配置描述性信息,从而更好地管理和记忆MSDP对等体。

表5-3 配置MSDP对等体的描述信息

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置MSDP对等体的描述信息

peer peer-address description text

可选

缺省情况下,MSDP对等体没有描述信息

 

5.3.3  配置MSDP全连接组

用户可以通过在所有需要成为MSDP全连接组成员的对等体上配置相同的Mesh Group名称,从而将其组成全连接组关系。

表5-4 配置MSDP全连接组

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置将MSDP对等体加入全连接组

peer peer-address mesh-group name

必选

缺省情况下,MSDP对等体不属于任何全连接组

 

l    配置MSDP全连接组之前,各路由器之间应该保持彼此两两互相连接。

l    各对等体上配置的组名称必须相同,才能够加入同一个全连接组。

l    如果将同一MSDP对等体加入到多个全连接组时,只有最后一个配置有效。

 

5.3.4  配置MSDP对等体连接控制

MSDP对等体之间的连接可以灵活控制。一方面,通过关闭MSDP对等体可以临时禁止某些MSDP对等体关系,之后这两个对等体之间不再传递SA消息;另一方面,当重置MSDP对等体连接,或故障的MSDP对等体恢复工作,可以通过配置来调节对等体关系建立的重试周期。

表5-5 配置MSDP对等体连接控制

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

关闭MSDP对等体

shutdown peer-address

可选

缺省情况下,MSDP对等体处于连接状态

配置MSDP对等体连接的重试周期

timer retry seconds

可选

缺省情况下,建立MSDP对等体连接的重试周期为30秒

 

5.4  配置SA消息传递

SA消息中包括组播源S的IP地址、组播组G的地址和RP地址,还包含组播源所在域内RP收到的第一个组播数据。对于某些突发性组播数据,如果组播数据间隔时间超过了SA消息保持时间,则必须在SA消息中封装组播数据,否则接收者永远都无法接收到组播源信息。

当一个新接收者加入时,路由器缺省情况下不向其MSDP对等体发送SA请求消息,而是必须等待下一周期SA消息的到来,这将延迟接收者获取组播信息的时间。为了尽快让新接收者了解到当前活跃的组播源信息,路由器需要主动向MSDP对等体请求SA消息。

通常情况下,路由器接受所有MSDP对等体发送来的所有SA消息,并向所有MSDP对等体发送所有SA消息。通过配置接收/发送SA消息的过滤规则,可以有效控制SA消息在MSDP对等体间的传递。对于转发的SA消息,也可以配置TTL阈值来控制携带封装数据SA消息的传递范围。

为了减少获取组播源信息的时延,可以在路由器上缓存SA消息。缓存的SA消息数量不得超过系统限制,缓存的消息越多占用路由器内存空间越大。

5.4.1  配置准备

在配置SA消息传递之前,需完成以下任务:

l              配置某单播路由协议

l              配置IP组播基本功能

l              配置PIM-SM基本功能

l              配置MSDP基本功能

表5-6 配置任务简介

配置任务

说明

详细配置

配置SA消息中的RP地址

可选

5.4.2 

配置SA消息缓存

可选

5.4.3 

配置SA请求消息的发送和过滤

可选

5.4.4 

配置SA消息的组播源过滤规则

可选

5.4.5 

配置接收和转发SA消息的过滤规则

可选

5.4.6 

 

5.4.2  配置SA消息中的RP地址

MSDP对等体之间传递SA消息,当路由器对收到的SA消息进行RPF检查时,如果发现对端RP的地址与本地RP的地址相同,就会丢弃该SA消息。但在Anycast RP应用中,要求在同一个PIM-SM域内的两台或多台路由器上配置IP地址相同的RP,并在这些路由器之间建立MSDP对等体关系,因此必须为SA消息指定一个与实际RP的地址不同的逻辑RP地址(即逻辑接口上的RP地址),以通过RPF检查。

表5-7 配置SA消息中的RP地址

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置SA消息中的RP地址

originating-rp interface-type interface-number

可选

缺省情况下,SA消息的RP地址为PIM配置的RP地址

 

在Anycast RP应用中,C-BSR和C-RP必须配置在不同设备或端口上。

 

5.4.3  配置SA消息缓存

在路由器上启动SA消息缓存机制,可以使后续有新成员加入的组不必等待下一个发送周期的SA消息,而直接从SA缓存中获得所有的活动源并加入到相应的SPT源树。

用户可以通过命令配置路由器上每个MSDP对等体缓存的SA项数量,但是不能超过系统的限制。有时,为了防止路由器受到DoS(Denial  of Service,拒绝服务)攻击,可以手工配置允许路由器缓存SA消息的最大数量,通常配置的缓存数量应小于系统设定值。

表5-8 配置SA消息缓存

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

启动SA消息缓存机制

cache-sa-enable

可选

缺省情况下,启动SA消息缓存机制

配置SA消息的缓存数量

peer peer-address sa-cache-maximum sa-limit

可选

缺省情况下,SA缓存数量为最大值2048

 

5.4.4  配置SA请求消息的发送和过滤

当配置SA请求消息的发送功能后,路由器在收到新组加入消息时向指定的远端MSDP对等体发送SA请求消息,远端MSDP对等体回应其缓存的SA信息。发送SA请求消息后,路由器会立刻得到所有活跃组播源的响应。

由于远端MSDP对等体回应的SA消息是预先缓存好的,因此必须先启动SA消息缓存机制。通常情况下,只有缓存了SA消息的路由器才能回应SA请求消息。

配置接收SA消息的过滤规则命令时,如果没有指定ACL,则忽略其MSDP对等体发送的所有SA请求;如果指定了ACL,则允许接收符合该规则的SA请求消息,其它的被忽略。

表5-9 配置SA请求消息的发送和过滤

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

启动SA消息缓存机制

cache-sa-enable

可选

在缺省情况下,路由器收到SA消息后缓存SA的状态

启动MSDP对等体发送SA请求消息的功能

peer peer-address request-sa-enable

可选

缺省情况下,路由器在收到新的组加入消息时,不向其MSDP对等体发送SA请求消息,而是等待下一个SA消息的到来

配置对MSDP对等体接收的SA请求消息进行过滤

peer peer-address sa-request-policy [ acl acl-number ]

可选

缺省情况下,路由器接收来自该MSDP对等体的所有SA请求消息

 

5.4.5  配置SA消息的组播源过滤规则

RP通过对每个注册的组播源S进行过滤,从而控制在SA消息中被通告的活动源信息。可以配置MSDP在创建SA消息时只通告组播路由表中符合过滤规则的(S,G)项,即控制从组播路由表中引入PIM-SM域的(S,G)项。如果执行不带acl参数的import-source命令,将不通告任何源。

表5-10 配置SA消息的组播源过滤规则

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置用SA消息过滤组播源

import-source [ acl acl-number ]

可选

缺省情况下,SA消息通告域内的所有的(S, G)项

 

5.4.6  配置接收和转发SA消息的过滤规则

对组播源信息的控制,除了控制源信息创建,还可以控制源信息的转发和接收。使用MSDP入方向过滤器(对应import参数)可以控制SA消息的接收,使用MSDP出方向过滤器(对应export参数)或TTL生存时间阈值都可以控制SA消息的转发。

创建MSDP出/入方向过滤器可以实现以下功能:

l              过滤掉所有(S,G)项

l              只接收/转发通过高级ACL规则(用户可以配置过滤源IP地址和组IP地址的ACL规则)的SA消息

封装有组播数据的SA消息只有其IP头中的TTL值大于阈值时才能被发送到域外的指定MSDP对等体,因此可以通过配置TTL阈值来控制携带组播数据的SA消息转发范围。

表5-11 配置接收和转发SA消息的过滤规则

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置对接收或转发的SA消息进行过滤

peer peer-address sa-policy { import | export } [ acl acl-number ]

可选

缺省情况下,对接收或转发的消息不作过滤, MSDP对等体接收或转发所有的SA消息

配置发送到指定MSDP对等体的组播数据包的最小TTL

peer peer-address minimum-ttl ttl-value

可选

缺省情况下,TTL阈值为0

 

5.5  MSDP显示和维护

1. 显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后MSDP的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除MSDP统计信息。

表5-12 MSDP显示和维护

操作

命令

说明

查看MSDP对等体状态的简要信息

display msdp brief

display命令可以在任意视图下执行

查看MSDP对等体状态的详细信息

display msdp peer-status [ peer-address ]

查看从MSDP对等体学到的(S,G)状态

display msdp sa-cache  [ group-address | source-address | as-number ] *

查看MSDP缓存中的源和组的数量

display msdp sa-count [autonomous-system-number ]

重置与指定MSDP对等体的TCP连接

reset msdp peer peer-address

reset命令可以在用户视图下执行

清除MSDP的SA缓存项

reset msdp sa-cache [ group-address ]

在不重置MSDP对等体的情况下,清除MSDP对等体的统计信息

reset msdp statistics [ peer-address ]

 

2. 跟踪SA消息在网络中传递的路径

可在任意视图下使用msdp-tracert命令跟踪指定SA消息在网络中传递的路径,可以定位消息丢失、减少配置错误等问题,在确定SA消息的传递路径后,通过正确配置,可以避免SA消息泛滥。

表5-13 跟踪SA消息在网络中传递的路径

操作

命令

说明

跟踪SA消息在网络中传递的路径

msdp-tracert source-address group-address rp-address [ max-hops max-hops ] [ next-hop-info | sa-info | peer-info ]* [ skip-hops skip-hops ]

msdp-tracert命令可以在任意视图下执行

跟踪组播源发送的消息在网络中传递的路径

mtracert source-address [ group-address | last-hop-router-address group-address ]

mtracert命令可以在任意视图下执行

 

5.6  MSDP配置举例

5.6.1  Anycast RP应用配置举例

1. 组网需求

l              PIM-SM域内拥有多个组播源和接收者,并在域内运行OSPF协议以提供单播路由;

l              通过配置Anycast RP,使接收者侧DR能够向拓扑距离最近的RP发起加入,组播源侧DR也向拓扑距离最近的RP发起注册;

l              将Switch B和Switch D各自的Loopback10接口配置为C-BSR、Loopback20接口配置为C-RP;

l              Switch B的Router ID为1.1.1.1,Switch D的Router ID为2.2.2.2,在Switch B和Switch D之间建立MSDP对等体关系。

2. 组网图

图5-5 Anycast RP应用配置组网图

设备

接口

IP地址

设备

接口

IP地址

Source 1

-

10.110.5.100/24

Switch C

Vlan-int101

192.168.1.2/24

Source 2

-

10.110.6.100/24

 

Vlan-int102

192.168.2.2/24

Switch A

Vlan-int300

10.110.5.1/24

Switch D

Vlan-int200

10.110.3.1/24

 

Vlan-int103

10.110.2.2/24

 

Vlan-int104

10.110.4.1/24

Switch B

Vlan-int100

10.110.1.1/24

 

Vlan-int102

192.168.2.1/24

 

Vlan-int103

10.110.2.1/24

 

Loop0

2.2.2.2/32

 

Vlan-int101

192.168.1.1/24

 

Loop10

4.4.4.4/32

 

Loop0

1.1.1.1/32

 

Loop20

10.1.1.1/32

 

Loop10

3.3.3.3/32

Switch E

Vlan-int400

10.110.6.1/24

 

Loop20

10.1.1.1/32

 

Vlan-int104

10.110.4.2/24

 

3. 配置步骤

(1)        配置各交换机接口的IP地址和单播路由协议

请按照图5-5配置各接口的IP地址和子网掩码,具体配置过程略。

配置PIM-SM域内的各交换机之间采用OSPF协议进行互连,确保PIM-SM域内部在网络层互通,并且各交换机之间能够借助单播路由协议实现动态路由更新,具体配置过程略。

(2)        使能IP组播路由,并使能PIM-SM和IGMP

# 在Switch B上使能IP组播路由,在各接口上使能PIM-SM,并在主机侧接口Vlan-interface100上使能IGMP。

<SwitchB> system-view

[SwitchB] multicast routing-enable

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] igmp enable

[SwitchB-Vlan-interface100] pim sm

[SwitchB-Vlan-interface100] quit

[SwitchB] interface vlan-interface 103

[SwitchB-Vlan-interface103] pim sm

[SwitchB-Vlan-interface103] quit

[SwitchB] interface Vlan-interface 101

[SwitchB-Vlan-interface101] pim sm

[SwitchB-Vlan-interface101] quit

[SwitchB] interface loopback 0

[SwitchB-LoopBack0] pim sm

[SwitchB-LoopBack0] quit

[SwitchB] interface loopback 10

[SwitchB-LoopBack10] pim sm

[SwitchB-LoopBack10] quit

[SwitchB] interface loopback 20

[SwitchB-LoopBack20] pim sm

[SwitchB-LoopBack20] quit

Switch A、Switch C、Switch D和Switch E上的配置与Switch B相似,配置过程略。

(3)        配置C-BSR和C-RP的位置

# 在Switch B上将Loopback10配置为C-BSR,将Loopback20配置为C-RP。

[SwitchB] pim

[SwitchB-pim] c-bsr loopback 10 24

[SwitchB-pim] c-rp loopback 20

[SwitchB-pim] quit

Switch D上的配置与Switch B相似,配置过程略。

(4)        配置MSDP对等体

# 在Switch B的Loopback0接口上配置MSDP对等体。

[SwitchB] msdp

[SwitchB-msdp] originating-rp loopback 0

[SwitchB-msdp] peer 2.2.2.2 connect-interface loopback 0

[SwitchB-msdp] quit

# 在Switch D的Loopback0接口上配置MSDP对等体。

[SwitchD] msdp

[SwitchD-msdp] originating-rp loopback 0

[SwitchD-msdp] peer 1.1.1.1 connect-interface loopback 0

[SwitchD-msdp] quit

(5)        检验配置效果

通过使用display msdp brief命令可以查看交换机之间MSDP对等体建立情况。

# 查看Switch B上MSDP对等体的简要信息。

[SwitchB] display msdp brief

MSDP Peer Brief Information

  Peer's Address     State     Up/Down time    AS     SA Count   Reset Count

  2.2.2.2            Up        00:48:21        ?      2          0         

# 查看Switch D上MSDP对等体的简要信息。

[SwitchD] display msdp brief

MSDP Peer Brief Information

  Peer's Address     State     Up/Down time    AS     SA Count   Reset Count

  1.1.1.1            Up        00:50:22        ?      2          0

当Source 1(10.110.5.100/24)开始向组播组G(225.1.1.1)发送组播信息时,Receiver 1加入组播组G。通过比较Switch B与Switch D上PIM路由信息,可知当前的有效RP为Switch B:Source 1向Switch B注册,Receiver 1向Switch B加入。

# 查看Switch B上的PIM路由的信息。

[Switch B] display pim routing-table

PIM-SM Routing Table

Total 1 (S,G) entry, 1 (*,G) entry, 0 (*,*,RP) entry

 

(*, 225.1.1.1), RP 10.1.1.1

    Protocol 0x20: PIMSM, Flag 0x2003: RPT WC NULL_IIF

    Uptime: 00:00:13, never timeout

    Upstream interface: Null, RPF neighbor: 0.0.0.0

    Downstream interface list:

      Vlan-interface100, Protocol 0x1: IGMP, never timeout

 

(10.110.5.100, 225.1.1.1)

    Protocol 0x20: PIMSM, Flag 0x4: SPT

    Uptime: 00:03:08, Timeout in 206 sec

    Upstream interface: Vlan-interface103, RPF neighbor: NULL

    Downstream interface list:

      Vlan-interface100, Protocol 0x1: IGMP, never timeout

 

Matched 1 (S,G) entry, 1 (*,G) entry, 0 (*,*,RP) entry

 

# 查看Switch D上的PIM路由的信息。

[SwitchD] display pim routing-table

PIM-SM Routing Table

Total 0 (S,G) entry, 0 (*,G) entry, 0 (*,*,RP) entry

Matched 0 (S,G) entry, 0 (*,G) entry, 0 (*,*,RP) entry

5.7  常见配置错误举例

5.7.1  MSDP对等体一直处于DOWN状态

1. 故障现象

配置了MSDP对等体,但对等体状态一直为DOWN。

2. 分析

在本地所配置的connect-interface接口地址与配置的peer对端地址之间,建立起基于TCP连接的MSDP对等体关系。如果本地connect-interface接口地址与对端路由器上配置的peer地址不一致,TCP连接就会建立不起来。如果两个对等体之间没有路由,TCP连接就会建立不起来。

3. 处理过程

l              检查各路由器之间的路由是否通达。通过命令display ip routing-table查看各路由器之间单播路由是否正确。

l              进一步检查预将成为MSDP对等体的两个路由器之间是否存在到达对方的单播路由。

l              检查MSDP对等体接口地址是否匹配。通过命令display current-configuration查看本地connect-interface接口地址是否与对端MSDP对等体地址一致,应确保一致。

5.7.2  路由器SA缓存中没有SA表项

1. 故障现象

MSDP没有将(S, G)转发项通过SA消息发送出去。

2. 分析

命令import-source用于控制将本组播域的(S,G)项通过SA消息发送给相邻的MSDP对等体,其所带的ACL参数是可选的,如果没有配置ACL参数则表示默认过滤掉所有的(S,G)项,即不通告本组播域的所有(S,G)项;未配置import-source命令时,系统发送本组播域的所有(S,G)信息。当MSDP没有将本组播域的(S,G)项通过SA消息发送出去时,应检查import-source命令是否配置正确。

3. 处理过程

l              检查各路由器之间的路由是否通达。通过命令display ip routing-table查看各路由器之间单播路由是否正确。

l              进一步检查预将成为MSDP对等体的两个路由器之间是否存在到达对方的单播路由。

l              检查命令import-source及对应ACL的配置情况,确保ACL规则过滤合适的(S,G)信息。

 


6 IGMP Snooping配置

文中所述的路由器代表了一般意义下的路由器以及运行了IP组播协议的三层以太网交换机。

 

6.1  IGMP Snooping简介

IGMP Snooping(Internet Group Management Protocol Snooping,IGMP侦听)是运行在二层以太网交换机上的组播约束机制,用于管理和控制组播组。

6.1.1  IGMP Snooping原理

运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。

图6-1所示,当二层设备没有运行IGMP Snooping时,组播数据在二层被广播;当二层设备运行了IGMP Snooping后,已知组播组的组播数据不会在二层被广播,而在二层被组播给指定的接收者,但是未知组播数据仍然会在二层广播。

图6-1 二层设备运行IGMP Snooping前后的对比

 

6.1.2  IGMP Snooping基本概念

1. IGMP Snooping相关端口

图6-2所示,Router A连接组播源,在Switch A和Switch B上分别运行IGMP Snooping,Host A和Host C为接收者主机(即组播组成员)。

图6-2 IGMP Snooping相关端口

 

结合图6-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. IGMP Snooping端口老化定时器

表6-1 IGMP Snooping端口老化定时器

定时器

说明

超时前应收到的报文

超时后交换机的动作

路由器端口老化定时器

交换机为其上的每个路由器端口都启动一个定时器,其超时时间为路由器端口老化时间

IGMP通用查询报文或PIM Hello报文

将该端口从路由器端口列表中删除

成员端口老化定时器

当一个端口加入某组播组时,交换机为该端口启动一个定时器,其超时时间为成员端口老化时间

IGMP成员关系报告报文

将该端口从组播组的转发表中删除

 

6.1.3  IGMP Snooping工作机制

运行了IGMP Snooping的交换机对不同IGMP动作的具体处理方式如下:

1. 通用组查询

IGMP查询器定期向本地网段内的所有主机与路由器发送IGMP通用查询报文,以查询该网段有哪些组播组的成员。

在收到IGMP通用查询报文时,交换机将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:

l              如果该端口是路由器端口列表中已有的路由器端口,则重置该路由器端口的老化定时器。

l              如果该端口不是路由器端口列表中已有的路由器端口,则将其加入路由器端口列表,并启动该路由器端口的老化定时器。

2. 报告成员关系

以下情况,主机会向组播路由器发送IGMP成员关系报告报文:

l              当组播组的成员主机收到IGMP查询报文后,会回复IGMP成员关系报告报文。

l              如果主机要加入某个组播组,它会主动向组播路由器发送IGMP成员关系报告报文以声明加入该组播组。

在收到IGMP成员关系报告报文时,交换机将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的组播组地址,并对该报文的接收端口做如下处理:

l              如果该端口已存在于组播组转发表中,则重置该端口的成员端口老化定时器;

l              如果该端口不在组播组转发表中,则在组播组转发表中为该端口增加转发表项,并启动该端口的成员端口老化定时器。

交换机不会将IGMP成员关系报告报文通过非路由器端口转发出去,原因如下:根据IGMP成员关系报告抑制机制,如果非路由器端口下还有该组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使交换机无法获知这些端口下还有该组播组的成员主机。

有关IGMP成员关系报告抑制机制的介绍,请参见“3.1.2  IGMPv1工作机制”。

 

3. 离开组播组

运行IGMPv1的主机离开组播组时不会发送IGMP离开组报文,因此交换机无法立即获知主机离开的信息。但是,由于主机离开组播组后不会再发送IGMP成员关系报告报文,因此当其对应的成员端口的老化定时器超时后,交换机就会将该端口对应的转发表项从转发表中删除。

运行IGMPv2或IGMPv3的主机离开组播组时,会通过发送IGMP离开组报文,以通知组播路由器自己离开了某个组播组。

当从最后一个成员端口上收到IGMP离开组报文时,交换机会将该报文通过VLAN内的所有路由器端口转发出去,同时由于并不知道该报文的接收端口下是否还有该组播组的其它成员,所以交换机不会立刻把该端口对应的转发表项从转发表中删除,而是重置该成员端口的老化定时器。

当IGMP查询器收到IGMP离开组报文后,从中解析出主机要离开的组播组的地址,并通过接收端口向该组播组发送IGMP特定组查询报文。交换机在收到IGMP特定组查询报文后,将其通过VLAN内的所有路由器端口和该组播组的所有成员端口转发出去。

对于IGMP离开组报文的接收端口,交换机在该成员端口的老化时间内:

l              如果从该端口收到了主机发送的响应该组播组的IGMP成员关系报告报文,则表示该端口下还有该组播组的成员,于是重置该成员端口的老化定时器;

l              如果没有从该端口收到主机发送的响应该组播组的IGMP成员关系报告报文,则表示该端口下已没有该组播组的成员,则在该成员端口老化时间超时后,将转发表中该端口对应该组播组的转发表项删除。

交换机在启动了IGMP Snooping功能后,当收到某个组播组内的主机发出的IGMP离开报文时,会自动判断该组播组是否存在。如果该组播组不存在,则丢弃这个IGMP离开报文,不再转发。

 

6.2  配置IGMP Snooping

表6-2 配置任务简介

配置任务

说明

详细配置

启动IGMP Snooping

必选

6.2.1 

配置IGMP-Snooping版本

可选

6.2.2 

配置IGMP Snooping相关定时器

可选

6.2.3 

配置端口从组播组中快速删除功能

可选

6.2.4 

配置组播组过滤功能

可选

6.2.5 

配置端口可以通过的组播组最大数量

可选

6.2.6 

配置IGMP Snooping查询器

可选

6.2.7 

配置IGMP Snooping禁止广播

可选

6.2.8 

配置静态成员端口

可选

6.2.9 

配置静态路由器端口

可选

6.2.10 

配置禁止端口成为路由器端口功能

可选

6.2.11 

配置IGMP Snooping模拟主机加入功能

可选

6.2.12 

配置查询报文的VLAN Tag

可选

6.2.13 

配置组播VLAN

可选

6.2.14 

 

6.2.1  启动IGMP Snooping

表6-3 启动IGMP Snooping

操作

命令

说明

进入系统视图

system-view

-

全局启动的IGMP Snooping功能

igmp-snooping enable

必选

缺省情况下,全局IGMP Snooping功能处于关闭状态

进入VLAN视图

vlan vlan-id

-

启动VLAN视图下的IGMP Snooping功能

igmp-snooping enable

必选

缺省情况下,所有VLAN的IGMP Snooping功能都处于关闭状态

 

l    二、三层组播协议可以同时运行在交换机上,但是在同一个VLAN和该VLAN对应的虚接口上不能同时运行二层和三层组播协议。

l    在启动指定VLAN的IGMP Snooping前,应首先在系统视图下启动全局IGMP Snooping功能,否则将无法配置成功。

l    如果在某VLAN内同时启动了IGMP Snooping和VLAN VPN,有可能会造成IGMP查询报文不能够通过VLAN,可以通过配置查询报文的VLAN Tag解决,详细情况请参见“6.2.13   配置查询报文的VLAN Tag”。

 

6.2.2  配置IGMP Snooping版本

配置IGMP Snooping的版本,实际上就是配置IGMP Snooping可以处理的IGMP报文的版本:

l              当IGMP Snooping的版本为2时,IGMP Snooping能够对IGMPv1和IGMPv2的报文进行处理,对IGMPv3的报文则不进行处理,而是在VLAN内将其广播;

l              当IGMP Snooping的版本为3时,IGMP Snooping能够对IGMPv1、IGMPv2和IGMPv3的报文进行处理。

表6-4 配置IGMP Snooping版本

操作

命令

说明

进入系统视图

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的功能不能区分组播组相同而组播源不同的组播数据,只能点播组播组不同和组播源也不同的组播数据,所以规划网络时每个组播源的组播组地址不能相同。

 

6.2.3  配置IGMP Snooping相关定时器

本配置任务用来手工设置路由器端口老化定时器、组播组成员端口老化定时器、响应查询定时器。

表6-5 配置IGMP Snooping相关定时器

操作

命令

说明

进入系统视图

system-view

-

配置路由器端口老化时间

igmp-snooping router-aging-time seconds

可选

缺省情况下,路由器端口老化时间为105秒

配置IGMP通用查询报文的最大响应时间

igmp-snooping max-response-time seconds

可选

缺省情况下,IGMP通用查询报文的最大响应时间为10秒

配置组播组成员端口老化时间

igmp-snooping host-aging-time seconds

可选

缺省情况下,组播组成员端口老化时间为260秒

 

6.2.4  配置端口从组播组中快速删除功能

当启动快速删除功能后,交换机从某端口收到离开某组播组的IGMP离开报文时,直接将端口从组播组中删除。

当端口下只有一个用户时,可以通过使能端口从组播组中快速删除功能来节约带宽和资源;而在连接有多个接收者的端口上,如果未知组播报文丢弃或禁止广播功能同时开启的情况下,则不要再使能端口从组播组中快速删除功能,否则,一个接收者的离开将导致该端口下属于同一组播组的其它接收者无法收到组播数据。

1. 在系统视图下配置端口从组播组中快速删除功能

表6-6 在系统视图下配置端口从组播组中快速删除功能

操作

命令

说明

进入系统视图

system-view

-

配置端口从组播组中快速删除功能

igmp-snooping fast-leave [ vlan vlan-list ]

必选

缺省情况下,端口从组播组中快速删除功能关闭

 

2. 在以太网端口视图下配置端口从组播组中快速删除功能

表6-7 在以太网端口视图下配置端口从组播组中快速删除功能

操作

命令

说明

进入系统视图

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内的该端口有效。

 

6.2.5  配置组播组过滤功能

在启动了IGMP Snooping的交换机上,通过配置组播组过滤器,可以限制用户对组播节目的点播。

在实际应用中,当用户点播某个组播节目时,会发起一个IGMP报告报文,该报文到达交换机后,交换机检查接收端口上配置的组播过滤ACL,如果此端口可以加入这个组播组,则将这个端口加入到该组播组的转发端口列表中;否则交换机就丢弃该IGMP报告报文,这样数据流就不会送到该端口,从而控制用户点播组播。

配置此功能前,请确定ACL规则已经配置完毕。

1. 在系统视图下配置组播组过滤功能

表6-8 在系统视图下配置组播组过滤功能

操作

命令

说明

进入系统视图

system-view

-

配置组播过滤功能

igmp-snooping group-policy acl-number [ vlan vlan-list ]

必选

缺省情况下,组播过滤功能关闭

 

2. 在以太网端口视图下配置组播组过滤功能

表6-9 在以太网端口视图下配置组播组过滤功能

操作

命令

说明

进入系统视图

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内的该端口有效。

 

6.2.6  配置端口可以通过的组播组最大数量

在配置端口可以通过的组播组最大数量后,用户在点播组播组节目时,由于端口通过的组播组的数量受到限制,因此用户不能无限制的点播组播组。这样一来,端口带宽就得到了控制。

表6-10 配置端口可以通过的组播组最大数量

操作

命令

说明

进入系统视图

system-view

-

进入以太网端口视图

interface interface-type interface-number

-

配置端口可以通过的组播组最大数量

igmp-snooping group-limit limit [ vlan vlan-list [ overflow-replace ] ]

必选

缺省情况下,端口上允许通过的组播组最大数量为256个

 

l    为了避免因组播组数量过多引起网络流量过大或导致设备的处理能力下降,可以限定交换机支持的最大组播组数量。

l    当组播组数量超过限定值时,交换机会根据组播组建立的先后顺序删除最先的建立的多余组播组,此时被删除的组播组内一些正被转发的组播流会被当成未知组播报文在本VLAN内广播,导致一段时间内非成员端口也会收到组播流。为了避免上述情况的发生,请打开未知组播报文丢弃功能或IGMP Snooping禁止广播功能。

l    如果用户已经将以太网端口配置为某个组播组的静态成员端口,则在该端口上配置的可以通过的组播组最大数量将不会生效。

 

6.2.7  配置IGMP Snooping查询器

在运行了IGMP协议的组播网络中,会有一个专职查询的组播路由器,负责发送IGMP查询报文。但是,由于二层组播交换机上不支持IGMP功能,因此没有办法实现查询器的功能,无法发送通用组查询报文。

用户可以通过配置IGMP Snooping查询器,使二层交换机主动发送通用组查询报文,从而建立并维护组播转发表项。

当S3600交换机作为二层交换机使用,且开启了IGMP-Snooping查询器后,默认情况下,S3600交换机发送的IGMP查询报文源IP地址为0.0.0.0。而网络中的其它交换机收到这种查询报文后,不会将收到该查询报文的端口设置为动态路由器端口,从而会影响数据链路层组播转发表项的建立,最终导致组播数据无法正常转发。

用户可以把IGMP查询报文的源IP地址配置为一个有效的IP地址以避免上述问题的出现

用户可以配置的IGMP Snooping查询器功能包括:

l              开启IGMP Snooping查询器功能

l              配置IGMP通用组查询报文的发送时间间隔

l              配置IGMP通用组查询报文/IGMP特定组查询报文的源IP地址

1. 开启IGMP Snooping查询器

表6-11 开启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查询器功能处于关闭状态

 

2. 配置IGMP查询报文的时间间隔

表6-12 配置IGMP查询报文的时间间隔

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

配置交换机在当前VLAN内发送通用组查询报文的时间间隔

igmp-snooping query-interval seconds

可选

缺省情况下,发送通用组查询报文的时间间隔为60秒

 

3. 配置IGMP查询报文的源IP地址

表6-13 配置IGMP查询报文的源IP地址

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

配置发送通用组查询报文时使用的源IP地址

igmp-snooping general-query source-ip { current-interface | ip-address }

可选

缺省情况下,发送通用组查询报文时使用的源IP地址为0.0.0.0

配置发送特定组查询报文时使用的源IP地址

igmp-snooping special-query source-ip { current-interface | ip-address }

可选

缺省情况下,发送特定组查询报文时使用的源IP地址为0.0.0.0

 

6.2.8  配置IGMP Snooping禁止广播

用户在VLAN内配置了IGMP Snooping功能后,当交换机收到发往未知组播组的报文时,数据报文会在VLAN内广播,这样会占用大量的网络带宽,影响转发效率。

此时用户可以在交换机上启动IGMP Snooping禁止广播功能,当交换机收到发往未知组播组的报文时,交换机将建立nonflooding表项,使数据报文只向交换机的路由器端口转发,不在VLAN内广播。如果交换机没有路由器端口,数据报文会被丢弃,不再转发。

IGMP Snooping禁止广播功能与未知组播报文丢弃功能的区别就在于:前者将未知的组播数据报文向路由器端口转发,而后者则会直接丢弃未知组播数据报文。

表6-14 配置IGMP Snooping禁止广播

配置步骤

命令

说明

进入系统视图

system-view

-

开启IGMP Snooping禁止广播功能

igmp-snooping nonflooding-enable

必选

缺省情况下,没有启动IGMP Snooping禁止广播功能

 

l    如果已经配置了未知组播报文丢弃功能或IRF Fabric功能的情况下,IGMP Snooping禁止广播功能不能配置。

l    IGMP Snooping禁止广播功能与组播源端口抑制功能不能同时生效,如果开启IGMP Snooping禁止广播功能并且在某端口上启动了组播源端口抑制功能,则只有组播源端口抑制功能生效,而IGMP Snooping禁止广播功能不起作用,从该端口收到的组播数据将被丢弃。

 

6.2.9  配置静态成员端口

如果某端口所连接的主机需要固定接收某个组播组组播数据,可以配置该端口静态加入该组播组,成为静态成员端口。

1. 在以太网端口视图下配置静态成员端口

表6-15 在以太网端口视图下配置静态成员端口

操作

命令

说明

进入系统视图

system-view

-

进入以太网端口视图

interface interface-type interface-number

-

配置当前端口作为静态成员端口

multicast static-group group-address vlan vlan-id

必选

缺省情况下,没有配置静态成员端口

 

2. 在VLAN接口视图下配置静态成员端口

表6-16 在VLAN接口视图下配置静态成员端口

操作

命令

说明

进入系统视图

system-view

-

进入VLAN接口视图

interface Vlan-interface interface-number

-

配置指定端口作为静态成员端口

multicast static-group group-address interface interface-list

必选

缺省情况下,没有配置静态成员端口

 

l    每台交换机最多可以配置200个静态成员端口。

l    如果设备上已经配置了IRF Fabric端口或反射端口,则不能配置静态成员端口。

 

6.2.10  配置静态路由器端口

在拓扑稳定的网络中,可以将交换机上的路由器端口配置为静态路由器端口,交换机可以通过该端口接收路由器发来的IGMP报文。

1. 在以太网端口视图下配置静态路由器端口

表6-17 在以太网端口视图下配置静态路由器端口

操作

命令

说明

进入系统视图

system-view

-

进入以太网端口视图

interface interface-type interface-number

-

配置当前端口作为静态路由器端口

multicast static-router-port vlan vlan-id

必选

缺省情况下,没有配置静态路由器端口

 

2. 在VLAN视图下配置静态路由器端口

表6-18 在VLAN视图下配置静态路由器端口

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

配置指定端口作为静态路由器端口

multicast static-router-port interface-type interface-number

必选

缺省情况下没有配置静态路由器端口

 

6.2.11  配置禁止端口成为路由器端口功能

在MFF(MAC-Forced Forwarding,MAC强制转发)功能的组网应用中,用户主机之间是二层隔离的,但MFF功能定义的用户侧端口允许组播协议报文通过。因此,可能出现下面这种不安全的情况:用户A加入了组播组,并发出了组播成员报告报文,该报文将从交换机的所有路由器端口进行转发;而如果此时交换机上连接另一个用户的用户侧端口成为了路由器端口,则该端口下的用户便可以监听到用户A加入组播组的消息,并可能从报文中分析用户A的其它信息,造成安全隐患。

为避免这种不安全的现象,S3600系列交换机提供了禁止端口成为路由器端口功能,网络管理者可以通过配置,使MFF组网中的用户侧端口不能成为路由器端口,避免组播成员报告报文从该端口发出,从而被其他用户监听。

表6-19 配置禁止端口成为路由器端口功能

操作

命令

说明

进入系统视图

system-view

-

进入以太网端口视图

interface interface-type interface-number

-

配置禁止端口成为路由器端口功能

igmp-snooping query-pkt-deny

必选

缺省情况下,没有配置禁止端口成为路由器端口功能

 

l    建议用户只在MFF组网中使用禁止端口成为路由器端口功能。

l    有关MFF功能的具体介绍,请参见“ARP”部分。

 

6.2.12  配置IGMP Snooping模拟主机加入功能

IGMP Snooping模拟主机加入功能的实现与IGMP模拟主机加入功能的实现原理相同,不同的是建立和维护的是IGMP Snooping表项

1. 在VLAN接口视图下配置IGMP Snooping模拟主机加入功能

表6-20 在VLAN接口视图下配置IGMP Snooping模拟主机加入功能

操作

命令

说明

进入系统视图

system-view

-

进入VLAN接口视图

interface Vlan-interface interface-number

-

配置IGMP模拟主机加入功能

igmp host-join group-address [ source-ip source-address ] port interface-list

必选

缺省情况下,模拟主机加入功能处于关闭状态

 

2. 在以太网端口视图下配置IGMP Snooping模拟主机加入功能

表6-21 配置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 时,该参数才有效。

 

6.2.13  配置查询报文的VLAN Tag

可以通过配置在指定VLAN转发/发送的通用查询报文和特定组查询报文,实现在上行VLAN与下行VLAN不同的二层组播网络环境中的组播报文的跨VLAN转发。

表6-22 配置查询报文的VLAN Tag

操作

命令

说明

进入系统视图

system-view

-

配置查询报文的VLAN Tag

igmp-snooping vlan-mapping vlan vlan-id

必选

缺省情况下,不改变IGMP Snooping转发/发送的通用查询报文和特定组查询报文所在的VLAN

 

该功能建议不要与组播VLAN功能同时使用。

 

6.2.14  配置组播VLAN

基于以往的组播点播方式,当处于不同VLAN的用户点播同一个组播组时,数据在组播路由器上会为每个包含接收者的VLAN进行复制和转发。这样的组播点播方式,浪费了大量的带宽。

在启动了IGMP Snooping功能后,通过配置组播VLAN的方式,将交换机的端口加入到组播VLAN,使不同VLAN内的用户共用一个组播VLAN接收组播数据,组播流只在一个组播VLAN内进行传输,从而节省了带宽。而且由于组播VLAN与用户VLAN完全隔离,安全和带宽都得以保证。

组播VLAN主要应用于二层交换,但在三层交换机上也必须进行相应的配置。

组播VLAN配置过程如下:

表6-23 配置组播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

 

表6-24 组播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内的所有的组播成员端口都无法接收到组播数据报文。

 

6.3  IGMP Snooping显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后IGMP Snooping的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除IGMP Snooping统计信息。

表6-25 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命令可以在用户视图下执行

 

6.4  IGMP Snooping典型配置举例

6.4.1  配置IGMP Snooping功能

1. 组网需求

为了使组播数据不在二层被广播,需要在交换机上启动IGMP Snooping。

l              图6-3所示,Router A通过Ethernet1/0/2接口连接组播源(Source),通过Ethernet1/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。

2. 组网图

图6-3 配置IGMP Snooping组网图

 

3. 配置步骤

(1)        配置各设备接口的IP地址

请按照图6-3配置各接口的IP地址和子网掩码,具体配置过程略。

(2)        配置Router A

# 启动组播路由,在各接口上启动PIM-DM,并在接口Ethernet1/0/1上启动IGMP

<RouterA> system-view

[RouterA] multicast routing-enable

[RouterA] interface Ethernet 1/0/1

[RouterA-Ethernet1/0/1] igmp enable

[RouterA-Ethernet1/0/1] pim dm

[RouterA-Ethernet1/0/1] quit

[RouterA] interface Ethernet 1/0/2

[RouterA-Ethernet1/0/2] pim dm

[RouterA-Ethernet1/0/2] quit

(3)        配置Switch A

# 全局启动IGMP Snooping。

<SwitchA> system-view

[SwitchA] igmp-snooping enable

  Enable IGMP-Snooping ok.

# 创建VLAN 100,把端口Ethernet1/0/1到Ethernet1/0/4添加到该VLAN中,并在该VLAN内启动IGMP Snooping。

[SwitchA] vlan 100

[SwitchA-vlan100] port Ethernet 1/0/1 to Ethernet 1/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):

                     Ethernet1/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):

                     Ethernet1/0/3          Ethernet1/0/4

    MAC group(s):

        MAC group address: 0100-5e01-0101

        Host port(s): Ethernet1/0/3          Ethernet1/0/4

以上显示信息表明,SwitchA上已经建立起以动态路由器端口为Ethernet1/0/1和动态主机成员端口为Ethernet1/0/3和Ethernet1/0/4的组播组224.1.1.1,说明HostA和HostB已经成功加入到组播组224.1.1.1。

6.4.2  配置组播VLAN功能

1. 组网需求

组播源为Workstation,Switch A转发组播源发出的组播数据流。组播数据流通过二层交换机Switch B被转发到最终用户HostA、HostB。

具体的设备编号如下:

表6-26 组网设备具体配置

设备

描述

说明

Switch A

三层交换机

VLAN 20接口的IP地址为168.10.1.1,Ethernet1/0/1属于VLAN 20,Ethernet1/0/1和Work Station相连

VLAN 10接口的IP地址为168.10.2.1,Ethernet1/0/10属于VLAN 10,Ethernet1/0/10和Switch B相连

Switch B

二层交换机

l      VLAN 2包含端口Ethernet1/0/1,VLAN 3包括端口Ethernet1/0/2,两个端口分别与HostA、HostB相连

l      端口Ethernet1/0/1和Ethernet1/0/2的缺省VLAN分别为VLAN2和VLAN3

l      VLAN 10包含端口Ethernet1/0/10 、Ethernet1/0/1和Ethernet1/0/2,并且端口Ethernet1/0/10与SwitchA相连

l      VLAN 10为组播VLAN

l      端口Ethernet1/01以untag方式发送VLAN2 和VLAN10的报文

l      端口Ethernet1/02以untag方式发送VLAN3 和VLAN10的报文

HostA

用户1

与Switch B的Ethernet1/0/1端口相连

HostB

用户2

与Switch B的Ethernet1/0/2端口相连

 

在该配置举例中,将SwitchA和SwitchB之间相连的端口配置为hybrid端口,配置过程如下面配置过程所示。用户也可以将SwitchA和SwitchB之间相连的端口配置为trunk端口,配置过程略,可参考6.2.14  配置组播VLAN

配置组播VLAN,使VLAN 2和VLAN 3内的用户通过组播VLAN接收组播流。

2. 组网图

图6-4 组播VLAN组网示意图

 

3. 配置步骤

以下配置基于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 Ethernet 1/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

# 创建VLAN10。

[SwitchA] vlan 10

[SwitchA-vlan10] quit

# 将Ethernet1/0/10定义为Hybrid端口,并将该端口加入到VLAN10中,端口发送VLAN 10的报文时带VLAN标签。

[SwitchA] interface Ethernet 1/0/10

[SwitchA-Ethernet1/0/10] port link-type hybrid

[SwitchA-Ethernet1/0/10] port hybrid vlan 10 tagged

[SwitchA-Ethernet1/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

[SwitchA-Vlan-interface10] pim dm

(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

# 将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

6.5  常见配置错误举例

故障现象:交换机不能实现组播功能。

故障排除:

(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建立的组播组不正确,请向专业维护人员求助。

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们