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).
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
#ai9j1fwdjx__d2e4Layer 3 Wholesale/Retail 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:
MVPN between the BNGs
or
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.
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.
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.