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

H3C S7500E系列以太网交换机 操作手册(Release 6100系列 V1.01)

14-组播协议操作

本章节下载  (1.88 MB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S7500E/S7500E/Configure/Operation_Manual/H3C_S7500E_OM(Release_6100_V1.01)/201205/744939_30005_0.htm

14-组播协议操作

  录

第1章 组播概述

1.1 组播简介

1.1.1 三种信息传输方式的比较

1.1.2 组播中各部分的角色

1.1.3 组播的优点和应用

1.2 组播模型分类

1.3 组播框架结构

1.3.1 组播地址

1.3.2 组播协议

1.4 组播报文的转发机制

第2章 IGMP Snooping配置

2.1 IGMP Snooping简介

2.1.1 IGMP Snooping原理

2.1.2 IGMP Snooping基本概念

2.1.3 IGMP Snooping工作机制

2.1.4 交换机对组播协议报文的特殊处理规则

2.1.5 协议规范

2.2 IGMP Snooping配置任务简介

2.3 配置IGMP Snooping基本功能

2.3.1 配置准备

2.3.2 使能IGMP Snooping

2.3.3 配置IGMP Snooping版本

2.4 配置IGMP Snooping端口功能

2.4.1 配置准备

2.4.2 配置动态端口老化定时器

2.4.3 配置静态端口

2.4.4 配置模拟主机加入

2.4.5 配置端口快速离开

2.5 配置IGMP Snooping查询器

2.5.1 配置准备

2.5.2 使能IGMP Snooping查询器

2.5.3 配置IGMP查询和响应

2.5.4 配置IGMP查询报文源IP地址

2.6 配置IGMP Snooping策略

2.6.1 配置准备

2.6.2 配置组播组过滤器

2.6.3 配置组播数据报文源端口过滤

2.6.4 配置丢弃未知组播数据报文

2.6.5 配置IGMP成员关系报告报文抑制

2.6.6 配置端口加入的组播组最大数量

2.6.7 配置组播组替换

2.7 IGMP Snooping显示和维护

2.8 IGMP Snooping典型配置举例

2.8.1 模拟主机加入配置举例

2.8.2 静态路由器端口配置举例

2.8.3 IGMP Snooping查询器配置举例

2.9 常见配置错误举例

2.9.1 交换机不能实现二层组播

2.9.2 配置的组播组策略不生效

第3章 组播VLAN配置

3.1 组播VLAN简介

3.2 配置组播VLAN

3.3 组播VLAN显示和维护

3.4 组播VLAN典型配置举例

第4章 IGMP配置

4.1 IGMP简介

4.1.1 IGMP的版本

4.1.2 IGMPv1工作机制

4.1.3 IGMPv2的改进

4.1.4 IGMPv3的改进

4.1.5 协议规范

4.2 IGMP配置任务简介

4.3 配置IGMP基本功能

4.3.1 配置准备

4.3.2 使能IGMP

4.3.3 配置IGMP版本

4.3.4 配置静态加入组播组

4.3.5 配置组播组过滤器

4.4 调整IGMP性能

4.4.1 配置准备

4.4.2 配置IGMP报文选项

4.4.3 配置IGMP查询和响应

4.4.4 配置IGMP快速离开

4.5 IGMP显示和维护

4.6 IGMP典型配置举例

4.7 常见配置错误举例

4.7.1 接收者侧路由器上无组成员信息

4.7.2 同一网段各路由器上组成员关系不一致

第5章 PIM配置

5.1 PIM简介

5.1.1 PIM-DM简介

5.1.2 PIM-DM工作机制

5.1.3 PIM-SM简介

5.1.4 PIM-SM工作机制

5.1.5 PIM-SM中BSR管理域介绍

5.1.6 SSM模型在PIM中的实现

5.1.7 协议规范

5.2 配置PIM-DM

5.2.1 PIM-DM配置任务简介

5.2.2 配置准备

5.2.3 使能PIM-DM

5.2.4 使能状态刷新能力

5.2.5 配置状态刷新参数

5.2.6 配置PIM-DM定时器

5.3 配置PIM-SM

5.3.1 PIM-SM配置任务简介

5.3.2 配置准备

5.3.3 使能PIM-SM

5.3.4 配置BSR

5.3.5 配置RP

5.3.6 配置PIM-SM注册报文

5.3.7 禁止RPT向SPT切换

5.4 配置PIM-SSM

5.4.1 PIM-SSM配置任务简介

5.4.2 配置准备

5.4.3 使能PIM-SM

5.4.4 配置SSM组播组范围

5.5 配置PIM公共信息

5.5.1 PIM公共信息配置任务简介

5.5.2 配置准备

5.5.3 配置PIM过滤器

5.5.4 配置Hello报文选项

5.5.5 配置PIM公共定时器

5.5.6 配置加入/剪枝报文限制

5.6 PIM显示和维护

5.7 PIM典型配置举例

5.7.1 PIM-DM典型配置举例

5.7.2 PIM-SM典型配置举例

5.7.3 PIM-SSM典型配置举例

5.8 常见配置错误举例

5.8.1 无法正确建立组播分发树

5.8.2 组播数据异常终止在中间路由器

5.8.3 PIM-SM中RP无法加入SPT

5.8.4 PIM-SM中BSR和各C-RP之间无单播路由

第6章 MSDP配置

6.1 MSDP简介

6.1.1 MSDP概述

6.1.2 MSDP原理

6.1.3 协议规范

6.2 MSDP配置任务简介

6.3 配置MSDP基本功能

6.3.1 配置准备

6.3.2 使能MSDP

6.3.3 创建MSDP对等体连接

6.3.4 配置静态RPF对等体

6.4 配置MSDP对等体连接

6.4.1 配置准备

6.4.2 配置MSDP对等体描述信息

6.4.3 配置MSDP全连接组

6.4.4 配置MSDP对等体连接控制

6.5 配置SA消息

6.5.1 配置准备

6.5.2 配置SA消息内容

6.5.3 配置SA请求消息

6.5.4 配置SA消息过滤规则

6.5.5 配置SA消息缓存

6.6 MSDP显示和维护

6.7 MSDP典型配置举例

6.7.1 借助BGP路由的AS间组播配置举例

6.7.2 借助静态RPF对等体的AS间组播配置举例

6.7.3 Anycast RP应用配置举例

6.8 常见配置错误举例

6.8.1 MSDP对等体一直处于down状态

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

6.8.3 Anycast RP应用中RP间互通信息异常

第7章 组播路由与转发配置

7.1 组播路由与转发简介

7.1.1 RPF机制

7.1.2 组播静态路由

7.1.3 组播路径跟踪

7.2 组播路由与转发配置任务简介

7.3 配置组播路由与转发

7.3.1 配置准备

7.3.2 使能IP组播路由

7.3.3 配置组播静态路由

7.3.4 配置组播路由匹配

7.3.5 配置组播流量分担

7.3.6 配置组播转发范围

7.3.7 配置组播转发表容量

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

7.4 组播路由与转发显示和维护

7.5 组播路由与转发典型配置举例

7.5.1 改变RPF路由配置举例

7.5.2 衔接RPF路由配置举例

7.6 常见配置错误举例

7.6.1 组播静态路由失败

7.6.2 组播数据无法到达接收者

 


第1章  组播概述

&  说明:

本手册着重介绍IP组播技术及设备操作。如果不加特别说明,本手册中出现的组播均指IP组播。

 

1.1  组播简介

作为一种与单播和广播并列的通信方式,组播技术能够有效地解决单点发送、多点接收的问题,从而实现了网络中点到多点的高效数据传送,能够节约大量网络带宽、降低网络负载。

利用组播技术可以方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等对带宽和数据交互的实时性要求较高的信息服务。

1.1.1  三种信息传输方式的比较

1. 单播方式的信息传输过程

图1-1所示,采用单播(Unicast)方式时,信息源(Source)为每个需要信息的主机都发送一份独立的信息拷贝。

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

假设Host B、Host D和Host E需要某信息,则Source分别与Host B、Host D和Host E建立一条独立的传输通道。

采用单播方式传输时,网络中的信息量与要求接收该信息的用户量成正比,因此当用户数量很庞大时,信息源需要将多份内容相同的信息发送给不同的用户,这将对信息源以及网络带宽造成巨大的压力。

从单播方式的信息传播过程可以看出,该传输方式不利于信息的批量发送。

2. 广播方式的信息传输过程

图1-2所示,采用广播(Broadcast)方式时,信息源(Source)把信息传送给网络中的所有主机,而不管其是否需要。

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

假设只有Host B、Host D和Host E需要某信息,如果Source广播该信息,则Host A和Host C也可以接收到该信息,这样不仅信息的安全性得不到保障,而且会造成同一网络中信息的泛滥。

因此,广播不利于与特定对象进行数据交互,并且还占用了大量的带宽。

3. 组播方式的信息传输过程

综上所述,传统的单播和广播的通信方式不能以最小的网络开销实现单点发送、多点接收的问题。

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

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

假设只有Host B、Host D和Host E需要某信息,为了将该信息顺利地传输给这些主机,可以将Host B、Host D和Host E组成一个接收者的集合——组播组(Multicast group),并由网络中各路由器根据该集合中接收者的分布情况进行信息的复制和转发,最后该信息会准确地发送给Host B、Host D和Host E。

综上所述,组播的优势如下:

l              相比单播来说,组播的优势在于:由于被传递的信息在距信息源尽可能远的网络节点才开始被复制和分发,所以用户的增加不会导致网络负载的显著增加。

l              相比广播来说,组播的优势在于:由于组播数据只会发送给需要该数据的接收者,所以可以合理利用带宽,不会造成网络资源的浪费,并能提高网络的安全性。

1.1.2  组播中各部分的角色

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

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.3  组播的优点和应用

1. 组播的优点

组播技术的优点主要在于:

l              提高效率:减轻信息源服务器和网络设备CPU的负荷;

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

l              分布式应用:使用最少的网络资源实现点到多点应用。

2. 组播的应用

组播技术主要应用于以下几个方面:

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

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

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

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

1.2  组播模型分类

根据接收者对组播源处理方式的不同,组播模型分为以下两类:

1. ASM模型

简单地说,ASM(Any-Source Multicast,任意信源组播)模型就是任意源组播模型。

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

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

2. SSM模型

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

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

1.3  组播框架结构

对于IP组播,需要关注下列问题:

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

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

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

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

IP组播属于端到端的服务,组播机制包括以下四个部分:

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

(2)        主机注册:允许接收者主机动态加入和离开某组播组,实现对组播成员的管理;

(3)        组播路由:构建组播报文分发树(即组播数据在网络中的树型转发路径),并通过该分发树将报文从组播源传输到接收者;

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

1.3.1  组播地址

为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层的组播MAC地址。

1. IPv4组播地址

IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4组播使用,范围从224.0.0.0到239.255.255.255,具体分类及其含义如表1-2所示。

表1-2 IPv4组播地址的范围及含义

地址范围

含义

224.0.0.0~224.0.0.255

永久组地址。除224.0.0.0保留不做分配外,其它地址供路由协议、拓扑查找和协议维护等使用,常用的永久组地址及其含义如表1-3所示。对于以该范围内组播地址为目的地址的数据包来说,不论其TTL(Time to Live,生存时间)值为多少,都不会被转发出本地网段

224.0.1.0~238.255.255.255

用户组地址,全网范围内有效。包含两种特定的组地址:

l      232.0.0.0/8:SSM组地址

l      233.0.0.0/8:GLOP组地址,详情请参见RFC 2770

239.0.0.0~239.255.255.255

本地管理组地址,仅在本地管理域内有效。使用本地管理组地址可以灵活定义组播域的范围,以实现不同组播域之间的地址隔离,从而有助于在不同组播域内重复使用相同组播地址而不会引起冲突。详情请参见RFC 2365

 

&  说明:

l      组播组中的成员是动态的,主机可以在任何时刻加入或离开组播组。

l      GLOP是一种AS(Autonomous System,自治系统)之间的组播地址分配机制,将AS号直接填入该范围内组播地址的中间两个字节中,每个AS都可以得到255个组播地址。

 

表1-3 常用永久组地址及其含义

永久组地址

含义

224.0.0.1

所有系统,包括主机与路由器

224.0.0.2

所有组播路由器

224.0.0.3

未分配

224.0.0.4

DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器

224.0.0.5

OSPF(Open Shortest Path First,开放最短路径优先)路由器

224.0.0.6

OSPF指定路由器/备用指定路由器

224.0.0.7

ST(Shared Tree,共享树)路由器

224.0.0.8

ST主机

224.0.0.9

RIP-2(Routing Information Protocol version 2,路由信息协议版本2)路由器

224.0.0.11

移动代理

224.0.0.12

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器/中继代理

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

所有SBM

224.0.0.18

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)

 

2. IPv6组播地址

根据RFC 4291,IPv6组播地址的格式如图1-4所示。

图1-4 IPv6组播地址格式

l              0xFF:8比特,标识此地址为IPv6组播地址。

l              Flags:4比特,其中最高位是保留位,取0;次高位的定义和用途请参见RFC 3956;第三位的定义和用途请参见RFC 3306;最低位是临时标识位,0代表由IANA永久分配的组播地址,1代表非永久分配的组播地址。

l              Scope:4比特,标识该IPv6组播组的应用范围,其可能的取值及其含义如表1-4所示。

l              Group ID:112比特,IPv6组播组标识号。关于Group ID的详细规定请参见RFC 3306。

表1-4 Scope字段的取值及其含义

取值

含义

0、3、F

保留(reserved)

1

接口本地范围(interface-local scope)

2

链路本地范围(link-local scope)

4

管理本地范围(admin-local scope)

5

站点本地范围(site-local scope)

6、7、9~D

未分配(unassigned)

8

机构本地范围(organization-local scope)

E

全局范围(global scope)

 

3. 以太网组播MAC地址

以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据包时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用组播MAC地址。

(1)        IPv4组播MAC地址

IANA规定,IPv4组播MAC地址的高24位为0x01005E,第25位为0x0,低23位为IPv4组播地址的低23位。IPv4组播地址与MAC地址的映射关系如图1-5所示。

图1-5 IPv4组播地址与MAC地址的映射关系

由于IPv4组播地址的高4位是1110,代表组播标识,而低28位中只有23位被映射到IPv4组播MAC地址,这样IPv4组播地址中就有5位信息丢失。于是,就有32个IPv4组播地址映射到了同一个IPv4组播MAC地址上,因此在二层处理过程中,设备可能要接收一些本IPv4组播组以外的组播数据,而这些多余的组播数据就需要设备的上层进行过滤了。

(2)        IPv6组播MAC地址

IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。如图1-6所示,是IPv6组播地址FF1E::F30E:0101的MAC地址映射举例。

图1-6 IPv6组播地址的MAC地址映射举例

1.3.2  组播协议

&  说明:

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

l      IGMP Snooping、组播VLAN、IGMP、PIM和MSDP应用于IPv4;MLD Snooping、IPv6组播VLAN、MLD、和IPv6 PIM应用于IPv6。

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

 

1. 三层组播协议

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

图1-7 三层组播协议的应用位置

(1)        组播组管理协议

在主机和与其直接相连的三层组播设备之间通常采用组播组的管理协议IGMP(Internet Group Management Protocol,互联网组管理协议)或MLD(Multicast Listener Discovery Protocol,组播侦听者发现协议),该协议规定了主机与三层组播设备之间建立和维护组播组成员关系的机制。

(2)        组播路由协议

组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。

对于ASM模型,可以将组播路由分为域内和域间两大类:

l              域内组播路由用来在AS内部发现组播源并构建组播分发树,从而将组播信息传递到接收者。在众多域内组播路由协议中,PIM(Protocol Independent Multicast,协议无关组播)是目前较为典型的一个。按照转发机制的不同,PIM可以分为DM(Dense Mode,密集模式)和SM(Sparse Mode,稀疏模式)两种模式。

l              域间组播路由用来实现组播信息在AS之间的传递,目前比较成型的解决方案有MSDP(Multicast Source Discovery Protocol,组播源发现协议)等。

对于SSM模型,没有域内和域间的划分。由于接收者预先知道组播源的具体位置,因此只需要借助PIM-SM构建的通道即可实现组播信息的传输。

2. 二层组播协议

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

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

(1)        IGMP Snooping/MLD Snooping

IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)和MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)是运行在二层设备上的组播约束机制,通过窥探和分析主机与三层组播设备之间交互的IGMP或MLD报文来管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。

(2)        组播VLAN/IPv6组播VLAN

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

1.4  组播报文的转发机制

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

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

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

&  说明:

有关RPF机制的详细介绍,请参见“7.1.1  RPF机制”。

 


第2章  IGMP Snooping配置

2.1  IGMP Snooping简介

IGMP Snooping是Internet Group Management Protocol Snooping(互联网组管理协议窥探)的简称,它是运行在二层设备上的组播约束机制,用于管理和控制组播组。

2.1.1  IGMP Snooping原理

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

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

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

2.1.2  IGMP Snooping基本概念

1. IGMP Snooping相关端口

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

图2-2 IGMP Snooping相关端口

结合图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转发表中。

&  说明:

l      本文中提到的路由器端口都是指交换机上朝向组播路由器的端口,而不是指路由器上的端口。

l      在运行了IGMP Snooping的交换机上,所有收到源地址不为0.0.0.0的IGMP普遍组查询报文或PIM Hello报文的端口都将被视为路由器端口。

 

2. IGMP Snooping动态端口老化定时器

表2-1 IGMP Snooping动态端口老化定时器

定时器

说明

超时前应收到的报文

超时后交换机的动作

路由器端口老化定时器

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

源地址不为0.0.0.0的IGMP普遍组查询报文或PIM Hello报文

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

成员端口老化定时器

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

IGMP成员关系报告报文

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

 

&  说明:

IGMP Snooping端口老化机制只针对动态端口,静态端口永不老化。

 

2.1.3  IGMP Snooping工作机制

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

1. 普遍组查询

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

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

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

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

2. 报告成员关系

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

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

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

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

l              如果不存在该组播组所对应的转发表项,则创建转发表项,将该端口作为成员端口添加到出端口列表中,并启动该成员端口的老化定时器;

l              如果已存在该组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为成员端口添加到出端口列表中,并启动该成员端口的老化定时器;

l              如果已存在该组播组所对应的转发表项,且其出端口列表中已包含该端口,表明该端口已是一个成员端口,则重置该成员端口的老化定时器。

&  说明:

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

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

 

3. 离开组播组

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

运行IGMPv2或IGMPv3的主机离开组播组时,会通过发送IGMP离开组报文,以通知组播路由器自己离开了某个组播组。当交换机从某成员端口上收到IGMP离开组报文时,首先判断要离开的组播组所对应的转发表项是否存在,以及该组播组所对应转发表项的出端口列表中是否包含该接收端口:

l              如果不存在该组播组对应的转发表项,或者该组播组对应转发表项的出端口列表中不包含该端口,交换机不会向任何端口转发该报文,而将其直接丢弃;

l              如果存在该组播组对应的转发表项,并且该组播组对应转发表项的出端口列表中包含有该端口,交换机会将该报文通过VLAN内的所有路由器端口转发出去,同时由于并不知道该接收端口下是否还有该组播组的其它成员,所以交换机不会立刻把该端口从该组播组所对应转发表项的出端口列表中删除,而是重置该成员端口的老化定时器。

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

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

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

2.1.4  交换机对组播协议报文的特殊处理规则

支持IGMP Snooping功能的交换机使能了三层组播路由后,在不同的情况下对各种组播协议报文的处理有所差异。具体规则如下:

(1)        如果交换机上只使能了IGMP,或同时使能了IGMP和PIM,进行常规处理。

(2)        如果交换机上只使能了PIM:

l              对于IGMP报文,将其当作未知报文在VLAN内进行广播;

l              对于PIM Hello报文,则会为其维护相应的路由器端口。

(3)        在交换机上关闭IGMP,或者清除IGMP转发表项(reset igmp group)时:

l              如果未使能PIM,则删除所有二层组播表项和路由器端口;

l              如果已使能了PIM,则只删除二层组播表项,而路由器端口将被保留。

(4)        在交换机上关闭PIM时:

l              如果未使能IGMP,则删除所有路由器端口;

l              如果已使能了IGMP,则所有二层组播表项和路由器端口都将被保留。

2.1.5  协议规范

与IGMP Snooping相关的协议规范有:

l              RFC 4541:Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches

2.2  IGMP Snooping配置任务简介

表2-2 IGMP Snooping配置任务简介

配置任务

说明

详细配置

配置IGMP Snooping基本功能

使能IGMP Snooping

必选

2.3.2 

配置IGMP Snooping版本

可选

2.3.3 

配置IGMP Snooping端口功能

配置动态端口老化定时器

可选

2.4.2 

配置静态端口

可选

2.4.3 

配置模拟主机加入

可选

2.4.4 

配置端口快速离开

可选

2.4.5 

配置IGMP Snooping查询器

使能IGMP Snooping查询器

可选

2.5.2 

配置IGMP查询和响应

可选

2.5.3 

配置IGMP查询报文源IP地址

可选

2.5.4 

配置IGMP Snooping策略

配置组播组过滤器

可选

2.6.2 

配置组播数据报文源端口过滤

可选

2.6.3 

配置丢弃未知组播数据报文

可选

2.6.4 

配置IGMP成员关系报告报文抑制

可选

2.6.5 

配置端口加入的组播组最大数量

可选

2.6.6 

配置组播组替换

可选

2.6.7 

 

&  说明:

l      IGMP-Snooping视图下的配置对所有的VLAN都有效,VLAN视图下的配置只对当前VLAN有效。对于某VLAN来说,优先采用在该VLAN视图下所作的配置,只有当在该VLAN视图下没有进行配置时,才采用IGMP-Snooping视图下的相应配置。

l      IGMP-Snooping视图下的配置对所有端口都有效;以太网端口视图下的配置只对当前端口有效;手工端口组视图下的配置对当前端口组中的所有端口有效;聚合端口组视图下的配置则只对其主端口有效,而对非主端口无效。对于某端口来说,优先采用在该以太网端口视图或端口组视图下所作的配置,只有当在该以太网端口视图或端口组视图下没有进行配置时,才采用IGMP-Snooping视图下的相应配置。

 

2.3  配置IGMP Snooping基本功能

2.3.1  配置准备

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

l              配置相应VLAN

在配置IGMP Snooping基本功能之前,需准备以下数据:

l              IGMP Snooping的版本

2.3.2  使能IGMP Snooping

表2-3 使能IGMP Snooping

操作

命令

说明

进入系统视图

system-view

-

全局使能IGMP Snooping,并进入IGMP-Snooping视图

igmp-snooping

必选

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

退回系统视图

quit

-

进入VLAN视图

vlan vlan-id

-

在VLAN内使能IGMP Snooping

igmp-snooping enable

必选

缺省情况下,VLAN内的IGMP Snooping处于关闭状态

 

&  说明:

l      在VLAN内使能IGMP Snooping之前,必须先在系统视图下全局使能IGMP Snooping,否则将无法在VLAN内使能IGMP Snooping。

l      在VLAN内使能IGMP Snooping之后,不允许在该VLAN所对应的VLAN接口上再使能IGMP和PIM,反之亦然。

l      在指定VLAN内使能了IGMP Snooping之后,该功能只在属于该VLAN的以太网端口上生效。

 

2.3.3  配置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的报文进行处理。

表2-4 配置IGMP Snooping版本

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

配置IGMP Snooping的版本

igmp-snooping version version-number

可选

缺省情况下,IGMP Snooping的版本为2

 

  注意:

当IGMP Snooping的版本由版本3切换到版本2时,系统将清除所有通过动态加入的IGMP Snooping转发表项;对于在版本3下通过手工配置而静态加入的IGMP Snooping转发表项,则分为以下两种情况进行不同的处理:

l      如果配置的仅仅是静态加入组播组,而没有指定组播源,则这些转发表项将不会被清除;

l      如果配置的是指定了组播源的静态加入组播源组,则这些转发表项将会被清除,并且当再次切换回版本3时,这些转发表项将被重新恢复。

l      有关静态加入的详细配置,请参见“2.4.3  配置静态端口”。

 

2.4  配置IGMP Snooping端口功能

2.4.1  配置准备

在配置IGMP Snooping端口功能之前,需完成以下任务:

l              在VLAN内使能IGMP Snooping或在VLAN接口上使能IGMP

l              配置相应端口组

在配置IGMP Snooping端口功能之前,需准备以下数据:

l              路由器端口老化时间

l              成员端口老化时间

l              组播组和组播源的地址

2.4.2  配置动态端口老化定时器

对于动态路由器端口,如果在其端口老化时间超时前没有收到IGMP普遍组查询报文或者PIM Hello报文,交换机将把该端口从路由器端口列表中删除。

对于动态成员端口,如果在其端口老化时间超时前没有收到该组播组的IGMP成员关系报告报文,交换机将把该端口从该组播组所对应转发表项的出端口列表中删除。

如果组播组成员的变动比较频繁,可以把成员端口老化时间设置小一些,反之亦然。

1. 全局配置动态端口老化定时器

表2-5 全局配置动态端口老化定时器

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

配置路由器端口老化时间

router-aging-time interval

可选

缺省情况下,路由器端口的老化时间为105秒

配置成员端口老化时间

host-aging-time interval

可选

缺省情况下,成员端口的老化时间为260秒

 

2. 在VLAN内配置动态端口老化定时器

表2-6 在VLAN内配置动态端口老化定时器

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

配置路由器端口老化时间

igmp-snooping router-aging-time interval

可选

缺省情况下,路由器端口的老化时间为105秒

配置成员端口老化时间

igmp-snooping host-aging-time interval

可选

缺省情况下,成员端口的老化时间为260秒

 

2.4.3  配置静态端口

如果某端口所连接的主机需要固定接收某个组播组或组播源组的组播数据,可以配置该端口静态加入该组播组或组播源组,成为静态成员端口。

可以通过将交换机上的端口配置为静态路由器端口,从而使交换机上所有收到的组播数据可以通过该端口被转发出去。

表2-7 配置静态端口

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入以太网端口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group { manual port-group-name | aggregation agg-id }

配置静态成员端口

igmp-snooping static-group group-address [ source-ip source-address ] vlan vlan-id

必选

缺省情况下,静态成员端口功能处于关闭状态

配置静态路由器端口

igmp-snooping static-router-port vlan vlan-id

必选

缺省情况下,静态路由器端口功能处于关闭状态

 

&  说明:

l      只有指定了一个有效的组播源地址,且当交换机上运行的IGMP Snooping的版本为3时,配置静态加入组播源组的功能才会有效。

l      静态成员端口不会对IGMP查询器发出的查询报文进行响应;在配置静态成员端口,即使能或关闭静态加入组播组或组播源组功能时,端口也不会主动发送IGMP成员关系报告报文或IGMP离开组报文。

l      静态成员端口和静态路由器端口都不会老化,只能通过配置命令删除。

 

2.4.4  配置模拟主机加入

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

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

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

l              在某端口上使能模拟主机加入功能时,交换机会通过该端口主动发送一个IGMP成员关系报告报文;

l              在某端口上使能了模拟主机加入功能后,当收到IGMP普遍组查询报文时,交换机会通过该端口响应一个IGMP成员关系报告报文;

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

表2-8 配置模拟主机加入

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入以太网端口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group { manual port-group-name | aggregation agg-id }

配置模拟主机加入组播组或组播源组

igmp-snooping host-join group-address [ source-ip source-address ] vlan vlan-id

必选

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

 

&  说明:

l      每配置一次模拟主机加入,即相当于启动了一台独立的主机。例如,当收到IGMP查询报文时,每条配置所对应的模拟主机将分别进行响应。

l      与静态成员端口不同,配置了模拟主机加入功能的端口会作为动态成员端口而参与成员端口的老化过程。

 

2.4.5  配置端口快速离开

端口快速离开是指当交换机从某端口收到主机发送的离开某组播组的IGMP离开组报文时,直接把该端口从对应转发表项的出端口列表中删除。此后,当交换机收到对该组播组的IGMP特定组查询报文时,交换机将不再向该端口转发。

在交换机上,如果端口下只连接有一个接收者,则可以通过使能端口快速离开功能以节约带宽和资源。

1. 全局配置端口快速离开

表2-9 全局配置端口快速离开

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

配置端口快速离开

fast-leave [ vlan vlan-list ]

必选

缺省情况下,端口快速离开功能处于关闭状态

 

2. 在端口上配置端口快速离开

表2-10 在端口上配置端口快速离开

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入以太网端口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group { manual port-group-name | aggregation agg-id }

配置端口快速离开

igmp-snooping fast-leave [ vlan vlan-list ]

必选

缺省情况下,端口快速离开功能处于关闭状态

 

  注意:

在配置了端口快速离开后,当端口下有多个用户时,一个用户的离开会导致该端口下属于同一组播组的其它用户无法收到组播数据。

 

2.5  配置IGMP Snooping查询器

2.5.1  配置准备

在配置IGMP Snooping查询器之前,需完成以下任务:

l              在VLAN内使能IGMP Snooping

在配置IGMP Snooping查询器之前,需准备以下数据:

l              发送IGMP普遍组查询报文的时间间隔

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

l              IGMP普遍组查询的最大响应时间

l              IGMP普遍组查询报文的源IP地址

l              IGMP特定组查询报文的源IP地址

2.5.2  使能IGMP Snooping查询器

在运行了IGMP的组播网络中,会有一台三层组播设备充当IGMP查询器,负责发送IGMP查询报文,使三层组播设备能够在网络层建立并维护组播转发表项,从而在网络层正常转发组播数据。

但是,在一个没有三层组播设备的网络中,由于二层设备并不支持IGMP,因此无法实现IGMP查询器的相关功能。为了解决这个问题,可以在二层设备上使能IGMP Snooping查询器,使二层设备能够在数据链路层建立并维护组播转发表项,从而在数据链路层正常转发组播数据。

表2-11 使能IGMP Snooping查询器

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

使能IGMP Snooping查询器

igmp-snooping querier

必选

缺省情况下,IGMP Snooping查询器处于关闭状态

 

  注意:

尽管IGMP Snooping查询器并不参与IGMP查询器的选举,但在运行了IGMP的组播网络中,配置IGMP Snooping查询器不但没有实际的意义,反而可能会由于其发送的IGMP普遍组查询报文的源IP地址较小而影响IGMP查询器的选举。

 

2.5.3  配置IGMP查询和响应

可以根据网络的实际情况来修改发送IGMP普遍组查询报文的时间间隔。

在收到IGMP查询报文(包括普遍组查询和特定组查询)后,主机会为其所加入的每个组播组都启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的IGMP查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的组播组发送IGMP成员关系报告报文。

合理配置IGMP查询的最大响应时间,既可以使主机对IGMP查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞:

l              对于IGMP普遍组查询报文来说,通过配置IGMP普遍组查询的最大响应时间来填充其最大响应时间字段;

l              对于IGMP特定组查询报文来说,所配置的发送IGMP特定组查询报文的时间间隔将被填充到其最大响应时间字段。也就是说,IGMP特定组查询的最大响应时间从数值上与发送IGMP特定组查询报文的时间间隔相同。

1. 全局配置IGMP查询和响应

表2-12 全局配置IGMP查询和响应

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

配置IGMP普遍组查询的最大响应时间

max-response-time interval

可选

缺省情况下,IGMP普遍组查询的最大响应时间为10秒

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

last-member-query-interval interval

可选

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

 

2. 在VLAN内配置IGMP查询和响应

表2-13 在VLAN内配置IGMP查询和响应

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

配置发送IGMP普遍组查询报文的时间间隔

igmp-snooping query-interval interval

可选

缺省情况下,发送IGMP普遍组查询报文的时间间隔为60秒

配置IGMP普遍组查询的最大响应时间

igmp-snooping max-response-time interval

可选

缺省情况下,IGMP普遍组查询的最大响应时间为10秒

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

igmp-snooping last-member-query-interval interval

可选

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

 

  注意:

应确保发送IGMP普遍组查询报文的时间间隔大于IGMP普遍组查询的最大响应时间,否则有可能造成对组播组成员的误删。

 

2.5.4  配置IGMP查询报文源IP地址

对于收到源IP地址为0.0.0.0的查询报文的端口,交换机不会将其设置为路由器端口,从而影响数据链路层组播转发表项的建立,最终导致组播数据无法正常转发。

当由二层设备充当IGMP Snooping查询器时,可以把IGMP查询报文的源IP地址配置为一个有效的IP地址以避免上述问题的出现

表2-14 配置IGMP查询报文源IP地址

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

配置IGMP普遍组查询报文源IP地址

igmp-snooping general-query source-ip { current-interface | ip-address }

可选

缺省情况下,IGMP普遍组查询报文的源IP地址为0.0.0.0

配置IGMP特定组查询报文源IP地址

igmp-snooping special-query source-ip { current-interface | ip-address }

可选

缺省情况下,IGMP特定组查询报文的源IP地址为0.0.0.0

 

  注意:

IGMP查询报文源IP地址的改变可能会影响网段内IGMP查询器的选举。

 

2.6  配置IGMP Snooping策略

2.6.1  配置准备

在配置IGMP Snooping策略之前,需完成以下任务:

l              在VLAN内使能IGMP Snooping或在VLAN接口上使能IGMP

在配置IGMP Snooping策略之前,需准备以下数据:

l              组播组过滤的ACL规则

l              允许端口通过的组播组最大数量

2.6.2  配置组播组过滤器

在使能了IGMP Snooping的交换机上,通过配置组播组过滤器,可以限制用户对组播节目的点播。

在实际应用中,当用户点播某个组播节目时,主机会发起一个IGMP成员关系报告报文,该报文到达交换机后,进行ACL检查:如果该接收端口可以加入这个组播组,则将其列入到IGMP Snooping转发表中;否则交换机就丢弃该报文。这样,未通过ACL检查的组播数据就不会送到该端口,从而达到控制用户点播组播节目的目的。

1. 全局配置组播组过滤器

表2-15 全局配置组播组过滤

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

配置组播组过滤器

group-policy acl-number [ vlan vlan-list ]

必选

缺省情况下,没有配置组播组过滤器,即主机可以加入任一组播组

 

2. 在端口上配置组播组过滤器

表2-16 在端口上配置组播组过滤器

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入以太网端口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group { manual port-group-name | aggregation agg-id }

配置组播组过滤器

igmp-snooping group-policy acl-number [ vlan vlan-list ]

必选

缺省情况下,没有配置组播组过滤器,即主机可以加入任一组播组

 

2.6.3  配置组播数据报文源端口过滤

通过配置组播数据报文源端口过滤功能,可以允许或禁止端口作为组播源端口:

l              使能了该功能后,端口下不能连接组播源,因为该端口将过滤掉所有的组播数据报文(但允许组播协议报文通过),只能连接组播数据接收者;

l              关闭了该功能后,端口下既可以连接组播源,也可以连接组播数据接收者。

1. 全局配置组播数据报文源端口过滤

表2-17 全局配置组播数据报文源端口过滤

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

使能组播数据报文源端口过滤功能

source-deny port interface-list

必选

缺省情况下,组播数据报文源端口过滤功能处于关闭状态

 

2. 在端口上配置组播数据报文源端口过滤

表2-18 在端口上配置组播数据报文源端口过滤

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入以太网端口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group { manual port-group-name | aggregation agg-id }

使能组播数据报文源端口过滤功能

igmp-snooping source-deny

必选

缺省情况下,组播数据报文源端口过滤功能处于关闭状态

 

&  说明:

在使能IPv4组播数据报文源端口过滤功能时,系统将同时使能IPv6组播数据报文源端口过滤功能。

 

2.6.4  配置丢弃未知组播数据报文

未知组播数据报文是指在IGMP Snooping转发表中不存在对应转发表项的那些组播数据报文:

l              当使能了丢弃未知组播数据报文功能时,交换机将丢弃所有收到的未知组播数据报文;

l              当关闭了丢弃未知组播数据报文功能时,交换机将在未知组播数据报文所属的VLAN内广播该报文。

1. 全局配置丢弃未知组播数据报文

表2-19 全局配置丢弃未知组播数据报文

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

使能丢弃未知组播数据报文功能

drop-unknown

必选

缺省情况下,丢弃未知组播数据报文的功能处于关闭状态,即对未知组播数据报文进行广播

 

2. 在VLAN内配置丢弃未知组播数据报文

表2-20 在VLAN内配置丢弃未知组播数据报文

操作

命令

说明

进入系统视图

system-view

-

进入VLAN视图

vlan vlan-id

-

使能丢弃未知组播数据报文功能

igmp-snooping drop-unknown

必选

缺省情况下,丢弃未知组播数据报文的功能处于关闭状态,即对未知组播数据报文进行广播

 

&  说明:

l      当在IGMP-Snooping视图下全局使能了丢弃未知组播数据报文的功能后,不允许在VLAN视图下使能或关闭该功能,反之亦然。

l      在使能了丢弃未知组播数据报文的功能之后,仍会向VLAN内的其它路由器端口转发未知组播数据报文。

 

2.6.5  配置IGMP成员关系报告报文抑制

当二层设备收到来自某组播组成员的IGMP成员关系报告报文时,会将该报文转发给与其直连的三层设备。这样,当二层设备上存在属于某组播组的多个成员时,与其直连的三层设备会收到这些成员发送的相同IGMP成员关系报告报文。

当使能了IGMP成员关系报告报文抑制功能后,在一个查询间隔内二层设备只会把收到的某组播组内的第一个IGMP成员关系报告报文转发给三层设备,而不继续向三层设备转发来自同一组播组的其它IGMP成员关系报告报文,这样可以减少网络中的报文数量。

表2-21 配置IGMP成员关系报告报文抑制

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

使能IGMP成员关系报告报文抑制功能

report-aggregation

可选

缺省情况下,IGMP成员关系报告报文抑制功能处于使能状态

 

2.6.6  配置端口加入的组播组最大数量

通过配置允许端口加入的组播组最大数量,可以限制用户点播组播节目的数量,从而控制了端口上的数据流量。

表2-22 配置端口加入的组播组最大数量

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入以太网端口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group { manual port-group-name | aggregation agg-id }

配置允许端口加入的组播组最大数量

igmp-snooping group-limit limit [ vlan vlan-list ]

可选

缺省情况下,允许端口加入的组播组最大数量为512

 

&  说明:

在对允许端口加入的组播组最大数量进行配置时,如果当前端口上的组播组数量已经超过了配置值,系统将把该端口相关的所有转发表项从IGMP Snooping转发表中删除,该端口上的主机需要重新加入组播组。但如果为该端口配置了静态成员端口或者模拟主机加入,系统在把该端口相关的所有转发表项删除后,会把这些配置重新生效一次,直至该端口所加入的组播组数量达到限制值为止。

 

2.6.7  配置组播组替换

由于某些特殊的原因,当前交换机或端口上通过的组播组数目有可能会超过交换机或该端口的限定;另外,在某些特定的应用中,交换机上新加入的组播组需要自动替换已存在的组播组(一个典型的应用就是“频道切换”,即用户通过加入一个新的组播组就能完成离开原组播组并切换到新组播组的动作)。

针对以上情况,可以在交换机或者某些端口上使能组播组替换功能。当交换机或端口上加入的组播组数量已达到限定值时:

l              若使能了组播组替换功能,则新加入的组播组会自动替代已存在的组播组,替代规则是替代IP地址最小的组播组;

l              若没有使能组播组替换功能,则自动丢弃新的IGMP成员关系报告报文。

1. 全局配置组播组替换

表2-23 全局配置组播组替换

操作

命令

说明

进入系统视图

system-view

-

进入IGMP-Snooping视图

igmp-snooping

-

配置组播组替换功能

overflow-replace [ vlan vlan-list ]

必选

缺省情况下,组播组替换功能处于关闭状态

 

2. 在端口上配置组播组替换

表2-24 在端口上配置组播组替换

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入以太网端口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group { manual port-group-name | aggregation agg-id }

配置组播组替换功能

igmp-snooping overflow-replace [ vlan vlan-list ]

必选

缺省情况下,组播组替换功能处于关闭状态

 

  注意:

在配置组播组替换之前,必须首先配置端口通过的组播组的最大数量(具体配置过程请参见“2.6.6  配置端口加入的组播组最大数量”),否则组播组替换功能将不能生效。

 

2.7  IGMP Snooping显示和维护

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

在用户视图下执行reset命令可以清除组播组信息。

表2-25 IGMP Snooping显示和维护

操作

命令

查看IGMP Snooping组播组信息

display igmp-snooping group [ vlan vlan-id ] [ slot slot-id ] [ verbose ]

查看IGMP Snooping窥探到的IGMP报文的统计信息

display igmp-snooping statistics

清除IGMP Snooping组播组信息

reset igmp-snooping group { group-address | all } [ vlan vlan-id ]

清除IGMP Snooping窥探到的所有IGMP报文的统计信息

reset igmp-snooping statistics

 

&  说明:

l      reset igmp-snooping group命令只对使能了IGMP Snooping的VLAN有效,而对VLAN接口上使能了IGMP的VLAN无效。

l      通过reset igmp-snooping group命令不能够清除通过配置以静态方式加入的IGMP Snooping组播组。

 

2.8  IGMP Snooping典型配置举例

2.8.1  模拟主机加入配置举例

1. 组网需求

l              图2-3所示,Router A通过Ethernet1/0/2接口连接组播源(Source),通过Ethernet1/0/1接口连接Switch A;

l              Router A上运行IGMP,Switch A上运行IGMP Snooping,并由Router A充当IGMP查询器;

l              要求通过配置,使连接在Switch A上的接收者(Receiver)Host A和Host B即使由于突然出现了某种意外而临时中断接收组播数据时,组播数据也能够不间断地通过Switch A的接口Ethernet2/0/3和Ethernet2/0/4转发出去。

2. 组网图

图2-3 模拟主机加入配置组网图

3. 配置步骤

(1)        配置各设备接口的IP地址

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

(2)        配置Router A

# 使能IP组播路由,在各接口上使能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

[SwitchA-igmp-snooping] quit

# 创建VLAN 100,把端口Ethernet2/0/1到Ethernet2/0/4添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchA] vlan 100

[SwitchA-vlan100] port ethernet 2/0/1 to ethernet 2/0/4

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] quit

# 在Ethernet2/0/3和Ethernet2/0/4上分别使能模拟主机加入组播源组功能。

[SwitchA] interface ethernet 2/0/3

[SwitchA-Ethernet2/0/3] igmp-snooping host-join 224.1.1.1 vlan 100

[SwitchA-Ethernet2/0/3] quit

[SwitchA] interface ethernet 2/0/4

[SwitchA-Ethernet2/0/4] igmp-snooping host-join 224.1.1.1 vlan 100

[SwitchA-Ethernet2/0/4] quit

(4)        检验配置效果

# 查看Switch A上VLAN 100内IGMP Snooping组播组的详细信息。

[SwitchA] display igmp-snooping group vlan 100 verbose

    Total 1 IP Group(s).

    Total 1 IP Source(s).

    Total 1 MAC Group(s).

 

  Port flags: D-Dynamic port, S-Static port, A-Aggregation port, C-Copy port

  Subvlan flags: R-Real VLAN, C-Copy VLAN

  Vlan(id):100.

    Total 1 IP Group(s).

    Total 1 IP Source(s).

    Total 1 MAC Group(s).

    Router port(s):total 1 port.

            Eth2/0/1               (D) ( 00:01:30 )

    IP group(s):the following ip group(s) match to one mac group.

      IP group address:224.1.1.1

        (0.0.0.0, 224.1.1.1):

          Attribute:    Host Board

          Host port(s):total 2 port.

            Eth2/0/3               (D) ( 00:03:23 )

            Eth2/0/4               (D) ( 00:03:23 )

    MAC group(s):

      MAC group address:0100-5e01-0101

          Host port(s):total 2 port.

            Eth2/0/3

            Eth2/0/4

由此可见,Switch A上的端口Ethernet2/0/3和Ethernet2/0/4已经加入了组播源组(0.0.0.0,224.1.1.1)。

2.8.2  静态路由器端口配置举例

1. 组网需求

l              图2-4所示,Router A通过Ethernet1/0/2接口连接组播源(Source),通过Ethernet1/0/1接口连接Switch A;

l              Router A上运行IGMP,Switch A、Switch B和Switch C上都运行IGMP Snooping,并由Router A充当IGMP查询器;

l              假设由于受STP等链路层协议的影响,为了避免出现环路,Switch A—Switch C的转发路径在正常情况下是阻断的,组播数据只能通过Switch A—Switch B—Switch C的路径传递给连接在Switch C上的接收者(Receiver)Host A和Host C;

l              要求通过将Switch A上连接Switch C的端口Ethernet2/0/3配置为静态路由器端口,从而保证当Switch A—Switch B—Switch C的路径出现阻断时,组播数据可以几乎不间断地通过Switch A—Switch C的新路径传递给接收者。

&  说明:

如果没有配置静态路由器端口,那么当Switch A—Switch B—Switch C的路径出现阻断时,至少需要等待一个IGMP查询和响应周期完成后,组播数据才能通过Switch A—Switch C的新路径传递给接收者,组播数据的传输在这个过程中将中断。

 

2. 组网图

图2-4 静态路由器端口配置组网图

3. 配置步骤

(1)        配置各设备接口的IP地址

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

(2)        配置Router A

# 使能IP组播路由,在各接口上使能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

[SwitchA-igmp-snooping] quit

# 创建VLAN 100,把端口Ethernet2/0/1到Ethernet2/0/3添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchA] vlan 100

[SwitchA-vlan100] port ethernet 2/0/1 to ethernet 2/0/3

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] quit

# 把Ethernet2/0/3配置为静态路由器端口。

[SwitchA] interface ethernet 2/0/3

[SwitchA-Ethernet2/0/3] igmp-snooping static-router-port vlan 100

[SwitchA-Ethernet2/0/3] quit

(4)        配置Switch B

# 全局使能IGMP Snooping。

<SwitchB> system-view

[SwitchB] igmp-snooping

[SwitchB-igmp-snooping] quit

# 创建VLAN 100,把端口Ethernet2/0/1和Ethernet2/0/2添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchB] vlan 100

[SwitchB-vlan100] port ethernet 2/0/1 ethernet 2/0/2

[SwitchB-vlan100] igmp-snooping enable

[SwitchB-vlan100] quit

(5)        配置Switch C

# 全局使能IGMP Snooping。

<SwitchC> system-view

[SwitchC] igmp-snooping

[SwitchC-igmp-snooping] quit

# 创建VLAN 100,把端口Ethernet2/0/1到Ethernet2/0/5添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchC] vlan 100

[SwitchC-vlan100] port ethernet 2/0/1 to ethernet 2/0/5

[SwitchC-vlan100] igmp-snooping enable

[SwitchC-vlan100] quit

(6)        检验配置效果

# 查看Switch A上VLAN 100内IGMP Snooping组播组的详细信息。

[SwitchA] display igmp-snooping group vlan 100 verbose

    Total 1 IP Group(s).

    Total 1 IP Source(s).

    Total 1 MAC Group(s).

 

  Port flags: D-Dynamic port, S-Static port, A-Aggregation port, C-Copy port

  Subvlan flags: R-Real VLAN, C-Copy VLAN

  Vlan(id):100.

    Total 1 IP Group(s).

    Total 1 IP Source(s).

    Total 1 MAC Group(s).

    Router port(s):total 2 port.

            Eth2/0/1               (D) ( 00:01:30 )

            Eth2/0/3               (S)

    IP group(s):the following ip group(s) match to one mac group.

      IP group address:224.1.1.1

        (0.0.0.0, 224.1.1.1):

          Attribute:    Host Board

          Host port(s):total 1 port.

            Eth2/0/2               (D) ( 00:03:23 )

    MAC group(s):

      MAC group address:0100-5e01-0101

          Host port(s):total 1 port.

            Eth2/0/2

由此可见,Switch A上的端口Ethernet2/0/3已经成为了静态路由器端口。

2.8.3  IGMP Snooping查询器配置举例

1. 组网需求

l              图2-5所示,在一个没有三层设备的纯二层网络环境中,Switch C通过Ethernet2/0/3接口连接组播源(Source),Switch B和Switch C上分别连接至少一个接收者(Receiver);

l              所有接收者均使用IGMPv2,Switch A、Switch B和Switch C上都运行IGMP Snooping,并由Switch A充当IGMP Snooping查询器;

l              对于收到源IP地址为0.0.0.0的IGMP查询报文的端口,交换机不会将其设置为路由器端口,从而影响二层组播转发表项的建立,最终导致组播数据无法正常转发。因此要求通过配置改变缺省的IGMP查询报文源IP地址(即0.0.0.0)避免上述问题的出现。

2. 组网图

图2-5 IGMP Snooping查询器配置组网图

3. 配置步骤

(1)        配置Switch A

# 全局使能IGMP Snooping。

<SwitchA> system-view

[SwitchA] igmp-snooping

[SwitchA-igmp-snooping] quit

# 创建VLAN 100,并把端口Ethernet2/0/1和Ethernet2/0/2添加到该VLAN中。

[SwitchA] vlan 100

[SwitchA-vlan100] port ethernet 2/0/1 ethernet 2/0/2

# 在VLAN 100内使能IGMP Snooping,并使能IGMP Snooping查询器。

[SwitchA-vlan100] igmp-snooping enable

[SwitchA-vlan100] igmp-snooping querier

# 把IGMP普遍组查询和特定组查询报文的源IP地址均设置为192.168.1.1。

[SwitchA-vlan100] igmp-snooping general-query source-ip 192.168.1.1

[SwitchA-vlan100] igmp-snooping special-query source-ip 192.168.1.1

(2)        配置Switch B

# 全局使能IGMP Snooping。

<SwitchB> system-view

[SwitchB] igmp-snooping

[SwitchB-igmp-snooping] quit

# 创建VLAN 100,把端口Ethernet2/0/1到Ethernet2/0/3添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchB] vlan 100

[SwitchB-vlan100] port ethernet 2/0/1 to ethernet 2/0/3

[SwitchB-vlan100] igmp-snooping enable

(3)        配置Switch C

# 全局使能IGMP Snooping。

<SwitchC> system-view

[SwitchC] igmp-snooping

[SwitchC-igmp-snooping] quit

# 创建VLAN 100,把端口Ethernet2/0/1到Ethernet2/0/3添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchC] vlan 100

[SwitchC-vlan100] port ethernet 2/0/1 to ethernet 2/0/3

[SwitchC-vlan100] igmp-snooping enable

(4)        检验配置效果

# 查看Switch C上收到的IGMP报文的统计信息。

[SwitchC-vlan100] display igmp-snooping statistics

  Received IGMP general queries:3.

  Received IGMPv1 reports:0.

  Received IGMPv2 reports:4.

  Received IGMP leaves:0.

  Received IGMPv2 specific queries:0.

  Sent     IGMPv2 specific queries:0.

  Received IGMPv3 reports:0.

  Received IGMPv3 reports with right and wrong records:0.

  Received IGMPv3 specific queries:0.

  Received IGMPv3 specific sg queries:0.

  Sent     IGMPv3 specific queries:0.

  Sent     IGMPv3 specific sg queries:0.

  Received error IGMP messages:0.

Switch C收到了IGMP普遍组查询报文,由此可见,Switch A上IGMP Snooping查询器已经开始正常工作了。

2.9  常见配置错误举例

2.9.1  交换机不能实现二层组播

1. 故障现象

交换机不能实现IGMP Snooping二层组播功能。

2. 分析

IGMP Snooping没有使能。

3. 处理过程

(1)        使用display current-configuration命令查看IGMP Snooping的运行状态。

(2)        如果是没有使能IGMP Snooping,则需先在系统视图下使用igmp-snooping命令全局使能IGMP Snooping,然后在VLAN视图下使用igmp-snooping enable命令使能VLAN内的IGMP Snooping。

(3)        如果只是没有在相应VLAN下使能IGMP Snooping,则只需在VLAN视图下使用igmp-snooping enable命令使能VLAN内的IGMP Snooping。

2.9.2  配置的组播组策略不生效

1. 故障现象

配置了组播组策略,只允许主机加入某些特定的组播组,但主机仍然可以收到发往其它组播组的组播数据。

2. 分析

l              ACL规则配置不正确;

l              组播组策略应用不正确;

l              没有使能丢弃未知组播数据报文的功能,使得属于过滤策略之外的组播数据报文(即未知组播数据报文)被广播;

l              端口被配置为静态加入组播组,且该配置与所配置的组播组策略冲突。

3. 处理过程

(1)        使用display acl命令查看所配置的ACL规则,检查其是否与所要实现的组播组过滤策略相符合。

(2)        在IGMP-Snooping视图或相应的接口视图下使用display this命令查看是否应用了正确的组播组策略。如果没有,则使用group-policyigmp-snooping group-policy命令应用正确的组播组策略

(3)        使用display current-configuration命令查看是否已使能丢弃未知组播数据报文的功能。如果没有使能,则使用drop-unknownigmp-snooping drop-unknown命令使能丢弃未知组播数据报文功能。

(4)        使用display igmp-snooping group命令检查是否有端口被配置为静态加入组播组。如果有,则检查所配置的端口静态加入组播组与组播组策略之间是否冲突,如有冲突,则建议删除端口静态加入组播组的相关配置。

 


第3章  组播VLAN配置

3.1  组播VLAN简介

图3-1所示,在传统的组播点播方式下,当属于不同VLAN的主机Host A、Host B和Host C分别进行组播点播时,Router A需要把组播数据在每个VLAN内都复制一份。这样既造成了带宽的浪费,也给三层设备增加了额外的负担。

图3-1 二层设备运行组播VLAN前后的对比

为了解决这个问题,可以在Switch A上配置组播VLAN功能,即把这些主机所属的VLAN都配置成为一个组播VLAN的子VLAN,并在该组播VLAN内使能二层组播功能。这样,Router A只需把组播数据在组播VLAN内复制一份即可,而不必在每个VLAN内都复制一份,从而节省了网络带宽,也减轻了三层设备的负担。

3.2  配置组播VLAN

表3-1 配置组播VLAN

操作

命令

说明

进入系统视图

system-view

-

使能指定VLAN为组播VLAN

multicast-vlan vlan-id enable

必选

缺省情况下,VLAN不是组播VLAN

为指定组播VLAN配置子VLAN

multicast-vlan vlan-id subvlan vlan-list

必选

缺省情况下,组播VLAN内没有子VLAN

 

&  说明:

l      要配置的组播VLAN及其子VLAN必须存在;

l      要配置的组播VLAN的子VLAN不能是组播VLAN;

l      要配置的组播VLAN的子VLAN不能是其它组播VLAN的子VLAN;

l      组播VLAN的子VLAN总数不能超过系统限制(S7500E系列以太网交换机支持5个组播VLAN,每个组播VLAN下最多支持4000个子VLAN,交换机所有的子VLAN也不能超过4000个)。

 

  注意:

l      如果设备上已使能了IP组播路由,则不允许在该设备上配置组播VLAN。

l      在配置成为组播VLAN的VLAN内必须使能IGMP Snooping,才能实现组播VLAN功能;而在组播VLAN的子VLAN内不必使能IGMP Snooping。

 

3.3  组播VLAN显示和维护

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

表3-2 组播VLAN显示和维护

操作

命令

查看组播VLAN及其子VLAN的信息

display multicast-vlan [ vlan-id ]

 

3.4  组播VLAN典型配置举例

1. 组网需求

l              图3-2所示,Router A通过Ethernet1/0/2接口连接组播源(Source),通过Ethernet1/0/1接口连接Switch A;

l              Router A上运行IGMP,Switch A上运行IGMP Snooping,并由Router A充当IGMP查询器;

l              Switch A的端口Ethernet2/0/1属于VLAN 1024,端口Ethernet2/0/2到Ethernet2/0/4分别属于VLAN 11到VLAN 13,Host A到Host C分别连接到Switch A的端口Ethernet2/0/2到Ethernet2/0/4上;

l              通过配置组播VLAN,使Router A向Switch A下的这三台主机传送组播数据时,只需要向VLAN 1024发送一份即可,而不必向每个VLAN都发送。

2. 组网图

图3-2 组播VLAN典型配置组网图

3. 配置步骤

(1)        配置各设备接口的IP地址

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

(2)        配置Router A

# 使能IP组播路由,在各接口上使能PIM-DM,并在接口Ethernet1/0/1上使能IGMP。

<RouterA> system-view

[RouterA] multicast routing-enable

[RouterA] interface ethernet 1/0/1

[RouterA-Ethernet1/0/1] pim dm

[RouterA-Ethernet1/0/1] igmp enable

[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

[SwitchA-igmp-snooping] quit

# 创建VLAN 11,并把端口Ethernet2/0/2添加到该VLAN中。

[SwitchA] vlan 11

[SwitchA-vlan11] port ethernet 2/0/2

[SwitchA-vlan11] quit

VLAN 12与VLAN 13的配置与VLAN 11相似,配置过程略。

# 创建VLAN 1024,把端口Ethernet2/0/1添加到该VLAN中,并在该VLAN内使能IGMP Snooping。

[SwitchA] vlan 1024

[SwitchA-vlan1024] port ethernet 2/0/1

[SwitchA-vlan1024] igmp-snooping enable

[SwitchA-vlan1024] quit

# 使能VLAN 1024为组播VLAN,并把VLAN 11到VLAN 13都配置为该组播VLAN的子VLAN。

[SwitchA] multicast-vlan 1024 enable

[SwitchA] multicast-vlan 1024 subvlan 11 to 13

(4)        检验配置效果

# 查看Switch A上所有组播VLAN及其子VLAN的信息。

[SwitchA] display multicast-vlan

 multicast vlan 1024's subvlan list:

    vlan 11-13

 


第4章  IGMP配置

&  说明:

本文所涉及的路由器和路由器图标,代表了一般意义下的路由器或运行了IGMP协议的三层交换机。

 

4.1  IGMP简介

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

4.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,指定信源组播)模型。

4.1.2  IGMPv1工作机制

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

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

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

&  说明:

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

 

图4-1 IGMP查询响应示意图

图4-1所示,假设Host B与Host C想要收到发往组播组G1的组播数据,而Host A想要收到发往组播组G2的组播数据,那么主机加入组播组以及IGMP查询器(Router B)维护组播组成员关系的基本过程如下:

(1)        主机会主动向其要加入的组播组发送IGMP成员关系报告报文以声明加入,而不必等待IGMP查询器发来的IGMP查询报文;

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

(3)        在收到该查询报文后,关注G1的Host B与Host C其中之一(这取决于谁的延迟定时器Delay Timer先超时)——譬如Host B会首先以组播方式向G1发送IGMP成员关系报告报文,以宣告自己要加入G1。由于本地网段中的所有主机和路由器都能收到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路由器在一段时间之后便删除该组播组所对应的组播转发项。

4.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中,主机离开组播组时不会向任何组播路由器发出任何通知,导致组播路由器只能依靠组播组成员查询的响应超时来获知组播组成员的离开。

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

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

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

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

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

4.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,……)。

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

图4-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,则向现有组播源列表中添加这些组播源。

4.1.5  协议规范

与IGMP相关的协议规范有:

l              RFC 1112:Host Extensions for IP Multicasting

l              RFC 2236:Internet Group Management Protocol, Version 2

l              RFC 3376:Internet Group Management Protocol, Version 3

4.2  IGMP配置任务简介

表4-1 IGMP配置任务简介

配置任务

说明

详细配置

配置IGMP基本功能

使能IGMP

必选

4.3.2 

配置IGMP版本

可选

4.3.3 

配置静态加入组播组

可选

4.3.4 

配置组播组过滤器

可选

4.3.5 

调整IGMP性能

配置IGMP报文选项

可选

4.4.2 

配置IGMP查询和响应

可选

4.4.3 

配置IGMP快速离开

可选

4.4.4 

 

&  说明:

l      IGMP视图下的配置具有全局性,接口视图下的配置仅对所在接口有效。

l      若没有在接口视图下进行配置,则该接口继承IGMP视图下的全局配置;若两个视图都进行了配置,则优先采用该接口视图下所作的配置。

 

4.3  配置IGMP基本功能

4.3.1  配置准备

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

l              配置任一单播路由协议,实现域内网络层互通

l              配置PIM-DM(或PIM-SM)

在配置IGMP基本功能之前,需准备以下数据:

l              IGMP的版本

l              以静态方式加入的组播组和组播源的地址

l              组播组过滤的ACL规则

4.3.2  使能IGMP

在需要建立和维护组播组成员关系的接口上使能IGMP。

表4-2 使能IGMP

操作

命令

说明

进入系统视图

system-view

-

使能IP组播路由

multicast routing-enable

必选

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

进入接口视图

interface interface-type interface-number

-

使能IGMP

igmp enable

必选

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

 

4.3.3  配置IGMP版本

由于不同版本IGMP协议的报文结构与种类不同,因此需要为同一网段上的所有路由器配置相同版本的IGMP,否则IGMP将不能正常运行。

1. 全局配置IGMP版本

表4-3 全局配置IGMP版本

操作

命令

说明

进入系统视图

system-view

-

进入IGMP视图

igmp

-

配置IGMP的版本

version version-number

可选

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

 

2. 在接口上配置IGMP版本

表4-4 在接口上配置IGMP版本

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置IGMP的版本

igmp version version-number

可选

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

 

4.3.4  配置静态加入组播组

在配置了静态加入组播组后,接口将作为该组播组的虚拟组成员存在,从而可以接收发往该组的组播数据,以测试组播数据的转发。

表4-5 配置静态加入组播组

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置静态加入组播组

igmp static-group group-address [ source source-address ]

必选

缺省情况下,接口没有以静态方式加入任何组播组

 

&  说明:

l      在运行PIM-SM的设备上配置静态加入组播组时,如果待配接口上使能了PIM-SM,则该接口必须为PIM-SM的DR,否则该接口将不能加入组播组;如果待配接口上未使能PIM-SM但使能了IGMP,则该接口必须为IGMP查询器,否则该接口也不能加入组播组。有关PIM-SM和DR的介绍,请参见“5.1.4  2. DR选举”。

l      配置静态加入组播组后,接口并不会对IGMP查询器发出的查询报文进行响应;在使能或关闭静态加入组播组时,接口也不会主动发送IGMP成员关系报告报文或IGMP离开组报文。也就是说,该接口并没有真正成为该组播组的成员。

 

4.3.5  配置组播组过滤器

IGMP的组播组过滤功能可以由IGMP Snooping的组播组过滤功能来实现,详细的配置请参考2.6.2  配置组播组过滤器

4.4  调整IGMP性能

&  说明:

对于本节中的配置任务来说:

l      在IGMP视图下所作的配置对所有接口生效,在接口视图下所作的配置仅对当前接口生效;

l      如果在这两个视图下进行了相同功能或参数的配置,则不论配置先后,接口视图下的配置将被优先采用。

 

4.4.1  配置准备

在调整IGMP性能之前,需完成以下任务:

l              配置任一单播路由协议,实现域内网络层互通

l              配置IGMP基本功能

在调整IGMP性能之前,需准备以下数据:

l              发送IGMP普遍组查询报文的时间间隔

l              IGMP查询器的健壮系数

l              IGMP普遍组查询的最大响应时间

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

l              IGMP非查询器的存在时间

4.4.2  配置IGMP报文选项

由于IGMPv2和IGMPv3中包含特定组、特定源组查询报文,而组播组是千变万化的,设备不可能加入所有的组,所以IGMP就需要借助Router-Alert(路由器报警)选项来将送往本地的没有加入的组播报文送到上层协议进行处理。有关Router-Alert选项的详细介绍,请参考RFC 2113。

对于IP头中是否携带Router-Alert选项的IGMP报文,设备会做出不同的处理:

l              出于兼容性考虑,缺省情况下设备不对Router-Alert选项进行检查,即处理所有收到的IGMP报文。此时,IGMP报文中无论是否携带有Router-Alert选项,设备都会将其送给上层协议进行处理。

l              为了提高设备性能、减少不必要的开支,同时出于协议安全性的考虑,可以配置设备丢弃未携带Router-Alert选项的IGMP报文,此时,当设备收到IGMP报文时,会检查该报文的Router-Alert选项,如果没有携带该选项,就丢弃该报文。

1. 全局配置IGMP报文选项

表4-6 全局配置IGMP报文选项

操作

命令

说明

进入系统视图

system-view

-

进入IGMP视图

igmp

-

配置丢弃未携带Router-Alert选项的IGMP报文

require-router-alert

可选

缺省情况下,设备不对Router-Alert选项进行检查

配置在发送的IGMP报文中携带Router-Alert选项

send-router-alert

可选

缺省情况下,在发送的IGMP报文中携带Router-Alert选项

 

2. 在接口上配置IGMP报文选项

表4-7 在接口上配置IGMP报文选项

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置丢弃未携带Router-Alert选项的IGMP报文

igmp require-router-alert

可选

缺省情况下,设备不对Router-Alert选项进行检查

配置在发送的IGMP报文中携带Router-Alert选项

igmp send-router-alert

可选

缺省情况下,在发送的IGMP报文中携带Router-Alert选项

 

4.4.3  配置IGMP查询和响应

IGMP查询器周期性地发送IGMP普遍组查询报文,以判断网络上是否有组播组成员,发送间隔即为“发送IGMP普遍组查询报文的时间间隔”。可以根据网络的实际情况来修改周期性发送IGMP普遍组查询报文的时间间隔。

当IGMP查询器启动时,会发送“健壮系数”次IGMP普遍组查询报文,发送间隔为“发送IGMP普遍组查询报文的时间间隔”的1/4;当IGMP查询器收到IGMP离开组报文后,也会发送“健壮系数”次IGMP特定组查询报文,发送间隔即为“发送IGMP特定组查询报文的时间间隔”。由此可见,IGMP查询器的健壮系数越大,IGMP查询器就越“健壮”,但是组播组超时所需的时间也就越长。

在收到IGMP查询报文(包括普遍组查询和特定组查询)后,主机会为其所加入的每个组播组都启动一个延迟定时器,其值在0到最大响应时间(该时间值从IGMP查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的组播组发送IGMP成员关系报告报文。

合理配置IGMP查询的最大响应时间,既可以使主机对IGMP查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞:

l              对于IGMP普遍组查询报文来说,通过配置IGMP普遍组查询的最大响应时间来填充其最大响应时间字段;

l              对于IGMP特定组查询报文来说,所配置的发送IGMP特定组查询报文的时间间隔将被填充到其最大响应时间字段。也就是说,IGMP特定组查询的最大响应时间从数值上与发送IGMP特定组查询报文的时间间隔相同。

当同一网段上有多台组播路由器时,由IGMP查询器负责发送IGMP查询报文。如果非查询器在其存在时间超时前没有收到来自查询器的IGMP查询报文,就会认为原有查询器失效,从而触发新的查询器选举过程;否则,非查询器将重置其存在时间定时器。

1. 全局配置IGMP查询和响应

表4-8 全局配置IGMP查询和响应

操作

命令

说明

进入系统视图

system-view

-

进入IGMP视图

igmp

-

配置发送IGMP普遍组查询报文的时间间隔

timer query interval

可选

缺省情况下,发送IGMP普遍组查询报文的时间间隔为60秒

配置IGMP查询器的健壮系数

robust-count robust-value

可选

缺省情况下,IGMP查询器的健壮系数为2

配置IGMP普遍组查询的最大响应时间

max-response-time interval

可选

缺省情况下,IGMP普遍组查询的最大响应时间为10秒

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

last-member-query-interval interval

可选

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

配置IGMP非查询器的存在时间

timer other-querier-present interval

可选

关于IGMP非查询器存在时间的缺省取值请参见表4-9后的说明

 

2. 在接口上配置IGMP查询和响应

表4-9 在接口上配置IGMP查询和响应

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置发送IGMP普遍组查询报文的时间间隔

igmp timer query interval

可选

缺省情况下,发送IGMP普遍组查询报文的时间间隔为60秒

配置IGMP查询器的健壮系数

igmp robust-count robust-value

可选

缺省情况下,IGMP查询器的健壮系数为2

配置IGMP普遍组查询的最大响应时间

igmp max-response-time interval

可选

缺省情况下,IGMP普遍组查询的最大响应时间为10秒

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

igmp last-member-query-interval interval

可选

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

配置IGMP非查询器的存在时间

igmp timer other-querier-present interval

可选

关于IGMP非查询器存在时间的缺省取值请参见表4-9后的说明

 

&  说明:

关于IGMP非查询器的存在时间:

l      如果没有进行手工配置,则其取值由如下公式决定:IGMP非查询器的存在时间=发送IGMP普遍组查询报文的时间间隔×IGMP查询器的健壮系数+IGMP普遍组查询的最大响应时间÷2。缺省情况下,以上三个参数的取值分别为60秒、2次和10秒,则IGMP非查询器存在时间的缺省值=60×2+10÷2=125(秒);

l      如果进行了手工配置,则取配置值。

 

  注意:

l      应确保IGMP非查询器的存在时间大于发送IGMP普遍组查询报文的时间间隔,否则有可能导致网络内的IGMP查询器反复变化。

l      应确保发送IGMP普遍组查询报文的时间间隔大于IGMP普遍组查询的最大响应时间,否则有可能造成对组播组成员的误删。

l      对IGMP普遍组查询的最大响应时间、发送IGMP特定组查询报文的时间间隔以及IGMP非查询器的存在时间所做的配置,只有当设备运行在IGMPv2或IGMPv3时才有效。

 

4.4.4  配置IGMP快速离开

IGMP的快速离开功能可以由IGMP Snooping的快速离开功能实现,详细的配置过程请参考2.4.5  配置端口快速离开

4.5  IGMP显示和维护

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

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

表4-10 IGMP显示和维护

操作

命令

查看IGMP组播组信息

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

查看IGMP二层端口信息

display igmp group port-info [ vlan vlan-id ] [ slot slot-id ] [ verbose ]

查看接口上IGMP配置和运行信息

display igmp interface [ interface-type interface-number ] [ verbose ]

查看IGMP路由表的路由信息

display igmp routing-table [ source-address [ mask { mask | mask-length } ] | group-address [ mask { mask | mask-length } ] ] *

清除IGMP转发表项

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

清除IGMP组播组的二层端口信息

 reset igmp group port-info { all | group-address } [ vlan vlan-id ]

 

&  说明:

l      通过reset igmp group命令不能够清除通过配置以静态方式加入的IGMP转发表项。

l      通过reset igmp group port-info命令不能够清除以静态方式加入的IGMP组播组的二层端口信息。

 

  注意:

执行reset igmp group命令可能导致接收者中断组播信息的接收。

 

4.6  IGMP典型配置举例

1. 组网需求

l              接收者通过组播方式接收视频点播信息,不同组织的接收者组成末梢网络N1和N2,Host A与Host C分别为N1和N2中的组播信息接收者。

l              PIM网络中的Switch A连接N1,Switch B与Switch C共同连接N2。

l              Switch A通过Vlan-interface100连接N1,通过Vlan-interface101连接PIM网络中的其它设备。

l              Switch B与Switch C分别通过各自的Vlan-interface200连接N2,并分别通过Vlan-interface201和Vlan-interface202连接PIM网络中的其它设备。

l              Switch A与N1之间运行IGMP;Switch B、Switch C与N2之间运行IGMP,通常由Switch B充当IGMP查询器。

2. 组网图

图4-3 IGMP典型配置组网图

3. 配置步骤

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

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

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

(2)        使能IP组播路由,并在主机侧接口上使能IGMP

# 在Switch A上使能IP组播路由,并在Vlan-interface100接口上使能IGMP和PIM-DM。

<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

# 在Switch B上使能IP组播路由,并在Vlan-interface200接口上使能IGMP和PIM-DM。

<SwitchB> system-view

[SwitchB] multicast routing-enable

[SwitchB] interface vlan-interface 200

[SwitchB-Vlan-interface200] igmp enable

[SwitchB-Vlan-interface200] pim dm

[SwitchB-Vlan-interface200] quit

# 在Switch C上使能IP组播路由,并在Vlan-interface200接口上使能IGMP和PIM-DM。

<SwitchC> system-view

[SwitchC] multicast routing-enable

[SwitchC] interface vlan-interface 200

[SwitchC-Vlan-interface200] igmp enable

[SwitchC-Vlan-interface200] pim dm

[SwitchC-Vlan-interface200] quit

(3)        检验配置效果

通过使用display igmp interface命令可以查看各交换机接口上IGMP的配置和运行情况。例如:

# 查看Switch B在Vlan-interface200上的IGMP信息。

[SwitchB] display igmp interface vlan-interface 200

Vlan-interface200(10.110.2.1):

   IGMP is enabled

   Current IGMP version is 2

   Value of query interval for IGMP(in seconds): 60

   Value of other querier timeout for IGMP(in seconds): 125

   Value of maximum query response time for IGMP(in seconds): 10

   Querier for IGMP: 10.110.2.1 (this router)

  Total 1 IGMP Group reported

4.7  常见配置错误举例

4.7.1  接收者侧路由器上无组成员信息

1. 故障现象

当某主机发送了加入组播组G的报文后,离该主机最近的路由器上却没有组播组G的组成员信息。

2. 故障分析

l              组网、接口连线的正确与否将直接影响组播组成员信息的生成;

l              在路由器上必须使能组播路由;

l              如果在接口上使用命令igmp group-policy对加入组播组G进行了限制后,该接口将不再接收未通过过滤的那些要求加入组播组G的报文。

3. 处理过程

(1)        检查组网是否正确,接口间的连线是否正确。

(2)        检查接口与主机是否在同一网段。通过命令display current-configuration interface查看接口IP地址。

(3)        检查是否使能了组播路由。通过命令display current-configuration查看是否配置了命令multicast routing-enable。若缺少该配置,则需要在系统视图下执行命令multicast routing-enable使能IP组播路由,同时也需要在相应接口上使能IGMP。

(4)        检查接口状态是否正常,是否配置了正确的IP地址。通过命令display igmp interface查看接口信息。若无接口信息输出,说明接口状态异常,原因通常是接口上配置了shutdown命令,或者接口连线不正确,或者接口上没有配置正确的IP地址。

(5)        检查接口上是否配置了ACL规则来限制主机加入组播组G。通过命令display current-configuration interface观察是否配置了igmp group-policy命令。如果配置的ACL规则对加入组播组G进行了限制,则需要修改该ACL规则,允许接受组播组G的报告报文。

4.7.2  同一网段各路由器上组成员关系不一致

1. 故障现象

在同一网段的不同IGMP路由器上,各自维护的组成员关系不一致。

2. 故障分析

l              运行IGMP的路由器为每个接口维护多个参数,各参数之间相互影响,非常复杂。如果同一网段路由器的IGMP接口参数配置不一致,必然导致组成员关系的混乱;

l              另外,IGMP目前有3个版本,版本不同的IGMP路由器与主机之间虽然可以兼容,但是连接在同一网段的所有路由器必须运行相同版本的IGMP。如果同一网段路由器的IGMP版本不一致,也将导致IGMP组成员关系的混乱。

3. 处理过程

(1)        检查IGMP配置。通过命令display current-configuration观察接口上IGMP的配置信息。

(2)        在同一网段的所有路由器上执行命令display igmp interface来检查IGMP相关定时器的参数,确保配置一致。

(3)        通过命令display igmp interface来检查各路由器上运行的IGMP版本是否一致。

 


第5章  PIM配置

&  说明:

本文所涉及的路由器和路由器图标,代表了一般意义下的路由器或运行了PIM协议的三层交换机。

 

5.1  PIM简介

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

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

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

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

&  说明:

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

 

5.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)。

5.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      路由器上收到组播数据的接口称为“上游”,转发组播数据的接口称为“下游”。

 

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

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

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

&  说明:

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

 

3. 嫁接

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

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

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

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

4. 断言

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

图5-2 Assert机制示意图

图5-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地址较大者获胜。

5.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发送给接收者。

&  说明:

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

 

5.1.4  PIM-SM工作机制

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

l              邻居发现

l              DR选举

l              RP发现

l              构建RPT

l              组播源注册

l              RPT向SPT切换

l              断言

1. 邻居发现

PIM-SM使用与PIM-DM完全相同的邻居发现机制,具体请参见“5.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加入组播组。

 

图5-3 DR选举示意图

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

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

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

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

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在网络中的位置如图5-4所示。

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

4. 构建RPT

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

图5-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通知组播源的存在。

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

图5-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切换

当接收者侧的DR发现从RP发往组播组G的组播数据速率超过了一定的阈值时,将由其发起从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完全相同的断言机制,具体请参见“5.1.2  4. 断言”一节。

5.1.5  PIM-SM中BSR管理域介绍

1. PIM-SM域的划分

在一个PIM-SM域内只能有一个BSR,并由该BSR负责在整个PIM-SM域内宣告RP-Set信息,所有组播组的信息都在此BSR管理的网络范围内进行转发。

考虑到管理的精细化并能针对不同组播组提供不同的服务,可以将整个PIM-SM域划分为一个Global域和多个BSR管理域。BSR管理域与组播组相对应,针对不同组播组划分相应的BSR管理域,一方面可以有效分担单一BSR的管理压力,另一方面可以为特定组播组提供专门的服务。

2. BSR管理域与Global域之间的关系

为了更清晰地理解BSR管理域和Global域,需要从以下两个角度进行考虑:

(1)        地域空间角度

BSR管理域是针对特定组播组的逻辑管理区域,各BSR管理域在地域上必须相互独立,如图5-7所示。

图5-7 地域空间上BSR管理域与Global域的关系

在地域空间上,各BSR管理域之间相互隔离,即同一路由器不能从属于多个BSR管理域。换句话说,各BSR管理域所包含的路由器互不相同。而Global域则包含了PIM-SM域内的所有路由器。

(2)        组地址范围角度

每个BSR管理域为特定的组播组提供服务,这些组播组地址之间通常没有交集,但是也可能存在相互交叉和重叠关系。

图5-8 组地址范围上BSR管理域与Global域的关系

图5-8所示,BSR 1域与BSR 2域所对应的组地址范围无交集,而BSR 3域的组地址是BSR 1域组地址的子集;Global域所对应的组地址范围是除各BSR管理域组地址外的其它所有组地址,即G-G1-G2。也就是说,Global域和所有BSR管理域之间就组地址范围来说是互补关系。

BSR管理域与Global域之间的关系如下:

l              Global域与每个BSR管理域都包含针对各自域的C-RP和BSR设备,这些设备仅在所在域有效,也就是说BSR机制与RP选举在各管理域之间是隔离的;

l              每个BSR管理域都有自己的边界,各BSR管理域内的组播信息(如C-RP宣告报文、BSR自举报文等)不能跨越域边界;

l              Global域内的组播信息也只能在其域内传递,而不能进入任意BSR管理域;

l              就组播信息的传递来说,各BSR管理域之间、BSR管理域与Global域之间相互独立,且各BSR管理域之间不能互相重叠。

5.1.6  SSM模型在PIM中的实现

SSM(Source-Specific Multicast,指定信源组播)模型和ASM(Any-Source Multicast,任意信源组播)模型是两个完全对等的模型。目前,ASM模型包括PIM-DM和PIM-SM两种模式,SSM模型能够借助PIM-SM的部分技术来实现。

SSM模型为指定源组播提供了解决方案,通过IGMPv3来维护主机与路由器之间的关系。在实际应用中,通常采用PIM-SM模式的一部分技术来实现SSM模型。由于接收者已经通过其它渠道(如广告咨询等)知道了组播源的具体位置,因此在SSM模型中无需RP,无需构建RPT,无需组播源注册过程,也无需通过MSDP(Multicast Source Discovery Protocol,组播源发现协议)来发现其它PIM域内的组播源。

与ASM模型相比,SSM模型仅需要IGMPv3和PIM-SM部分子集的支持,SSM模型在PIM域内的工作机制可以简单概括如下:

l              邻居发现

l              DR选举

l              构建SPT

1. 邻居发现

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

2. DR选举

PIM-SSM使用与PIM-SM完全相同的DR选举机制,具体请参见 “5.1.4  2. DR选举”一节。

3. 构建SPT

构建为PIM-SM服务的RPT,还是构建为PIM-SSM服务的SPT,关键在于接收者准备加入的组播组是否属于SSM组地址范围(IANA保留的SSM组地址范围为232.0.0.0/8)。

图5-9 PIM-SSM中构建SPT示意图

图5-9所示,Host B和Host C为组播信息的接收者(Receiver),由其借助IGMPv3的报告报文向DR报告自己对来自组播源S、发往组播组G的信息感兴趣,标记为(Include S,G);或对来自除S外的其它组播源的信息感兴趣,则标记为(Exclude S,G)。无论如何描述,都表示组播源S的位置对接收者是明确指定的。

收到该报告报文的DR先判断该报文中的组地址是否在SSM组地址范围内:

l              如果在SSM组地址范围内,则构建PIM-SSM,并向组播源S逐跳发送通道(Channel)的订阅报文(Subscribe Message)。沿途所有路由器上都创建(Include S,G)或(Exclude S,G)表项,从而在网络内构建了一棵以组播源S为根、以接收者为叶子的SPT,该SPT就是PIM-SSM中的传输通道;

l              如果不在SSM组地址范围内,则仍旧按照PIM-SM的流程进行后续处理,此时DR需要向RP发送(*,G)加入报文,同时需要进行组播源的注册。

&  说明:

在PIM-SSM中,借助“通道”的概念表示组播组,借助“订阅报文”的概念表示加入报文。

 

5.1.7  协议规范

与PIM相关的协议规范有:

l              RFC 2362:Protocol Independent Multicast-sparse Mode (PIM-SM): Protocol Specification

l              RFC 3973:Protocol Independent Multicast-Dense Mode (PIM-DM): Protocol Specification (Revised)

l              draft-ietf-pim-sm-v2-new-06:Protocol Independent Multicast-Sparse Mode (PIM-SM)

l              draft-ietf-pim-dm-new-v2-02:Protocol Independent Multicast-Dense Mode (PIM-DM)

l              draft-ietf-pim-v2-dm-03:Protocol Independent Multicast Version 2 Dense Mode Specification

l              draft-ietf-pim-sm-bsr-02:Bootstrap Router (BSR) Mechanism for PIM Sparse Mode

l              draft-ietf-ssm-arch-01:Source-Specific Multicast for IP

l              draft-ietf-ssm-overview-04:An Overview of Source-Specific Multicast (SSM)

5.2  配置PIM-DM

5.2.1  PIM-DM配置任务简介

表5-1 PIM-DM配置任务简介

配置任务

说明

详细配置

使能PIM-DM

必选

5.2.3 

使能状态刷新能力

可选

5.2.4 

配置状态刷新参数

可选

5.2.5 

配置PIM-DM定时器

可选

5.2.6 

配置PIM公共信息

可选

5.5 

 

5.2.2  配置准备

在配置PIM-DM之前,需完成以下任务:

l              配置任一单播路由协议,实现域内网络层互通

在配置PIM-DM之前,需准备以下数据:

l              发送状态刷新报文的时间间隔

l              等待接收新状态刷新报文的最小时间

l              状态刷新报文的TTL值

l              嫁接报文的重传时间

5.2.3  使能PIM-DM

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

表5-2 使能PIM-DM

操作

命令

说明

进入系统视图

system-view

-

使能IP组播路由

multicast routing-enable

必选

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

进入接口视图

interface interface-type interface-number

-

使能PIM-DM

pim dm

必选

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

 

  注意:

l      同一台设备所有接口上启用的PIM模式必须相同。

l      PIM-DM不能与处于SSM组地址范围内的组播组同时使用。

 

5.2.4  使能状态刷新能力

未使能状态刷新能力的接口将不转发状态刷新报文。

表5-3 使能状态刷新能力

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

使能状态刷新能力

pim state-refresh-capable

可选

缺省情况下,状态刷新能力处于使能状态

 

5.2.5  配置状态刷新参数

为了避免各路由器上被剪枝的接口因为超时而恢复转发,与组播源直连的路由器会周期性地发送(S,G)状态刷新报文,该报文沿着PIM-DM域最初的扩散路径逐跳进行转发,从而刷新沿途所有路由器上的剪枝定时器的状态。

路由器可能在短时间内收到多个状态刷新报文,而其中有些报文可能是重复的。为了避免接收这些重复的报文,可以配置接收新状态刷新报文的等待时间:路由器将丢弃在该时间内收到的状态刷新报文;当该时间超时后,路由器将正常接收新的状态刷新报文,并更新自己的PIM状态,同时重置该等待时间。

在收到状态刷新报文时,路由器会将该报文的TTL值减1后转发给其下游,直至该报文的TTL值减为0,当网络规模很小时,状态刷新报文将在网络中循环传递。因此,为了有效控制刷新报文的传递范围,需要根据网络规模大小配置合适的TTL值。

表5-4 配置状态刷新参数

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置发送状态刷新报文的时间间隔

state-refresh-interval interval

可选

缺省情况下,发送状态刷新报文的时间间隔为60秒

配置接收新状态刷新报文的等待时间

state-refresh-rate-limit interval

可选

缺省情况下,接收新状态刷新报文的等待时间为30秒

配置状态刷新报文的TTL值

state-refresh-ttl ttl-value

可选

缺省情况下,状态刷新报文的TTL值为255

 

5.2.6  配置PIM-DM定时器

嫁接报文是PIM-DM中唯一使用确认机制的报文。在PIM-DM域中,下游路由器发出嫁接报文后,如果在指定时间内没有收到来自其上游路由器的嫁接应答报文,则会重发嫁接报文,直到被确认。

表5-5 配置PIM-DM定时器

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置嫁接报文的重传时间

pim timer graft-retry interval

可选

缺省情况下,嫁接报文的重传时间为3

 

&  说明:

PIM-DM其它定时器的配置请参见“5.5.5  配置PIM公共定时器”。

 

5.3  配置PIM-SM

&  说明:

一台设备可以同时充当C-RP和C-BSR。

 

5.3.1  PIM-SM配置任务简介

表5-6 PIM-SM配置任务简介

配置任务

说明

详细配置

使能PIM-SM

必选

5.3.3 

配置BSR

配置基本C-BSR

可选

5.3.4  1.

配置Global域C-BSR

可选

5.3.4  2.

配置管理域C-BSR

可选

5.3.4  3.

配置BSR管理域边界

可选

5.3.4  4.

配置全局性C-BSR参数

可选

5.3.4  5.

配置RP

配置静态RP

可选

5.3.5  1.

配置C-RP

可选

5.3.5  2.

使能自动RP侦听功能

可选

5.3.5  3.

配置C-RP定时器

可选

5.3.5  4.

配置PIM-SM注册报文

可选

5.3.6 

配置RPT向SPT切换

可选

5.3.7 

配置PIM公共信息

可选

5.5 

 

5.3.2  配置准备

在配置PIM-SM之前,需完成以下任务:

l              配置任一单播路由协议,实现域内网络层互通

在配置PIM-SM之前,需准备以下数据:

l              表示合法BSR地址范围的ACL规则

l              计算RP的哈希掩码长度

l              C-BSR的优先级

l              自举时间间隔

l              自举超时时间

l              表示合法的C-RP地址范围及其所服务的组播组范围的ACL规则

l              发送宣告报文的时间间隔

l              C-RP超时时间

l              静态RP的IP地址

l              表示注册报文过滤规则的ACL规则

l              注册抑制状态超时时间

l              探测时间

l              RPT向SPT切换的ACL规则和排序规则

5.3.3  使能PIM-SM

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

表5-7 使能PIM-SM

操作

命令

说明

进入系统视图

system-view

-

使能IP组播路由

multicast routing-enable

必选

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

进入接口视图

interface interface-type interface-number

-

使能PIM-SM

pim sm

必选

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

 

  注意:

同一台设备所有接口上启用的PIM模式必须相同。

 

5.3.4  配置BSR

&  说明:

BSR是由众多C-BSR通过竞选动态产生的,由于无法预知谁将最终会成为BSR,因此本节的命令是在所有C-BSR上配置的。

关于计算RP的哈希掩码长度和C-BSR的优先级这两个参数:

l      可以在三种范围内配置:全局、Global域和管理域;

l      如果不进行配置,Global域和管理域内的参数值继承全局值;

l      如果对Global域或管理域下的参数进行了配置,则取其配置值。

 

1. 配置基本C-BSR

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

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被恶意取代。通常针对以下两类情况实施预防措施:

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

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

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

表5-8 配置基本C-BSR

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置某接口为C-BSR

c-bsr interface-type interface-number [ hash-length [ priority ] ]

必选

缺省情况下,没有配置C-BSR

配置合法的BSR地址范围

bsr-policy acl-number

可选

缺省情况下,BSR的地址范围不受任何限制

 

&  说明:

由于BSR与PIM-SM域中的其它设备需要交换大量信息,因此应在C-BSR与PIM-SM域中的其它设备之间保留较大的通信带宽。

 

2. 配置Global域C-BSR

表5-9 配置Global域C-BSR

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置Global域的C-BSR

c-bsr global [ hash-length hash-length | priority priority ] *

必选

缺省情况下,没有配置Global域的C-BSR

 

3. 配置管理域C-BSR

缺省情况下,PIM-SM域中只有一个BSR,整个网络都在该BSR的管理范围之内。为了更有针对性地管理PIM-SM域,可以在PIM-SM域中配置多个BSR管理域,每个BSR管理域中存在一个BSR,为特定的组播组服务。

BSR管理域与组播组相对应,针对不同组播组划分相应的BSR管理域,一方面可以有效分担单一BSR的管理压力,另一方面可以为特定组播组提供专门的服务。

在应用了BSR管理域的网络中,从众多C-BSR中选举出针对不同组播组的BSR。网络内的C-RP只向对应的BSR发送宣告报文,由BSR汇总为RP-Set,并向其所服务的BSR管理域内的所有路由器进行宣告。每个路由器都使用统一的算法,得到特定组播组所对应的RP地址。

表5-10 配置管理域C-BSR

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

使能BSR管理域机制

c-bsr admin-scope

必选

缺省情况下,BSR管理域机制处于关闭状态

配置BSR管理域的C-BSR

c-bsr group group-address { mask | mask-length } [ hash-length hash-length | priority priority ] *

可选

缺省情况下,没有配置BSR管理域的C-BSR

 

4. 配置BSR管理域边界

BSR是针对特定的服务范围而言的,众多BSR边界接口将网络划分成不同的BSR管理域,自举报文无法通过BSR管理域的边界,但其它类型的PIM报文可以通过该边界。

表5-11 配置BSR管理域边界

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置BSR管理域边界

pim bsr-boundary

必选

缺省情况下,没有配置BSR管理域的边界

 

5. 配置全局性C-BSR参数

当某C-BSR竞选成为BSR后,它会通过自举报文向其所服务的区域以组播方式发送自己的IP地址和RP-Set信息。BSR以自举时间间隔周期性地向网络发送自举报文,收到该报文的C-BSR会在自举超时时间内将其保持,此时BSR选举过程暂停;当自举超时时间超时后,C-BSR之间会触发新一轮的BSR选举过程。

表5-12 配置全局性C-BSR参数

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置计算RP的哈希掩码长度

c-bsr hash-length hash-length

可选

缺省情况下,计算RP的哈希掩码长度为30

配置C-BSR的优先级

c-bsr priority priority

可选

缺省情况下,C-BSR的优先级为0

配置自举时间间隔

c-bsr interval interval

可选

关于自举时间间隔的缺省取值请参见表5-12后的说明

配置自举超时时间

c-bsr holdtime interval

可选

关于自举超时时间的缺省取值请参见表5-12后的说明

 

&  说明:

关于自举超时时间:

l      如果没有进行手工配置,则其取值由如下公式决定:自举超时时间=自举时间间隔×2+10。缺省情况下,自举时间间隔为60秒,则自举超时时间的缺省值=60×2+10=130(秒)。

l      如果进行了手工配置,则取配置值。

关于自举时间间隔:

l      如果没有进行手工配置,则其取值由如下公式决定:自举时间间隔=(自举超时时间-10)÷2。缺省情况下,自举超时时间为130秒,则自举时间间隔的缺省值=(130-10)÷2=60(秒)。

l      如果进行了手工配置,则取配置值。

 

  注意:

配置时,应保证自举时间间隔小于自举超时时间。

 

5.3.5  配置RP

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

1. 配置静态RP

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

表5-13 配置静态RP

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置静态RP

static-rp rp-address [ acl-number ] [ preferred ]

可选

缺省情况下,没有配置静态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,因此需要在每个C-BSR上都配置相同的过滤策略。

表5-14 配置C-RP

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置某接口为C-RP

c-rp interface-type interface-number [ group-policy acl-number | priority priority | holdtime hold-interval | advertisement-interval adv-interval ] *

可选

缺省情况下,没有配置C-RP

配置合法C-RP的地址范围及其所服务的组播组范围

crp-policy acl-number

可选

缺省情况下,C-RP的地址范围及其所服务的组播组范围不受任何限制

 

&  说明:

l      在配置C-RP时,应在C-RP与PIM-SM域中的其它设备之间保留较大的通信带宽。

l      一个RP可以为多个组播组服务,也可以为所有组播组服务。每个组播组在任意时刻,只能由唯一的一个RP为其转发数据,而不能由多个RP转发数据。

 

3. 使能自动RP侦听功能

自动RP宣告(Announce)和发现(Discovery)报文的目的地址分别为组播组地址224.0.1.39和224.0.1.40。在设备上使能了自动RP侦听功能后,该设备便能够接收这两种报文,并记录报文中所携带的RP信息。

表5-15 使能自动RP侦听功能

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

使能自动RP侦听功能

auto-rp enable

可选

缺省情况下,自动RP侦听功能处于关闭状态

 

4. 配置C-RP定时器

为了使BSR能够在PIM-SM域内分发RP-Set信息,C-RP必须周期性地向BSR发送宣告报文,BSR从该报文中学习RP-Set信息,并将该信息与自己的IP地址一起封装在自举报文中向域中的所有PIM路由器(224.0.0.13)进行宣告。

C-RP在其宣告报文中封装一个保持时间,BSR在收到该报文后,从中获得该时间值并启动C-RP超时定时器,如果超时后BSR仍没有收到来自C-RP后续的宣告报文,则认为目前网络中的C-RP失效或不可达。

表5-16 配置C-RP定时器

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置发送宣告报文的时间间隔

c-rp advertisement-interval interval

可选

缺省情况下,发送宣告报文的时间间隔为60秒

配置C-RP超时时间

c-rp holdtime interval

可选

缺省情况下,C-RP的超时时间为150秒

 

&  说明:

l      本节的命令是在C-RP上配置的。

l      PIM-SM其它定时器的配置请参见“5.5.5  配置PIM公共定时器”。

 

5.3.6  配置PIM-SM注册报文

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

出于对注册报文在传递过程中完整性的考虑,可以配置根据整个报文来计算校验和。但为了减少往注册报文中封装数据报文的工作量并考虑到互通性,一般情况下不建议配置根据注册报文的全部内容来计算校验和的方式。

当接收者不再通过RP接收发往某组播组的数据(即RP不再服务于该组播组),或RP正式开始接收来自组播源的组播数据时,RP将向组播源侧DR发送注册停止报文,DR收到该报文后将停止发送封装有组播数据的注册报文并进入注册抑制(Register-Suppression)状态。

在注册抑制期间,DR可以通过向RP发送空注册报文(即不封装组播数据的注册报文)以通告组播源仍处于激活状态。探测时间(Probe-Time)就是指在注册抑制状态超时前,允许DR发送空注册报文的时间。当注册抑制状态超时后,DR将重新开始发送注册报文。较小的注册抑制状态超时时间意味着RP将更频繁地收到突发性组播数据;较大的超时时间则意味着新接收者加入组播组的延迟时间将更长。

表5-17 配置PIM-SM注册报文

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置注册报文的过滤规则

register-policy acl-number

可选

缺省情况下,没有配置注册报文的过滤规则

配置根据注册报文的全部内容来计算校验和

register-whole-checksum

可选

缺省情况下,仅根据注册报文头来计算校验和

配置注册抑制状态超时时间

register-suppression-timeout interval

可选

缺省情况下,注册抑制状态超时时间为60秒

配置探测时间

probe-interval interval

可选

缺省情况下,探测时间为5秒

 

&  说明:

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

 

5.3.7  禁止RPT向SPT切换

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

表5-18 禁止RPT向SPT切换

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

禁止RPT向SPT切换

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

可选

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

 

&  说明:

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

 

5.4  配置PIM-SSM

&  说明:

PIM-SSM模型需要IGMPv3的支持,因此应确保携带有接收者的PIM路由器上使能了IGMPv3。

 

5.4.1  PIM-SSM配置任务简介

表5-19 PIM-SSM配置任务简介

配置任务

说明

详细配置

使能PIM-SM

必选

5.4.3 

配置SSM组播组范围

可选

5.4.4 

配置PIM公共信息

可选

5.5 

 

5.4.2  配置准备

在配置PIM-SSM之前,需完成以下任务:

l              配置任一单播路由协议,实现域内网络层互通

在配置PIM-SSM之前,需准备以下数据:

l              SSM组播组范围

5.4.3  使能PIM-SM

由于SSM模型是通过PIM-SM的部分子集功能实现的,因此系统在使能了PIM-SM的同时也具备了PIM-SSM能力。

在部署PIM-SM域时,建议在非边界路由器(边界路由器是指那些处于BSR管理域边界上的PIM路由器)的所有接口上使能PIM-SM。

表5-20 使能PIM-SM

操作

命令

说明

进入系统视图

system-view

-

使能IP组播路由

multicast routing-enable

必选

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

进入接口视图

interface interface-type interface-number

-

使能PIM-SM

pim sm

必选

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

 

  注意:

同一台设备所有接口上启用的PIM模式必须相同。

 

5.4.4  配置SSM组播组范围

在把来自组播源的信息传递给接收者的过程中,是采用PIM-SSM模型还是PIM-SM模型,这取决于接收者订阅通道(S,G)中的组播组是否在SSM组播组范围之内,所有使能了PIM-SM的接口将会认为属于该范围内的组播组采用了PIM-SSM模型。

表5-21 配置SSM组播组范围

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置SSM组播组的范围

ssm-policy acl-number

可选

缺省情况下,SSM组播组的范围为232.0.0.0/8

 

&  说明:

本节的命令是在PIM域内的所有路由器上配置的。

 

  注意:

l      应确保域内所有路由器上配置的SSM组播组地址范围都一致,否则组播信息将无法通过SSM模型进行传输。

l      如果某组播组属于SSM组播组范围,但该组成员使用IGMPv1或IGMPv2发送加入报文,则设备不会触发(*,G)加入报文。

 

5.5  配置PIM公共信息

&  说明:

对于本节中的配置任务来说:

l      在PIM视图下所作的配置对所有接口生效,在接口视图下所作的配置仅对当前接口生效;

l      如果在这两个视图下进行了相同功能或参数的配置,则不论配置先后,接口视图下的配置将被优先采用。

 

5.5.1  PIM公共信息配置任务简介

表5-22 PIM公共信息配置任务简介

配置任务

说明

详细配置

配置PIM过滤器

可选

5.5.3 

配置Hello报文选项

可选

5.5.4 

配置PIM公共定时器

可选

5.5.5 

配置加入/剪枝报文限制

可选

5.5.6 

 

5.5.2  配置准备

在配置PIM公共信息之前,需完成以下任务:

l              配置任一单播路由协议,实现域内网络层互通

l              配置PIM-DM(或PIM-SM、PIM-SSM)

在配置PIM公共信息之前,需准备以下数据:

l              表示组播数据过滤器的ACL规则

l              竞选DR的优先级(全局值/接口值)

l              保持PIM邻居可达状态的时间(全局值/接口值)

l              剪枝延迟时间(全局值/接口值)

l              剪枝否决时间(全局值/接口值)

l              发送Hello报文的时间间隔(全局值/接口值)

l              发送Hello报文的最大延迟时间(接口值)

l              保持断言状态的时间(全局值/接口值)

l              发送加入/剪枝报文的时间间隔(全局值/接口值)

l              保持加入/剪枝状态的时间(全局值/接口值)

l              组播源生存时间

l              加入/剪枝报文的最大长度

l              加入/剪枝报文中(S,G)表项的最大数量

5.5.3  配置PIM过滤器

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

表5-23 配置PIM过滤器

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置组播数据过滤器

source-policy acl-number

必选

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

 

&  说明:

l      通常,过滤器的位置离组播源距离越近,过滤影响越明显。

l      过滤器不仅过滤独立的组播数据,还过滤封装在注册报文中的组播数据。

 

5.5.4  配置Hello报文选项

无论在PIM-DM域还是在PIM-SM域内,各路由器之间发送的Hello报文都包含很多可供配置的选项,对各选项的介绍如下:

l              DR_Priority(仅用于PIM-SM):表示竞选DR的优先级,优先级高的设备被选举为DR。可以在与组播源或接收者直连的共享网络中的所有路由器上都配置此参数。

l              Holdtime:表示保持PIM邻居可达状态的时间,若超时后仍没有收到Hello报文,则认为PIM邻居失效或不可达。可以在PIM域中的所有路由器上都配置此参数,当各PIM邻居上所配置的Holdtime值不同时,取其中最大的值。

l              LAN_Prune_Delay:表示在共享网络上传递剪枝报文的延迟时间,该选项由三部分组成:Lan-delay(剪枝延迟时间)、Override-interval(剪枝否决时间)和禁止加入报文抑制能力位。可以在PIM域中的所有路由器上都配置此参数。当各PIM路由器协商出的剪枝延迟或否决时间值不同时,取其中最大的值。

剪枝延迟时间将使上游路由器延迟处理收到的剪枝报文。如果配置的剪枝延迟时间过小,可能导致下游路由器还未否决剪枝动作,上游路由器就已经停止转发组播数据,因此配置时需要慎重。

剪枝否决时间表示允许下游路由器否决剪枝动作的时间。路由器在收到下游路由器发来的剪枝报文后并不立即执行剪枝动作,而是仍然将当前的转发状态保持剪枝延迟时间,如果下游路由器需要继续接收组播数据,则必须在剪枝否决时间内否决剪枝动作;否则上游路由器会在剪枝延迟时间超时后执行剪枝动作。

PIM路由器发送Hello报文时,会生成一个随机数Generation ID并携带在该报文中。一台PIM路由器的Generation ID一般不会变化,除非该路由器的状态发生了改变(如接口刚使能了PIM或设备进行了重启),此时,当其开始或重新开始发送Hello报文时,会生成一个新的Generation ID。这样,如果PIM路由器发现其上游邻居发来的Hello报文中Generation ID发生了改变,就会认为该邻居的状态已经丢失或其上游邻居已经改变,从而触发发送加入报文以进行状态刷新。

如果禁止了加入报文抑制能力(即使能邻居跟踪),上游路由器将精确地跟踪每台下游路由器的加入报文。应该在同一链路中的所有PIM路由器上同时使能或禁止该能力。

1. 全局配置Hello报文选项

表5-24 全局配置Hello报文选项

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置竞选DR的优先级

hello-option dr-priority priority

可选

缺省情况下,竞选DR的优先级为1

配置保持PIM邻居可达状态的时间

hello-option holdtime interval

可选

缺省情况下,保持PIM邻居可达状态的时间为105秒

配置剪枝延迟时间

hello-option lan-delay interval

可选

缺省情况下,剪枝延迟时间为500毫秒

配置剪枝否决时间

hello-option override-interval interval

可选

缺省情况下,剪枝否决时间为2500毫秒

禁止加入报文抑制能力

hello-option neighbor-tracking

可选

缺省情况下,加入报文抑制能力处于使能状态

 

2. 在接口上配置Hello报文选项

表5-25 在接口上配置Hello报文选项

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置竞选DR的优先级

pim hello-option dr-priority priority

可选

缺省情况下,竞选DR的优先级为1

配置保持PIM邻居可达状态的时间

pim hello-option holdtime interval

可选

缺省情况下,保持PIM邻居可达状态的时间为105秒

配置剪枝延迟时间

pim hello-option lan-delay interval

可选

缺省情况下,剪枝延迟时间为500毫秒

配置剪枝否决时间

pim hello-option override-interval interval

可选

缺省情况下,剪枝否决时间为2500毫秒

禁止加入报文抑制能力

pim hello-option neighbor-tracking

可选

缺省情况下,加入报文抑制能力处于使能状态

配置不接受无Generation ID的Hello报文

pim require-genid

可选

缺省情况下,接受无Generation ID的Hello报文

 

5.5.5  配置PIM公共定时器

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

为了避免多个PIM路由器同时发送Hello报文而导致冲突,当PIM路由器在收到Hello报文时,将延迟一个随机时间后再发送Hello报文,该时间值不大于发送Hello报文的最大延迟时间。

在断言中落选的路由器将会剪掉其下游的转发接口,并把这种断言状态保持一段时间。超时后,落选的路由器会重新恢复转发组播数据。

PIM路由器通过周期性地向其上游路由器发送加入/剪枝报文以更新状态,在该报文中携带有保持时间,上游路由器为被剪枝的下游接口设置保持加入/剪枝状态定时器,超时后其下游接口将恢复转发组播数据。

当路由器没有收到来自组播源S的后续组播数据时,不会立即删除(S,G)表项,而是将其维持一段时间(即组播源生存时间)后再删除。

1. 全局配置PIM公共定时器

表5-26 全局配置PIM公共定时器

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置发送Hello报文的时间间隔

timer hello interval

可选

缺省情况下,发送Hello报文的时间间隔为30秒

配置保持断言状态的时间

holdtime assert interval

可选

缺省情况下,保持断言状态的时间为180秒

配置发送加入/剪枝报文的时间间隔

timer join-prune interval

可选

缺省情况下,发送加入/剪枝报文的时间间隔为60秒

配置保持加入/剪枝状态的时间

holdtime join-prune interval

可选

缺省情况下,保持加入/剪枝状态的时间为210秒

配置组播源生存时间

source-lifetime interval

可选

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

 

2. 在接口上配置PIM公共定时器

表5-27 在接口上配置PIM公共定时器

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置发送Hello报文的时间间隔

pim timer hello interval

可选

缺省情况下,发送Hello报文的时间间隔为30秒

配置发送Hello报文的最大延迟时间

pim triggered-hello-delay interval

可选

缺省情况下,发送Hello报文的最大延迟时间为5秒

配置保持断言状态的时间

pim holdtime assert interval

可选

缺省情况下,保持断言状态的时间为180秒

配置发送加入/剪枝报文的时间间隔

pim timer join-prune interval

可选

缺省情况下,发送加入/剪枝报文的时间间隔为60秒

配置保持加入/剪枝状态的时间

pim holdtime join-prune interval

可选

缺省情况下,保持加入/剪枝状态的时间为210秒

 

&  说明:

如果网络没有特殊要求,建议采用缺省值。

 

5.5.6  配置加入/剪枝报文限制

如果加入/剪枝报文的尺寸较大,则丢失一个报文将导致较多信息的遗失;如果加入/剪枝报文的尺寸较小,则单个报文的丢失所产生的影响也将降低。

通过控制加入/剪枝报文中(S,G)表项的数目,可以有效减少单位时间内发送的(S,G)表项数量。

表5-28 配置加入/剪枝报文限制

操作

命令

说明

进入系统视图

system-view

-

进入PIM视图

pim

-

配置加入/剪枝报文的最大长度

jp-pkt-size packet-size

可选

缺省情况下,加入/剪枝报文的最大长度为8100字节

配置加入/剪枝报文中(S,G)表项的最大数量

jp-queue-size queue-size

可选

缺省情况下,加入/剪枝报文中(S,G)表项的最大数量为1020个

 

5.6  PIM显示和维护

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

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

表5-29 PIM显示和维护

操作

命令

查看PIM-SM域中的BSR信息,以及本地配置并生效的C-RP信息

display pim bsr-info

查看PIM所使用的单播路由信息

display pim claimed-route [ source-address ]

查看PIM控制报文的数量

display pim control-message counters [ message-type { probe | register | register-stop } | [ interface interface-type interface-number | message-type { assert | bsr | crp | graft | graft-ack | hello | join-prune | state-refresh } ] * ]

查看尚未被确认的嫁接信息

display pim grafts

查看接口上的PIM信息

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

查看待发送的加入/剪枝报文信息

display pim join-prune mode { sm [ flags flag-value ] | ssm } [ interface interface-type interface-number | neighbor neighbor-address ] * [ verbose ]

查看PIM邻居信息

display pim neighbor [ interface interface-type interface-number | neighbor-address | verbose ] *

查看PIM路由表的内容

display pim routing-table [ group-address [ mask { mask-length | mask } ] | source-address [ mask { mask-length | mask } ] | incoming-interface [ interface-type interface-number | register ] | outgoing-interface { include | exclude | match } { interface-type interface-number | register } | mode mode-type | flags flag-value | fsm ] *

查看RP的信息

display pim rp-info [ group-address ]

重置PIM控制报文计数器

reset pim control-message counters [ interface interface-type interface-number ]

 

5.7  PIM典型配置举例

5.7.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之间运行IGMPv2;Switch B和Switch C与末梢网络N2之间也运行IGMPv2。

2. 组网图

设备

接口

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

 

 

 

图5-10 PIM-DM典型配置组网图

3. 配置步骤

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

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

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

(2)        使能IP组播路由,并在各接口上使能PIM-DM

# 在Switch A上使能IP组播路由,在各接口上使能PIM-DM,并在Switch A连接末梢网络的接口Vlan-interface100上使能IGMPv2。

<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上使能IP组播路由,并在其各接口上使能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

(3)        检验配置效果

通过使用display pim interface命令可以查看交换机接口上PIM的配置和运行情况。例如:

# 查看Switch D上PIM的配置信息。

Interface           NbrCnt HelloInt   DR-Pri     DR-Address

 Vlan300             0      30         1         10.110.5.1     (local)

 Vlan103             1      30         1         192.168.1.2    (local)

 Vlan101             1      30         1         192.168.2.2    (local)

 Vlan102             1      30         1         192.168.3.2    (local)

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

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

[SwitchD] display pim neighbor

 Total Number of Neighbors = 3

 

 Neighbor       Interface           Uptime       Expires      Dr-Priority

 192.168.1.1    Vlan103             00:02:22     00:01:27     1

 192.168.2.1    Vlan101             00:00:22     00:01:29     3

 192.168.3.1    Vlan102             00:00:23     00:01:31     5

假如Host A需要接收组播组G(225.1.1.1/24)的信息,当组播源S(10.110.5.100/24)向组播组G发送组播数据时,通过扩散生成SPT,SPT路径中各交换机(Switch A和Switch D)上都存在(S,G)表项,Host A向Switch A注册,在Switch A上生成(*,G)表项。通过使用display pim routing-table命令可以查看交换机的PIM路由表信息。例如:

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

[SwitchA] display pim routing-table

Total 1 (*, G) entry; 1 (S, G) entry

 

 (*, 225.1.1.1)

     Protocol: pim-dm, Flag: WC

     UpTime: 00:04:25

     Upstream interface: NULL

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

       Total number of downstreams: 1

           1: Vlan-interface100

                  Protocol: igmp, UpTime: 00:04:25, Expires: never

 (10.110.5.100, 225.1.1.1)

     Protocol: pim-dm, Flag: ACT

     UpTime: 00:06:14

     Upstream interface: Vlan-interface103,

         Upstream neighbor: 192.168.1.2

         RPF prime neighbor: 192.168.1.2

     Downstream interface(s) information:

       Total number of downstreams: 1

           1: Vlan-interface100

                  Protocol: pim-dm, UpTime: 00:04:25, Expires: never

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

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

[SwitchD] display pim routing-table

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

 

 (10.110.5.100, 225.1.1.1)

     Protocol: pim-dm, Flag: LOC ACT

     UpTime: 00:03:27

     Upstream interface: Vlan-interface300

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

       Total number of downstreams: 3

           1: Vlan-interface103

                  Protocol: pim-dm, UpTime: 00:03:27, Expires: never

           2: Vlan-interface101

                  Protocol: pim-dm, UpTime: 00:03:27, Expires: never

           3: Vlan-interface102

                  Protocol: pim-dm, UpTime: 00:03:27, Expires: never

5.7.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。

l              Switch A与末梢网络N1之间运行IGMPv2;Switch B和Switch C与末梢网络N2之间也运行IGMPv2。

2. 组网图

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int100

10.110.1.1/24

Switch D

Vlan-int300

10.110.5.1/24

 

Vlan-int101

192.168.1.1/24

 

Vlan-int101

192.168.1.2/24

 

Vlan-int102

192.168.9.1/24

 

Vlan-int105

192.168.4.2/24

Switch B

Vlan-int200

10.110.2.1/24

Switch E

Vlan-int104

192.168.3.2/24

 

Vlan-int103

192.168.2.1/24

 

Vlan-int103

192.168.2.2/24

Switch C

Vlan-int200

10.110.2.2/24

 

Vlan-int102

192.168.9.2/24

 

Vlan-int104

192.168.3.1/24

 

Vlan-int105

192.168.4.1/24

图5-11 PIM-SM典型配置组网图

3. 配置步骤

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

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

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

(2)        使能IP组播路由,并在各接口上使能PIM-SM

# 在Switch A上使能IP组播路由,在各接口上使能PIM-SM,并在Switch A连接末梢网络的接口Vlan-interface100上使能IGMPv2。

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] igmp enable

[SwitchA-Vlan-interface100] pim sm

[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

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

[SwitchE-pim] quit

(4)        检验配置效果

通过使用display pim interface命令可以查看交换机接口上PIM的配置和运行情况。例如:

# 查看Switch APIM的配置信息。

[SwitchA] display pim interface

 Interface             NbrCnt HelloInt   DR-Pri   DR-Address

 Vlan100               0      30         1        10.110.1.1     (local)

 Vlan101               1      30         1        192.168.1.2

 Vlan102               1      30         1        192.168.9.2

通过使用display pim bsr-info命令可以查看交换机上BSR选举的信息,以及本地配置并生效的C-RP信息。例如:

# 查看Switch A上的BSR信息,以及本地配置并生效的C-RP信息。

[SwitchA] display pim bsr-info

Elected BSR Address: 192.168.9.2

     Priority: 0

     Hash mask length: 30

     State: Accept Preferred

     Scope: Not scoped

     Uptime: 01:40:40

     Next BSR message scheduled at: 00:01:42

# 查看Switch E上的BSR信息,以及本地配置并生效的C-RP信息。

[SwitchE] display pim bsr-info

 Elected BSR Address: 192.168.9.2

     Priority: 0

     Hash mask length: 30

     State: Elected

     Scope: Not scoped

     Uptime: 00:00:18

     Next BSR message scheduled at: 00:01:52

 Candidate BSR Address: 192.168.9.2

     Priority: 0

     Hash mask length: 30

     State: Pending

     Scope: Not scoped

 

Candidate RP: 192.168.9.2(Vlan-interface102)

     Priority: 0

     HoldTime: 150

     Advertisement Interval: 60

     Next advertisement scheduled at: 00:00:48

通过使用display pim rp-info命令可以查看交换机上获取的RP信息。例如:

# 查看Switch A上的RP信息。

[SwitchA] display pim rp-info

PIM-SM BSR RP information:

 Group/MaskLen: 225.1.1.0/24

     RP: 192.168.9.2

     Priority: 0

     HoldTime: 150

     Uptime: 00:51:45

     Expires: 00:02:22

假如Host A需要接收组播组G(225.1.1.1/24)的信息,Switch A和Switch E之间会生成RPT。当组播源S(10.110.5.100/24)向RP发起注册后,Switch D和Switch E之间会生成SPT。当Switch A收到组播数据后立即执行从RPT到SPT的切换。RPT路径中的交换机(Switch A和Switch E)上存在(*,G)表项,而SPT路径中的交换机(Switch A和Switch D)上存在(S,G)表项,通过使用display pim routing-table命令可以查看交换机的PIM路由表信息。例如:

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

[SwitchA] display pim routing-table

Total 1 (*, G) entry; 1 (S, G) entry

 

 (*, 225.1.1.1)

     RP: 192.168.9.2

     Protocol: pim-sm, Flag: WC

     UpTime: 00:13:46

     Upstream interface: Vlan-interface102,

         Upstream neighbor: 192.168.9.2

         RPF prime neighbor: 192.168.9.2

     Downstream interface(s) information:

       Total number of downstreams: 1

           1:: Vlan-interface100

                  Protocol: igmp, UpTime: 00:13:46, Expires: 00:03:06

 (10.110.5.100, 225.1.1.1)

     RP: 192.168.9.2

     Protocol: pim-sm, Flag: SPT ACT

     UpTime: 00:00:42

     Upstream interface: Vlan-interface101,

         Upstream neighbor: 192.168.9.2

         RPF prime neighbor: 192.168.9.2

     Downstream interface(s) information:

       Total number of downstreams: 1

           1:: Vlan-interface100

                  Protocol: pim-sm, UpTime: 00:00:42, Expires: 00:03:06

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

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

[SwitchD] display pim routing-table

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

 

 (10.110.5.100, 225.1.1.1)

     RP: 192.168.9.2

     Protocol: pim-sm, Flag: SPT ACT

     UpTime: 00:00:42

     Upstream interface: Vlan-interface300

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

       Total number of downstreams: 1

           1:: Vlan-interface105

                  Protocol: pim-sm, UpTime: 00:00:42, Expires: 00:02:06

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

[SwitchE] display pim routing-table

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

 

 (*, 225.1.1.1)

     RP: 192.168.9.2 (local)

     Protocol: pim-sm, Flag: WC

     UpTime: 00:13:16

     Upstream interface: Register

         Upstream neighbor: 192.168.4.2

         RPF prime neighbor: 192.168.4.2

     Downstream interface(s) information:

       Total number of downstreams: 1

           1:: Vlan-interface102

                  Protocol: pim-sm, UpTime: 00:13:16, Expires: 00:03:22

5.7.3  PIM-SSM典型配置举例

1. 组网需求

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

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;

l              SSM组播组的范围是232.1.1.0/24;

l              Switch A与末梢网络N1之间运行IGMPv3;Switch B和Switch C与末梢网络N2之间也运行IGMPv3。

2. 组网图

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int100

10.110.1.1/24

Switch D

Vlan-int300

10.110.5.1/24

 

Vlan-int101

192.168.1.1/24

 

Vlan-int101

192.168.1.2/24

 

Vlan-int102

192.168.9.1/24

 

Vlan-int105

192.168.4.2/24

Switch B

Vlan-int200

10.110.2.1/24

Switch E

Vlan-int104

192.168.3.2/24

 

Vlan-int103

192.168.2.1/24

 

Vlan-int103

192.168.2.2/24

Switch C

Vlan-int200

10.110.2.2/24

 

Vlan-int102

192.168.9.2/24

 

Vlan-int104

192.168.3.1/24

 

Vlan-int105

192.168.4.1/24

图5-12 PIM-SSM典型配置组网图

3. 配置步骤

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

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

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

(2)        使能IP组播路由,并在各接口上使能PIM-SM

# 在Switch A上使能IP组播路由,在各接口上使能PIM-SM,并在Switch A连接末梢网络的接口Vlan-interface100上使能IGMPv3。

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] igmp enable

[SwitchA-Vlan-interface100] igmp version 3

[SwitchA-Vlan-interface100] pim sm

[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)        配置SSM组播组的地址范围

# 在Switch A上配置SSM组播组地址范围为232.1.1.0/24。

[SwitchA] acl number 2000

[SwitchA-acl-basic-2000] rule permit source 232.1.1.0 0.0.0.255

[SwitchA-acl-basic-2000] quit

[SwitchA] pim

[SwitchA-pim] ssm-policy 2000

[SwitchA-pim] quit

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

(4)        检验配置效果

通过使用display pim interface命令可以查看交换机接口上PIM的配置和运行情况。例如:

# 查看Switch APIM的配置信息。

[SwitchA] display pim interface

 Interface             NbrCnt HelloInt   DR-Pri     DR-Address

 Vlan100               0      30         1          10.110.1.1     (local)

 Vlan101               1      30         1          192.168.1.2

 Vlan102               1      30         1          192.168.9.2

假如Host A需要接收指定组播源S(10.110.5.100/24)发往组播组G(232.1.1.1/24)的信息,Switch A会向组播源方向构造SPT,SPT路径中的交换机(Switch A和Switch D)上生成(S,G)表项,而SPT路径之外的交换机(Switch E)上没有组播路由项,通过使用display pim routing-table命令可以查看交换机的PIM路由表信息。例如:

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

[SwitchA] display pim routing-table

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

 

 (10.110.5.100, 232.1.1.1)

     Protocol: pim-ssm, Flag:

     UpTime: 00:13:25

     Upstream interface: Vlan-interface101

         Upstream neighbor: 192.168.1.2

         RPF prime neighbor: 192.168.1.2

     Downstream interface(s) information:

       Total number of downstreams: 1

           1:: Vlan-interface100

                  Protocol: igmp, UpTime: 00:13:25, Expires: -

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

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

[SwitchD] display pim routing-table

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

 

 (10.110.5.100, 232.1.1.1)

     Protocol: pim-ssm, Flag: LOC

     UpTime: 00:12:05

     Upstream interface: Vlan-interface300

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

       Total number of downstreams: 1

           1:: Vlan-interface105

                  Protocol: pim-ssm, UpTime: 00:12:05, Expires: 00:03:25

5.8  常见配置错误举例

5.8.1  无法正确建立组播分发树

1. 故障现象

网络中各路由器(包括直连组播源或接收者的路由器)上都没有组播转发项,也就是说无法正确建立组播分发树,客户端无法接收组播数据。

2. 分析

l              当全网运行PIM-DM时,组播数据由直连组播源的第一跳路由器沿SPT扩散到直连客户端的最后一跳路由器。无论组播数据扩散到哪一台路由器,只有该路由器存在到达组播源的路由,才会创建(S,G)项。反之,如果没有到达组播源的路由或者到达组播源的RPF接口没有使能PIM-DM,则该路由器无法创建(S,G)项。

l              当全网运行PIM-SM时,路由器在准备加入SPT时,只有存在到达组播源的路由,才会创建(S,G)项。反之,如果没有到达组播源的路由或者到达组播源的RPF接口没有使能PIM-SM,则该路由器无法创建(S,G)项。

l              对于某个RPF检查对象,在现存的单播路由表中查找到达该对象的最优路由,该路由的出接口作为RPF接口,下一跳作为RPF邻居。RPF接口完全依赖于现存的单播路由,并且与PIM本身无关。RPF接口必须使能PIM,而且RPF邻居也必须是PIM邻居。如果RPF接口或RPF邻居所在路由器上没有使能PIM,必然导致组播分发树无法正确建立,导致组播数据转发异常。

l              Hello报文并不携带PIM的模式信息,所以运行PIM的路由器无法掌握自己的PIM邻居运行的是何种模式的PIM。如果RPF接口和RPF邻居所在路由器的对应接口没有使能相同模式的PIM,必然导致组播分发树无法正确建立,导致组播数据转发异常。

l              全网必须运行相同模式的PIM。否则,组播分发树必然无法正确建立,导致组播数据转发异常。

3. 处理过程

(1)        检查单播路由。使用命令display ip routing-table检查从接收者主机是否有到达组播源的单播路由项。

(2)        检查接口上是否使能PIM,尤其是RPF接口上是否使能PIM。通过命令display pim interface观察接口上的PIM信息。若接口上没有使能PIM,请使用pim dmpim sm命令使能PIM-DM或者PIM-SM。

(3)        检查RPF邻居是否是PIM邻居。通过命令display pim neighbor观察PIM邻居信息。

(4)        检查直连组播源或接收者的路由器接口上是否使能了PIM和IGMP。

(5)        检查PIM模式是否一致。通过命令display pim interface verbose检查RPF接口和RPF邻居所在路由器的对应接口上是否使能了相同模式的PIM。

(6)        检查全部网络中各路由器上的PIM模式是否一致。确保全网所有路由器配置相同模式的PIM,即要么全部配置为PIM-SM,要么全部配置为PIM-DM。如果配置为PIM-SM,则还需要检查BSR以及RP的配置是否正确。

5.8.2  组播数据异常终止在中间路由器

1. 故障现象

组播数据可以到达中间路由器,但无法到达最后一跳路由器。中间路由器某接口上收到组播数据,但PIM路由表中没有创建相应的(S,G)项。

2. 分析

l              命令multicast boundary用于在接口上设置组播转发边界,如果组播数据无法通过该边界,PIM是无法创建路由项的。

l              此外,source-policy命令用于过滤接收到的组播数据报文。如果组播数据报文无法通过该命令的ACL规则,PIM也是无法创建路由项的。

3. 处理过程

(1)        检查组播转发边界的配置。通过命令display current-configuration查看组播转发边界上的设置,使用multicast boundary命令更改组播转发边界的设置,使组播数据能够通过该边界。

(2)        检查组播过滤器配置。通过命令display current-configuration查看组播过滤器的配置,更改source-policy命令的ACL规则,使组播数据的源/组地址通过ACL过滤。

5.8.3  PIM-SM中RP无法加入SPT

1. 故障现象

共享树无法正确建立,或者RP无法加入到达组播源的最短路径树。

2. 分析

l              RP是PIM-SM的核心,为特定的组服务。网络中可以同时存在多个RP。必须保证所有路由器的RP信息完全一致,并且对于某个特定的组映射到相同的RP。否则必然导致组播数据转发异常。

l              如果使用静态RP机制,必须在全网所有路由器上配置完全相同的静态RP命令。否则必然导致组播数据转发异常。

3. 处理过程

(1)        检查是否有到达RP的路由。通过命令display ip routing-table查看各路由器上是否有到达RP的路由。

(2)        检查动态RP信息。通过命令display pim rp-info查看各路由器上的RP信息是否一致。

(3)        检查静态RP的配置。通过命令display pim rp-info查看全网所有路由器上是否配置了完全相同的静态RP。

5.8.4  PIM-SM中BSR和各C-RP之间无单播路由

1. 故障现象

C-RP无法向BSR单播通告报文,BSR没有发布包含C-RP的自举报文,BSR上没有到达各C-RP的单播路由,共享树无法正确建立,或者DR无法向RP进行源注册。

2. 分析

l              由于C-RP周期性地向BSR单播宣告报文,如果C-RP没有到达BSR的单播路由就无法发送宣告报文,BSR就收不到C-RP宣告报文,也就不会发布包含该C-RP的自举报文。

l              另外,如果BSR没有到达C-RP的单播路由,就会丢弃该宣告报文,也就不会发布包含该C-RP的自举报文。

l              RP是PIM-SM域的核心。必须保证全网所有路由器的RP信息完全一致,并且对于某个特定的组G映射到相同的RP,并且存在到达RP的单播路由。

3. 处理过程

(1)        检查是否有到达各C-RP/RP、BSR的路由。通过命令display ip routing-table查看各路由器上是否有到达RP和BSR的路由,及RP和BSR之间的路由。确保C-RP上存在到达BSR的单播路由,BSR上存在到达C-RP的单播路由,全网络所有路由器上存在到达RP的单播路由。

(2)        检查RP和BSR信息。PIM-SM协议需要有RP和BSR的支持,首先使用命令display pim bsr-info查看是否有BSR信息,使用display pim rp-info命令查看RP信息是否正确。

(3)        检查PIM邻居关系。通过命令display pim neighbor来查看是否正确建立了邻居关系。

 


第6章  MSDP配置

&  说明:

本文所涉及的路由器和路由器图标,代表了一般意义下的路由器或运行了MSDP协议的三层交换机。

 

6.1  MSDP简介

6.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,任意信源组播)模型有意义。

 

6.1.2  MSDP原理

1. MSDP对等体

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

图6-1 MSDP对等体的位置

图6-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对等体实现域间组播

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

图6-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检查规则

图6-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域(如图6-3中的AS 4)。STUB域内的MSDP对等体可以同时拥有多个远端MSDP对等体,用户可以从中选取其中一个或多个配置为静态RPF对等体。对于来自静态RPF对等体的SA消息不进行RPF检查,直接接受并向其它对等体转发。

 

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

对照图6-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之间的负载分担和冗余备份。

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

&  说明:

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

 

图6-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地址相同。

 

6.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)

6.2  MSDP配置任务简介

表6-1 MSDP配置任务简介

配置任务

说明

详细配置

配置MSDP基本功能

使能MSDP

必选

6.3.2 

创建MSDP对等体连接

必选

6.3.3 

配置静态RPF对等体

可选

6.3.4 

配置MSDP对等体连接

配置MSDP对等体描述信息

可选

6.4.2 

配置MSDP全连接组

可选

6.4.3 

配置MSDP对等体连接控制

可选

6.4.4 

配置SA消息

配置SA消息内容

可选

6.5.2 

配置SA请求消息

可选

6.5.3 

配置SA消息过滤规则

可选

6.5.4 

配置SA消息缓存

可选

6.5.5 

 

6.3  配置MSDP基本功能

&  说明:

本节的所有配置都是在PIM-SM域内的RP上进行的,这些RP将成为MSDP对等体的一端。

 

6.3.1  配置准备

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

l              配置任一单播路由协议,实现域内网络层互通

l              配置PIM-SM,实现域内组播

在配置MSDP基本功能之前,需准备以下数据:

l              MSDP对等体的IP地址

l              表示RP地址过滤策略的地址前缀列表

6.3.2  使能MSDP

在配置MSDP各功能之前,必须先使能MSDP。

表6-2 使能MSDP

操作

命令

说明

进入系统视图

system-view

-

使能IP组播路由

multicast routing-enable

必选

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

使能MSDP,并进入MSDP视图

msdp

必选

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

 

6.3.3  创建MSDP对等体连接

MSDP对等体使用地址对来标识,即本端MSDP对等体地址和远端MSDP对等体地址。需要在互为对等体的两端都创建MSDP对等体连接。

表6-3 创建MSDP对等体连接

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

创建MSDP对等体连接

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

必选

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

 

&  说明:

如果路由器某接口同时作为MSDP对等体和BGP对等体中的一端,则建议为MSDP对等体和BGP对等体配置相同的IP地址。

 

6.3.4  配置静态RPF对等体

通过配置静态RPF对等体可以免除对收到的SA消息进行RPF检查。

表6-4 配置静态RPF对等体

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置静态RPF对等体

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

必选

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

 

&  说明:

如果在一台路由器上只配置了一个MSDP对等体,则该MSDP对等体将被当作静态RPF对等体。

 

6.4  配置MSDP对等体连接

6.4.1  配置准备

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

l              配置任一单播路由协议,实现域内网络层互通

l              配置MSDP基本功能

在配置MSDP对等体连接之前,需准备以下数据:

l              MSDP对等体的描述信息

l              MSDP全连接组的名称

l              建立MSDP对等体连接的重试周期

6.4.2  配置MSDP对等体描述信息

管理员可以通过MSDP对等体的描述信息方便地区分不同的MSDP对等体,从而更好地管理MSDP对等体。

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

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置MSDP对等体的描述信息

peer peer-address description text

必选

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

 

6.4.3  配置MSDP全连接组

一个自治系统内可能包含多个MSDP对等体,为了避免这些MSDP对等体之间泛滥SA消息,可以使用MSDP全连接组来优化数据流量。

构成全连接组的MSDP对等体,一方面将来自组外并通过了RPF检查的SA消息转发给组内的其它成员;另一方面,对来自组内成员的SA消息不经RPF检查就接受,也不在组内进行重复转发。这种操作既避免了SA消息的泛滥,同时还由于不需要在MSDP对等体之间运行BGP,所以也就简化了对等体RPF检查机制。

通过为多个MSDP对等体配置相同的全连接组名称,可以建立MSDP全连接组。

表6-6 配置MSDP全连接组

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

把MSDP对等体加入全连接组

peer peer-address mesh-group name

必选

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

 

&  说明:

l      在配置MSDP全连接组之前,应使各路由器之间保持两两互连。

l      如果在同一MSDP对等体上多次配置加入全连接组,最后一个配置有效。

 

6.4.4  配置MSDP对等体连接控制

MSDP对等体之间使用TCP进行连接(端口号为639),用户可以手工关闭或重建MSDP对等体连接,灵活控制MSDP对等体之间的会话。当关闭了MSDP对等体连接后,MSDP对等体之间不再传递SA消息,TCP连接关闭,并不再重试建立连接,但配置信息会被保留。

当新创建了MSDP对等体、或重新启动了被关闭的MSDP对等体连接、或发生故障的MSDP对等体尝试恢复工作时,需要在MSDP对等体之间建立TCP连接。用户可以灵活地调整建立MSDP对等体连接的重试周期。

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

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

手工关闭MSDP对等体连接

shutdown peer-address

可选

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

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

timer retry interval

可选

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

 

6.5  配置SA消息

6.5.1  配置准备

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

l              配置任一单播路由协议,实现域内网络层互通

l              配置MSDP基本功能

在配置SA消息传递之前,需准备以下数据:

l              表示SA请求消息过滤规则的ACL

l              表示SA消息创建规则的ACL

l              表示接收或转发SA消息的过滤规则的ACL

l              封装在SA消息中组播报文的最小TTL值

l              缓存SA消息的最大数量

6.5.2  配置SA消息内容

某些组播源发送组播数据的时间间隔较长,超出了(S,G)表项的超时时间。在这种情况下,源端DR只能将组播数据逐个封装在注册消息中,发送给源端RP。源端RP使用SA消息将(S,G)信息传输给远端RP。然后,远端RP向源端DR发起加入过程,并创建SPT。由于(S,G)表项已超时,远端用户将永远无法收到该组播源发出的组播数据。

当在源端RP上使能了在SA消息中封装注册消息的功能后,源端RP会将注册消息封装在SA消息中发送出去。远端RP收到该SA消息后解封装,将注册消息中包含的组播数据沿RPT传输给本端用户。

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

表6-8 配置SA消息内容

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

使能在SA消息中封装注册消息

encap-data-enable

可选

缺省情况下,在SA消息中只包含(S,G)表项,不封装注册消息

配置接口地址为SA消息的RP地址

originating-rp interface-type interface-number

可选

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

 

6.5.3  配置SA请求消息

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

表6-9 配置SA请求消息

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

使能发送SA请求消息

peer peer-address request-sa-enable

可选

缺省情况下,不发送SA请求消息

配置SA请求消息的过滤规则

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

可选

缺省情况下,不对SA请求消息进行过滤

 

  注意:

在使能发送SA请求消息功能之前,必须首先关闭SA消息缓存机制,否则设备不会向外发送SA请求消息。

 

6.5.4  配置SA消息过滤规则

通过配置SA消息的创建规则,路由器可以在创建SA消息时,对其通告的(S,G)表项进行过滤,从而实现在创建SA消息时对组播源消息传播的控制。

对于SA消息组播源信息的传播控制,除了可以控制SA消息的创建,还可以控制对SA消息的转发和接收:

l              通过配置接收或转发SA消息的过滤规则,路由器可以在接收或转发SA消息时,对其通告的(S,G)转发项进行过滤,从而实现在接收和转发SA消息时,对组播源消息传播的控制。

l              封装了组播数据包的SA消息,只有当其IP头中的TTL值超过阈值时才能被转发给域外指定的MSDP对等体,因此可以通过配置封装在SA消息中组播数据包的TTL阈值来控制这类SA消息转发。

表6-10 配置SA消息过滤规则

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

配置SA消息的创建规则

import-source [ acl acl-number ]

必选

缺省情况下,在创建SA消息时,对其通告的(S,G)项不作限制

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

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

必选

缺省情况下,不对接收或转发的SA消息进行过滤

配置封装在SA消息中组播报文的最小TTL值

peer peer-address minimum-ttl ttl-value

可选

缺省情况下,封装在SA消息中组播报文的最小TTL值为0

 

6.5.5  配置SA消息缓存

为了减少获取组播源信息的时延,可以在路由器上缓存SA消息。缓存的消息越多,所占用的路由器内存空间越大。

在使能了SA消息缓存机制后,当收到一个新的组加入消息时,路由器并不会主动向其MSDP对等体发送SA请求消息,而是分如下两种情况分别处理:

l              如果缓存中尚未存有SA消息,便等候其MSDP对等体在下一个周期发来的SA消息;

l              如果缓存中已存有SA消息,则直接从其中获得所有活动源的信息,并加入到相应的SPT。

有时为了防止路由器受到DoS(Denial of Service,拒绝服务)攻击,可以配置允许路由器缓存SA消息的最大数量。

表6-11 配置SA消息缓存

操作

命令

说明

进入系统视图

system-view

-

进入MSDP视图

msdp

-

使能SA消息缓存机制

cache-sa-enable

可选

在缺省情况下,SA消息缓存机制处于使能状态

配置缓存SA消息的最大数量

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

可选

缺省情况下,缓存SA的最大数量为8192

 

6.6  MSDP显示和维护

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

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

表6-12 MSDP显示和维护

操作

命令

查看MSDP对等体的简要信息

display msdp brief [ state { connect | down | listen | shutdown | up } ]

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

display msdp peer-status [ peer-address ]

查看MSDP缓存中的(S,G)表项信息

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

查看MSDP缓存中的SA消息数量

display msdp sa-count [ as-number ]

重置与MSDP对等体的TCP连接

reset msdp peer [ peer-address ]

清除MSDP缓存中的(S,G)表项

reset msdp sa-cache [ group-address ]

清除MSDP对等体的统计信息

reset msdp statistics [ peer-address ]

 

6.7   MSDP典型配置举例

6.7.1  借助BGP路由的AS间组播配置举例

1. 组网需求

l              网络中存在两个自治系统:PIM-SM 1属于AS 100,PIM-SM 2和PIM-SM 3属于AS 200。各AS内部采用OSPF进行互联,AS之间采用BGP交换路由信息;

l              每个PIM-SM域分别拥有0或1个组播源和接收者,域内运行OSPF协议以提供单播路由;

l              将Switch B、Switch C和Switch E各自的Loopback0接口分别配置为各自PIM-SM域的C-BSR和C-RP;

l              在Switch B与Switch C之间通过EBGP建立MSDP对等体关系,在Switch C与Switch E之间通过IBGP建立MSDP对等体关系。

2. 组网图

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int103

10.110.1.2/24

Switch D

Vlan-int104

10.110.4.2/24

 

Vlan-int100

10.110.2.1/24

 

Vlan-int300

10.110.5.1/24

 

Vlan-int200

10.110.3.1/24

Switch E

Vlan-int105

10.110.6.1/24

Switch B

Vlan-int103

10.110.1.1/24

 

Vlan-int102

192.168.3.2/24

 

Vlan-int101

192.168.1.1/24

 

Loop0

3.3.3.3/32

 

Loop0

1.1.1.1/32

Switch F

Vlan-int105

10.110.6.2/24

Switch C

Vlan-int104

10.110.4.1/24

 

Vlan-int400

10.110.7.1/24

 

Vlan-int102

192.168.3.1/24

Source 1

-

10.110.2.100/24

 

Vlan-int101

192.168.1.2/24

Source 2

-

10.110.5.100/24

 

Loop0

2.2.2.2/32

 

 

 

图6-5 借助BGP路由的AS间组播配置组网图

3. 配置步骤

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

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

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

(2)        使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界

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

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchA] interface vlan-interface 103

[SwitchA-Vlan-interface103] pim sm

[SwitchA-Vlan-interface103] quit

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] pim sm

[SwitchA-Vlan-interface100] quit

[SwitchA] interface vlan-interface 200

[SwitchA-Vlan-interface200] igmp enable

[SwitchA-Vlan-interface200] pim sm

[SwitchA-Vlan-interface200] quit

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

# 在Switch B上配置BSR的服务边界。

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] pim bsr-boundary

[SwitchB-Vlan-interface101] quit

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

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

# 在Switch B上将Loopback0接口配置为C-BSR和C-RP。

[SwitchB] pim

[SwitchB-pim] c-bsr loopback 0

[SwitchB-pim] c-rp loopback 0

[SwitchB-pim] quit

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

(4)        配置BGP协议,将BGP与OSPF互相引入

# 在Switch B上配置EBGP,并引入OSPF路由。

[SwitchB] bgp 100

[SwitchB-bgp] router-id 1.1.1.1

[SwitchB-bgp] peer 192.168.1.2 as-number 200

[SwitchB-bgp] import-route ospf 1

[SwitchB-bgp] quit

# 在Switch C上配置IBGP和EBGP,并引入OSPF路由。

[SwitchC] bgp 200

[SwitchC-bgp] router-id 2.2.2.2

[SwitchC-bgp] peer 192.168.1.1 as-number 100

[SwitchC-bgp] peer 192.168.3.2 as-number 200

[SwitchC-bgp] import-route ospf 1

[SwitchC-bgp] quit

# 在Switch E上配置IBGP,并引入OSPF路由。

[SwitchE] bgp 200

[SwitchE-bgp] router-id 3.3.3.3

[SwitchE-bgp] peer 192.168.3.1 as-number 200

[SwitchE-bgp] import-route ospf 1

[SwitchE-bgp] quit

# 在Switch B的OSPF中引入BGP。

[SwitchB] ospf 1

[SwitchB-ospf-1] import-route bgp

[SwitchB-ospf-1] quit

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

(5)        配置MSDP对等体

# 在Switch B上配置MSDP对等体。

[SwitchB] msdp

[SwitchB-msdp] peer 192.168.1.2 connect-interface vlan-interface 101

[SwitchB-msdp] quit

# 在Switch C上配置MSDP对等体。

[SwitchC] msdp

[SwitchC-msdp] peer 192.168.1.1 connect-interface vlan-interface 101

[SwitchC-msdp] peer 192.168.3.2 connect-interface vlan-interface 102

[SwitchC-msdp] quit

# 在Switch E上配置MSDP对等体。

[SwitchE] msdp

[SwitchE-msdp] peer 192.168.3.1 connect-interface vlan-interface 102

[SwitchE-msdp] quit

(6)        检验配置效果

通过使用display bgp peer命令可以查看交换机之间BGP对等体的关系。例如:

# 查看Switch BBGP对等体关系的信息。

[SwitchB] display bgp peer

 

 BGP local router ID : 1.1.1.1

 Local AS number : 100

 Total number of peers : 1                 Peers in established state : 1

 

  Peer         V  AS  MsgRcvd  MsgSent  OutQ PrefRcv Up/Down  State

 

  192.168.1.2  4 200       24       21     0       6 00:13:09 Established

# 查看Switch C上BGP对等体关系的信息。

[SwitchC] display bgp peer

 

 BGP local router ID : 2.2.2.2

 Local AS number : 200

 Total number of peers : 2                 Peers in established state : 2

 

  Peer         V  AS  MsgRcvd  MsgSent  OutQ PrefRcv Up/Down  State

 

  192.168.1.1  4 100       18       16     0       1 00:12:04 Established

  192.168.3.2  4 200       21       20     0       6 00:12:05 Established

# 查看Switch E上BGP对等体关系的信息。

[SwitchE] display bgp peer

 

BGP local router ID : 3.3.3.3

 Local AS number : 200

 Total number of peers : 1                 Peers in established state : 1

 

  Peer         V  AS  MsgRcvd  MsgSent  OutQ PrefRcv Up/Down  State

 

  192.168.3.1  4 200       16       14     0       1 00:10:58 Established

通过使用display bgp routing-table命令可以查看交换机上的BGP路由表。例如:

# 查看Switch C上BGP路由表的信息。

[SwitchC] display bgp routing-table

 

 Total Number of Routes: 13

 

 BGP Local router ID is 2.2.2.2

 Status codes: * - valid, > - best, d - damped,

               h - history,  i - internal, s - suppressed, S - Stale

               Origin : i - IGP, e - EGP, ? - incomplete

      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 

 *>   1.1.1.1/32        192.168.1.1   0                    0       100?

 *>i  2.2.2.2/32        192.168.3.2   0          100       0       ?

 *>   3.3.3.3/32        0.0.0.0       0                    0       ?

 *>   192.168.1.0       0.0.0.0       0                    0       ?

 *                      192.168.1.1   0                    0       100?

 *>   192.168.1.1/32    0.0.0.0       0                    0       ?

 *>   192.168.1.2/32    0.0.0.0       0                    0       ?

 *                      192.168.1.1   0                    0       100?

 *>   192.168.3.0       0.0.0.0       0                    0       ?

 * i                    192.168.3.2   0          100       0       ?

 *>   192.168.3.1/32    0.0.0.0       0                    0       ?

 *>   192.168.3.2/32    0.0.0.0       0                    0       ?

 * i                    192.168.3.2   0          100       0       ?

当PIM-SM 1和PIM-SM 2域内的组播源Source 1和Source 2发送组播信息时,PIM-SM 1和PIM-SM 3域内的接收者(Receiver)能收到该组播信息。通过使用display msdp brief命令可以查看交换机之间MSDP对等体建立情况。例如:

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

[SwitchB] display msdp brief

MSDP Peer Brief Information

  Configured   Up           Listen       Connect      Shutdown     Down

  1            1            0            0            0            0

 

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

  192.168.1.2        Up        00:12:27       200    13         0

# 查看Switch C上MSDP对等体建立情况的简要信息。

[SwitchC] display msdp brief

MSDP Peer Brief Information

  Configured   Up           Listen       Connect      Shutdown     Down

  2            2            0            0            0            0

 

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

  192.168.3.2       Up       00:15:32        200    8          0

  192.168.1.1       Up       00:06:39        100    13         0

# 查看Switch E上MSDP对等体建立情况的简要信息。

[SwitchE] display msdp brief

MSDP Peer Brief Information

  Configured   Up           Listen       Connect      Shutdown     Down

  1            1            0            0            0            0

 

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

  192.168.3.1       Up       01:07:08        200    8          0

# 查看Switch B上MSDP对等体的详细信息。

[SwitchB] display msdp peer-status

  MSDP Peer 192.168.1.2, AS 200

  Description:

  Information about connection status:

    State: Up

    Up/down time: 00:15:47

    Resets: 0

    Connection interface: Vlan-interface101 (192.168.1.1)

    Number of sent/received messages: 16/16

    Number of discarded output messages: 0

    Elapsed time since last connection or counters clear: 00:17:51

  Information about (Source, Group)-based SA filtering policy:

    Import policy: none

    Export policy: none

  Information about SA-Requests:

    Policy to accept SA-Request messages: none

    Sending SA-Requests status: disable

  Minimum TTL to forward SA with encapsulated data: 0

  SAs learned from this peer: 0, SA-cache maximum for the peer: none

  Input queue size: 0, Output queue size: 0

  Counters for MSDP message:

    Count of RPF check failure: 0

    Incoming/outgoing SA messages: 0/0

    Incoming/outgoing SA requests: 0/0

    Incoming/outgoing SA responses: 0/0

    Incoming/outgoing data packets: 0/0

6.7.2  借助静态RPF对等体的AS间组播配置举例

1. 组网需求

l              网络中存在两个自治系统:PIM-SM 1属于AS 100,PIM-SM 2和PIM-SM 3属于AS 200。各AS内部采用OSPF进行互联,AS之间采用BGP交换路由信息;

l              每个PIM-SM域分别拥有0或1个组播源和接收者,域内运行OSPF以提供单播路由;

l              PIM-SM 2和PIM-SM 3都是STUB区域,这两个区域与PIM-SM 1之间无需运行BGP或MBGP,而是与之建立静态RPF对等体,从而避免对SA消息进行RPF检查;

l              将Switch B、Switch C和Switch E各自的Loopback0接口分别配置为各自PIM-SM域的C-BSR和C-RP;

l              Switch B的静态RPF对等体为Switch C和Switch E,Switch C和Switch E也分别只有Switch B这一个静态RPF对等体,任何交换机都能够接收来自其静态RPF对等体的且被相应过滤策略允许的SA消息。

2. 组网图

设备

接口

IP地址

设备

接口

IP地址

Switch A

Vlan-int103

10.110.1.2/24

Switch D

Vlan-int104

10.110.4.2/24

 

Vlan-int100

10.110.2.1/24

 

Vlan-int300

10.110.5.1/24

 

Vlan-int200

10.110.3.1/24

Switch E

Vlan-int105

10.110.6.1/24

Switch B

Vlan-int103

10.110.1.1/24

 

Vlan-int102

192.168.3.2/24

 

Vlan-int101

192.168.1.1/24

 

Loop0

3.3.3.3/32

 

Vlan-int102

192.168.3.1/24

Switch F

Vlan-int105

10.110.6.2/24

 

Loop0

1.1.1.1/32

 

Vlan-int400

10.110.7.1/24

Switch C

Vlan-int101

192.168.1.2/24

Source 1

-

10.110.2.100/24

 

Vlan-int104

10.110.4.1/24

Source 2

-

10.110.5.100/24

 

Loop0

2.2.2.2/32

 

 

 

图6-6 借助静态RPF对等体的AS间组播配置组网图

3. 配置步骤

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

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

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

(2)        使能IP组播路由,使能PIM-SM和IGMP,并配置BSR的服务边界

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

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchA] interface vlan-interface 103

[SwitchA-Vlan-interface103] pim sm

[SwitchA-Vlan-interface103] quit

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] pim sm

[SwitchA-Vlan-interface100] quit

[SwitchA] interface vlan-interface 200

[SwitchA-Vlan-interface200] igmp enable

[SwitchA-Vlan-interface200] pim sm

[SwitchA-Vlan-interface200] quit

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

# 在Switch B上配置BSR的服务边界。

[SwitchB] interface vlan-interface 102

[SwitchB-Vlan-interface102] pim bsr-boundary

[SwitchB-Vlan-interface102] quit

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] pim bsr-boundary

[SwitchB-Vlan-interface101] quit

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

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

# 在Switch B上将Loopback0接口配置为C-BSR和C-RP。

[SwitchB] pim

[SwitchB-pim] c-bsr loopback 0

[SwitchB-pim] c-rp loopback 0

[SwitchB-pim] quit

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

(4)        配置静态RPF对等体

# 配置Switch C和Switch E作为Switch B的MSDP对等体及静态RPF对等体。

[SwitchB] ip ip-prefix list-df permit 192.168.0.0 16 greater-equal 16 less-equal 32

[SwitchB] msdp

[SwitchB-msdp] peer 192.168.3.2 connect-interface vlan-interface 102

[SwitchB-msdp] peer 192.168.1.2 connect-interface vlan-interface 101

[SwitchB-msdp] static-rpf-peer 192.168.3.2 rp-policy list-df

[SwitchB-msdp] static-rpf-peer 192.168.1.2 rp-policy list-df

[SwitchB-msdp] quit

# 配置Switch B作为Switch C的MSDP对等体及静态RPF对等体。

[SwitchC] ip ip-prefix list-c permit 192.168.0.0 16 greater-equal 16 less-equal 32

[SwitchC] msdp

[SwitchC-msdp] peer 192.168.1.1 connect-interface vlan-interface 101

[SwitchC-msdp] static-rpf-peer 192.168.1.1 rp-policy list-c

[SwitchC-msdp] quit

# 配置Switch B作为Switch E的MSDP对等体及静态RPF对等体。

[SwitchE] ip ip-prefix list-c permit 192.168.0.0 16 greater-equal 16 less-equal 32

[SwitchE] msdp

[SwitchE-msdp] peer 192.168.3.1 connect-interface vlan-interface 102

[SwitchE-msdp] static-rpf-peer 192.168.3.1 rp-policy list-c

[SwitchE-msdp] quit

(5)        检验配置效果

通过使用display bgp peer命令可以查看交换机之间BGP对等体建立情况,如果无任何信息输出,说明交换机之间未建立BGP对等体关系。

当PIM-SM 1和PIM-SM 2域内的组播源Source 1和Source 2发送组播信息时,PIM-SM 1和PIM-SM 3域内的接收者(Receiver)能收到该组播信息,通过使用display msdp brief命令可以查看交换机之间MSDP对等体的建立情况。例如:

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

[SwitchB] display msdp brief

MSDP Peer Brief Information

  Configured   Up           Listen       Connect      Shutdown     Down

  2            2            0            0            0            0

 

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

  192.168.3.2       Up       01:07:08        ?      8          0

  192.168.1.2       Up       00:16:39        ?      13         0

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

[SwitchC] display msdp brief

MSDP Peer Brief Information

  Configured   Up           Listen       Connect      Shutdown     Down

  1            1            0            0            0            0

 

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

  192.168.1.1       Up       01:07:09        ?      8          0

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

[SwitchE] display msdp brief

MSDP Peer Brief Information

  Configured   Up           Listen       Connect      Shutdown     Down

  1            1            0            0            0            0

 

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

  192.168.3.1       Up       00:16:40        ?      13         0

6.7.3  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. 组网图

设备

接口

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

图6-7 Anycast RP应用配置组网图

3. 配置步骤

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

请按照图6-7配置各接口的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

[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

  Configured   Up           Listen       Connect      Shutdown     Down

  1            1            0            0            0            0

 

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

  2.2.2.2           Up       00:10:17        ?      0          0

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

[SwitchD] display msdp brief

MSDP Peer Brief Information

  Configured   Up           Listen       Connect      Shutdown     Down

  1            1            0            0            0            0

 

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

  1.1.1.1           Up       00:10:18        ?      0          0

通过使用display pim routing-table命令可以查看交换机上的PIM路由。

当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路由的信息。

[SwitchB] display pim routing-table

 Total 1 (*, G) entry; 1 (S, G) entry

 

 (*, 225.1.1.1)

     RP: 10.1.1.1 (local)

     Protocol: pim-sm, Flag: WC

     UpTime: 00:15:04

     Upstream interface: Register

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlan-interface100

             Protocol: igmp, UpTime: 00:15:04, Expires: -

 

 (10.110.5.100, 225.1.1.1)

     RP: 10.1.1.1 (local)

     Protocol: pim-sm, Flag: SPT 2MSDP ACT

     UpTime: 00:46:28

     Upstream interface: Vlan-interface103

         Upstream neighbor: 10.110.2.2

         RPF prime neighbor: 10.110.2.2

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlan-interface100

             Protocol: pim-sm, UpTime:  - , Expires:  -

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

[SwitchD] display pim routing-table

Switch D上没有信息输出。

Receiver 1离开组播组G,Source 1也停止向组播组G发送组播数据。当Source 210.110.6.100/24)开始向组播组G发送组播信息时,Receiver 2加入组播组G。通过比较Switch B与Switch D上PIM路由的显示信息,可知当前的有效RP为Switch D:Source 2向Switch D注册,Receiver 2向Switch D加入。

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

[SwitchB] display pim routing-table

Switch B上没有信息输出。

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

[SwitchD] display pim routing-table

 Total 1 (*, G) entry; 1 (S, G) entry

 

 (*, 225.1.1.1)

     RP: 10.1.1.1 (local)

     Protocol: pim-sm, Flag: WC

     UpTime: 00:12:07

     Upstream interface: Register

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlan-interface200

             Protocol: igmp, UpTime: 00:12:07, Expires: -

 

 (10.110.6.100, 225.1.1.1)

     RP: 10.1.1.1 (local)

     Protocol: pim-sm, Flag: SPT 2MSDP ACT

     UpTime: 00:40:22

     Upstream interface: Vlan-interface104

         Upstream neighbor: 10.110.4.2

         RPF prime neighbor: 10.110.4.2

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlan-interface200

             Protocol: pim-sm, UpTime:  - , Expires:  -

6.8  常见配置错误举例

6.8.1  MSDP对等体一直处于down状态

1. 故障现象

配置了MSDP对等体,但其状态一直显示为down。

2. 分析

l              所配置的本地接口地址与MSDP对等体地址之间,建立起基于TCP连接的MSDP对等体关系;

l              如果本地接口地址与对端路由器上所配置的MSDP对等体地址不一致,TCP连接就不会建立起来;

l              如果两个MSDP对等体之间没有路由,TCP连接也不会建立起来。

3. 处理过程

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

(2)        检查将成为MSDP对等体的两个路由器间是否存在到达对方的单播路由。

(3)        检查MSDP对等体之间的接口地址是否匹配。通过命令display current-configuration查看本地接口地址是否与对端MSDP对等体地址一致,应确保一致。

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

1. 故障现象

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

2. 分析

l              命令import-source用于控制将本域的(S,G)项通过SA消息发送给MSDP对等体。如果没有指定参数acl-number则表示默认过滤掉所有的(S,G)项,即不通告本域的所有(S,G)项;

l              未配置import-source命令时,系统将发送本域的所有(S,G)信息。如果MSDP没有将本域的(S,G)项通过SA消息发送出去,应检查import-source命令的配置是否正确。

3. 处理过程

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

(2)        检查将成为MSDP对等体的两个路由器间是否存在到达对方的单播路由。

(3)        检查命令import-source及其参数acl-number的配置情况,确保ACL规则能够过滤合适的(S,G)信息。

6.8.3  Anycast RP应用中RP间互通信息异常

1. 故障现象

在Anycast RP的应用中,各RP之间没有互相交换其本地注册的(S,G)信息。

2. 分析

l              在Anycast RP应用中,通过将同一PIM-SM域内的RP配置为MSDP对等体,可以实现RP间的负载分担;

l              MSDP对等体地址不能与Anycast RP地址相同,且C-BSR和C-RP必须配置在不同的设备或接口上;

l              在使用originating-rp命令进行配置后,MSDP将利用该命令所指定的接口地址替换SA消息中的RP地址;

l              当MSDP对等体对收到的SA消息进行RPF检查时,如果发现RP地址与本地配置的RP地址相同,将拒绝接收SA消息。

3. 处理过程

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

(2)        检查将成为MSDP对等体的两个路由器间是否存在到达对方的单播路由。

(3)        检查originating-rp命令的配置情况。在Anycast RP的应用环境中,一定要配置originating-rp命令,而且originating-rp命令所指定的接口地址要与建立MSDP对等体连接的本地接口地址相同。

(4)        检查所配置的C-BSR地址是否与Anycast RP的地址不同,应确保两个地址不同。

 


第7章  组播路由与转发配置

&  说明:

本文所涉及的路由器和路由器图标,代表了一般意义下的路由器或运行了IP组播路由协议的三层交换机。

 

7.1  组播路由与转发简介

在组播实现中,组播路由和转发分为三种表:

l              每个组播路由协议都有一个协议自身的路由表,如PIM路由表(PIM Routing-Table);

l              各组播路由协议的组播路由信息经过综合形成一个总的组播路由表(Multicast Routing-Table);

l              组播转发表(Multicast Forwarding-Table)直接用于控制组播数据包的转发。

组播路由表由一组(S,G)表项组成,其中(S,G)表示由源S向组播组G发送组播数据的路由信息。如果路由器支持多种组播路由协议,则其组播路由表中将包括由多种协议生成的组播路由。路由器根据组播路由和转发策略,从组播路由表中选出最优的组播路由,并下发到组播转发表中。

7.1.1  RPF机制

组播路由协议在创建组播路由表项时,运用了RPF(Reverse Path Forwarding,逆向路径转发)机制,从而确保组播数据能够沿正确的路径传输。

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

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

2. RPF检查

执行RPF检查的依据是单播路由或组播静态路由。单播路由表中汇集了到达各个目的网段的最短路径,而组播静态路由表中则列出了用户通过手工静态配置指定的RPF路由信息。组播路由协议并不独立维护某种单播路由,而是依赖于网络中现有的单播路由信息或组播静态路由来创建组播路由表项。

在执行RPF检查时,路由器同时查找单播路由表和组播静态路由表,具体过程如下:

(1)        首先分别从单播路由表和组播静态路由表中各选出一条最优路由:

l              以“报文源”的IP地址为目的地址查找单播路由表,自动选取一条最优单播路由。对应表项中的出接口为RPF接口,下一跳为RPF邻居。路由器认为来自RPF邻居且由该RPF接口收到的组播报文所经历的路径是从源S到本地的最短路径。

l              以“报文源”的IP地址为指定源地址查找组播静态路由表,自动选取一条最优组播静态路由。对应表项明确指定了RPF接口和RPF邻居。

(2)        然后从这两条最优路由中选择一条作为RPF路由:

l              如果配置了按照最长匹配选择路由,则从这两条路由中选出最长匹配的那条路由;如果这两条路由的掩码一样,则选择其中优先级最高的那条路由;如果它们的优先级也相同,则按照组播静态路由、单播路由的顺序进行选择。

l              如果没有配置按照最长匹配选择路由,则从这两条路由中选出优先级最高的那条路由;如果它们的优先级相同,则按照组播静态路由、单播路由的顺序进行选择。

&  说明:

根据组播报文传输的具体情况不同,“报文源”所代表的具体含义也不同:

l      如果当前报文沿从组播源到接收者的SPT(Shortest Path Tree,最短路径树)或组播源到RP(Rendezvous Point,汇集点)的源树进行传输,则以组播源为“报文源”进行RPF检查;

l      如果当前报文沿从RP到接收者的RPT(Rendezvous Point Tree,共享树)进行传输,则以RP为“报文源”进行RPF检查;

l      如果当前报文为BSR(BootStrap Router,自举路由器)报文,沿从BSR到各路由器的路径进行传输,则以BSR为“报文源”进行RPF检查。

有关SPT、RPT、RP和BSR的详细介绍,请参见“第5章  PIM配置”。

 

图7-1所示,假设网络中单播路由畅通,Switch C上未配置组播静态路由。组播报文沿从组播源(Source)到接收者(Receiver)的SPT进行传输。

图7-1 RPF检查过程

l              Switch C从接口Vlan-interface1收到来自Source的组播报文,组播转发表中没有相应的转发表项。执行RPF检查,发现单播路由表中到达网段192.168.0.0/24的出接口是Vlan-interface2,于是判断该报文实际到达的接口不是RPF接口。RPF检查失败,该组播报文被丢弃。

l              Switch C从接口Vlan-interface2收到来自Source的组播报文,组播转发表中没有相应的转发表项。执行RPF检查,发现单播路由表中到达网段192.168.0.0/24的出接口正是该报文实际到达的接口。RPF检查通过,向所有的出接口转发该报文。

7.1.2  组播静态路由

当组播的网络拓扑结构与单播网络拓扑结构相同时,接收者通过单播路由可以收到组播数据。然而组播的网络拓扑与单播网络拓扑有可能不同,而且网络中的一些路由器可能只支持单播而不支持组播。在这种情况下,可以通过配置组播静态路由为组播数据和单播数据提供不同的传输路径。需要注意以下两点:

l              组播静态路由的作用只在于影响RPF检查,而不能用于指导组播数据转发,故又称为RPF静态路由。;

l              组播静态路由仅在所配置的组播路由器上生效,不会以任何方式被广播或者引入给其它路由器。

组播静态路由是RPF检查的重要依据。当配置了组播静态路由后,在进行RPF检查时,系统会同时查找单播路由表和组播静态路由表,从中分别选出最优单播路由和组播静态路由,通过比较以确定使用哪条作为RPF路由。

图7-2 组播静态路由示意图

图7-2所示,当网络中没有配置组播静态路由时,Switch C到组播源(Source)的RPF邻居为Switch A,从Source发出的组播信息沿Switch A—Switch C的路径传输,与单播路径一致;当在Switch C上配置了组播静态路由,指定从Switch C到Source的RPF邻居为Switch B后,从Source发出的组播信息将改变传输路径,沿Switch A—Switch B—Switch C的路径传输。

7.1.3  组播路径跟踪

Multicast traceroute(组播路径跟踪)用来跟踪组播数据从组播源到最后一跳路由器所经过的路径。

1. Multicast traceroute基本概念

(1)        最后一跳路由器(Last-hop Router):如果某路由器有一个接口的IP地址与指定地址在同一个网段内,具备组播功能,且能够向该网段转发特定组播源发来的组播流,则称该路由器为最后一跳路由器。

(2)        第一跳路由器(First-hop Router):与组播源直连的路由器。

(3)        查询器(Querier):触发组播路径跟踪的路由器。

2. Multicast traceroute报文简介

Multicast traceroute报文是一种特殊的IGMP报文,与普通IGMP报文的区别在于其类型字段为0x1F/0x1E,且其目的IP地址为单播地址。Multicast traceroute报文分为以下三种类型:

l              Query报文:类型字段为0x1F

l              Request报文:类型字段为0x1F

l              Response报文:类型字段为0x1E

3. Multicast traceroute执行步骤

(1)        查询器向最后一跳路由器发送Query报文;

(2)        最后一跳路由器在收到的Query报文后加上本地响应数据块转换成Request报文,查找到上游邻居后向其单播发送该Request报文;

(3)        最后一跳路由器到组播源之间的每一跳都在Request报文之后附加一个响应数据块,并向其上游邻居单播转发;

(4)        第一跳路由器在收到Request报文后,将其报文类型改为Response报文,向查询器单播发送完整的报文。

7.2  组播路由与转发配置任务简介

表7-1 组播路由与转发配置任务简介

配置任务

说明

详细配置

使能IP组播路由

必选

7.3.2 

配置组播静态路由

可选

7.3.3 

配置组播路由匹配

可选

7.3.4 

配置组播流量分担

可选

7.3.5 

配置组播转发范围

可选

7.3.6 

配置组播转发表容量

可选

7.3.7 

跟踪组播数据的传输路径

可选

7.3.8 

 

7.3  配置组播路由与转发

7.3.1  配置准备

在配置组播路由与转发之前,需完成以下任务:

l              配置任一单播路由协议,实现域内网络层互通

l              配置PIM-DM(或PIM-SM)

在配置组播路由与转发之前,需准备以下数据:

l              组播转发的最小TTL值

l              组播转发表中一条路由项的最大下行节点数目

l              组播转发表的最大路由数目

7.3.2  使能IP组播路由

在配置各项三层组播功能之前,必须首先使能IP组播路由。

表7-2 使能IP组播路由

操作

命令

说明

进入系统视图

system-view

-

使能IP组播路由

multicast routing-enable

必选

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

 

  注意:

IP组播不支持从IP地址网段应用。也就是说,当为接口配置了从IP地址后,组播数据并不能通过从IP地址所属的网段进行路由和转发,而只能通过主IP地址进行路由和转发。

有关主、从IP地址的详细介绍,请参见“IP地址配置-IP性能配置”。

 

7.3.3  配置组播静态路由

根据具体应用环境的不同,组播静态路由有以下两种主要功能:

l              改变RPF路由:当网络中的组播拓扑结构与单播拓扑结构相同时,组播数据的传输路径与单播相同。通过配置组播静态路由可以改变RPF路由,从而为组播数据创建一条与单播不同的传输路径。

l              衔接RPF路由:当单播路由被阻断时,由于没有RPF路由而无法进行包括组播数据在内的数据转发。通过配置组播静态路由可以生成RPF路由,从而创建组播路由表项以指导组播数据的转发。

表7-3 配置组播静态路由

操作

命令

说明

进入系统视图

system-view

-

配置组播静态路由

ip rpf-route-static source-address { mask | mask-length } [ protocol [ process-id ] ] [ route-policy policy-name ] { rpf-nbr-address | interface-type interface-number } [ preference preference ] [ order order-number ]

必选

缺省情况下,没有配置组播静态路由

 

  注意:

在配置组播静态路由时,若RPF邻居接口的接口类型是Loopback或Vlan-interface时,不能使用指定接口(interface-type interface-number)的方式指定RPF邻居,而只能使用指定地址(rpf-nbr-address)的方式指定RPF邻居。

 

7.3.4  配置组播路由匹配

对于同一网段的多条路由,路由器可以按照路由配置的先后顺序进行匹配。

表7-4 配置组播路由匹配

操作

命令

说明

进入系统视图

system-view

-

配置按照最长匹配选择路由

multicast longest-match

必选

缺省情况下,按照路由表项的顺序来选择路由

 

7.3.5  配置组播流量分担

使能了对组播流量进行负载分担的功能后,组播流量将平均分布在各条路由中,具体配置如下。

表7-5 配置组播流量分担

操作

命令

说明

进入系统视图

system-view

-

配置对组播流量进行负载分担

multicast load-splitting { source | source-group }

必选

缺省情况下,不对组播流量进行负载分担

 

7.3.6  配置组播转发范围

组播信息在网络中的转发并不是漫无边际的,每个组播组对应的组播信息都必须在确定的范围内传递。

可以在所有支持组播转发的接口上配置针对某个组播组的转发边界。组播转发边界为指定范围的组播组划定了边界条件,如果组播报文的目的地址与边界条件匹配,就停止转发。当在一个接口上配置了组播转发边界后,将不能从该接口转发组播报文(包括本机发出的组播报文),也不能从该接口接收组播报文。

表7-6 配置组播转发范围

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置组播转发边界

multicast boundary group-address { mask | mask-length }

必选

缺省情况下,没有配置组播转发边界

 

7.3.7  配置组播转发表容量

为了防止路由器的内存被大量的组播路由项耗尽,从而导致路由器性能下降,可以对组播路由项的数量进行限制。用户可以根据实际组网情况和业务性能要求对组播路由表中的表项数量进行限制,但不得超过系统所允许的路由表项数目的最大值,该值随设备的不同而有所差别,请以设备的实际情况为准。

如果组播转发表中一条路由项最大下行节点数目(即最大出接口数目)的配置值小于当前值,则超出数目的下行节点并不会被立刻删除,而必须由组播路由协议来删除,同时新增的下行节点将无法添加到转发表的该路由项中。

如果组播转发表最大路由数目的配置值小于当前值,则超出数目的路由并不会立刻被删除,而必须由组播路由协议来删除,同时新增的路由将无法添加到转发表中。

表7-7 配置组播转发表容量

操作

命令

说明

进入系统视图

system-view

-

配置组播转发表中一条路由项的最大下行节点数目

multicast forwarding-table downstream-limit limit

可选

缺省情况下,组播转发表中一条路由项的最大下行节点数目为128

配置组播转发表的最大路由数目

multicast forwarding-table route-limit limit

可选

缺省情况下,组播转发表的最大路由数目为1000

 

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

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

表7-8 跟踪组播数据的传输路径

操作

命令

说明

跟踪组播数据的传输路径

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

必选

可在任意视图下执行

 

7.4  组播路由与转发显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后组播路由与转发的信息,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除组播路由与转发的统计信息。

表7-9 组播路由与转发显示和维护

操作

命令

查看组播边界信息

display multicast boundary [ group-address [ mask | mask-length ] ] [ interface interface-type interface-number ]

查看组播转发表信息

display multicast forwarding-table [ source-address [ mask { mask | mask-length } ] | group-address [ mask { mask | mask-length } ] | incoming-interface { interface-type interface-number | register } | outgoing-interface { { exclude | include | match } { interface-type interface-number | register } } | statistics | slot slot-id ] * [ port-info ]

查看组播路由表信息

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

查看组播静态路由信息

display multicast routing-table static [ config ] [ source-address { mask-length | mask } ]

查看组播源的RPF信息

display multicast rpf-info source-address [ group-address ]

清除组播转发表中的转发项

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

清除组播路由表中的路由项

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

 

  注意:

l      执行reset命令将清除组播路由表或组播转发表中的信息,可能导致组播信息无法正常传输;

l      清除组播路由表中的路由项后,组播转发表中的相应表项也将随之删除;

l      清除组播转发表中的转发项后,组播路由表中的相应表项也将随之删除。

 

7.5  组播路由与转发典型配置举例

7.5.1  改变RPF路由配置举例

1. 组网需求

l              网络中运行PIM-DM,所有交换机都支持组播功能;

l              Switch A、Switch B和Switch C之间运行OSPF协议;

l              通常情况下,Receiver能通过Switch A—Switch B这条与单播路径相同的路径接收来自Source的组播信息;

l              要求通过配置,使Receiver能通过Switch A—Switch C—Switch B这条与单播路径不同的路径接收来自Source的组播信息。

2. 组网图

图7-3 改变RPF路由配置举例

3. 配置步骤

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

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

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

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

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

<SwitchB> system-view

[SwitchB] multicast routing-enable

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] igmp enable

[SwitchB-Vlan-interface100] pim dm

[SwitchB-Vlan-interface100] quit

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] pim dm

[SwitchB-Vlan-interface101] quit

[SwitchB] interface vlan-interface 102

[SwitchB-Vlan-interface102] pim dm

[SwitchB-Vlan-interface102] quit

# 在Switch A上使能IP组播路由,并在各接口上使能PIM-DM。

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchA] interface vlan-interface 200

[SwitchA-Vlan-interface200] pim dm

[SwitchA-Vlan-interface200] quit

[SwitchA] interface vlan-interface 102

[SwitchA-Vlan-interface102] pim dm

[SwitchA-Vlan-interface102] quit

[SwitchA] interface vlan-interface 103

[SwitchA-Vlan-interface103] pim dm

[SwitchA-Vlan-interface103] quit

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

# 在Switch B上使用display multicast rpf-info命令查看到Source的RPF信息。

[SwitchB] display multicast rpf-info 50.1.1.100

 RPF information about source 50.1.1.100:

     RPF interface: Vlan-interface102, RPF neighbor: 30.1.1.2

     Referenced route/mask: 50.1.1.0/24

     Referenced route type: igp

     Route selection rule: preference-preferred

     Load splitting rule: disable

Switch B上当前的RPF路由来源于单播路由,RPF邻居是Switch A。

(3)        配置组播静态路由

# 在Switch B上配置组播静态路由,到Source的RPF邻居为Switch C

[SwitchB] ip rpf-route-static 50.1.1.100 24 20.1.1.2

(4)        检验配置效果

# 在Switch B上使用display multicast rpf-info命令查看到Source的RPF信息。

[SwitchB] display multicast rpf-info 50.1.1.100

 RPF information about source 50.1.1.100:

     RPF interface: Vlan-interface101, RPF neighbor: 20.1.1.2

     Referenced route/mask: 50.1.1.0/24

     Referenced route type: multicast static

     Route selection rule: preference-preferred

     Load splitting rule: disable

与配置组播静态路由前相比,Switch B上的RPF路由已经产生了变化,其来源变为组播静态路由,RPF邻居变为Switch C。

7.5.2  衔接RPF路由配置举例

1. 组网需求

l              网络中运行PIM-DM,所有交换机都支持组播功能;

l              Switch B和Switch C之间运行OSPF协议,并与Switch A单播路由隔离;

l              通常情况下,Receiver能接收来自OSPF域内Source 1的组播信息;

l              要求通过配置,使Receiver也可以接收来自OSPF域外Source 2的组播信息。

2. 组网图

图7-4 衔接RPF路由配置组网图

3. 配置步骤

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

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

配置Switch B和Switch C之间采用OSPF协议进行互连,确保Switch B和Switch C之间在网络层互通,并且能够借助单播路由协议实现动态路由更新,具体配置过程略。

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

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

<SwitchC> system-view

[SwitchC] multicast routing-enable

[SwitchC] interface vlan-interface 100

[SwitchC-Vlan-interface100] igmp enable

[SwitchC-Vlan-interface100] pim dm

[SwitchC-Vlan-interface100] quit

[SwitchC] interface vlan-interface 101

[SwitchC-Vlan-interface101] pim dm

[SwitchC-Vlan-interface101] quit

# 在Switch A上使能IP组播路由,并在各接口上使能PIM-DM。

<SwitchA> system-view

[SwitchA] multicast routing-enable

[SwitchC] interface vlan-interface 300

[SwitchC-Vlan-interface300] pim dm

[SwitchC-Vlan-interface300] quit

[SwitchC] interface vlan-interface 102

[SwitchC-Vlan-interface102] pim dm

[SwitchC-Vlan-interface102] quit

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

# 在Switch B和Switch C上分别使用display multicast rpf-info命令查看到Source 2的RPF信息。

[SwitchB] display multicast rpf-info 50.1.1.100

[SwitchC] display multicast rpf-info 50.1.1.100

没有显示信息输出,说明在Switch B和Switch C上都没有到Source 2的RPF路由。

(3)        配置组播静态路由

# 在Switch B上配置组播静态路由,到Source 2的RPF邻居为Switch A。

[SwitchB] ip rpf-route-static 50.1.1.100 24 30.1.1.2

# 在Switch C上配置组播静态路由,到Source 2的RPF邻居为Switch B。

[SwitchC] ip rpf-route-static 50.1.1.100 24 20.1.1.2

(4)        检验配置效果

# 在Switch B和Switch C上分别使用display multicast rpf-info命令查看到Source 2的RPF信息。

[SwitchB] display multicast rpf-info 50.1.1.100

 RPF information about source 50.1.1.100:

     RPF interface: Vlan-interface102, RPF neighbor: 30.1.1.2

     Referenced route/mask: 50.1.1.0/24

     Referenced route type: multicast static

     Route selection rule: preference-preferred

     Load splitting rule: disable

[SwitchC] display multicast rpf-info 50.1.1.100

 RPF information about source 50.1.1.100:

     RPF interface: Vlan-interface101, RPF neighbor: 20.1.1.2

     Referenced route/mask: 50.1.1.0/24

     Referenced route type: multicast static

     Route selection rule: preference-preferred

     Load splitting rule: disable

与配置组播静态路由前相比,Switch B和Switch C上都有了到Source 2的RPF路由,且其均来源于组播静态路由。

7.6  常见配置错误举例

7.6.1  组播静态路由失败

1. 故障现象

路由器没有配置动态路由协议,接口的物理状态与链路层协议状态都显示为up;但是组播静态路由失败。

2. 分析

l              如果没有正确配置或更新与当前网络情况相匹配的组播静态路由,则组播配置路由表和组播路由表中不存在此路由项;

l              如果查询到了最佳路由,也可能导致组播静态路由失败。

3. 处理过程

(1)        使用display multicast routing-table static config命令在组播路由配置表中查看组播路由表的详细信息,以确定是否正确配置了对应的路由并存在组播配置表中;

(2)        使用display multicast routing-table static命令在组播路由表中查看组播静态路由表的信息,以确定组播静态路由是否正确配置了对应的路由并存在于组播路由表中;

(3)        检查组播静态路由下一跳接口的接口类型。若为非点到点接口,则配置组播静态路由时,出接口必须使用下一跳地址的形式配置;

(4)        检查是否匹配指定的路由协议。如果指定了协议,使用display ip routing-table命令检查是否该协议添加了相同的路由;

(5)        检查是否匹配指定的路由策略。如果指定了路由策略,使用display route-policy命令检查配置的路由策略。

7.6.2  组播数据无法到达接收者

1. 故障现象

组播数据可以到达一些路由器,但无法到达最后一跳路由器。

2. 分析

通过在接口上使用multicast boundary命令可以设置组播转发边界,组播数据是无法跨越该边界的。

3. 处理过程

(1)        使用display pim routing-table命令查看各路由器上是否有(S,G)表项:如果有则表示收到了组播数据;否则表示没有收到组播数据。

(2)        使用display multicast boundary命令来查看接口的组播边界信息。使用multicast boundary命令来更改组播转发边界。

(3)        若采用了PIM-SM,使用display current-configuration命令检查是否配置了BSR和RP。

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们