6.4. Configuring PIM-DM

Overview

Function Introduction

The Protocol Independent Multicasting-Dense Mode (PIM-DM) is a multicast routing protocol designed to operate efficiently across Wide Area Networks (WANs) with densely distributed groups. It helps network nodes that are geographically dispersed to conserve bandwidth, and reduces traffic by simultaneously delivering a single stream of information to multiple locations.

PIM-DM assumes that when a source starts sending, all down stream systems want to receive multicast datagrams. Initially, multicast datagrams are flooded to all areas of the network. PIM-DM uses RPF to prevent looping of multicast datagrams while flooding. If some areas of the network do not have group members, PIM-DM will prune off the forwarding branch by instantiating prune state.

Prune state has a finite lifetime. When that lifetime expires, data will again be forwarded down the previously pruned branch. Prune state is associated with an (S,G) pair. When a new member for a group G appears in a pruned area, a router can “graft” toward the source S for the group, thereby turning the pruned branch back into a forwarding branch.

Principle Description

The PIM-DM module is based on the following IETF standard: RFC 3973

Configuration

image

Fig. 6.3 Pim DM

PIM-DM is a soft-state protocol. The main requirement is to enable PIM-DM on desired interfaces. All multicast group states are maintained dynamically as the result of IGMP Report/Leave and PIM messages.

This section provides PIM-DM configuration examples for two relevant scenarios. The following graphic displays the network topology used in these examples:

In this example, using the above topology, multicast data stream comes to eth-0-1 of Switch1, host is connected to eth-0-1 of Switch2.

step 1 Enter the configure mode

Switch# configure terminal

step 2 Enter the interface configure mode set the attributes and ip address, and enable pim-dm

Configuring on Switch1:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.1.1.1/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit

Configuring on Switch2:

Switch# configure terminal
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 22.1.1.2/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit

step 3 Add static routes

Configuring on Switch1:

Switch(config)# ip route 22.1.1.0/24 12.1.1.2

Configuring on Switch2:

Switch(config)# ip route 11.1.1.0/24 12.1.1.1

step 4 Exit the configure mode

Switch(config)# end

step 5 Validation

The show ip pim dense-mode interface command displays the interface details for Switch1.

Switch# show ip pim dense-mode interface
Address Interface VIFIndex Ver/ Nbr
Mode Count
11.1.1.1 eth-0-1 0 v2/D 0
12.1.1.1 eth-0-9 1 v2/D 1

The show ip pim dense-mode neighbor command displays the neighbor details for Switch1.

Switch# show ip pim dense -mode neighbor
Neighbor-Address Interface Uptime/Expires Ver
12.1.1.2 eth-0-9 00:01:00/00:01:44 v2

The show ip pim dense-mode mroute detail command displays the IP multicast routing table.

Switch1:

Switch# show ip pim dense-mode mroute
PIM-DM Multicast Routing Table
(11.1.1.2, 225.1.1.1)
Source directly connected on eth-0-1
State-Refresh Originator State: Originator
Upstream IF: eth-0-1
Upstream State: Forwarding
Assert State: NoInfo
Downstream IF List:
eth-0-9, in 'olist':
Downstream State: NoInfo
Assert State: NoInfo

Switch2:

Switch# show ip pim dense-mode mroute
PIM-DM Multicast Routing Table
(11.1.1.2, 225.1.1.1)
RPF Neighbor: none
Upstream IF: eth-0-9
Upstream State: AckPending
Assert State: NoInfo
Downstream IF List:
eth-0-1, in 'olist':
Downstream State: NoInfo
Assert State: NoInfo

Application cases

N/A