ESM IPv4: Multicast in a Wholesale/Retail Scenario

This chapter describes ESM IPv4 multicast configurations in a wholesale/retail scenario.

Topics in this chapter include:

Applicability

This chapter applies to SR OS routers, covers multicast in a wholesale and retail scenario for both IPoE and PPPoE subscribers, and was originally written for SR OS Release 11.0.R1. The CLI is updated to Release 15.0.R3.

Overview

Triple Play Service Delivery Architecture (TPSDA) allows operators to integrate High Speed Internet (HSI), voice and video services within a single network. The goal of this configuration example is to provide a walkthrough of a wholesale/retail multicast setup.

There are two wholesale/retail models in TPSDA. In the first model, a retail service instance is co-located with the wholesale service on the wholesale router whereas in the second model, for PPP services only, the retail service is on a separate BNG. Wholesale/Retail Model 1 shows the first model, and consists of two 7750s. The first is a wholesaler Broadband Network Gateway (BNG) with a co-located retail service and the second is a retailer router. Wholesale/Retail Model 2 shows the second model where the retail service is hosted by a separate router and the connection between the wholesale and retail utilizes Layer 2 Tunneling Protocol (L2TP).

Figure 1. Wholesale/Retail Model 1
Figure 2. Wholesale/Retail Model 2

In both models, the 7450 is used as an aggregation switch to aggregate the traffic of the PPPoE and IPoE subscribers. The wholesale router and the retail router are 7750s. The wholesale router is connected to the aggregation switch and to the retail router. The retail router is connected directly to the multicast source. The 7450 can only be an L2TP Access Concentrator (LAC), whereas the 7750 can be a LAC or an L2TP Network Server (LNS).

There are two basic requirements for a subscriber to receive multicast streams. First, the group interface for the subscribers must have IGMP enabled. Second, the Enhanced Subscriber Management (ESM) subscriber must be allowed to receive multicast streams by having IGMP enabled. When both requirements are met, the BNG will process the subscribers’ IGMP messages, otherwise, IGMP messages are dropped. All customer premise equipment (CPE) originated IGMP messages are aggregated via the 7450 and passed onto the wholesale BNG. It is always the retail VPRN that processes the IGMP messages. The wholesale VPRN SAPs forward the actual multicast streams.

Configuration

Note that basic knowledge of multicast and ESM is assumed.

ESM Wholesale-Retail Multicast

There are various ways to provide wholesale and retail multicast function.

  • For the IPoE and PPPoE Layer 3 wholesale/retail model, the wholesale and the retail services reside on separate VPRNs.

  • For the PPPoE Layer 2 wholesale/retail model, L2TP is used.

ESM Layer 3 Wholesale-Retail Multicast

Local URL-list filtering setup depicts a Layer 3 wholesale/retail scenario for both IPoE and PPPoE. The first BNG contains both the wholesale and retail configuration. There are two options for the retail BNG to deliver the multicast streams to the wholesale BNG:

  1. MVPN between the BNGs

    or

  2. If using a routed interface between the BNGs, multicast routing is required.

This example uses the second option for delivery of the multicast streams in order to keep the configuration simple.

Figure 3. Layer 3 Wholesale/Retail

Step 1 - Configure wholesale service on BNG-1

The configuration for the wholesale service on BNG-1 with the group interface added to IGMP is as follows. This configuration applies to both IPoE and PPPoE.

# on BNG-1
configure
    service
        vprn 1 customer 1 create
            description "wholesale"
            route-distinguisher 65536:1
            interface "system" create
                address 192.0.2.20/32
                loopback
            exit
            subscriber-interface "sub-vprn-1-ws" create
                unnumbered "system"
                group-interface "grp-vprn-1-ws" create
                    arp-populate
                    dhcp
                        client-applications dhcp ppp
                        no shutdown
                    exit
                    authentication-policy "auth-radius-1"
                    sap 1/1/2:1 create
                        sub-sla-mgmt
                            def-sub-id use-sap-id
                            def-sub-profile "sub-profile-1"
                            def-sla-profile "sla-profile-1"
                            sub-ident-policy "sub-ident-1"
                            multi-sub-sap 10
                            no shutdown
                        exit
                    exit
                    pppoe
                        session-limit 10
                        sap-session-limit 10
                        no shutdown
                    exit
                exit
            exit
            igmp
                group-interface "grp-vprn-1-ws"
                    no shutdown
                exit
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

Step 2 - Configure retail service on BNG-1

Also on BNG-1, a separate VPRN is configured for the retail provider. The retail configuration is a little different from the wholesale configuration. The configuration for the retail VPRN with IGMP and PIM enabled is as follows. This configuration is applicable to both IPoE and PPPoE. The multicast streams received in the retail VPRN are forwarded to the wholesale VPRN. Other retail VPRNs can offer multicast streams as well, and the same multicast addresses can be re-used as long as the address is assigned to a different retail VPRN.


# on BNG-1
configure
    service
        vprn 2 customer 2 create
            description "retail"
            route-distinguisher 65536:2
            interface "system" create
                address 172.16.1.1/32
                loopback
            exit
            interface "int-BNG-1-BNG-2" create
                address 192.168.12.1/30
                sap 1/1/1 create
                exit
            exit
            subscriber-interface "sub-vprn-2-rt" \
                        fwd-service 1 fwd-subscriber-interface "sub-vprn-1-ws" create
                address 10.255.255.254/8
                dhcp
                    server 172.16.1.2
                    lease-populate 200
                    client-applications dhcp ppp
                    gi-address 10.255.255.254
                    no shutdown
                exit
            exit
            igmp
                group-interface fwd-service 1 "grp-vprn-1-ws"
                    no shutdown
                exit
                no shutdown
            exit
            pim
                interface "int-BNG-1-BNG-2"
                exit
                no shutdown
            exit
            ospf
                area 0.0.0.0
                    interface "sub-vprn-2-rt"
                        interface-type point-to-point
                        no shutdown
                    exit
                    interface "system"
                        no shutdown
                    exit

                    interface "int-BNG-1-BNG-2"
                        interface-type point-to-point
                        no shutdown
                    exit
                exit
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

Step 3 - Configure an IGMP policy

Per host replication is mandatory in a wholesale/retail scenario. A single SAP in a wholesale service might be shared among different retailers. A wholesale host that has requested a multicast group will always have the multicast delivered directly. Other hosts on the SAPs might belong to a different retailer and therefore 1) retailers might not have the same multicast group and sources and 2) their bandwidth should not be impacted by other hosts’ multicast. Per-host replication is configured in the igmp-policy igmp-policy-1. This is mandatory for both IPoE and PPPoE subscribers.

# on BNG-1
configure
    subscriber-mgmt
        igmp-policy "igmp-policy-1" create
            per-host-replication
        exit
        sla-profile "sla-profile-1" create
        exit
        sub-profile "sub-profile-1" create
            igmp-policy "igmp-policy-1"
        exit
    exit
exit

Step 4 - Configure retail service on BNG-2

The interfaces are added to OSPF and to PIM on the retail BNG that is connected to the multicast source.

# on BNG-2
configure
    service
        vprn 2 customer 2 create
            dhcp
                local-dhcp-server "dhcp-RETAIL" create
                    use-gi-address
                    pool "pool-RETAIL-1" create
                        subnet 10.0.0.0/8 create
                            options
                                default-router 10.255.255.254
                            exit
                            address-range 10.0.0.1 10.0.0.100
                        exit
                    exit
                    no shutdown
                exit
            exit
            route-distinguisher 65536:2
            interface "system" create
                address 172.16.1.2/32
                local-dhcp-server "dhcp-RETAIL"
                loopback
            exit
            interface "int-BNG-2-BNG-1" create
                address 192.168.12.2/30
                sap 2/1/1 create
                exit
            exit
            interface "int-BNG-2-MCAST" create
                address 192.168.4.1/30
                sap 1/1/6 create
                exit
            exit
            pim
                interface "int-BNG-2-BNG-1"
                exit
                interface "int-BNG-2-MCAST"
                exit
                no shutdown
            exit
            ospf
                area 0.0.0.0
                    interface "system"
                        no shutdown
                    exit
                    interface "int-BNG-2-BNG-1"
                        interface-type point-to-point
                        no shutdown
                    exit
                    interface "int-BNG-2-MCAST"
                        passive
                        no shutdown
                    exit
                exit
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

With the configuration from all previous steps, the wholesale/retail setup is ready to process IGMP messages. Now an IGMPv3 request is sent to the wholesale SAP. The (S,G) is (192.168.4.2, 239.255.1.1) and the subscriber IP address is 10.0.0.1. The following output shows that the (S,G) is not registered in the wholesale VPRN, but in the retail VPRN.

*A:BNG-1# show router 1 igmp group
===============================================================================
IGMP Interface Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP Host Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
*A:BNG-1#
*A:BNG-1# show router 2 igmp group
===============================================================================
IGMP Interface Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP Host Groups
===============================================================================
(192.168.4.2,239.255.1.1)
    Fwd List  : 10.0.0.1                                  UpTime: 0d 00:01:41
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
*A:BNG-1#

The following command shows all subscribers’ (S,G) pairs.

*A:BNG-1# show service active-subscribers igmp detail
  
===============================================================================
Active Subscribers Detail
===============================================================================
Subscriber                       IGMP-Policy
  HostAddr                       GrpItf                           NumGroups
    GrpAddr                      Type            Up-Time          Mode
      SrcAddr                    Type                             Blk/Fwd
-------------------------------------------------------------------------------
sub-video-1                      igmp-policy-1
  10.0.0.1                       grp-vprn-1-ws                    1
    239.255.1.1                  Dynamic         0d 00:02:16      Include
      192.168.4.2                Dynamic                          Fwd
-------------------------------------------------------------------------------
Number of Subscribers : 1
===============================================================================
*A:BNG-1#

Only the retail VPRN is responsible for processing the IGMP messages. Therefore to troubleshoot a wholesale/retail setup, debug is only relevant on the retail router instance.

debug
    router "2"
        igmp
            group-interface fwd-service "1" "grp-vprn-1-ws"
            host "10.0.0.1"
            packet mode egr-ingr-and-dropped
        exit
    exit
exit
1 2017/07/06 13:58:14.57 CEST MINOR: DEBUG #2001 vprn2 IGMP[3]
"IGMP[3]: RX-PKT
[000 01:09:17.920] IGMP host 10.0.0.1 V3 PDU: 10.0.0.1 -> 224.0.0.22 pduLen 20
    Type: V3 REPORT maxrespCode 0x0 checkSum 0x2352
    Num Group Records: 1
        Group Record 0
        Type: ALW_NEW_SRCS, AuxDataLen 0, Num Sources 1
        Mcast Addr: 239.255.1.1
        Source Address List
            192.168.4.2
"
 
2 2017/07/06 13:58:14.57 CEST MINOR: DEBUG #2001 vprn2 IGMP[vprn2 inst 3]
"IGMP[vprn2 inst 3]: igmpIfGroupAdd
Adding 239.255.1.1 to IGMP host 10.0.0.1 database"
 
3 2017/07/06 13:58:14.57 CEST MINOR: DEBUG #2001 vprn2 IGMP[vprn2 inst 3]
"IGMP[vprn2 inst 3]: igmpProcessGroupRec
Process group rec ALW_NEW_SRCS received on host 10.0.0.1 for group 239.255.1.1 i
n mode INCLUDE. Num srcs 1"
 
4 2017/07/06 13:58:14.57 CEST MINOR: DEBUG #2001 vprn2 IGMP[vprn2 inst 3]
"IGMP[vprn2 inst 3]: igmpIfSrcAdd
Adding i/f source entry for host 10.0.0.1 (192.168.4.2,239.255.1.1) to IGMP fwdL
ist Database, redir if N/A"

The same debug configuration can be used for troubleshooting IGMP leave messages, as follows.

16 2017/07/06 14:01:34.78 CEST MINOR: DEBUG #2001 vprn2 IGMP[3]
"IGMP[3]: RX-PKT
[000 01:12:38.120] IGMP host 10.0.0.1 V3 PDU: 10.0.0.1 -> 224.0.0.22 pduLen 20
    Type: V3 REPORT maxrespCode 0x0 checkSum 0x2252
    Num Group Records: 1
        Group Record 0
        Type: BLK_OLD_SRCS, AuxDataLen 0, Num Sources 1
        Mcast Addr: 239.255.1.1
        Source Address List
            192.168.4.2
"
 
17 2017/07/06 14:01:34.78 CEST MINOR: DEBUG #2001 vprn2 IGMP[vprn2 inst 3]
"IGMP[vprn2 inst 3]: igmpProcessGroupRec
Process group rec BLK_OLD_SRCS received on host 10.0.0.1 for group 239.255.1.1 i
n mode INCLUDE. Num srcs 1"
 
18 2017/07/06 14:01:34.78 CEST MINOR: DEBUG #2001 vprn2 IGMP[vprn2 inst 3]
"IGMP[vprn2 inst 3]: igmpProcessIfSrcTimerExp
Source Timer expired for IGMP host 10.0.0.1 (192.168.4.2,239.255.1.1)"
 
19 2017/07/06 14:01:34.78 CEST MINOR: DEBUG #2001 vprn2 IGMP[vprn2 inst 3]
"IGMP[vprn2 inst 3]: igmpIfSrcDel
Deleting i/f source entry for host 10.0.0.1 (192.168.4.2,239.255.1.1) from IGMP
Database. DeleteFromAvl: 1 !Redir 0"
 
20 2017/07/06 14:01:34.78 CEST MINOR: DEBUG #2001 vprn2 IGMP[vprn2 inst 3]
"IGMP[vprn2 inst 3]: igmpIfGroupDel
Deleting 239.255.1.1 from IGMP host 10.0.0.1 database"

ESM L2TP Wholesale/Retail Multicast

As previously mentioned, the other option for PPPoE wholesale/retail is to use an L2TP connection as shown in L2TP Wholesale-Retail Multicast . LAC-1 contains the wholesale configuration while LNS-1 contains the retail configuration.

Figure 4. L2TP Wholesale-Retail Multicast

A partial configuration for the wholesale LAC service is as follows. It is using the local database named ppp-retail, defined with the pppoe user-db command, to authenticate subscribers. The wholesale LAC does not process any IGMP messages so it passes all messages to the retailer LNS.

# on LAC-1
configure
    service
        vprn 1 customer 2 create
            route-distinguisher 65536:1
            ---snip---
            interface "system" create
                address 192.168.1.1/32
                loopback
            exit
            subscriber-interface "int-SUB-LAC-1" create
                unnumbered "system"
                group-interface "int-GRP-LAC-1" create
                    sap 1/1/2:1 create
                        sub-sla-mgmt
                            def-sub-id use-sap-id
                            def-sub-profile "sub-profile-1"
                            def-sla-profile "sla-profile-1"
                            sub-ident-policy "sub-ident-1"
                            multi-sub-sap 1000
                            no shutdown
                        exit
                    exit
                    pppoe
                        session-limit 10
                        sap-session-limit 10
                        user-db "ppp-retail"
                        no shutdown
                    exit
                exit
            exit
            ---snip---
            l2tp
                group "grp-retail-1" create
                    tunnel "tnl-retail-1" create
                        local-address 192.168.1.1
                        local-name "lac-1"
                        peer 192.168.1.2
                        no shutdown
                    exit
                    no shutdown
                exit
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

The local user database ppp-retail is defined as follows:

# on LAC-1
configure
    subscriber-mgmt
        local-user-db "ppp-retail" create
            ppp
                match-list username
                host "retail1.com" create
                    host-identification
                        username "retail1.com" domain-only
                    exit
                    identification-strings 254 create
                        sla-profile-string "sla-profile-1"
                        sub-profile-string "sub-profile-1"
                    exit
                    l2tp
                        group "grp-LAC-RETAIL-1" service-id 1
                    exit
                    no shutdown
                exit
            exit
            no shutdown
        exit
    exit
exit

The retailer BNG hosts the L2TP Network Server (LNS). The following is a configuration extract for the LNS. To support multicast, IGMP is enabled on the ESM group-interface in the retail service, and PIM is enabled on the interface to the multicast source.

# on LNS-1
configure
    service
        vprn 1 customer 2 create
            route-distinguisher 65536:1
            ---snip---
            interface "system" create
                address 192.168.1.2/32
                loopback
            exit
            interface "int-VPRN-1-MCAST" create
                address 192.168.4.1/30
                sap 1/1/6 create
                exit
            exit
            subscriber-interface "int-SUB-LNS-1" create
                address 10.1.1.254/24
                group-interface "int-GRP-LNS-1" lns create
                    sap-parameters
                        sub-sla-mgmt
                            def-sla-profile "sla-profile-1"
                            def-sub-profile "sub-profile-1"
                            sub-ident-policy "sub-ident-1"
                        exit
                    exit
                exit
            exit
            igmp
                group-interface "int-GRP-LNS-1"
                    no shutdown
                exit
                no shutdown
            exit
            l2tp
                group "lns" protocol v2 create 
                    lns-group 1
                    ppp
                        default-group-interface "int-GRP-LNS-1" service-id 1
                        keepalive 90 hold-up-multiplier 5
                        proxy-authentication
                        proxy-lcp
                        user-db "ppp-retail"
                    exit
                    tunnel "tunnel" create
                        remote-name "lac-1"
                        no shutdown
                    exit
                    no shutdown
                exit
                no shutdown
            exit
            pim
                interface "int-VPRN-1-MCAST"
                exit
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

With the previous configuration applied, the wholesale/retail multicast setup can be verified. Firstly, send an IGMP message from the subscriber; the following example uses IGMPv3. The (S,G) sent is (192.168.4.2, 239.255.1.1) from the subscriber with IP address 10.1.1.1.

*A:LNS-1# show service active-subscribers igmp detail
 
===============================================================================
Active Subscribers Detail
===============================================================================
Subscriber                       IGMP-Policy
  HostAddr                       GrpItf                           NumGroups
    GrpAddr                      Type            Up-Time          Mode
      SrcAddr                    Type                             Blk/Fwd
-------------------------------------------------------------------------------
user1@retail1.com                igmp-policy-1
  10.1.1.1                       int-GRP-1                        1
    239.255.1.1                  Dynamic         0d 00:01:34      Include
      192.168.4.2                Dynamic                          Fwd
-------------------------------------------------------------------------------
Number of Subscribers : 1
===============================================================================
*A:LNS-1#

The IGMP group is not seen in the wholesale router instance (as shown by the following output on LAC-1), however, it is seen in the retail router instance (as shown by the second output below on LNS-1).

*A:LAC-1# show router 1 igmp group
===============================================================================
IGMP Interface Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP Host Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
*A:LAC-1#
*A:LNS-1# show router 1 igmp group
===============================================================================
IGMP Interface Groups
===============================================================================
No Matching Entries
===============================================================================
IGMP Host Groups
===============================================================================
(192.168.4.2,239.255.1.1)
    Fwd List  : 10.1.1.1                                  UpTime: 0d 00:02:58
-------------------------------------------------------------------------------
Entries : 1
===============================================================================
IGMP SAP Groups
===============================================================================
No Matching Entries
===============================================================================
*A:LNS-1#

Only the retail BNG (LNS-1) is responsible for processing the IGMP messages. Therefore, to troubleshoot ESM multicast for an L2TP service, the following debug commands are used on the LNS.

debug
    router "1"
        igmp
            group-interface "int-GRP-1"
            host "10.1.1.1"
            packet mode egr-ingr-and-dropped
        exit
    exit
exit
56 2017/07/05 15:21:09.51 CEST MINOR: DEBUG #2001 vprn1 IGMP[2]
"IGMP[2]: RX-PKT
[000 00:26:16.790] IGMP host 10.1.1.1 V3 PDU: 10.1.1.1 -> 224.0.0.22 pduLen 20
    Type: V3 REPORT maxrespCode 0x0 checkSum 0x2352
    Num Group Records: 1
        Group Record 0
        Type: ALW_NEW_SRCS, AuxDataLen 0, Num Sources 1
        Mcast Addr: 239.255.1.1
        Source Address List
            192.168.4.2
"
 
57 2017/07/05 15:21:09.51 CEST MINOR: DEBUG #2001 vprn1 IGMP[vprn1 inst 2]
"IGMP[vprn1 inst 2]: igmpIfGroupAdd
Adding 239.255.1.1 to IGMP host 10.1.1.1 database"
 
58 2017/07/05 15:21:09.51 CEST MINOR: DEBUG #2001 vprn1 IGMP[vprn1 inst 2]
"IGMP[vprn1 inst 2]: igmpProcessGroupRec
Process group rec ALW_NEW_SRCS received on host 10.1.1.1 for group 239.255.1.1 i
n mode INCLUDE. Num srcs 1"
 
59 2017/07/05 15:21:09.51 CEST MINOR: DEBUG #2001 vprn1 IGMP[vprn1 inst 2]
"IGMP[vprn1 inst 2]: igmpIfSrcAdd
Adding i/f source entry for host 10.1.1.1 (192.168.4.2,239.255.1.1) to IGMP fwdL
ist Database, redir if N/A"

The IGMP leave messages can also be seen in the debug, as follows.

1 2017/07/05 16:41:03.05 CEST MINOR: DEBUG #2001 vprn1 IGMP[2]
"IGMP[2]: RX-PKT
[000 00:24:30.330] IGMP host 10.1.1.1 V3 PDU: 10.1.1.1 -> 224.0.0.22 pduLen 20
    Type: V3 REPORT maxrespCode 0x0 checkSum 0x2252
    Num Group Records: 1
        Group Record 0
        Type: BLK_OLD_SRCS, AuxDataLen 0, Num Sources 1
        Mcast Addr: 239.255.1.1
        Source Address List
            192.168.4.2
"
 
2 2017/07/05 16:41:03.06 CEST MINOR: DEBUG #2001 vprn1 IGMP[vprn1 inst 2]
"IGMP[vprn1 inst 2]: igmpProcessGroupRec
Process group rec BLK_OLD_SRCS received on host 10.1.1.1 for group 239.255.1.1 i
n mode INCLUDE. Num srcs 1"
 
3 2017/07/05 16:41:03.06 CEST MINOR: DEBUG #2001 vprn1 IGMP[vprn1 inst 2]
"IGMP[vprn1 inst 2]: igmpProcessIfSrcTimerExp
Source Timer expired for IGMP host 10.1.1.1 (192.168.4.2,239.255.1.1)"
 
4 2017/07/05 16:41:03.06 CEST MINOR: DEBUG #2001 vprn1 IGMP[vprn1 inst 2]
"IGMP[vprn1 inst 2]: igmpIfSrcDel
Deleting i/f source entry for host 10.1.1.1 (192.168.4.2,239.255.1.1) from IGMP
Database. DeleteFromAvl: 1 !Redir 0"

Conclusion

Multicast is an essential part of Triple Play Services. The SR/ESS TPSDA solution is much more than a baseline multicast delivery. It includes individual subscriber awareness and provides each retailer a separate routing context for managing their own multicast content. Subscriber awareness allows for the fine-tuning of each subscriber multicast experience and also for troubleshooting on a per subscriber basis. This example provides a complete configuration walkthrough for multicast delivery for both IPoE and PPPoE in a wholesale/retail model.