国家 / 地区

07-IP组播配置指导

05-组播路由与转发配置

本章节下载  (432.62 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S12500/S12500/Configure/Operation_Manual/H3C_S12500_CG-R7374-6W732/07/201505/868898_30005_0.htm

05-组播路由与转发配置


1 组播路由与转发

说明

设备支持两种运行模式:独立运行模式和IRF模式,缺省情况下为独立运行模式。有关IRF模式的介绍,请参见“虚拟化技术配置指导”中的“IRF”。

 

1.1  组播路由与转发简介

组播路由与转发中有以下三种表:

·     每个组播路由协议都有一个协议自身的路由表,如PIM路由表。

·     各组播路由协议的组播路由信息经过综合形成一个总的组播路由表,该表由一系列(S,G)表项组成,即一系列由组播源S向组播组G发送组播数据的组播路由信息。组播路由表中包含了由一或多种组播路由协议生成的组播路由。

·     组播转发表直接用于控制组播数据包的转发,它与组播路由表保持一致,组播路由表中最优的组播路由会直接下发到组播转发表中。

1.1.1  RPF检查机制

组播路由协议依赖于现有的单播路由信息、MBGP路由或组播静态路由来创建组播路由表项。组播路由协议在创建组播路由表项时,运用了RPF(Reverse Path Forwarding,逆向路径转发)检查机制,以确保组播数据能够沿正确的路径传输,同时还能避免由于各种原因而造成的环路。

1. RPF检查过程

执行RPF检查的依据是单播路由、MBGP路由或组播静态路由:

·     单播路由表中汇集了到达各个目的网段的最短路径;

·     MBGP路由表直接提供组播路由信息;

·     组播静态路由表中列出了用户通过手工静态配置指定的RPF路由信息。

在执行RPF检查时,路由器同时查找单播路由表、MBGP路由表和组播静态路由表,具体过程如下:

(1)     首先,分别从单播路由表、MBGP路由表和组播静态路由表中各选出一条最优路由:

·     以“报文源”的IP地址为目的地址查找单播路由表,自动选取一条最优单播路由。对应表项中的出接口为RPF接口,下一跳为RPF邻居。路由器认为来自RPF邻居且由该RPF接口收到的组播报文所经历的路径是从源S到本地的最短路径。

·     以“报文源”的IP地址为目的地址查找MBGP路由表,自动选取一条最优MBGP路由。对应表项中的出接口为RPF接口,下一跳为RPF邻居。

·     以“报文源”的IP地址为指定源地址查找组播静态路由表,自动选取一条最优组播静态路由。对应表项明确指定了RPF接口和RPF邻居。

(2)     然后,从这三条最优路由中选择一条作为RPF路由:

·     如果配置了按照最长匹配选择路由,则从这三条路由中选出最长匹配的那条路由;如果这三条路由的掩码一样,则选择其中路由优先级最高的那条路由;如果它们的路由优先级也相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。有关路由优先级的详细介绍,请参见“三层技术-IP路由配置指导”中的“IP路由基础”。

·     如果没有配置按照最长匹配选择路由,则从这三条路由中选出路由优先级最高的那条路由;如果它们的路由优先级相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。

说明

根据组播报文传输的具体情况不同,“报文源”所代表的具体含义也不同:

·     如果当前报文沿从组播源到接收者或RP(Rendezvous Point,汇集点)的SPT(Shortest Path Tree,最短路径树)进行传输,则以组播源为“报文源”进行RPF检查;

·     如果当前报文沿从RP到接收者的RPT(Rendezvous Point Tree,共享树)进行传输,或者沿从组播源到RP的组播源侧RPT进行传输,则都以RP为“报文源”进行RPF检查;

·     如果当前报文为BSR(Bootstrap Router,自举路由器)报文,沿从BSR到各路由器的路径进行传输,则以BSR为“报文源”进行RPF检查。

有关SPT、RPT、组播源侧RPT、RP和BSR的详细介绍,请参见“IP组播配置指导”中的“PIM”。

 

2. RPF检查在组播转发中的应用

对每一个收到的组播数据报文都进行RPF检查会给路由器带来较大负担,而利用组播转发表可以解决这个问题。在建立组播路由和转发表时,会把组播数据报文(S,G)的RPF接口记录为(S,G)表项的入接口。当路由器收到组播数据报文(S,G)后,查找组播转发表:

(1)     如果组播转发表中不存在(S,G)表项,则对该报文执行RPF检查,将其RPF接口作为入接口,结合相关路由信息创建相应的表项,并下发到组播转发表中:

·     若该报文实际到达的接口正是其RPF接口,则RPF检查通过,向所有的出接口转发该报文;

·     若该报文实际到达的接口不是其RPF接口,则RPF检查失败,丢弃该报文。

(2)     如果组播转发表中已存在(S,G)表项,且该报文实际到达的接口与入接口相匹配,则向所有的出接口转发该报文。

(3)     如果组播转发表中已存在(S,G)表项,但该报文实际到达的接口与入接口不匹配,则对此报文执行RPF检查:

·     若其RPF接口与入接口一致,则说明(S,G)表项正确,丢弃这个来自错误路径的报文;

·     若其RPF接口与入接口不符,则说明(S,G)表项已过时,于是把入接口更新为RPF接口。如果该报文实际到达的接口正是其RPF接口,则向所有的出接口转发该报文,否则将其丢弃。

提示

本设备可以配置对RPF检查失败的报文进行特殊处理,而不是简单地将其丢弃。相关配置请参见“1.4.7  配置RPF检查失败处理方式”。

 

图1-1 RPF检查过程

 

图1-1所示,假设网络中单播路由畅通,未配置MBGP,Router C上也未配置组播静态路由。组播报文(S,G)沿从组播源(Source)到接收者(Receiver)的SPT进行传输。假定Router C上的组播转发表中已存在(S,G)表项,其记录的入接口为GigabitEthernet3/0/2:

·     如果该组播报文从接口GigabitEthernet3/0/2到达Router C,与(S,G)表项的入接口相匹配,则向所有的出接口转发该报文。

·     如果该组播报文从接口GigabitEthernet3/0/1到达Router C,与(S,G)表项的入接口不匹配,则对其执行RPF检查:通过查找单播路由表发现到达Source的出接口(即RPF接口)是GigabitEthernet3/0/2,与(S,G)表项的入接口一致。这说明(S,G)表项是正确的,该报文来自错误的路径,RPF检查失败,于是丢弃该报文。

1.1.2  组播静态路由

根据具体应用环境的不同,组播静态路由有以下两种主要用途:

1. 改变RPF路由

通常,组播的网络拓扑结构与单播相同,组播数据的传输路径也与单播相同。可以通过配置组播静态路由以改变RPF路由,从而为组播数据创建一条与单播不同的传输路径。

图1-2 改变RPF路由示意图

 

图1-2所示,当网络中没有配置组播静态路由时,Router C到组播源(Source)的RPF邻居为Router A,从Source发出的组播信息沿Router A—Router C的路径传输,与单播路径一致;当在Router C上配置了组播静态路由,指定从Router C到Source的RPF邻居为Router B之后,从Source发出的组播信息将改变传输路径,沿Router A—Router B—Router C的新路径传输。

2. 衔接RPF路由

当网络中的单播路由被阻断时,由于没有RPF路由而无法进行包括组播数据在内的数据转发。可以通过配置组播静态路由以生成RPF路由,从而创建组播路由表项以指导组播数据的转发。

图1-3 衔接RPF路由示意图

 

图1-3所示,RIP域与OSPF域之间实行单播路由隔离。当网络中没有配置组播静态路由时,OSPF域内的接收者(Receiver)不能收到RIP域内的组播源(Source)所发出的组播信息;当在Router C和Router D上均配置了组播静态路由,分别指定从Router C到Source的RPF邻居为Router B、从Router D到Source的RPF邻居为Router C之后,Receiver便能收到Source发出的组播信息了。

说明

组播静态路由仅在所配置的组播路由器上生效,不会以任何方式被广播或者引入给其它路由器。

 

1.1.3  跨单播网段的组播转发

网络中可能存在不支持组播协议的路由器,从组播源发出的组播数据沿组播路由器逐跳转发,当下一跳路由器不支持组播协议时,组播转发路径将被阻断。而通过在处于单播网段两端的组播路由器之间建立隧道,则可以实现跨单播网段的组播数据转发。

图1-4 使用隧道传输组播数据

 

图1-4所示,在组播路由器Router A和Router B之间建立隧道。Router A将组播数据封装在单播报文中,通过单播路由器转发至隧道另一端的Router B,再由Router B将单播报文头剥掉后继续进行组播传输。

若要将该隧道专用于组播数据传输,可以在隧道两端只配置组播静态路由而不配置单播静态路由,从而使单播数据报文无法利用此隧道进行传输。

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

表1-1 组播路由与转发配置任务简介

配置任务

说明

详细配置

使能IP组播路由

必选

1.3 

配置组播路由与转发

配置组播静态路由

可选

1.4.2 

配置按照最长匹配选择RPF路由

可选

1.4.3 

配置对组播流量进行负载分担

可选

1.4.4 

配置组播转发边界

可选

1.4.5 

配置静态组播MAC地址表项

可选

1.4.6 

配置RPF检查失败的处理方式

可选

1.4.7 

配置组播数据在Super VLAN内的各Sub VLAN之间互通

可选

1.4.8 

 

说明

当一个接口配置有从IP地址或借用了其它接口的IP地址时,组播数据并不能通过从IP地址或借来的IP地址进行路由和转发,而只能通过该接口的主IP地址进行路由与转发。有关主、从IP地址以及IP地址借用的详细介绍,请参见“三层技术-IP业务配置指导”中的“IP地址”。

 

1.3  使能IP组播路由

在公网实例中配置各项三层组播功能之前,必须先使能IP组播路由。

表1-2 使能IP组播路由

操作

命令

说明

进入系统视图

system-view

-

使能IP组播路由,并进入MRIB(Multicast Routing Information Base,组播路由信息库)视图

multicast routing [ vpn-instance vpn-instance-name ]

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

 

1.4  配置组播路由与转发

1.4.1  配置准备

在配置组播路由与转发之前,需完成以下任务:

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

·     配置PIM-DM或PIM-SM

1.4.2  配置组播静态路由

通过配置组播静态路由,可以为来自特定组播源的组播报文指定RPF接口或RPF邻居。在删除已配置好的组播静态路由时,除了可以通过undo ip rpf-route-static命令删除指定的组播静态路由外,还可以通过delete ip rpf-route-static命令删除所有的组播静态路由。

表1-3 配置组播静态路由

操作

命令

说明

进入系统视图

system-view

-

配置组播静态路由

ip rpf-route-static [ vpn-instance vpn-instance-name ] source-address { mask-length | mask } { rpf-nbr-address | interface-type interface-number } [ preference preference ]

缺省情况下,不存在任何组播静态路由

(可选)删除所有组播静态路由

delete ip rpf-route-static [ vpn-instance vpn-instance-name ]

-

 

1.4.3  配置按照最长匹配选择RPF路由

用户可以配置组播路由器按照最长匹配原则来选择RPF路由,有关RPF路由选择的详细介绍,请参见“1.1.1  1. RPF检查过程”一节。

表1-4 配置按照最长匹配选择RPF路由

操作

命令

说明

进入系统视图

system-view

-

进入MRIB视图

multicast routing [ vpn-instance vpn-instance-name ]

-

配置按照最长匹配选择RPF路由

longest-match

缺省情况下,选择路由优先级最高的路由作为RPF路由

 

1.4.4  配置对组播流量进行负载分担

用户通过配置根据组播源或组播源组进行组播流量的负载分担,可以优化存在多条组播数据流时的网络流量。

表1-5 配置对组播流量进行负载分担

操作

命令

说明

进入系统视图

system-view

-

进入MRIB视图

multicast routing [ vpn-instance vpn-instance-name ]

-

配置对组播流量进行负载分担

load-splitting { source | source-group }

缺省情况下,不对组播流量进行负载分担

需要注意的是,本命令对双向PIM不生效

 

1.4.5  配置组播转发边界

提示

进行本配置不需要使能IP组播路由。

 

组播信息在网络中的转发并不是漫无边际的,每个组播组对应的组播信息都必须在确定的范围内传递。组播转发边界为指定范围的组播组划定了边界条件,如果组播报文的目的地址与边界条件匹配,就停止转发。当在一个接口上配置了组播转发边界后,将不能从该接口转发组播报文(包括本机发出的组播报文),也不能从该接口接收组播报文。

表1-6 配置组播转发边界

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置组播转发边界

multicast boundary group-address { mask-length | mask }

缺省情况下,没有配置组播转发边界

 

1.4.6  配置静态组播MAC地址表项

提示

·     进行本配置不需要使能IP组播路由。

·     可手工配置的组播MAC地址表项必须是尚未使用的组播MAC地址(即最高字节的最低比特位为1的MAC地址)。

 

在二层组播中,除了可通过二层组播协议(如IGMP Snooping)动态建立组播MAC地址表项外,还可通过手工方式配置组播MAC地址表项,将端口与组播MAC地址进行静态绑定,以便灵活控制组播信息送达的目的端口。

用户既可以在系统视图对指定接口进行配置,也可以在接口视图下只对当前接口进行配置。

1. 系统视图下配置静态组播MAC地址表项

表1-7 系统视图下配置静态组播MAC地址表项

操作

命令

说明

进入系统视图

system-view

-

配置静态组播MAC地址表项

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

缺省情况下,没有配置任何静态组播MAC地址表项

 

2. 接口视图下配置静态组播MAC地址表项

表1-8 接口视图下配置静态组播MAC地址表项

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网或二层聚合接口视图

interface interface-type interface-number

-

配置静态组播MAC地址表项

mac-address multicast mac-address vlan vlan-id

缺省情况下,没有配置任何静态组播MAC地址表项

 

1.4.7  配置RPF检查失败的处理方式

提示

进行本配置不需要使能IP组播路由。

 

在不同情形下,需要对RPF检查失败的组播数据报文进行不同的处理,而不仅仅是简单地将其丢弃。

1. 配置在VLAN内处理

在某些特定组网环境下,会出现RPF检查失败的VLAN接口所对应VLAN内存在接收者的情况,为了让这些接收者也能收到RPF检查失败的组播数据报文,需将这些报文在VLAN内进行泛洪或组播:

·     如果要进行泛洪,请直接配置在所有VLAN内泛洪RPF检查失败的组播数据报文。需要注意的是,如果VLAN接口上配置的是双向PIM,要进行泛洪,还需要配置在对应VLAN内组播RPF检查失败的组播数据报文。

·     如果要进行组播,请先配置在所有VLAN内泛洪RPF检查失败的组播数据报文,再配置在当前VLAN内组播RPF检查失败的组播数据报文。这样,当VLAN内有相应的IGMP Snooping转发表项时,便在该VLAN内组播;否则,在该VLAN内泛洪。

提示

·     配置完在所有VLAN内泛洪RPF检查失败的组播数据报文之后,必须使用reset multicast forwarding-table命令清除组播转发表中的所有转发项,否则该配置将不能生效。

·     配置在当前VLAN内组播RPF检查失败的组播数据报文时,要求该VLAN内使能了IGMP Snooping且对应VLAN接口上配置有三层组播协议(IGMP或PIM),否则该配置将不能生效。

·     配置完在当前VLAN内组播RPF检查失败的组播数据报文之后,必须使用reset multicast forwarding-table命令清除组播转发表中的所有转发项,同时使用reset igmp-snooping group命令清除该VLAN内所有动态组播组的IGMP Snooping转发表项,否则该配置将不能生效。有关reset igmp-snooping group命令的详细介绍,请参见“IP组播命令参考”中的“IGMP Snooping”。

 

表1-9 配置在VLAN内处理

操作

命令

说明

进入系统视图

system-view

-

配置在所有VLAN内泛洪RPF检查失败的组播数据报文

multicast rpf-fail-pkt flooding

缺省情况下,不在VLAN内泛洪RPF检查失败的组播数据报文

进入VLAN接口视图

interface vlan-interface vlan-interface-id

-

配置在当前VLAN内组播RPF检查失败的组播数据报文

multicast rpf-fail-pkt bridging

缺省情况下,不在VLAN内组播RPF检查失败的组播数据报文

 

2. 配置上送CPU处理

在以下两种情况下,需要将RPF检查失败的组播数据报文上送给CPU进行处理:

·     如果组播数据报文从组播转发表项的出接口到达,则RPF检查失败,需要将该报文上送给CPU进行处理,以触发Assert机制剪枝多余的组播流量。

·     在RPT向SPT切换时,如果SPT与RPT在DR(Designated Router,指定路由器)上的入接口不同,若在SPT上的组播流量到达DR前就剪枝RPT,将导致组播流量的中断;若待SPT上的组播流量到达DR后再剪枝RPT,就可以避免组播流量的中断。为了使DR能感知到SPT上组播流量的到达,就需要将到达SPT入接口但RPF检查失败(剪枝RPT前的RPF接口是RPT的入接口)的组播数据报文上送给CPU进行处理。

有关Assert机制、DR以及RPT向SPT切换的详细介绍,请参见“IP组播配置指导”中的“PIM”。

提示

完成本配置后必须使用reset multicast forwarding-table命令清除组播转发表中的所有转发项,否则本配置将不能生效。

 

表1-10 配置上送CPU处理

操作

命令

说明

进入系统视图

system-view

-

配置把RPF检查失败的组播数据报文上送CPU处理

multicast rpf-fail-pkt trap-to-cpu

缺省情况下,不把RPF检查失败的组播数据报文上送CPU处理

 

1.4.8  配置组播数据在Super VLAN内的各Sub VLAN之间互通

一个Super VLAN内可以有多个Sub VLAN,不同Sub VLAN之间相互隔离。通过本配置可以使组播数据在同一Super VLAN内的各Sub VLAN之间互通。有关Super VLAN及其Sub VLAN的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN”。

提示

完成本配置后必须使用reset multicast forwarding-table命令清除组播转发表中所有以该VLAN接口为入接口的转发项,否则本配置将不能生效。

 

表1-11 配置组播数据在Super VLAN内的各Sub VLAN之间互通

操作

命令

说明

进入系统视图

system-view

-

进入VLAN接口视图

interface vlan-interface interface-number

-

配置组播数据在Super VLAN内的各Sub VLAN之间互通

multicast forwarding supervlan community

缺省情况下,组播数据在Super VLAN内的各Sub VLAN之间隔离

 

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

注意

执行reset命令清除组播路由表或组播转发表中的信息,可能导致组播信息无法正常传输。

 

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

在用户视图下执行reset命令可以清除组播路由与转发的统计信息。

表1-12 组播路由与转发显示和维护

操作

命令

显示静态组播MAC地址表信息

display mac-address [ mac-address [ vlan vlan-id ] | [ multicast ] [ vlan vlan-id ] [ count ] ]

显示MRIB维护的接口信息

display mrib [ vpn-instance vpn-instance-name ] interface [ interface-type interface-number ]

显示组播边界的信息

display multicast [ vpn-instance vpn-instance-name ] boundary [ group-address [ mask-length | mask ] ] [ interface interface-type interface-number ]

显示组播转发的DF信息(独立运行模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding df-info [ rp-address ] [ verbose ] [ slot slot-number ]

显示组播转发的DF信息(IRF模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding df-info [ rp-address ] [ verbose ] [ chassis chassis-number slot slot-number ]

显示组播转发的事件统计信息(独立运行模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding event [ slot slot-number ]

显示组播转发的事件统计信息(IRF模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding event [ chassis chassis-number slot slot-number ]

显示组播转发表的信息(独立运行模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding-table [ source-address [ mask { mask-length | mask } ] | group-address [ mask { mask-length | mask } ] | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number | slot slot-number | statistics ] *

显示组播转发表的信息(IRF模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding-table [ source-address [ mask { mask-length | mask } ] | group-address [ mask { mask-length | mask } ] | chassis chassis-number slot slot-number | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number | statistics ] *

显示组播转发表的DF列表信息(独立运行模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding-table df-list [ rp-address ] [ verbose ] [ slot slot-number ]

显示组播转发表的DF列表信息(IRF模式)

display multicast [ vpn-instance vpn-instance-name ] forwarding-table df-list [ rp-address ] [ verbose ] [ chassis chassis-number slot slot-number ]

显示组播路由表的信息

display multicast [ vpn-instance vpn-instance-name ] routing-table [ source-address [ mask { mask-length | mask } ] | group-address [ mask { mask-length | mask } ] | incoming-interface interface-type interface-number | outgoing-interface { exclude | include | match } interface-type interface-number ] *

显示组播静态路由表的信息

display multicast [ vpn-instance vpn-instance-name ] routing-table static [ source-address { mask-length | mask } ]

显示组播源的RPF信息

display multicast [ vpn-instance vpn-instance-name ] rpf-info source-address [ group-address ]

清除组播转发的事件统计信息

reset multicast [ vpn-instance vpn-instance-name ] forwarding event

清除组播转发表中的转发项

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

清除组播路由表中的路由项

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

 

说明

·     清除组播路由表中的路由项后,组播转发表中的相应表项也将随之删除。

·     清除组播转发表中的转发项后,组播路由表中的相应表项也将随之删除。

 

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

说明

缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态。如果要使这些接口能够正常工作,请先使用undo shutdown命令使接口状态处于up状态。

 

1.6.1  改变RPF路由配置举例

1. 组网需求

·     网络中运行PIM-DM,所有交换机都支持组播功能;

·     Switch A、Switch B和Switch C之间运行OSPF协议;

·     通常情况下,Receiver能通过Switch A—Switch B这条与单播路径相同的路径接收来自Source的组播信息;

·     要求通过配置,使Receiver能通过Switch A—Switch C—Switch B这条与单播路径不同的路径接收来自Source的组播信息。

2. 组网图

图1-5 改变RPF路由配置举例

 

3. 配置步骤

(1)     配置IP地址和单播路由协议

请按照图1-5配置各接口的IP地址和掩码,并在各交换机上配置OSPF协议,具体配置过程略。

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

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

<SwitchB> system-view

[SwitchB] multicast routing

[SwitchB-mrib] quit

[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

[SwitchA-mrib] quit

[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。

1.6.2  衔接RPF路由配置举例

1. 组网需求

·     网络中运行PIM-DM,所有交换机都支持组播功能;

·     Switch B和Switch C之间运行OSPF协议,并与Switch A单播路由隔离;

·     通常情况下,Receiver能接收来自OSPF域内Source 1的组播信息;

·     要求通过配置,使Receiver也可以接收来自OSPF域外Source 2的组播信息。

2. 组网图

图1-6 衔接RPF路由配置组网图

 

3. 配置步骤

(1)     配置IP地址和单播路由协议

请按照图1-6配置各接口的IP地址和掩码,并在各交换机上配置OSPF协议,具体配置过程略。

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

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

<SwitchC> system-view

[SwitchC] multicast routing

[SwitchC-mrib] quit

[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

[SwitchA-mrib] quit

[SwitchA] interface vlan-interface 300

[SwitchA-Vlan-interface300] pim dm

[SwitchA-Vlan-interface300] quit

[SwitchA] interface vlan-interface 102

[SwitchA-Vlan-interface102] pim dm

[SwitchA-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路由,且其均来源于组播静态路由。

1.6.3  利用GRE隧道实现组播转发配置举例

1. 组网需求

·     Switch A和Switch C支持组播功能并运行PIM-DM,但Switch B不支持组播功能;

·     Switch A、Switch B和Switch C之间运行OSPF协议;

·     要求通过配置,使Receiver能够接收来自Source的组播信息。

2. 组网图

图1-7 利用GRE隧道实现组播转发配置组网图

 

3. 配置步骤

(1)     配置IP地址和单播路由协议

请按照图1-7配置各接口的IP地址和掩码,并在各交换机上配置OSPF协议,具体配置过程略。

(2)     配置GRE隧道

# 在Switch A上创建接口Tunnel0,并指定其隧道模式为GRE over IPv4隧道。

[SwitchA] interface tunnel 0 mode gre

# 在Switch A上为Tunnel0接口配置IP地址,并指定隧道的源地址和目的地址。

[SwitchA-Tunnel0] ip address 50.1.1.1 24

[SwitchA-Tunnel0] source 20.1.1.1

[SwitchA-Tunnel0] destination 30.1.1.2

[SwitchA-Tunnel0] quit

# 在Switch C上创建接口Tunnel0,并指定其隧道模式为GRE over IPv4隧道。

[SwitchC] interface tunnel 0 mode gre

# 在Switch C上为Tunnel0接口配置IP地址,并指定隧道的源地址和目的地址。

[SwitchC-Tunnel0] ip address 50.1.1.2 24

[SwitchC-Tunnel0] source 30.1.1.2

[SwitchC-Tunnel0] destination 20.1.1.1

[SwitchC-Tunnel0] quit

(3)     使能IP组播路由,并使能PIM-DM和IGMP

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

[SwitchA] multicast routing

[SwitchA-mrib] quit

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] pim dm

[SwitchA-Vlan-interface100] quit

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] pim dm

[SwitchA-Vlan-interface101] quit

[SwitchA] interface tunnel 0

[SwitchA-Tunnel0] pim dm

[SwitchA-Tunnel0] quit

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

[SwitchC] multicast routing

[SwitchC-mrib] quit

[SwitchC] interface vlan-interface 200

[SwitchC-Vlan-interface200] igmp enable

[SwitchC-Vlan-interface200] pim dm

[SwitchC-Vlan-interface200] quit

[SwitchC] interface vlan-interface 102

[SwitchC-Vlan-interface102] pim dm

[SwitchC-Vlan-interface102] quit

[SwitchC] interface tunnel 0

[SwitchC-Tunnel0] pim dm

[SwitchC-Tunnel0] quit

(4)     配置组播静态路由

# 在Switch C上配置组播静态路由,指定到Source的RPF邻居为Switch A的Tunnel0接口。

[SwitchC] ip rpf-route-static 10.1.1.0 24 50.1.1.1

4. 验证配置

组播源向组播组225.1.1.1发送组播数据,接收者加入该组播组后能够收到组播源发来的组播数据。通过使用display pim routing-table命令可以查看交换机的PIM路由表信息。例如:

# 显示Switch C上的PIM路由表信息。

[SwitchC] 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-interface200

             Protocol: igmp, UpTime: 00:04:25, Expires: never

 

 (10.1.1.100, 225.1.1.1)

     Protocol: pim-dm, Flag: ACT

     UpTime: 00:06:14

     Upstream interface: Tunnel0

         Upstream neighbor: 50.1.1.1

         RPF prime neighbor: 50.1.1.1

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlan-interface200

             Protocol: pim-dm, UpTime: 00:04:25, Expires: never

Switch CRPF邻居为Switch A,组播数据通过GRE隧道直接由Switch A发往Switch C

1.7  常见配置错误举例

1.7.1  组播静态路由失败

1. 故障现象

路由器没有配置动态路由协议,接口的物理状态与链路层协议状态都显示为up;但是组播静态路由失败。

2. 故障分析

·     如果没有正确配置或更新与当前网络情况相匹配的组播静态路由,则组播静态路由表中不存在此路由项;

·     如果查询到有比组播静态路由更优的路由,也可能导致组播静态路由失败。

3. 处理过程

(1)     使用display multicast routing-table static命令显示组播静态路由表的信息,以确定是否正确配置了对应的路由并存在于组播静态路由表中。

(2)     检查组播静态路由与RPF邻居相连接口的接口类型,如果不是点到点接口,则RPF邻居必须使用指定地址的形式配置。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!