In part 1 of this post I looked at how to configure DVMRP to facilitate inter-VLAN Multicast commuications on a single switch. In this post I’ll look at how to configure PIM to facilitate inter-VLAN Multicast communications across multiple switches and routers (Layer 3 switches).
I took a few minutes and threw together a quick diagram to help layout the topology (a picture is truly worth a thousand words). There are two core ERS 8600 switches (a switch cluster as Nortel likes to call it these days). There are three VLANs bridged across all four switches in the diagram, VLAN 55, 56 and 200. There is a fourth VLAN, 57, that is routed from ERS 8600 C. The ERS 5520 in the diagram will only be used as a Layer 2 even though it could potentially be used as a Layer 3 device (router).
I’m going to review two possible configurations. The first scenario will be for a client device (VLC Client A) in a VLAN routed by the core ERS 8600s. The second scenario will be for a client device (VLC Client B) in a VLAN routed by a closet ERS 8600.
Lets get on with configuring some ERS 8600 switches. First lets enable PIM globally;
ERS8600-A# config ip pim enable
ERS8600-A# config ip pim fast-joinprune enable
Then we’ll enable PIM on the specific VLANs;
ERS8600-A# config vlan 55 ip pim enable
ERS8600-A# config vlan 56 ip pim enable
ERS8600-A# config vlan 200 ip pim enable
We need to create a CLIP interface to use for PIM routing, we don’t want to tie the PIM routing to a physical interface in case that interface goes down for whatever reason. We’re already using CLIP 1 for our OSPF router ID of 10.1.0.5/32.
ERS8600-A# config ip circuitless-ip-int 2 create 10.1.0.15/255.255.255.255
ERS8600-A# config ip circuitless-ip-int 2 ospf enable
ERS8600-A# config ip circuitless-ip-int 2 pim enable
We need to add a candidate Rendezvous Point Router (RP) pointing it to our CLIP address.
ERS8600-A# ip pim candrp add grp 239.255.1.1 mask 255.255.255.255 rp 10.1.0.15
We need to set the priority of the Bootstrap Router (BSR) for dynamic PIM routing.
ERS8600-A# ip pim interface 10.1.0.15 cbsrpreference 100
Then on the second core ERS 8600 switch;
ERS8600-B# config ip pim enable
ERS8600-B# config ip pim fast-joinprune enable
ERS8600-B# config vlan 55 ip pim enable
ERS8600-B# config vlan 56 ip pim enable
ERS8600-B# config vlan 200 ip pim enable
ERS8600-B# config ip circuitless-ip-int 2 create 10.1.0.16/255.255.255.255
ERS8600-B# config ip circuitless-ip-int 2 ospf enable
ERS8600-B# config ip circuitless-ip-int 2 pim enable
ERS8600-B# config ip pim candrp add grp 239.255.1.1 mask 255.255.255.255 rp 10.1.0.16
ERS8600-B# config ip pim interface 10.1.0.16 cbsrpreference 50
That’s really all there is to configure with the two core ERS 8600 switches.
ERS5520 Switch (Edge)
In the case of the ERS 5520 switch there really isn’t anything you need to configure per say. You could enable IGMP (generally disabled by default) to filter the multicast traffic from ports that are not subscribing to any multicast groups. Since the ERS8600s are performing the routing the ERS5520 acts just like a Layer 2 switch.
VLC Client A (10.1.56.50) should now be able to connect to the multicast group 239.255.1.1 from the ERS 5520 which will be sourced from the VLC Server (10.1.55.50).
ERS8600 C Switch (Edge)
In the case of the ERS 8600 switch (edge) you need to configure and enable PIM. We’ll using VLAN 200 to interface with the upstream ERS8600 switches
ERS8600-C:5# config ip pim enable
ERS8600-C:5# config vlan 57 ip pim enable
ERS8600-C:5# config vlan 57 ip pim interface-type passive
ERS8600-C:5# config vlan 200 ip pim enable
Since there won’t be any other Layer 3 PIM switches on VLAN 57 we set the PIM interface to passive (much like the OSPF equivalent of passive).
VLC Client B (10.1.57.50) should now be able to connect to the multicast group 239.255.1.1 from the ERS 8600 C which will be sourced from the VLC Server (10.1.55.50).
We can dump the multicast (PIM) routing table with the following command from the edge ERS8600 switch;
ERS8600-C:5# show ip pim mroute
================================================================================
Pim Multicast Route
================================================================================
Src: 0.0.0.0 Grp: 230.0.0.2 RP: 10.1.0.5 Upstream: 10.1.200.5
Flags: WC RP CACHE
Incoming Port: Vlan200-1/1,
Outgoing Ports: Vlan127-2/42,
Joined Ports:
Pruned Ports:
Leaf Ports: Vlan127-2/42,
Asserted Ports:
Prune Pending Ports:
Assert Winner Ifs:
Assert Loser Ifs:
TIMERS:
Entry JP RS Assert
151 1 0 0
VLAN-Id: 200
Join-P: 0
Assert: 0
——————————————————————————–
Src: 10.1.233.30 Grp: 230.0.0.2 RP: 10.1.0.5 Upstream: 10.1.200.5
Flags:
SPT CACHE SG
Incoming Port: Vlan200-1/1,
Outgoing Ports: Vlan127-2/42,
Joined Ports:
Pruned Ports:
Leaf Ports: Vlan127-2/42,
Asserted Ports:
Prune Pending Ports:
Assert Winner Ifs:
Assert Loser Ifs:
TIMERS:
Entry JP RS Assert
64 4 0 0
VLAN-Id: 200
Join-P: 0
Assert: 0
——————————————————————————–Total Num of Entries Displayed 2
Flags Legend:
SPT = Shortest path tree, WC=(*,Grp) entry, RP=Rendezvous Point tree, CACHE=Kernel Cache, ASSERTED=Asserted, SG=(Src,Grp) entry, PMBR=(*,*,RP) entry, FWD_TO_RP=Forwarding to RP, FWD_TO_DR=Forwarding to DR, SG_NODATA=SG Due to Join, CP_TO_CPU=Copy to CPU, STATIC_MROUTE=Static Mroute, MRTF_SMLT_PEER_SG=Peer SG On Non-DR For SMLT
——————————————————————————–
Troubleshooting
Here are some basic commands that should help you troubleshoot any PIM issues;
ERS8600-A:5# show ip pim neighbor
================================================================================
Pim Neighbor
================================================================================
INTERFACE ADDRESS UPTIME EXPIRE
——————————————————————————–
Vlan55 10.1.55.6 31 day(s), 00:09:53 0 day(s), 00:01:40
Vlan56 10.1.56.6 31 day(s), 00:09:53 0 day(s), 00:01:40
Vlan200 10.1.200.6 31 day(s), 00:09:53 0 day(s), 00:01:34Total PIM Neighbors = 3
We can see that all three VLAN interfaces have PIM neighbors with the ERS 8600 B switch. Lets just check the RPs and make sure we have the correct multicast groups (addresses).
ERS8600-A:5# show ip pim rp-set
================================================================================
Pim RPSet
================================================================================
GRPADDRESS GRPMASK ADDRESS HOLDTIME EXPTIME
——————————————————————————–
230.0.0.1 255.255.255.255 10.1.0.15 150 137
230.0.0.2 255.255.255.255 10.1.0.15 150 137
239.255.1.1 255.255.255.255 10.1.0.15 150 137
The multicast addresses of 230.0.0.1 and 230.0.0.2 listed above are used for Nortel’s Contact Center (formerly Symposium Call Center software). Here’s how we can list the candidate RPs;
ERS8600-A:5# show ip pim candidate-rp
================================================================================
Pim Candidate RP Table
================================================================================
GRPADDR GRPMASK RPADDR
——————————————————————————–
230.0.0.1 255.255.255.255 10.1.0.15
230.0.0.2 255.255.255.255 10.1.0.15
239.255.1.1 255.255.255.255 10.1.0.15
If we’re dynamically choosing a RP we need to make sure that there is a BSR active;
ERS8600-A:5# show ip pim bsr
================================================================================
Current BootStrap Router Info
================================================================================Current BSR address: 10.1.0.15
Current BSR priority: 100
Current BSR HashMask: 255.255.255.252
Current BSR Fragment Tag: 44590
Pim Bootstrap Timer : 31
I may need to update this article to make it cleaner and clearer.
Cheers!