组播RPF neighbor的作用(组播rpf检查会向上游修剪吗)

网友投稿 262 2022-09-19


组播RPF neighbor的作用(组播rpf检查会向上游修剪吗)

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的作用。例如下图:

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路由选择规则:preference-preferred:根据路由协议的优先级选择路由。

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

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

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

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

当配置完成后,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

帧中继交换机:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网络工程师的Python之路-1.paramiko实验之ENSP(python paramiko并发)
下一篇:如何查看JVM使用的默认的垃圾收集器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~