Wednesday, December 3, 2014

Multicast - Bootstrap router with multiple RPs

Overview

BSR distributes information via PIM messages which include group ranges and the list of RP candidates or C-RP's called the RP-Set. A deterministic algorithm is used to calculate which group ranges are mapped to which RP. The results must be the same across all routers and can be summarized below.

  1. RP with the lowest priority
  2. RP with the highest Hash-value function
  3. RP with the hight IP address

The processes can be summarized as follows:


  1. A hashing algorithm is run for each multicast group address for each C-RP in the RP-set and a hash value is obtained.
  2. The C-RP with the highest calculated hash value becomes the RP for that particular multicast group.
  3. There is the possibility that the hashing algorithm will result in equal hash values for different C-RPs. In this case, the C-RP with the highest IP address will become the RP for that group. The results allow for a more predictable result assuming there are enough RP's to distribute the groups across:

                     2(32 - hash length) = # of RPs that will be used in load balancing*

Concepts tested
  • Configuring PIM sparse mode
  • Configuring PIM BSR with multiple RPs
  • Using the hash-mask-length to influence load balancing
Topology







Lab Tasks
  • Configure PIM sparse mode on all paths from the source to receiver routers
  • Using standards based features configure R2 and R3 as RPs for all groups
  • Ensure the most even distribution of group to RPs
GNS3 configuration file, requires IOS v15 for the 7200 router: Link


Solution

R1(config)#ip multicast-routing
R1(config)#int g0/0
R1(config-if)#ip pim sparse-mode

R1(config-if)#exit

R2(config)#ip multicast-routing
R2(config)#int g0/0
R2(config-if)#ip pim sparse-mode
R2(config-if)#exit
R2(config)#
R2(config)#int g1/0
R2(config-if)#ip pim sparse-mode
R2(config-if)#exit
R2(config)#int loopback 0
R2(config-if)#ip pim sparse-mode
R2(config-if)#exit


R3(config)#ip multicast-routing
R3(config)#int g0/0
R3(config-if)#ip pim sparse-mode
R3(config-if)#exit
R3(config)#
R3(config)#int g1/0
R3(config-if)#ip pim sparse-mode
R3(config-if)#exit
R3(config)#int loopback 0
R3(config-if)#ip pim sparse-mode
R3(config-if)#exit

R4(config)#ip multicast-routing
R4(config)#int g0/0
R4(config-if)#ip pim sparse-mode
R4(config-if)#exit
R4(config)#
R4(config)#int g1/0
R4(config-if)#ip pim sparse-mode
R4(config-if)#exit
R4(config)#
R4(config)#int g2/0
R4(config-if)#ip pim sparse-mode
R4(config-if)#exit
R4(config)#int loopback 0
R4(config-if)#ip pim sparse-mode
R4(config-if)#exit
R4(config)#ip pim bsr-candidate loopback 0 31

R5(config)#ip multicast-routing
R5(config)#int g0/0
R5(config-if)#ip pim sparse-mode
R5(config-if)#exit


Verification

To verify have R1 join groups 239.1.1.1 and 239.1.1.2

R1#sh ip pim rp-hash 239.1.1.1
  RP 3.3.3.3 (?), v2
    Info source: 4.4.4.4 (?), via bootstrap, priority 0, holdtime 150
         Uptime: 07:10:45, expires: 00:01:30
  PIMv2 Hash Value (mask 255.255.255.254)
    RP 2.2.2.2, via bootstrap, priority 0, hash value 825161304
    RP 3.3.3.3, via bootstrap, priority 0, hash value 1840069355

R1#sh ip pim rp-hash 239.1.1.2
  RP 2.2.2.2 (?), v2
    Info source: 4.4.4.4 (?), via bootstrap, priority 0, holdtime 150
         Uptime: 07:10:48, expires: 00:01:26
  PIMv2 Hash Value (mask 255.255.255.254)
    RP 2.2.2.2, via bootstrap, priority 0, hash value 1339374966
    RP 3.3.3.3, via bootstrap, priority 0, hash value 902454281












No comments:

Post a Comment