IP Multicast over EoMPLS

IP Multicast over EoMPLS

Network topology:

The scenario is to send IP multicast traffic across EoMPLS Pseudowire between PE1 and PE2 routers. PIM Sparse-mode is used with Static RP allocation for simplicity.

Configuration

The EoMPLS configuration on PE1 and PE2 routers is as follows-

EoMPLS Configuration

PE1 router:
interface Loopback 0
 ip address 1.1.1.1 255.255.255.255
 ip ospf 1 area 0
!
interface fastethernet 1/0
 no ip address
 xconnect 3.3.3.3 100 encapsulation mpls
!
PE2 router:
interface Loopback 0
 ip address 3.3.3.3 255.255.255.255
 ip ospf 1 area 0
!
interface fastethernet 1/1
 no ip address
 xconnect 1.1.1.1 100 encapsulation mpls
!

The following output shows the status of the Pseudowire. It also shows the labels that will be imposed on all IP packets (including PIM Hellos and other multicast packets) that are received on the Attachment Circuit (AC) from Edge-1 to Edge-2 router.

PW Status on PE1

PE1# show mpls l2transport vc
Local intf     Local circuit              Dest address    VC ID      Status
-------------  -------------------------- --------------- ---------- ----------
Fa1/0          Ethernet                   3.3.3.3         100        UP
PE1# show mpls l2transport vc detail
Local interface: Fa1/0 up, line protocol up, Ethernet up
  Destination address: 3.3.3.3, VC ID: 100, VC status: up
    Output interface: Fa1/1, imposed label stack {17 16}
    Preferred path: not configured
    Default path: active
    Next hop: 10.1.1.2
  Create time: 00:54:56, last status change time: 00:41:41
  Signaling protocol: LDP, peer 3.3.3.3:0 up
    Targeted Hello: 1.1.1.1(LDP Id) -> 3.3.3.3, LDP is UP
    Status TLV support (local/remote)   : enabled/supported
      LDP route watch                   : enabled
      Label/status state machine        : established, LruRru
      Last local dataplane   status rcvd: No fault
      Last local SSS circuit status rcvd: No fault
      Last local SSS circuit status sent: No fault
      Last local  LDP TLV    status sent: No fault
      Last remote LDP TLV    status rcvd: No fault
      Last remote LDP ADJ    status rcvd: No fault
    MPLS VC labels: local 16, remote 16
    Group ID: local 0, remote 0
    MTU: local 1500, remote 1500
    Remote interface description:
  Sequencing: receive disabled, send disabled
  Control Word: On (configured: autosense)
  VC statistics:
    transit packet totals: receive 878, send 863
    transit byte totals:   receive 330596, send 98468
    transit packet drops:  receive 0, seq error 0, send 0

Multicast configuration on Edge routers

Rendezvous Point (RP) is statically configured for only customer network. The Loopback 0 IP address (12.1.1.1) on Edge-2 router is set to become the RP for the customer PIM network.

Multicast configuration on Edge-1

ip multicast-routing
!
interface fastethernet 0/0
 description to PE1
 ip address 172.16.1.1 255.255.255.0
 ip pim sparse-mode
 ip ospf 12 area 0
!
interface fastethernet 0/1
 description to Multicast Receiver
 ip address 192.68.1.1 255.255.255.0
 ip pim sparse-mode
 ip ospf 12 area 0
!
ip pim rp-address 12.1.1.1

Multicast configuration on Edge-2

ip multicast-routing
!
interface Loopback 0
 ip address 12.1.1.1 255.255.255.255
 ip ospf 12 area 0
!
interface fastethernet 0/0
 description to PE2
 ip address 172.16.1.2 255.255.255.0
 ip pim sparse-mode
 ip ospf 12 area 0
!
interface fastethernet 0/1
 description to Multicast Source
 ip address 192.168.2.1 255.255.255.0
 ip pim sparse-mode
 ip ospf 12 area 0
!
ip pim rp-addess 12.1.1.1

The show ip pim interface command shows the interfaces enabled for PIM on the router. Edge-2 router is elected DR (Designated Router) for the network 172.16.1.0/24 since it has the higher IP Address 172.16.1.2. DR priority is same for both Edge-1 and Edge-2 routers and hence highest IP address wins.

PIM-enabled interfaces on Edge-1

Edge-1# show ip pim interface
Address          Interface                Ver/   Nbr    Query  DR     DR
                                          Mode   Count  Intvl  Prior
172.16.1.1       FastEthernet0/0          v2/S   1      30     1      172.16.1.2
192.168.1.1      FastEthernet0/1          v2/S   0      30     1      192.168.1.1

The show ip pim neighbor command shows PIM neighbors. In this case, the PIM neighbor for Edge-1 will be Edge-2 router, and vice versa.

PIM neighbor for Edge-1

Edge-1# show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
172.16.1.2        FastEthernet0/0          00:01:15/00:01:28 v2    1 / DR S

Since the RP is statically configured, no election takes places and since Edge-1 router can reach the RP using the OSPF, it selects Edge-2 router as its RPF.

show ip rpf 12.1.1.1

Edge-1# show ip rpf 12.1.1.1
RPF information for ? (12.1.1.1)
  RPF interface: FastEthernet0/0
  RPF neighbor: ? (172.16.1.2)
  RPF route/mask: 12.1.1.1/32
  RPF type: unicast (ospf 12)
  RPF recursion count: 0
  Doing distance-preferred lookups across tables

Source sending traffic but no receivers

The source (192.168.2.10) starts sending multicast traffic to multicast IP address 239.10.10.1. However, since there are no receivers at the moment, the Edge-2 router will not allow this traffic to be sent over to the Pseudowire.

No receivers yet

Edge-2# show ip mroute 239.10.10.1
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.1), 00:22:55/stopped, RP 12.1.1.1, flags: SP
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list: Null
(192.168.2.10, 239.10.10.1), 00:00:08/00:02:51, flags: PT
  Incoming interface: FastEthernet0/1, RPF nbr 0.0.0.0
  Outgoing interface list: Null
Edge-1# show ip mroute 239.10.10.1
Group 239.10.10.1 not found

Receiver opens network stream for 239.10.10.1

The host 192.168.1.10 desires to join the multicast group 239.10.10.1. It sends an IGMP Membership Report messages to all routers on the subnet. The DR i.e. Edge-1 router also receives this message and creates a (*, 239.10.10.1) routing entry in its multicast routing table.

IGMPv2 messages received by Edge-1

Edge-1#
*Mar  1 00:25:41.571: IGMP(0): Received v2 Report on FastEthernet0/1 from 192.168.1.10 for 239.10.10.1
*Mar  1 00:25:41.575: IGMP(0): Received Group record for group 239.10.10.1, mode 2 from 192.168.1.10 for 0 sources
*Mar  1 00:25:41.579: IGMP(0): WAVL Insert group: 239.10.10.1 interface: FastEthernet0/1Successful
*Mar  1 00:25:41.583: IGMP(0): Switching to EXCLUDE mode for 239.10.10.1 on FastEthernet0/1
*Mar  1 00:25:41.587: IGMP(0): Updating EXCLUDE group timer for 239.10.10.1
*Mar  1 00:25:41.587: IGMP(0): MRT Add/Update FastEthernet0/1 for (*,239.10.10.1) by 0
*Mar  1 00:25:41.587: PIM(0): Check RP 12.1.1.1 into the (*, 239.10.10.1) entry

Once the (*, 239.10.10.1) entry is created, Edge-1 creates a Join/ Prune message containing RP-address to its RPF neighbor i.e Edge-2 router.

Sending Join/ Prune message to RPF neighbor

*Mar  1 00:25:41.595: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune message for 239.10.10.1
*Mar  1 00:25:41.599: PIM(0): Insert (*,239.10.10.1) join in nbr 172.16.1.2's queue
*Mar  1 00:25:41.603: PIM(0): Building Join/Prune packet for nbr 172.16.1.2
*Mar  1 00:25:41.603: PIM(0): Adding v2 (12.1.1.1/32, 239.10.10.1), WC-bit, RPT-bit, S-bit Join
*Mar  1 00:25:41.603: PIM(0): Send v2 join/prune to 172.16.1.2 (FastEthernet0/0)
*Mar  1 00:25:41.771: PIM(0): Insert (192.168.2.10,239.10.10.1) join in nbr 172.16.1.2's queue
*Mar  1 00:25:41.783: PIM(0): Building Join/Prune packet for nbr 172.16.1.2
*Mar  1 00:25:41.787: PIM(0): Adding v2 (192.168.2.10/32, 239.10.10.1), S-bit Join
*Mar  1 00:25:41.791: PIM(0): Send v2 join/prune to 172.16.1.2 (FastEthernet0/0)
*Mar  1 00:25:42.419: IGMP(0): Received v2 Report on FastEthernet0/1 from 192.168.1.10 for 239.10.10.1
*Mar  1 00:25:42.423: IGMP(0): Received Group record for group 239.10.10.1, mode 2 from 192.168.1.10 for 0 sources
*Mar  1 00:25:42.427: IGMP(0): Updating EXCLUDE group timer for 239.10.10.1
*Mar  1 00:25:42.427: IGMP(0): MRT Add/Update FastEthernet0/1 for (*,239.10.10.1) by 0

When Edge-2 router receives this Join/ Prune message, it puts its fastethernet 0/0 in Forwarding state i.e. the interface on which these messages were received.

Edge-2 receives Join/Prune messages

Edge-2#
*Mar  1 00:25:38.731: PIM(0): Received v2 Join/Prune on FastEthernet0/0 from 172.16.1.1, to us
*Mar  1 00:25:38.731: PIM(0): Join-list: (*, 239.10.10.1), RPT-bit set, WC-bit set, S-bit set
*Mar  1 00:25:38.739: PIM(0): Add FastEthernet0/0/172.16.1.1 to (*, 239.10.10.1), Forward state, by PIM *G Join
*Mar  1 00:25:38.747: PIM(0): Add FastEthernet0/0/172.16.1.1 to (192.168.2.10, 239.10.10.1), Forward state, by PIM *G Join
*Mar  1 00:25:38.943: PIM(0): Received v2 Join/Prune on FastEthernet0/0 from 172.16.1.1, to us
*Mar  1 00:25:38.947: PIM(0): Join-list: (192.168.2.10/32, 239.10.10.1), S-bit set
Edge-2#
*Mar  1 00:25:38.951: PIM(0): Update FastEthernet0/0/172.16.1.1 to (192.168.2.10, 239.10.10.1), Forward state, by PIM SG Join
*Mar  1 00:25:48.919: PIM(0): Send RP-reachability for 239.10.10.1 on FastEthernet0/0

As the flag 'T' and (192.168.2.10, 239.10.10.1) entry suggests, the RP creates this entry, switches to SPT-tree and sends periodic Join/Prune messages towards the source to improve efficiency otherwise individual packets are sent to the RP.

Edge-2 router now has Fastethernet 0/0 interface in its outgoing interface list.

Creating oil

Edge-2# show ip mroute 239.10.10.1
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.1), 00:27:21/00:02:34, RP 12.1.1.1, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:01:54/00:02:34
(192.168.2.10, 239.10.10.1), 00:04:34/00:03:26, flags: T
  Incoming interface: FastEthernet0/1, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:01:54/00:02:35

Edge-1 router receives traffic on Fastethernet 0/0 interface and hence puts in Incoming interface list while the receiver is connected to Fastethernet 0/1 interface and hence it is put in Outgoing interface list.

show ip mroute on Edge-1

Edge-1# show ip mroute 239.10.10.1
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.10.10.1), 00:00:49/stopped, RP 12.1.1.1, flags: SJC
  Incoming interface: FastEthernet0/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:00:49/00:02:44
(192.168.2.10, 239.10.10.1), 00:00:48/00:02:14, flags: JT
  Incoming interface: FastEthernet0/0, RPF nbr 172.16.1.2
  Outgoing interface list:
    FastEthernet0/1, Forward/Sparse, 00:00:48/00:02:44