0
点赞
收藏
分享

微信扫一扫

组播RPF neighbor的作用

1.RPF检查:

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

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

那么RPF neighbor有什么作用呢?

RPF neighbor没有提到会在执行RPF检查的时候用到。

实际上RPF检查不仅仅查接口,某种情况下还需要检查RPF neighbor。华为的产品文档里面也没有提到会检查RPF neighbor,机制是要检查的。

[Huawei]dis multicast rpf-info 2.2.2.2

 VPN-Instance: public net

 RPF information about source: 2.2.2.2

     RPF interface: Serial2/0/0, RPF neigh bor: 123.1.1.1

     Referenced route/mask: 2.2.2.2/32

     Referenced route type: unicast

     Route selection rule: preference-preferred

     Load splitting rule: disable。

先看一下RPF neighbor的作用。例如下图:

组播RPF neighbor的作用_源地址

PIM-DM采用push模式.如果这个时候对收到的报文执行source的RPF检查,由于source是一样的,那么RPF接口也是一致,电脑会收到2份组播么?

不会,对于B和C来说,从下游一个接口收到组播报文,RPF检查不会通过,而且会发送assert报文,就是断言机制;winner继续转发报文,loser会发送prune报文,

断言过程中D会监听整个过程,并且把winner的IP作为 RPF neighbor。然后向winner发送224.0.0.13的join报文,避免修剪;这个报文里面包含有RPF nei,如果不包含,那么BC都处理,两份组播流量又来了。

一般情况下,会根据路由表选择一个下一跳作为RPF neighbor(因为是assert报文里面会带有mertic 所以一般情况下下一跳就是RPF nei),就算负载均衡也要选出来。上文的表项中的Route selection rule就是选择的规则。

组播RPF neighbor的作用_组播_02


RPF路由选择规则:preference-preferred:根据路由协议的优先级选择路由。

longest-match:按照目的地址对路由表中的路由进行最长匹配

而断言的时候是记录winner的IP。



2.在检查BSR的RP-SET报文的时候RPF neighbor就会使用到了。

帧中继的hub-spoke环境中,如下图:

组播RPF neighbor的作用_源地址_03

当配置完成后,AR3收不到BSR发出的RP-SET。

解答:

AR3会对BSR发出的RP-SET进行RPF检查,用以防止环路。

RP-SET是逐条传送的,AR1把RP-set发给AR3后,源地址变成了AR的地址,AR1确实是在AR3的S2/0/0,为什么会检查失败呢?

对于RP-SET的检查,不是检查IP头部的源地址,而是以数据包里面的BSR地址进行RPF检查。BSR地址是AR2的地址。也是从s2/0/0过来的。怎么会失败?

根据RPF检查,那么去往BSR的路由的下一跳为AR2的接口IP.所以选择AR2作为RPF neighbor。然后收到这个报文的源IP是AR1的地址,并不是PRF nei,所以检查失败。

需要手动写一条路由。

ip route-static 2.2.2.2 255.255.255.255 123.1.1.1 preference 9 




配置:

AR1:

interface Serial2/0/0

 link-protocol fr

 undo fr inarp

 fr dlci 102

 fr dlci 103

 fr map ip 123.1.1.2 102 broadcast

 fr map ip 123.1.1.3 103 broadcast

 ip address 123.1.1.1 255.255.255.0 

 pim sm

 ospf dr-priority 255

#

interface Serial2/0/1

 link-protocol ppp

#

interface GigabitEthernet0/0/0

#

interface GigabitEthernet0/0/1

#

interface NULL0

#

interface LoopBack1

 ip address 1.1.1.1 255.255.255.0 

 pim sm

#

ospf 1 

 peer 123.1.1.2

 peer 123.1.1.3

 area 0.0.0.0 

  network 1.1.1.0 0.0.0.255 

  network 123.1.1.0 0.0.0.255 

#

pim

 c-rp LoopBack1 priority 10

AR2:

interface Serial2/0/0

 link-protocol fr

 fr dlci 201

 fr map ip 123.1.1.1 201 broadcast

 fr map ip 123.1.1.3 201

 ip address 123.1.1.2 255.255.255.0 

 pim sm

#

interface Serial2/0/1

 link-protocol ppp

#

interface GigabitEthernet0/0/0

 ip address 24.1.1.1 255.255.255.0 

 pim sm

 igmp enable

#

interface GigabitEthernet0/0/1

#

interface NULL0

#

interface LoopBack1

 ip address 2.2.2.2 255.255.255.0 

 pim sm

#

ospf 1 

 peer 123.1.1.1

 area 0.0.0.0 

  network 2.2.2.0 0.0.0.255 

  network 24.1.1.0 0.0.0.255 

  network 123.1.1.0 0.0.0.255 

#

pim

 c-bsr LoopBack1

 c-rp LoopBack1 priority 50

AR3:

interface Serial2/0/0

 link-protocol fr

 undo fr inarp

 fr dlci 301

 fr map ip 123.1.1.1 301 broadcast

 fr map ip 123.1.1.2 301 broadcast

 ip address 123.1.1.3 255.255.255.0 

 pim sm

#

interface Serial2/0/1

 link-protocol ppp

#

interface GigabitEthernet0/0/0

 ip address 34.1.1.1 255.255.255.0 

 igmp enable

 ospf smart-discover

 ospf p2mp-mask-ignore

#

interface GigabitEthernet0/0/1

#

interface NULL0

#

interface LoopBack1

 ip address 3.3.3.3 255.255.255.0 

 pim sm

#

ospf 1 

 silent-interface GigabitEthernet0/0/0

 peer 123.1.1.1

 area 0.0.0.0 

  network 3.3.3.0 0.0.0.255 

  network 34.1.1.0 0.0.0.255 

  network 123.1.1.0 0.0.0.255 

#

ip route-static 2.2.2.2 255.255.255.255 123.1.1.1 preference 9

帧中继交换机:

组播RPF neighbor的作用_路由表_04

举报

相关推荐

0 条评论