IP 组播路由协议基本原理 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

组播分发树:遵循流量走势,构建出来的树。

有源数 -- 最短路径树

共享树

 

根据树模型,得出两种组播路由协议 -- 密集(有源树)与稀疏(共享树)

 

源树:只遵循最短路径原则,经过组播节点,创建表项( S,G )。在路径上每个所经过的路由器上创建表项。每一棵树只有一个源。

 

共享树: RP- 汇聚点,源分得比较远、散。    --- 最短路径树 --- RP--- 共享树 --- 〉接收方。

        共享树其实是一半运行源树,一般运行共享树。在源到 RP 的路径,根据源树,找到最短路径。在 RP 到接收方,则使用共享树。

 

--- 注册 --- RP

接收方 --- 〉加入以 RP 为首的共享树上。

 

IP 组播网络设计开发第一卷》

TCP/IP 路由技术第二卷》

 

 

共享树表项:源不如 RP 重要了。源可能有多个,不能再一个一个创建 (S,G) 表项了,麻烦。

所以用( * G )表示。。

 

---SPT--- RP ,这也延伸出一个问题,源是怎么知道 RP 是在哪的呢??? ---------- 通过手动指定 RP ,或者自动配置 RP 来知道。 AUTO-RR SR

 

RPF :逆向路径转发。 IP 单播基于目标地址路由。不关心源地址 - 可以有 IP 欺骗。

IP 组播是基于源地址路由,只关心从哪来,不关心往哪去。 ---- 天生可以防止 IP 欺骗。

单播和组播是否要同时存在??没有单播路由协议,组播路由协议能否运行。

执行 RPF 功能,需要依赖单播路由表。所以,二者不可或缺。

所以,配置组播路由协议之前,必须先配单播路由协议,让网络中单播路由表收敛,目的是做 RPF 校验,否则 RPF 校验无法执行。

 

RPF 校验过程: 当路由器,收到来自某个接口的组播包时,组播路由器假定现在这个数据包是要从这个接口出去,去往该网络的。也就是说,不认为这个包是从 S0 这个口进来的,而是要从 S0 口出去,要去往 133 这个网段了,然后把这个选项和单播路由表去匹配,在此例子中,匹配全部失败,则 RPF 校验失败,丢弃该数据包。因为 RPF 验证不匹配,说明这包可能会产生环路。该包就不会从 S1 S2 转发出去。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

 

 

组播路由协议:

PIM-- 与协议无关的组播

并不是说它不需要单播路由协议,而是说它不关心它的单播路由表是怎么构成的,是基于 RIP OSPF ,还是其他的,它并不关心。

 

PIM-DM :隐式加入

PUSH 模式,好比电视台的节目。当 PIM-DM 开始运行时,源会把组播流量 FLOOD 推到网络上的每个地方,这样会浪费带宽,因为一些地方可能不需要这些流量。

这就需要进行剪枝。向源发送剪枝消息,下次源 FLOOD 流量时候,不会再把流量发向这里(已经被修剪掉了),但是 (S,G) 表项是依旧还存在于每个节点的。

 

源的 FLOOD 和剪枝,每三分钟进行一次。

 

 

PIM-SM :显示加入

源不确定,所以关注于 RP RP- 流量中介。

SM 模式支持有源树和共享树,它可以同时运行有源树和共享树

 

--- RP            基于有源树

RP-- 〉接收方       基于共享树

 

源通过第一跳路由器向 RP 进行注册, 源是通过 把组播报文封装在 PIM Register 报文里 ,发送 RP 接口,然后 再由 RP 进行剥头 ,对其中的组播报文进行处理。

 

DR :与 OSPF 不同,无 BDR ,主要是用于 SM 模式,其次是 DM 模式。在 MBA 访问中, DR 的作用才体现出来。多个设备同处于一个网段,进行 DR 选举。

DR 选举:比较优先级,默认为 1

          比较 IP 地址, IP 地址大的为 DR

 

SM----DR :代替接收方去向 RP 发送一个 JOIN 信息。

           代替源向 RP 发送注册信息。

DM----DR :充当 IGMP 查询者,向接收方定期发送查询。

 

 

 

RP 的选择: 1. 手工指定 -- 手工指定不灵活    2. 自动选举 --a.  auto-RP  b.  BSR

 

组播配置: PIMv2 配置

DM 模式, SM 模式, DM-SM 模式

 

基本配置:

1.ip multicast-routing 启用组播路由功能

2. 进入接口,启用 PIM ,并配置它的模式

 

DM 模式配置:无 RP ,配置起来很简单

先配置单播路由协议,来保障 RPF 校验功能

 

1. 各路由器开启组播路由功能 ---ip multicast-routing

2. 进入各个接口,启用 PIM ,并配置它的模式 ---IP pim dense-mode

  之后可看到邻居关系自动建立了。

3. 验证组播路由表,查看配置情况: show ip mroute,, 当前只有一个 224.0.0.40 这条目,用来监听 RP 消息。

   通过将一个回环口加入一个组播组来验证配置情况 --ip igmp join group 224.X.X.X, ,再切换至另外一台路由器上,来 PING 这个组播组地址。

  show ip mroute summary ,可以查看组播路由表精简版。

看到 RP IP 0.0.0.0 代表无 RP----D 代表 DM

   show ip pim neighbor ,查看 PIM 邻居信息

 

 

 

SM 模式配置:

1.

2.ip pim sparse-mode, 启用稀疏模式

3.clear ip mroute *, 清除之前的 DM 配置的路由表缓存。

4.ping 之前的 224.1.1.1 ping 不同,为什么呢?和 RP 有关, show ip pim ip mapping, 查不出有组播组到 RP 的映射关系。即组播组没有 RP 的信息,那么就无法进行流量的转发。 SM 先把组播流发给 RP ,再由 RP 进行转发。

 

5.RP 的配置 .

SM-DM: 当网络中,无法找到可用 RP 时, SM 会转为 DM 进行操作。

 

RP 的指定:静态指定与动态指定

静态指定:手工指定 IP

动态指定: AUTO-RP ,BSR 。二者功能差不多。

 

1. 静态指定: ip pim rp-address x.x.x.x , 所有组播路由器都要配置为同一个 RP 地址。否则会提示 RP 地址无效。

 

通过 show ip pim rp mapping 查看组播组与 RP 的映射关系。

 

2. 动态指定:选择一个 RP ,或者将多个地址做为 RP 的候选 - 备份

 

AUTO-RP

1.ip pim send-rp- announce interface f0/0, 224.0.1.39 发送消息说自己是某个组的候选 RP ,并指定一个 TTL 值,该值通常不会太大, 10 12 等等,,为跳数。

group-list 1: 表明自己是这个 ACL 所允许的 IP 的候选 RP

此外,使用此命令的前提是, f0/0 需要加入 PIM-SM 中。

2.ip pim send-rp-discover~~~ A B 配置成映射代理,监听发送到 224.0.1.39 的信息,并向 224.0.1.40 发送一条 RP 到组播组的映射消息,传播范围也是通过 TTL 值来指定。其他路由器监听此地址,来了解 RP 的是谁,位置在哪

pim send-rp-discover ,在配置了 .ip pim send-rp-an interface 的路由器上进行配置,其他的路由器不用配置。 ------- 自己总结的,好像不对

 

 

组播验证命令:

show ip pim interface

查看参与到 PIM 的接口的 PIM 模式, DM 或者 SM, 以及邻居的数量和 DR 信息

 

show ip pim neighbor

查看 pim 的邻居关系,在组播 PIM 无法 ping 通的情况下用来查看 PIM 的邻接关系是否有正常建立

 

SHOW IP PIM RP

 

SHOW IP PIM RP MAPPING

 

SHOW IP IGMP INTERFACE ,查看 IGMP 信息

 

SHOW IP IGMP GROUP GROUP-ADDRESS