Bidirectional-PIM Configuration
Bidirectional PIM (BIDIR-PIM) is a variant of PIM Sparse-Mode (PIM-SM) that builds bidirectional shared trees connecting multicast sources and receivers as specified in RFC5015.
BIDIR-PIM dispenses with both encapsulation and source state by allowing packets to be natively forwarded from a source to the Rendezvous Point (RP) using shared tree state.
BIDIR-PIM uses the same tree for traffic from source towards RP and from RP to receivers.
Note: Multicast PIM BIDIR feature is not supported in Qumaran 2 (Q2) and J2C+ platform.
Designated Forwarders (DF) Election
Bidirectional Shared-Trees violates current (*, G) RPF rules, as it accepts traffic from one Reverse Path Forwarding (RPF) interface only. To avoid forwarding multicast packet looping, bidir-PIM introduces a new mechanism called the designated forwarder (DF) election.
The designated forwarder (DF) election takes place for all PIM routers on every network segment and point-to-point link. The procedure selects one router as the DF for every RP of bidirectional groups. The designated forwarder is responsible for forwarding multicast packets received on that network.
PIM-SM Configuration
Enabling BIDIR-PIM
#configure terminal | Enter Configure mode. |
(config)#ip pim bidir-enable | Enable bidir-pim |
(config)#commit | Commit the transaction. |
Configuring BIDIR Rendezvous Point Statically
Configuring Static BIDIR RP
#configure terminal | Enter configure mode. |
(config)#ip access-list standard ip1 (config-ip-acl-std)#permit 224.0.0.0/24 | Configure the access list for multicast group. |
(config)#ip pim rp-address 10.10.1.5 ip1 bidir | Statically configure an rp address for multicast groups. |
(config)#commit | Commit the transaction. |
Here is the sample configuration for Router_D:
hostname Router_D
!
ip access-list standard ip1
permit 224.0.0.0/24
!
interface eth0
!
interface eth1
ip pim sparse-mode
!
interface eth2
ip pim sparse-mode
!
interface lo
!
!
ip multicast-routing
ip multicast bidirectional enable
!
ip pim bidir-enable
ip pim rp-address 10.10.1.5 ip1 bidir
!
Validation
RP Details
At Router_D, the show ip pim rp mapping command shows that 10.10.1.5 is the RP for all multicast groups 22.0.0.0/4, and is statically configured. All other routers will have a similar output:
Router_D#sh ip pim rp mapping
PIM Group-to-RP Mappings
Override RP cnt: 0
Group(s): 224.0.0.0/4, Static
RP: 10.10.1.5 bidir
Uptime: 00:01:45
At Router_D, use the show ip pim rp-hash command to display the selected RP for a specified group (224.0.1.3):
Router_D#show ip pim rp-hash 224.0.1.3
RP: 10.10.5.37
Interface Details
The show ip pim interface command displays the interface details for Router_E, and shows that Router_E is the Designated Router on Subnet 1.
Router_E#show ip pim interface
Address Interface VIFindex Ver/ Nbr DR DR
Mode Count Prior
192.168.1.10 eth1 0 v2/S 1 1 192.168.1.10
172.16.1.10 eth2 2 v2/S 1 1 172.16.1.10
IP Multicast Routing Table
Note: The multicast routing table displays for an RP router are different from other routers.
The show ip pim mroute command displays the IP multicast routing table. In this table, the following fields are defined:
RPF nbr
Displays the unicast next-hop to reach RP.
and mask length.
RPF idx
Displays the incoming interface for this (*, G) state.
RP
Displays the IP address for the RP router
B
Displays the bidirectional pim mode
The leading dots ....
Stand for VIF index
Router_E#show ip pim mroute
IP Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
(*, 224.0.1.3)B
RP: 10.10.1.5
RPF nbr: 172.16.1.2
RPF idx: eth2
Local ................................
Joined j...............................
At Router_E, eth2 is the incoming interface of the (*, G) entry, and the RP is reachable through eth2. The ‘B’ flag indicates that it is in bidirectional pim mode.
Since Router_C is the RP, and the root of this multicast tree, the show ip pim mroute command on Router_C shows RPF nbr as 0.0.0.0 and RPF idx as none.
Router_C#show ip pim mroute
IP Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
(*, 224.0.1.3)B
RP: 10.10.1.5
RPF nbr: 0.0.0.0
RPF idx: None
Local ................................
Joined j...............................
IP Multicast Routing Table
Flags: I - Immediate Stat, T - Timed Stat, F - Forwarder installed
B - BIDIR
Timers: Uptime/Stat Expiry
Interface State: Interface (TTL)
(*, 224.0.1.3), uptime 00:00:07, stat expires 00:03:23
Owner PIM, Flags: TFB
Outgoing interface list:
eth2 (1)
eth1 (1)
Configuring BIDIR-Neighbor Filter
This section shows how to configure a bidir-neighbor filter to specify which bidirectionally capable (bidir-capable) neighbors will participate in the designated forwarder (DF) election.
#configure terminal | Enter configure mode |
(config)# interface eth1 | Enter interface mode |
(config-if)# ip pim bidir-neighbor-filter Acl-name/acl-no | Configure bidir-neighbor-filter at interface |
(config-if)# no ip pim bidir-neighbor-filter acl-name/acl-no | Unconfigure bidir-neighbor-filter at interface |
Validation
Enter the commands listed in this section to confirm the previous configurations.
rtr6#show ip pim neighbor
Neighbor Interface Uptime/Expires Ver DR
Address Priority/Mode
192.168.1.149 eth1 00:00:44/00:01:31 v2 1 / B
192.168.1.152 eth1 00:00:01/00:01:44 v2 1 / DR --------?B Flag is removed
rtr6#show running-config interface eth1
!
interface eth1
ip address 192.168.1.57/24
no shutdown
no snmp trap link-status
ip ospf cost 10
ip pim bidir-neighbor-filter 1
ip pim sparse-mode
lldp-agent
no dcbx enable
exit
Configuring BIDIR PIM Offer Message Interval Time
This section shows how to configure BIDIR PIM offer message interval time.
#configure terminal | Enter configure mode. |
(config)# ip pim bidir-offer-interval <1> | Specify offer-interval in the range 1-20000 |
(config-if)# no ip pim bidir-offer-interval | Disable offer-interval |
Validation
1. Verify the time set for offer message interval
(config)#ip pim bidir-offer-interval 10
#show running-config
!
no service password-encryption
!
debug nsm packet
debug ip pim events
debug ip pim mfc
debug ip pim packet
debug ip pim state
debug ip pim timer
debug ip pim mib
!
ip vrf management
!
mpls propagate-ttl
!
no ip icmp-broadcast
!
ip multicast-routing
ip multicast bidirectional enable
!
ip pim bidir-enable
ip pim bidir-offer-interval 10
ip pim rp-address 172.31.5.153 bi
2. Verify neighbor information in Bidirectional PIM mode with “B” flag associated
rtr6#show ip pim neighbor
Neighbor Interface Uptime/Expires Ver DR
Address Priority/Mode
192.168.1.149 eth1 00:38:36/00:01:39 v2 1 / B
192.168.1.152 eth1 00:37:53/00:01:22 v2 1 / DR B
rtr6#
3. Verify DF status per interface
rtr6#show ip pim interface df
Interface RP DF Winner Metric
eth1 172.31.5.153 192.168.1.152 20
eth2 172.31.5.153 192.168.10.57 30
rtr6#
rtr6#show ip pim interface eth1 df 172.31.5.153
Designated Forwarder election for eth1, 192.168.1.57, RP 172.31.5.153
State Non-DF (Lose)
Offer count is 0
Current DF ip address 192.168.1.152
Last winner metric preference 110
Last winner metric 20
rtr6#
Configuring BIDIR PIM Offer Interval Limit
This section shows how to configure the Protocol Independent Multicast (PIM) bidirectionally capable number of unanswered offers before it changes as the designated forwarder (DF).
#configure terminal | Enter Configure mode. |
(config)# ip pim bidir-offer-limit <offer packet limit> | Configure bidir-offer-limit |
(config-if)# no ip pim bidir-offer-limit | Disable offer-limit |
Validation
rtr6#show running-config
!
no service password-encryption
!
hostname rtr6
!
!
debug nsm packet
!
ip vrf management
!
mpls propagate-ttl
!
no ip icmp-broadcast
!
access-list 1 deny 192.168.1.152
access-list 1 permit any
!
ip multicast-routing
!
ip pim bidir-enable
ip pim bidir-offer-limit 5
ip pim register-rp-reachability
ip pim vrf management register-rp-reachability
!