首页 > 技术文章 > multicast-10 Anycast RP

meili333 2020-10-26 09:50 原文

Anycast RP

任意播RP

同样离不开MSDP协议,

 

定义

1 Anycast 最初由RPF1546提出并定义,用于IP网络上通过一个IP地址标识一组特定的服务的主机,同时服务访问并不关心提供服务的具体是哪一台主机,(比如我们常用的8.8.8.8)访问该地址的数据包将被路由器提供的 路由表到最近的一台主机上,因此anycast 指的是找到任意的一个离本地最近的主机

2 anycast RP指的是在同一AS 内设置出多个地址完全一样的RP,形成多个物理RP,一个逻辑RP,当组播路由器使用RP时,将被组播路由器按照单播路由表将其引导到离自己最近的RP上,

3 多个物理RP之间需要 通过MSDP来完成组播源信息的共享,因为第一跳路由器也只能使用离自己最近的RP

4 多个RP之间可以实现相互的分摊和备份

5 RP选择的方法可以是三种  RP-selection 中的任意一种  static bsr autorp

 

之所以说可以分摊

实际上就是大家都在线,没有主备之分,干不同的活,有人负责加组,有人负注册

 

实例走一波

 

 

 

这次我们使用BSR

R3上输入

Ip pim bsr-candidate lo 1
Ip pim rp-candidate lo 0

R2上输入

Ip pim rp-candidate lo 0

 

PS:RP的指定要使用相同的IP地址,而BSR最好不要使用这个地址,因为到时候根本就不知道是谁发的了。

 

这样一来确认了角色,R3是BSR 又是CRP

而R2只是一台CRP

 

 

 

 

 

可以看到其它三台设备上的RP mapping 表,信息源都是R3,information source 3.3.3.3

为什么呢?如果你没有记住的话,请往回看看。

 

但是R2上啥都没有,因为R3现在自己是RP,不会再向上发了,所以R2上是空的,

 

那要怎么办呢?

配置MSDP,

让组播数据到达R1后,去请求R2,而R2收到这个register消息之后会将其转发下去,使用SA消息

 

 

注意这时在建立 MSDP时,就不可以使用100.1.1.1这个地址了,

为什么呢?因为两个地址是一样的,系统也会报错的

所以需要我们使用另外一个Lo 接口的地址来做

如各自的LO 1 接口

R2(config)#ip msdp peer 3.3.3.3 connect-source lo 1

 

如果要是使用100.1.1.1 这个接口做为源和目的呢?行不行?

肯定不行,因为两侧的地址是一样的,咋建啊? 

R3(config)#ip msdp peer 2.2.2.2 connect-source lo 1

这样一来,就可以完成一些消息的传递了

R1—R2 的register 消息

R2-R3发送的SA 消息

R3-R4的组播流量,走*,G表项

R3上看到了源,形成了S,G表项

并顺着s,g的In口向上发送S,Gjoin 消息

以此类推就到了R1,形成了S,G的表项。

 

 

 

 

----------------------------------------------------------

CCIE成长之路  --- 梅利

推荐阅读