组播路由管理(IPv4)理论知识详解(一)
首页 > HuaWei > 组播配置   作者:杭州清默网络  2016年3月29日 12:12 星期二  字号:   评论:0 条
时间:2016-3-29 12:12   评论:0 条 

六、组播路由管理(IPv4)

组播路由管理(Multicast Route Management)主要介绍如何创建或更改组播路由来控制组播报文的转发,以及组播转发路径的检测和维护。

组播路由和转发与单播路由和转发类似,首先每个组播路由协议都各自建立并维护了一张协议路由表。各组播路由协议的组播路由信息经过综合形成一个总的组播路由表(Multicast Routing-Table)。

最后,路由器根据组播路由和转发策略,从组播路由表中选出最优的组播路由,并下发到组播转发表(Multicast Forwarding-Table),直接用于控制组播数据的转发。

通过组播转发表,整个网络建立了一条以组播源为根,组成员为叶子的一点到多点的转发路径。

为了实现转发路径的控制与维护,组播路由管理提供了一系列如下表1所示的特性。

组播路由管理特性

特性

功能

RPFReverse Path Forwarding)检查

用于保证组播数据沿正确的转发路径进行传输。

组播静态路由

用于改变或衔接组播RPF路由。

组播负载分担

用于选取不同的等价路由进行组播数据转发,分流组播数据。

组播Ping

用于检测网络中的保留组成员。

组播Tracert

用于沿着组播转发树追踪某一接收者。

 

组播网络中设备根据扮演的不同角色,分别需要维护5种不同类型的表项:IGMP组表项、IGMP路由表、组播协议路由表、组播路由表、组播转发表。下面介绍各表项信息在实现组播路由和转发中所起的作用。

       1、组播IGMP组和路由表

IGMP组表项是由用户主机发送的IGMP加入报文触发创建的,用于维护组加入信息并通知组播路由协议(通常所说的为PIM协议)创建相应(*,G)表项。只要设备接口使能了IGMP并收到组加入报文就会为每个接口维护一个组加入信息表项,组表项形式如下所示:

<HUAWEI> display igmp group

Interface group report information of VPN-Instance: public net

 Vlanif100(10.1.6.2):

  Total 1 IGMP Group reported

   Group Address   Last Reporter   Uptime      Expires

   225.1.1.2       10.1.6.10       00:02:04    00:01:17

IGMP组表项中主要字段含义如下表1所示:

IGMP组表项主要字段含义

字段

含义

Group Address

加入的组地址。

Last Reporter

最后发送组加入用户的地址。

Uptime

组更新时间,表示组已经创建了多长时间。

Expires

组老化时间,表示组老化的时间。

IGMP路由表也是由IGMP协议维护的,但它只有在接口没有使能PIM协议才会存在。它的作用主要是用来扩展组播路由表项的出接口。IGMP路由表项形式如下:

<HUAWEI> display igmp routing-table

Routing table of VPN-Instance: public net 

 Total 1 entries   

    

 00001. (*, 225.1.1.1) 

       List of 1 downstream interface  

        Vlanif100 (10.20.20.1)  

                   Protocol: IGMP 

IGMP路由表项中主要字段含义如下表2所示:

IGMP路由表项主要字段含义

字段

含义

00001. (*, 225.1.1.1)

00001号表项,是(*, G)形式。

List of 1 downstream interface

下游接口列表。

Protocol: IGMP

生成下游接口的协议类型。

从上面可以看出,生成出接口的协议类型为IGMP,表明当前接口没有使能PIM协议。如果使能了PIM协议,则以PIM协议优先。

 

       2、组播协议路由表

组播协议路由表是运行各种组播路由协议时由各个协议自己维护的表项,是组播路由和转发的基础。现在应用最广泛的组播路由协议为PIM协议。PIM路由表项信息如下:

<HUAWEI> display pim routing-table

 VPN-Instance: public net

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

 

 (192.168.0.12, 227.0.0.1)

     RP: 10.2.2.2

     Protocol: pim-sm, Flag: SPT LOC ACT

     UpTime: 02:54:43

     Upstream interface: Vlanif 10

         Upstream neighbor: NULL

         RPF prime neighbor: NULL

     Downstream interface(s) information:

     Total number of downstreams: 1

         1: Vlanif 20

             Protocol: pim-sm, UpTime: 02:54:43, Expires: 00:02:47

PIM路由表项中主要字段含义如下表3所示:

PIM路由表项主要字段含义

字段

含义

(192.168.0.12, 227.0.0.1)

(S, G)表项。

RP: 10.2.2.2

RP地址,只有协议类型为PIM-SM时才会有此显示信息。

Protocol: pim-sm

协议类型。

第一个Protocol表示生成表项的协议类型,第二个Protocol表示生成下游接口的协议类型。

Flag: SPT LOC ACT

PIM路由表项的标志。

UpTime: 02:54:43

存在时间。

第一个UpTime表示表项已存在的时间,第二个UpTime表示下游接口已存在的时间。

Upstream interface: Vlanif 10

上游接口。

Upstream neighbor: NULL

上游邻居。

NULL表示不存在上游邻居。

RPF prime neighbor: NULL

RPF邻居。

NULL表示不存在RPF邻居。

Downstream interface(s) information:

下游接口信息。

Total number of downstreams: 1

下游接口数量。

Expires: 00:02:47

下游接口老化时间。

 

       3组播路由表

组播路由表是组播路由管理模块生成的路由表。如果组播路由管理支持多种组播协议,那这里应该能看到多种协议生成的优选出的路由信息。比较类似于单播中同时运行OSPFRIPBGP多种路由协议时,然后汇总形成的IP路由表。组播路由表的主要功能就是下刷创建组播转发表。组播路由表项信息如下:

<HUAWEI> display multicast routing-table

Multicast routing table of VPN-Instance: public net

 Total 1 entry

 00001. (192.168.0.2, 227.0.0.1)

       Uptime: 00:00:28

       Upstream Interface: Vlanif10

       List of 2 downstream interfaces

           1:  Vlanif20

           2:  Vlanif30

组播路由表项中主要字段含义如下表4所示:

组播路由表项主要字段含义

字段

含义

00001.(192.168.0.2, 227.0.0.1)

00001号表项,是(S, G)形式。

Uptime: 00:00:28

组播路由表项更新时间。

Upstream Interface: Vlanif10

上游接口。

List of 2 downstream interfaces

下游接口列表。

 

       4、组播转发表

组播转发表是路由管理模块依据组播路由表信息生成的用于指导组播数据实际转发的表项,通常称为MFIB,通过display multicast forwarding-table可以查看到这类表项信息。这张表项与单播中FIB表的功能是一样的,用于指导组播数据转发。组播转发表项信息如下:

<HUAWEI> display multicast forwarding-table

Multicast Forwarding Table of VPN-Instance: public net

Total 1 entry, 1 matched

 

00001. (10.10.10.2, 225.0.0.1)

     MID: 10, Flags: ACT

     Uptime: 00:08:32, Timeout in: 00:03:26

     Incoming interface: Vlanif10

     List of 1 outgoing interfaces:

       1:  Vlanif20

           Activetime: 00:23:15

     Matched 38264 packets(1071392 bytes), Wrong If 0 packets

     Forwarded 38264 packets(1071392 bytes)

组播转发表项中主要字段含义如下表5所示:

组播转发表项主要字段含义

字段

含义

00001. (10.10.10.2, 225.0.0.1)

00001号表项,是(S, G)形式。

MID: 10

组播转发表项在MFIB表中的唯一标识,用于快速检索组播转发表。

Flags: ACT

组播转发表项的标志。

Uptime: 00:08:32

组播转发表项已存在的时间。

Timeout in: 00:03:26

组播转发表项超时时间。

Incoming interface: Vlanif10

表项入接口。

List of 1 outgoing interfaces:

表项出接口列表。

Activetime: 00:23:15

出接口已存在时间。

Matched 38264 packets(1071392 bytes)

匹配该表项的报文数目。

Wrong If 0 packets

从错误接口进入的报文数目。

Forwarded 38264 packets(1071392 bytes)

已转发的报文数目。

从上面可以看出,真正指导组播数据转发的是组播转发表,转发表项中概括性记录了报文转发的统计信息。

 

       5、组播RPF检查

1RPF基本原理

在单播路由与转发中,单播报文沿着一条单点到单点的路径传输,路由器只需要考虑报文“需要到达的位置”,即目的地址,就知道从哪个接口转发出去。

组播路由与转发则不同。由于组播报文的目的地址为组播地址,只是标识了一组接收者,无法通过目的地址来找到接收者的位置,但是组播报文的“来源位置”,即源地址是确定的。

所以组播报文的转发主要是根据其源地址来保证转发路径正确性。

路由器收到一份组播报文后,会根据报文的源地址通过单播路由表查找到达“报文源”的路由,查看到“报文源”的路由表项的出接口是否与收到组播报文的入接口一致。如果一致,则认为该组播报文从正确的接口到达,从而保证了整个转发路径的正确性和唯一性。

这个过程就被称为RPF检查。

这里“正确的接口”通常被称为RPF接口,即RPF检查通过的接口。

 

2RPF检查过程

除单播路由外,MBGP路由、组播静态路由也是RPF检查的依据。当路由器收到一份组播报文后,如果这三种路由表都存在,具体检查过程如下:

首先,通过报文源地址,分别从单播路由表、MBGP路由表和组播静态路由表中各选出一条最优路由。单播路由、MBGP路由的出接口为RPF接口,下一跳为RPF邻居。需要注意的是,组播静态路由实际上属于手工配置的组播路由,已经明确指定了RPF接口与RPF邻居。

然后,根据以下原则从这三条最优路由中选择一条作为RPF路由。

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

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

最后,路由器会将报文的入接口与RPF路由的RPF接口进行比较。如果一致则RPF检查通过,表明该报文来源路径正确,会将其向下游转发;如果不一致即RPF检查失败,表明该报文来源路径错误,就将其丢弃。

RPF检查失败示例.png

1 RPF检查失败示例

如上图1所示,来自组播源10.10.2.2的组播流从Int1口到达路由器,路由器检查路由表,发现可以转发该组播流的端口为Int0RPF检查失败。因此达到Int1口的数据流被丢弃。

RPF检查成功示例.png

2 RPF检查成功示例

上图2中,来自组播源10.10.2.2的组播流从Int0口达到路由器,检查路由表发现入接口与接收该组播流的接口Int0一致,RPF检查成功。因此组播流将被正确的转发。

 

3RPF检查在组播数据转发中的应用

组播路由协议通过已有的单播路由、MBGP路由或组播静态路由信息来确定上、下游邻居设备,创建组播路由表项。

运用RPF检查机制,来确保组播数据流能够沿组播分发树(路径)正确的传输,同时可以避免转发路径上环路的产生。

在实际组播数据转发过程中,如果对每一份接收到的组播数据报文都通过单播路由表进行RPF检查,会给路由器带来很大负担。

因此,路由器在收到一份来自源S发往组G的组播数据报文之后,首先会在组播转发表中查找有无相应的(SG)组播转发表项:

如果不存在(SG)转发表项,则对该报文执行RPF检查,将检查到的RPF接口作为入接口,创建组播路由表项,下发到组播转发表中。

其中,对RPF检查结果的处理方式为:如果检查通过,表明接收接口为RPF接口,向转发表项的所有出接口转发;如果检查失败,表明报文来源路径错误,丢弃该报文。

如果存在(SG)转发表项,并且接收该报文的接口与转发表项的入接口一致,则向所有的出接口转发该报文。

如果存在(SG)转发表项,但是接收该报文的接口与转发表项的入接口不一致,则对此报文进行RPF检查。对RPF检查结果的处理方式为:

RPF检查选取出的RPF接口与入接口一致,则说明(SG)表项正确,报文来源路径错误,将其丢弃。

RPF检查选取出的RPF接口与入接口不符,则说明(SG)表项已过时,于是把表项中的入接口更新为RPF接口。然后再根据RPF检查规则进行判断:如果接收该报文的接口正是其RPF接口,则向转发表项的所有出接口转发该报文,否则将其丢弃。

 您阅读这篇文章共花了: 
二维码加载中...
技术交流:欢迎在本文下方留言或加入QQ群:647682417 互相学习。     
本文地址:http://www.023wg.com/Multicast/221.html
版权声明:若无注明,本文皆为“杭州清默网络”原创,转载请保留文章出处。

返回顶部    首页   
版权所有:杭州清默网络    杭州清默网络