Version 1 — Specified in RFC-1112, Host extensions for IP Multicasting, was the first widely deployed version and the first version to become an Internet standard.
Version 2 — Specified in RFC-2236, Internet Group Management Protocol, added support for low leave latency, that is, a reduction in the time it takes for a multicast router to learn that there are no longer any members of a particular group present on an attached network.
Version 3 —Specified in RFC-3376, Internet Group Management Protocol, adds support for source filtering, that is, the ability for a system to report interest in receiving packets only from specific source addresses, as required to support Source-Specific Multicast (See Source Specific Multicast (SSM)), or from all but specific source addresses, sent to a particular multicast address.
Alcatel-Lucent’s SRs are capable of interoperating with routers and hosts running IGMPv1, IGMPv2, and/or IGMPv3. Draft-ietf-magma-igmpv3-and-routing-0x.txt explores some of the interoperability issues and how they affect the various routing protocols.
Version 1 — Specified in RFC 2710, Multicast Listener Discovery (MLD) for IPv6, was the first deployed version and included low leave latency, that is, a reduction in the time it takes for a multicast router to learn that there are no longer any members of a particular group present on an attached network.
Version 2 — Specified in RFC 3810, Multicast Listener Discovery Version 2 (MLDv2) for IPv6, adds support for source filtering, that is, the ability for a system to report interest in receiving packets only from specific source addresses, as required to support Source-Specific Multicast.
On the Alcatel-Lucent 7750 SR, IGMP snooping can be enabled in the context of VPLS services. The IGMP snooping feature allows for optimization of the multicast data flow for a group within a service to only those Service Access Points (SAPs) and Service Distribution Points (SDPs) that are members of the group. In fact, the Alcatel-Lucent 7750 SR implementation performs more than pure snooping of IGMP data, since it also summarizes upstream IGMP reports and responds to downstream queries.
The Alcatel-Lucent 7750 SR maintains a number of multicast databases:
Figure 27 illustrates the basic IGMP message processing by the 7750 SR in several situations.
Scenario B: A host joins a channel which is already being received by one or more hosts on the 7750 SR, and thus is already present in the proxy database. No upstream IGMP report is generated by the router.
Scenario D: A host leaves a channel by sending an IGMP leave message. If fast-leave is not enabled, the router will first check whether there are other hosts on the same SAP or spoke SDP by sending a query. If no other host responds, the 7750 SR removes the channel from the SAP. In addition, if there are no other SAPs or spoke SDPs with hosts subscribing to the same channel, the channel is removed from the proxy database and an IGMP leave report is sent to the upstream Multicast Router.
Scenario F: A host leaves a channel by sending an IGMP leave report. Fast-leave is enabled, so the 7750 SR will not check whether there are other hosts on the same SAP or spoke SDP but immediately removes the group from the SAP. In addition, if there are no other SAPs or spoke SDPs with hosts subscribing to the same group, the group is removed from the proxy database and an IGMP leave report is sent to the upstream multicast router.
A rebalance, either timed or executing the mc-ecmp-rebalance command, should be administered gradually in order to minimize the effect of the rebalancing process on the different multicast streams. If multicast re-balancing is disabled and subsequently (re)enabled, keeping with the rebalance process, the gradual and least invasive method is used to minimize the effect of the changes to the customer.
Only a single mc-ecmp-rebalance command can be executed at any given time, if a rebalance is in progress and the command is entered, it is rejected with the message saying that a rebalance is already in progress. A low priority event is generated when an actual change for a given multicast stream occurs as a result of the rebalance process.
The redirection destination TLV is a mandatory TLV that is sent only in cases where redirection is enabled. It contains two 32 bit integer numbers. The first number identifies the VRF where IGMPs are redirected; the second number identifies the interface index.
This model is shown in Figure 32. The AN is not IGMP/MLD aware, all replications are performed in the BNG. From the BNG perspective this deployment model has the following characteristics:
This model is shown in Figure 33. The AN is IGMP/MLD aware and is participating in multicast replication. From the BNG perspective this deployment model has the following characteristics:
•
|
MLD utilize link-local as source address, which makes it difficult to associate with the originating host. MLD (S,G) are always first associated with a IPv6 WAN host, if available.If this WAN host terminate its IPv6 session (via lease expiry, session terminate, etc), the (S,G) is then associated to any remaining WAN host. Only when there are no more WAN hosts available, will the (S,G) be associated to the PD host, if any.
|
This model is shown in Figure 34. The AN is configured as IGMP/MLD Proxy node and is participating in downstream multicast replication.
configure
service vprn <id>
igmp
group-interface <name>
import <policy-name>
configure
router
policy-options
begin
prefix-list <pref-name>
prefix <pref-definition>
policy-statement proxy-policy
entry 1
from
group-address <pref-name>
source-address <ip>
protocol igmp
exit
action accept
exit
exit
default-action reject
configure
service vprn <id>
igmp
group-interface <name>
sub-host-only
configure
service vprn <id>
mld
group-interface <name>
import <policy-name>
configure
router
policy-options
begin
prefix-list <pref-name>
prefix <pref-definition>
policy-statement proxy-policy
entry 1
from
group-address <pref-name>
source-address <ip>
protocol igmp
exit
action accept
exit
exit
default-action reject
configure
service vprn <id>
mld
group-interface <name>
sub-host-only
Per host replication mode can be enabled on a subscriber basis with the per-host-replication command in the
config>subscriber-management>igmp-policy context.
For IPv6, the command is in the config>subscriber-management>mld-policy context.
This model is shown in Figure 35. The AN is not IGMP/MLD aware and multicast replication is performed in the BNG. Multicast streams are sent directly to the hosts using their unicast MAC addresses. HQoS adjustment is not needed as multicast traffic is flowing through subscriber queues. From the BNG perspective this deployment model has the following characteristics:
This model is shown in Figure 36. The AN is not IGMP/MLD aware and is not participating in multicast replication. From the BNG perspective this deployment model has the following characteristics:
configure
router
mcac
policy <name>
<channel definition>
configure
service vprn <id>
igmp
group-interface <grp-if-name>
mcac
policy <mcac-policy-name>
configure
router/service vprn
igmp
interface <name>
mcac
policy <mcac-policy-name>
configure
service vprn <id>
igmp
group-interface fwd-service <svc-id> <grp-if-name>
mcac
policy <mcac-policy-name>
configure
subscriber-management
igmp-policy <name>
egress-rate-modify [egress-aggregate-rate-limit | scheduler <name>]
configure
subscriber-management
sub-profile <name>
igmp-policy <name>
configure
subscriber-management
sub-mcac-policy <pol-name>
no shutdown
configure
subscriber-management
sub-profile <name>
sub-mcac-policy <pol-name>
*B:BNG-1# show service active-subscribers subscriber "sub-1" detail
===============================================================================
Active Subscribers
===============================================================================
-------------------------------------------------------------------------------
Subscriber sub-1
-------------------------------------------------------------------------------
I. Sched. Policy : up-silver
E. Sched. Policy : N/A E. Agg Rate Limit: 4000
I. Policer Ctrl. : N/A
E. Policer Ctrl. : N/A
Q Frame-Based Ac*: Disabled
Acct. Policy : N/A Collect Stats : Enabled
Rad. Acct. Pol. : sub-1-acct
Dupl. Acct. Pol. : N/A
ANCP Pol. : N/A
HostTrk Pol. : N/A
IGMP Policy : sub-1-IGMP-Pol
Sub. MCAC Policy : sub-1-MCAC
NAT Policy : N/A
Def. Encap Offset: none Encap Offset Mode: none
Avg Frame Size : N/A
Preference : 5
Sub. ANCP-String : "sub-1"
Sub. Int Dest Id : ""
Igmp Rate Adj : -2000
RADIUS Rate-Limit: N/A
Oper-Rate-Limit : 2000
...
-------------------------------------------------------------------------------
*B:BNG-1#
*A:Dut-C>config>subscr-mgmt>sub-prof# info
----------------------------------------------
igmp-policy "pol1"
sub-mcac-policy "smp"
egress
scheduler-policy "h1"
scheduler "t2" rate 30000
exit
exit
----------------------------------------------
*A:Dut-C>config>subscr-mgmt>igmp-policy# info
----------------------------------------------
egress-rate-modify scheduler "t2"
redirection-policy "mc_redir1"
----------------------------------------------
A:Dut-C>config>subscr-mgmt>sub-prof>egr>sched># show qos scheduler-hierarchy subscriber "sub_1" detail
===============================================================================
Scheduler Hierarchy - Subscriber sub_1
===============================================================================
Ingress Scheduler Policy:
Egress Scheduler Policy : h1
-------------------------------------------------------------------------------
Legend :
(*) real-time dynamic value
(w) Wire rates
B Bytes
-------------------------------------------------------------------------------
Root (Ing)
|
No Active Members Found on slot 1
Root (Egr)
| slot(1)
|--(S) : t1
| | AdminPIR:90000 AdminCIR:10000
| |
| |
| | [Within CIR Level 0 Weight 0]
| | Assigned:0 Offered:0
| | Consumed:0
| |
| | [Above CIR Level 0 Weight 0]
| | Assigned:0 Offered:0
| | Consumed:0
| | TotalConsumed:0
| | OperPIR:90000
| |
| | [As Parent]
| | Rate:90000
| | ConsumedByChildren:0
| |
| |
| |--(S) : t2
| | | AdminPIR:29000 AdminCIR:10000(sum) <==== bw 1000 from igmp substracted
| | |
| | |
| | | [Within CIR Level 0 Weight 1]
| | | Assigned:10000 Offered:0
| | | Consumed:0
| | |
| | | [Above CIR Level 1 Weight 1]
| | | Assigned:29000 Offered:0 <==== bw 1000 from igmp substracted
| | | Consumed:0
| | |
| | |
| | | TotalConsumed:0
| | | OperPIR:29000 <==== bw 1000 from igmp substracted
| | |
| | | [As Parent]
| | | Rate:29000 <==== bw 1000 from igmp substracted
| | | ConsumedByChildren:0
| | |
| | |
| | |--(S) : t3
| | | | AdminPIR:70000 AdminCIR:10000
| | | |
| | | |
| | | | [Within CIR Level 0 Weight 1]
| | | | Assigned:10000 Offered:0
| | | | Consumed:0
| | | |
| | | | [Above CIR Level 1 Weight 1]
| | | | Assigned:29000 Offered:0
| | | | Consumed:0
| | | |
| | | |
| | | | TotalConsumed:0
| | | | OperPIR:29000
| | | |
| | | | [As Parent]
| | | | Rate:29000
| | | | ConsumedByChildren:0
| | | |
*A:Dut-C>config>subscr-mgmt>igmp-policy# show service active-subscribers sub-mcac
===============================================================================
Active Subscribers Sub-MCAC
===============================================================================
Subscriber : sub_1
MCAC-policy : smp (inService)
In use mandatory bandwidth : 1000
In use optional bandwidth : 0
Available mandatory bandwidth : 1147482647
Available optional bandwidth : 1000000000
-------------------------------------------------------------------------------
Subscriber : sub_2
MCAC-policy : smp (inService)
In use mandatory bandwidth : 0
In use optional bandwidth : 0
Available mandatory bandwidth : 1147483647
Available optional bandwidth : 1000000000
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Number of Subscribers : 2
===============================================================================
*A:Dut-C#
*A:Dut-C# show service active-subscribers subscriber "sub_1" detail
===============================================================================
Active Subscribers
===============================================================================
-------------------------------------------------------------------------------
Subscriber sub_1 (1)
-------------------------------------------------------------------------------
I. Sched. Policy : N/A
E. Sched. Policy : h1 E. Agg Rate Limit: Max
I. Policer Ctrl. : N/A
E. Policer Ctrl. : N/A
Q Frame-Based Ac*: Disabled
Acct. Policy : N/A Collect Stats : Disabled
Rad. Acct. Pol. : N/A
Dupl. Acct. Pol. : N/A
ANCP Pol. : N/A
HostTrk Pol. : N/A
IGMP Policy : pol1
Sub. MCAC Policy : smp
NAT Policy : N/A
Def. Encap Offset: none Encap Offset Mode: none
Avg Frame Size : N/A
Preference : 5
Sub. ANCP-String : "sub_1"
Sub. Int Dest Id : ""
Igmp Rate Adj : N/A
RADIUS Rate-Limit: N/A
Oper-Rate-Limit : Maximum
...
===============================================================================
*A:Dut-C#
*A:Dut-C# show subscriber-mgmt igmp-policy "pol1"
===============================================================================
IGMP Policy pol1
===============================================================================
Import Policy :
Admin Version : 3
Num Subscribers : 2
Host Max Group : No Limit
Host Max Sources : No Limit
Fast Leave : yes
Redirection Policy : mc_redir1
Per Host Replication : no
Egress Rate Modify : "t2"
Mcast Reporting Destination Name :
Mcast Reporting Admin State : Disabled
===============================================================================
*A:Dut-C#
Channel Definition:
configure
mcast-management
multicast-info-policy <name>
<channel to b/w mapping definition>
configure>router>multicast-info-policy <name>
configure>service>vrpn>multicast-info-policy <name>
configure
subscriber-management
host-tracking-policy <name>
egress-rate-modify [agg-rate-limit | scheduler <sch-name>]
configure
subscriber-management
sub-profile <name>
host-tracking-policy <name> => mutually exclusive with igmp-policy
HQoS adjust per Vport can be used in environments where Vport represents a physical medium over which traffic for multiple subscribers is shared. Typical example of this scenario is shown in Figure 38. Multicast traffic within 7x50 is taking a separate path from unicast traffic, only for the two traffic flows to merge later in the PON (represented by Vport in 7x50) and ONT (represented by subscriber in 7x50).
configure
port <port-id>
ethernet
access
egress
vport <name>
egress-rate-modify
agg-rate
host-match <destination-string>
port-scheduler-policy <port-scheduler-policy-name>
configure
port <port-id>
sonnet-sdh
path [<sonnet-sdh-index>]
access
egress
vport <name>
egress-rate-modify
agg-rate
host-match <destination-string>
port-scheduler-policy <port-scheduler-policy-name>
*A:system-1# show port 1/1/7 vport
========================================================================
Port 1/1/7 Access Egress vport
========================================================================
VPort Name : isam1
Description : (Not Specified)
Sched Policy : 1
Rate Limit : Max
Rate Modify : enabled
Modify delta : -14000
configure
router
policy-options
begin
policy-statement <name>
default-action accept
multicast-redirection [fwd-service <svc id>] <interface name>
exit
exit
exit
exit
configure
router
policy-options
begin
prefix-list <name>
prefix <IPv4 multicast groups>
prefix <IPv4 multicast groups
exit
policy-statement <name>
entry 1
from
group-address <prefix-list name>
action accept
multicast-redirection [fwd-service <svc id>] <interface name>
exit
exit
exit
configure
subscr-mgmt
igmp-policy <name>
redirection-policy <name>
exit
exit
mld-policy <name>
redirection-policy <name>
configure
router
mcac
policy <mcac-pol-name>
bundle <bundle-name>
bandwidth <kbps>
channel <start-address> <end-address> bw <bw> [class {high|low}] [type {mandatory|optional}]
:
:
configure
service vprn <id>
igmp/mld
group-interface <grp-if-name>
mcac
policy <mcac-policy-name>
policy <mcac-policy-name>
configure
router
igmp/mld
interface <name>
mcac
policy <mcac-policy-name>
configure
service vprn <id>
igmp/mld
interface <if-name>
mcac
unconstrained-bw <bandwidth> mandatory-bw <mandatory-bw>
configure
service vprn <id>
igmp/mld
group-interface fwd-service <svc-id> <grp-if-name>
mcac
policy <mcac-policy-name>
configure
subscr-mgmt
sub-mcac-policy <name>
unconstrained-bw <bandwidth> mandatory-bw <mandatory-bw>
configure
subscr-mgmt
sub-profile <name>
sub-mcac-policy <name>
configure
service vprn <id>
igmp/mld
group-interface <grp-if-name>
mcac
unconstrained-bw <bandwidth> mandatory-bw <mandatory-bw>
configure
router
igmp/mld
interface <if-name>
mcac
unconstrained-bw <bandwidth> mandatory-bw <mandatory-bw>
configure
service vprn <id>
igmp/mld
interface <if-name>
mcac
unconstrained-bw <bandwidth> mandatory-bw <mandatory-bw>
config>router>mcac# info
----------------------------------------------
policy "test"
bundle "test" create
bandwidth 100000
channel 225.0.0.10 225.0.0.10 bw 10000 type mandatory
channel 225.0.0.11 225.0.0.15 bw 5000 type mandatory
channel 225.0.0.20 225.0.0.30 bw 5000 type optional
exit
exit
config>router>igmp# info
----------------------------------------------
interface "ge-1/1/1"
mcac
unconstrained-bw 10000 mandatory-bw 2000
exit
exit
Figure 39 depicts MCAC related inheritances and MCAC bandwidth allocation model in per-sap replication mode.The MCAC policy is applied to the group interface and inherited by each subscriber as well as each SAP under the same group interface. However, the bundle bandwidth limit in the MCAC policy is ignored on the group-interface and under the subscriber (denoted by the red X in the figure). The bundle limit is applied only to each sap under the group-interface.
Figure 40 depicts behavior in per-host replication mode. MCAC policy inheritance flow is the same as in the previous example with the difference that the bundle limit has NO effect at all. Each host generates its own copy of the same multicast stream that is flowing via subscriber queues and not the SAP queue. Since each of the copies counts towards the subscriber or group-interface bandwidth limits, the multicast bandwidth consumption is higher in this example. This needs to be reflected in the configured multicast bandwidth limits. For example, the group-interface mandatory bandwidth limit is increased to 12mbps.
If redirection is enabled, but there is no MCAC policy applied under the redirected interface
1 (regardless of whether the MCAC policy under the group-interface is applied or not) then:
configure
subscr-mgmt
igmp-policy <name>
import <policy-name>
configure
subscr-mgmt
mld-policy <name>
import <policy-name>
configure
router
policy-options
begin
prefix-list <pref-name>
prefix <pref-definition>
policy-statement <name>
entry 1
from
group-address <pref-name>
source-address <ip>
protocol igmp
exit
action accept
exit
exit
default-action reject