1. IGMP Overview
Internet Group Management (IGMP) protocol allows a host to advertise its multicast group membership to neighbouring switches and routers. IGMP is a standard protocol used by the TCP/IP protocol suite to achieve dynamic multicasting.
There are two components in the IGMP solution:
-
IGMPv2/v3 Client: It sends Join or Leave messages to a multicast group. Typical example of a client is a SET-TOP box. The IGMP client can respond to any IGMP general queries or group-specific queries that are received.
-
Multicast Router: The recipient of IGMP Join/Leave message. After receiving the message, it determines whether the corresponding message needs to be processed or not. After processing the IGMP messages, it sends this information to its multicast upstream router. Along with this, it can program certain entries in its routers which results in forwarding specific multicast packets on that interface.
1.1. IGMPv3 Lite
IGMP version 3 adds support for "source filtering", that is, the ability for a system to report interest in receiving packets only from specific source addresses, or from all but specific source addresses, sent to a particular multicast address. That information may be used by multicast routing protocols to avoid delivering multicast packets from specific sources to networks where there are no interested receivers.
The RtBrick IGMP v3lite solution adds support for source filtering. Source filtering enables a multicast receiver host to signal from which groups it wants to receive multicast traffic, and from which sources this traffic is expected. That information may be used by multicast routing protocols to avoid delivering multicast packets from specific sources to networks where there are no interested receivers.
IGMP Version 3 will help conserve bandwidth by allowing a host to select the specific sources from which it wants to receive traffic.Also, multicast routing protocols will be able to make use of this information to conserve bandwidth when constructing the branches of their multicast delivery trees.
2. Configuring IGMP
2.1. Configuring Global Instance
To configure the global instance, enter the following command:
Syntax
Command Parameters
<instance> |
Name of the IGMP instance |
Example
ubuntu@rtbrick:~$ rtb confd set instance default address-family ipv4 unicast ubuntu@rtbrick:~$ rtb confd set instance default address-family ipv4 multicast
2.2. Configuring IGMP Protocol on an Instance
To configure an IGMP on an instance, the same instance should be enabled globally with AFI IPv4 and SAFI as both unicast and multicast.
Syntax
If no instance is specified, IGMP will be enabled on the default instance. |
Command Parameters
<instance> |
Name of the IGMP instance. |
<source-address> |
Source address of the IGMP query at the instance-level. |
<count> |
The number of times that the device sends each IGMP message. Default value: 3. Range: 0-255. |
<tos_value> |
Specifies the type-of-service. Default value: 0. Range: 0-255. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp source-address 192.168.9.1 ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp robustness 5 ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp tos 10
2.2.1. Deleting IGMP Protocol on an Instance
When you delete an IGMP instance, it will delete the IGMP instance-specific configuration tables. |
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance protocol igmp
2.3. Configuring IGMP Robustness Value
To configure the IGMP robustness value, enter the following command:
Syntax
Command Parameters
<instance> |
Name of the instance |
<count> |
The robustness value is used by IGMP to determine the number of times to send messages. Default value: 3. Range: 0-255. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp robustness 5
2.3.1. Deleting IGMP Robustness Value
To delete the IGMP robustness value, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol igmp robustness
2.4. Configuring IGMP TOS Value
To configure the IGMP type-of-service (TOS) value, enter the following command:
Syntax
Command Parameters
<instance> |
Name of the instance |
<tos_value> |
Specifies the type-of-service. Default value: 0. Range: 0-255. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp tos 10
2.4.1. Deleting IGMP TOS Value
To delete the IGMP type-of-service (TOS) value, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol igmp tos
2.5. Enabling IGMP Service on an Interface
When you start IGMP on an interface, it operates with the default settings. |
To enable IGMP service on an interface, enter the following command:
Syntax
Command Parameters
<instance> |
Name of the instance |
<interface> |
Name of the IP multicast interface |
<count> |
Specifies the maximum count of multicast group memberships |
<version> |
Specifies the IGMP version, that is, IGMPv2 or IGMPv3 |
<profile> |
Name of the interface configuration profile |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp interface hostif-0/0/0/1 max-members 30 ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp interface hostif-0/0/0/1 protocol-version IGMPv3 ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp interface hostif-0/0/0/1 interface-configuration-profile profile
2.5.1. Deleting IGMP Service on an Interface
To delete IGMP service on an interface, enter the following command:
Syntax
To delete the interface options, enter the following commands:
Command Parameters
<instance> |
Name of the instance |
<interface> |
Name of the logical interface |
Example
ubuntu@rtbrick:~$ rtb confd delete igmp interface ifl-0/0/1/1 ubuntu@rtbrick:~$ rtb confd delete igmp interface ifl-0/0/1/1 max-members ubuntu@rtbrick:~$ rtb confd delete igmp interface ifl-0/0/1/1 protocol-version ubuntu@rtbrick:~$ rtb confd delete igmp interface ifl-0/0/1/1 interface-cofiguration-profile
2.6. Configuring IGMP Version
The version command sets the IGMP version on the interface.
The default IGMP version is IGMPv3. |
Syntax
Command Parameters
<instance> |
Name of the instance |
<interface> |
Name of the logical interface |
<IGMPv2 | IGMPv3> |
Specifies the IGMP version |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp interface hostif-0/0/0/1 protocol-version IGMPv3
2.6.1. Deleting IGMP Version
To delete the IGMP version, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol igmp interface hostif-0/0/0/1 protocol-version
2.7. Configuring IGMP Maximum Members
To configure the IGMP maximum members count, enter the following command:
Syntax
Command Parameters
<instance> |
Name of the instance |
<interface> |
Name of the logical interface |
<count> |
Specifies max-members count. The range is 1-100000. The default is 8192. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol igmp interface hostif-0/0/0/1 max-members 9000
2.7.1. Deleting IGMP Maximum Members
To delete the IGMP maximum members count, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol igmp interface hostif-0/0/0/1 max-members
2.8. Configuring IGMP Interface Profile
To configure IGMP interface profile, enter the following commands:
Syntax
Command Parameters
<profile> |
Name of the interface configuration profile |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile
2.8.1. Configuring IGMP Interface Profile Attributes
You can configure the following interface profile attributes:
-
filter-list-profile
-
immediate-leave
-
maximum-query-response-interval
-
query-interval
-
querier-timeout-interval
-
ssm-mapping-profile
-
start-query-count
-
start-query-interval
2.8.2. Deleting IGMP Interface Profile Attributes
To delete IGMP interface profile and interface profile options, enter the following commands:
Syntax
Command Parameters
<profile> |
Name of the interface configuration profile |
Example
ubuntu@rtbrick:~$ rtb confd delete multicast-options igmp interface-config-profile iprofile start-query-interval
2.8.3. Configuring Maximum Query Response Interval
The Maximum Query Response Interval specifies the time that a host can take to reply to a query (maximum response time).
To configure Maximum Query Response Interval, enter the following command:
Syntax
Command Parameters
<interval> |
Name of the interface configuration profile |
<interval> |
Maximum query response interval in seconds. The maximum query response interval ranges from 1 to 1024 seconds. The default value is 100 seconds. |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile maximum-query-response-interval 10
2.8.4. Deleting Maximum Query Response Interval
To delete Maximum Query Response Interval, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete multicast-options igmp interface-config-profile profile maximum-query-response-interval
2.8.5. Configuring Query Interval
The Query Interval specifies the time interval at which IGMP query is sent.
To configure query interval, enter the following command:
Syntax
Command Parameters
<interval> |
IGMP query interval in seconds. The query interval ranges from 1 to 1024 seconds. The default value is 125 seconds. |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile query-interval 30
2.8.6. Configuring Start Query Count
The Start Query Count specifies the number of queries sent out on startup, separated by the Start Query Interval.
To configure the start query count, enter the following command:
Syntax
Command Parameters
<count> |
Specifies the number of queries sent out on startup, separated by the Start Query Interval. The start query count ranges from 1 to 1024. The default value is 3. |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile start-query-count 10
2.8.7. Configuring Start Query Interval
To configure the start query interval, enter the following command:
Syntax
Command Parameters
<interval> |
Specifies the start query interval. The start-query-interval ranges from 1 to 1024 seconds. The default value is 31 seconds (query-interval/4). |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile start-query-interval 10
2.8.8. Configuring Querier Timeout Interval
This command specifies the length of time that must pass before a multicast router decides that there is no longer another multicast router which should be the querier.
To configure the querier timeout interval, enter the following command:
Syntax
Command Parameters
<interval> |
Specifies the querier timeout interval in seconds. The querier-timeout-interval ranges from 1 to 1024 seconds. The default value is 425 seconds robustness*query-interval)+(maximum-query-response-interval/2 |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile querier-timeout-interval 10
2.8.9. Enabling or Disabling Immediate Leave
The immediate-leave
attribute removes group membership immediately upon receiving group leave membership report.
Syntax
Command Parameters
<enable | disable> |
Enable or disable the immediate leave option |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile immediate-leave enable
2.8.10. Configuring SSM Mapping Profile
SSM mapping takes IGMPv2 reports and converts them to IGMPv3. In case of legacy devices, there could be a possibility that BNG might receive IGMPv2 membership reports. If BNG receives an IGMPv2 membership for a specific group G1, BNG uses the SSM mapping configuration to determine one or more Source (S) addresses for a given group. This SSM mappings are translated to the IGMPv3 joins like IGMPV3 JOIN INCLUDE (G, [S1, G1], [S2, G1] and so on) and BNG continues to process as if it has received from the subscriber.
To configure an SSM mapping profile, enter the following command:.
Syntax
Command Parameters
<profile> |
Specifies the SSM mapping profile |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp interface-config-profile profile ssm-mapping-profile profile
2.8.11. Configuring Filter List Profile
To configure a filter list, enter the following command:
Syntax
Command Parameters
<profile> |
Specifies the name of the configuration profile list |
<action> |
Sets the action to permit or deny. This indicates the default action (when filter list is configured). If filter match fails, then the default action would be considered. |
Example
ubuntu@rtbrick:$ rtb confd set multicast-options igmp interface-config-profile profile filter-list-profile flist default-action permit
2.9. Configuring SSM Mapping Profile
SSM mapping takes IGMPv2 reports and converts them to IGMPv3. In case of legacy devices, there could be a possibility that BNG might receive IGMPv2 membership reports. If BNG receives an IGMPv2 membership for a specific group G1, BNG uses the SSM mapping configuration to determine one or more Source (S) addresses for a given group. This SSM mappings are translated to the IGMPv3 joins like IGMPV3 JOIN INCLUDE (G, [S1, G1], [S2, G1] and so on) and BNG continues to process as if it has received from the subscriber.
To configure an SSM mapping profile, enter the following command:.
Syntax
Command Parameters
<profile> |
Specifies the SSM mapping profile |
<group> |
Specifies the name of the group |
<source> |
Specifies the source from which the multicast traffic is received |
Example
ubuntu@rtbrick:~$ rtb confd set multicast-options igmp ssm-mapping-profile profile group 224.0.40.1 source 1.1.1.1
2.9.1. Deleting an SSM Mapping profile
To delete an SSM mapping profile, enter the following command:.
Syntax
Command Parameters
<profile> |
Specifies the SSM mapping profile |
<group> |
Specifies the group address |
<source> |
Specifies the source from which the multicast traffic is received |
Example
ubuntu@rtbrick:~$ rtb confd delete multicast-options igmp ssm-mapping-profile sprofile group 224.0.40.1 source 1.1.1.1
2.10. Configuring Filter List
To configure a filter list, enter the following command:
Syntax
Command Parameters
<profile> |
Specifies the name of the profile list |
<group> |
Specifies the multicast group address |
<source> |
Specifies the source from which the multicast traffic is received |
<action> |
Sets the action to permit or deny |
Example
ubuntu@rtbrck:~$ rtb confd set multicast-options igmp filter-list flist group 224.0.40.1 source 2.2.2.2 action permit
2.10.1. Deleting a Filter List
To delete a filter list, enter the following command:.
Syntax
Command Parameters
<list> |
Specifies the name of the profile list |
<group> |
Specifies the multicast group address |
<source4> |
Specifies the source from which the multicast traffic is received |
Example
ubuntu@rtbrick:~$ rtb confd delete multicast-options igmp filter-list flist group 224.0.40.1 source 2.2.2.2
2.11. Configuring the IGMP Static Joins on an Instance
After an interface on a multicast device is configured to statically join an IGMP group, the multicast device considers that the interface has static multicast group members and sends multicast packets to this interface, regardless of whether hosts connected to this interface request the multicast packets.
To configure an IGMP static join on the default instance, enter the following command:
Syntax
If no instance is specified, then the IGMP static join would be enabled on the default instance. |
Command Parameters
<group> |
Specifies the multicast address |
<source> |
Specifies the source from which the multicast traffic is received |
<interface> |
Name of the outbound interface |
<interval> |
specifies the refresh interval in seconds. It sends igmpv3 membership report at the specified refresh interval. |
Example
ubuntu@rtbrick:~$ rtb confd set instance protocol igmp static-join 225.0.0.1 source 1.1.1.1 oif ifl-0/0/0/1 refresh-interval 100
|
2.11.1. Deleting IGMP Static Joins
To delete an IGMP static join, enter the following command:.
Syntax
Command Parameters
<group> |
Specifies the multicast multicast group address |
<source> |
Specifies the source from which the multicast traffic is received |
<interface> |
Name of the IP multicast interface |
Example
ubuntu@rtbrick:$ rtb confd delete igmp instance ip2vrf static-join 239.0.0.1 source 100.10.1.2 oif null0 ubuntu@rtbrick:$ rtb confd delete igmp instance ip2vrf static-join 239.0.0.1 source 100.10.1.2 oif ifl-0/0/1/1
2.12. IGMP Show Commands
2.12.1. Viewing IGMP Groups on an Instance
To view IGMP groups, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 show igmp instance ip2vrf groups +---------------+---------------+-----------------------------------+---------------+---------------+------------------------------+----------+ Source Address Group Address Interface Last Reporter Uptime Expires Version +---------------+---------------+-----------------------------------+---------------+---------------+------------------------------+----------+ 0.0.0.0 225.0.0.1 ppp-0/0/3/72339069014638594 100.100.100.1 0d:0h:0m:31s expires in 1m 48s 905605us IGMPv3 50.0.0.4 225.0.0.4 ppp-0/0/3/72339069014638594 100.100.100.1 0d:0h:0m:33s expires in 1m 47s 893688us IGMPv3 50.0.0.5 225.0.0.50 ppp-0/0/3/72339069014638594 100.100.100.1 0d:0h:0m:29s expires in 1m 42s 519803us IGMPv3 +---------------+---------------+-----------------------------------+---------------+---------------+------------------------------+----------+
2.12.2. Viewing All IGMP Groups of an Interface
To view all the IGMP groups of an interface in an instance, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<interface> |
Specifies the name of the logical interface. |
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 show igmp instance ip2vrf groups +---------------+---------------+-----------------------------------+---------------+---------------+------------------------------+----------+ Source Address Group Address Interface Last Reporter Uptime Expires Version +---------------+---------------+-----------------------------------+---------------+---------------+------------------------------+----------+ 1.1.1.1 225.0.0.1 null0 ---- 0d:0h:0m:10s Never IGMP 0.0.0.0 224.0.50.1 hostif-0/0/0/1 192.168.10.2 0d:0h:0m:10s expires in 3m 35s 89431us IGMPv3 1.1.1.1 224.0.40.1 hostif-0/0/0/1 192.168.10.2 0d:0h:0m:10s expires in 3m 35s 89501us IGMPv3 1.1.1.1 225.0.0.1 hostif-0/0/0/1 ---- 0d:0h:0m:10s Never IGMP +---------------+---------------+-----------------------------------+---------------+---------------+------------------------------+----------+ ubuntu@rtbrick:~$ rtb igmp.iod.1 show igmp instance ip2vrf groups oif hostif-0/0/0/1 (0.0.0.0, 224.0.50.1), State: Members Present, Source: Dynamic Outgoing Interface: hostif-0/0/0/1, Uptime: 0d:0h:0m:14s, Version: IGMPv3 Expires: expires in 3m 31s 169113us , Last reporter: 192.168.10.2, Last member query count: 3 Membership time: 225s, Retransmit time: 1s Last member interval: 1s, Max Response time: 0s (1.1.1.1, 224.0.40.1), State: Members Present, Source: Dynamic Outgoing Interface: hostif-0/0/0/1, Uptime: 0d:0h:0m:14s, Version: IGMPv3 Expires: expires in 3m 31s 169063us , Last reporter: 192.168.10.2, Last member query count: 3 Membership time: 225s, Retransmit time: 1s Last member interval: 1s, Max Response time: 0s (1.1.1.1, 225.0.0.1), State: No Members Present, Source: Static Outgoing Interface: hostif-0/0/0/1, Uptime: 0d:0h:0m:14s, Version: IGMP Expires: Never, Last reporter: 0.0.0.0, Last member query count: 0 Membership time: ----, Retransmit time: ---- Last member interval: ----, Max Response time: ---- ubuntu@rtbrick:~$
2.12.3. Viewing Group information specific to (S,G) entry on all interfaces
Syntax
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 show igmp instance ip2vrf groups 50.0.0.4 225.0.0.4 (50.0.0.4, 225.0.0.4), State: Members Present, Source: Dynamic Outgoing Interface: ppp-0/0/3/72339069014638594, Uptime: 0d:0h:1m:2s, Version: IGMPv3 Expires: expires in 1m 45s 593366us , Last reporter: 100.100.100.1, Last member query count: 3 Membership time: 110s, Retransmit time: 1s Last member interval: 1s, Max Response time: 0s ubuntu@rtbrick:~$
2.12.4. Viewing IGMP Interface
To view IGMP interfaces, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 show igmp instance ip2vrf interface +-----------------------------------+---------------+---------------+---------------+-----------------------------------+ Interface Primary Addr State Querier Addr Up Time +-----------------------------------+---------------+---------------+---------------+-----------------------------------+ ppp-0/0/3/72339069014638594 100.100.100.1 Querier 100.100.100.1 0d:0h:0m:40s +-----------------------------------+---------------+---------------+---------------+-----------------------------------+
2.12.5. Viewing the Details of a Specific IGMP Interface
To view the details of a specific IGMP interfaces, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 show igmp instance ip2vrf interface ppp-0/0/3/72339069014638594 Interface : ppp-0/0/3/72339069014638594, State : Querier, Uptime : 0d:0h:0m:51s Primary address is 100.100.100.1 Querier address is 100.100.100.1 IGMP Version running is IGMPv3 Immediate leave enabled Timer values Query interval : 10s Other querier present interval : 425s Startup query interval : 2s Query response interval : 100s Last member query interval : 1s Count values Last member query count : 3 Startup query count : 3 Statistics General query sent : 8 General query received : 0 Group specific query sent : 0 Group specific query received : 0 IGMPv2 reports received : 0 IGMPv3 reports received : 27 Filter match permit count : 16 Filter match deny count : 5 Membership limit deny count : 0
2.13. IGMP Clear Commands
2.13.1. Clearing All IGMP Group Members
This command clears IGMP group memberships on all instances, also clears only group memberships.
Syntax
2.13.2. Clearing IGMP Group Memberships on an Interface
To clear the IGMP group memberships on an interfaces, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 clear igmp group interface ifl-0/0/1/1
2.13.3. Clearing IGMP Group Memberships on a Specific Instance
To clear the IGMP group memberships on a specific instance, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 clear igmp group instance ip2vrf
2.13.4. Clearing IGMP Interface Statistics
To clear IGMP interface statistics, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb igmp.iod.1 clear igmp statistics interface ifl-0/0/1/1
This command clears interface statistics and interface statistics that are present on any instance. |
3. IGMP for Subscribers
IGMP can be configured as a service for subscribers in two ways:
-
Local Configuration
-
Using RADIUS Attributes
For more information about these, see the Subscriber Management Configuration Guide.
4. Multicast VPN
4.1. Introduction
The Multicast VPN (MVPN) feature provides the ability to support multicast over a Layer 3 VPN. Multicast allows the efficient distribution of information between a single multicast source and multiple receivers. IP multicast is used to stream video, voice, and data to an MPLS VPN network core.
RBFS operates on the LEAF and SPINE devices. The Leaf layer delivers access services to subscribers or assets, and the spine provides connectivity to the network. The leaf is fully meshed into the Spine and this arrangement is usually referred to as an IP CLOS architecture. The framework provides the network operators with methods to configure and manage a network brick by brick, and provides full control of the network so the focus can be on the deployment of the new services and without any dependencies on hardware. The two tier CLOS architecture allows future extensibility through the leafs that can be added without disturbing the existing topology, so long as they are fully meshed with the spines. Leafs and spines are connected via 100G ports.
LEAF and SPINES are Edge Core devices with Broadcom BCM 88375 (Qumran) with KBP running RBFS stack. Each of these devices are configured with BGP to bring up the fabric. BGP neighbors are in the default instance and the following address families are enabled by default in the peer-group template:
-
IPv6 Unicast (to resolve the next hops)
-
IPv6 Labeled Unicast (to resolve the next hops)
-
VPNv4 (to transport subscriber IPv4 routes, LI End point, LAC endpoint, RADIUS endpoint)
-
VPNv6 (to transport subscriber IPv6 routes, RADIUS endpoint)
-
MVPN (to carry subscriber multicast routes)
4.2. Enabling Multicast Address Family in Fabric
To advertise the subscriber multicast routes, you need to enable MVPN address family in the fabric. RBFS MVPN implementation is based on RFC 6513, “Multicast in MPLS/BGP IP VPNs” and RFC 6514, “BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs”.
Before you can enable IPTV service to subscribers, Multicast/MVPN can be enabled in the fabric to achieve this.
-
Enable Multicast address family under global instance
-
Enable the Multicast address family under BGP for the instance
4.2.1. Enabling Multicast Address Family Under Global Instance
The address-family command places the switch in address family mode to configure the address family activity level of individual BGP neighbor addresses. The switch supports these address families:
-
ipv4
-
ipv6
-
mpls
To configure multicast IPV4 address family under the global instance, enter the following command:
4.2.2. Enabling Route-Target Address Family in the Fabric
Similar to the unicast address family, MVPN address family defined under VRF instance needs an import and export route target. The below example shows defining the MVPN address family and corresponding attributes under IP2VRF.
4.2.3. Enabling Multicast address family under BGP for an instance
To define the multicast address family under BGP for the instance, enter the following commands:
When the address family IPv4 multicast is enabled, all the VPNv4 routes which are exported from this instance will have a new extended community (rt-import) added.
|
4.3. Enabling MVPN Address Family and Peer Group
4.3.1. Enabling the MVPN address family under default BGP
To define the MVPN address family under default BGP, enter the following command:
ubuntu@rtbrick:~$ rtb confd set instance protocol bgp address-family ipv4 vpn-multicast
4.3.2. Enabling the MVPN address family under default peer group
To define the MVPN address family under default peer group, enter the following commands:
ubuntu@rtbrick:~$ rtb confd set instance protocol bgp address-family ipv4 vpn-multicast
4.3.3. Enabling Extended Nexthop
You can enable extended nexthop capability so that peers in the group do not have to be directly connected.
4.3.4. Enabling Update Nexthop
You can update the nexthop for routes advertised to this peer group.
4.4. Enabling Multicast Redistribution
4.4.1. Enabling Multicast Redistribution from the IGMP Source
To enable Multicast Redistribution from the IGMP source, enter the following command:
4.4.2. Enabling Multicast Redistribution from the PIM Source
To enable Multicast Redistribution from the PIM source, enter the following command:
4.5. The list of CLI commands for the configuration of MVPN
rtb confd set instance ip2vrf address-family ipv4 multicast rtb confd set instance protocol bgp address-family ipv4 vpn-multicast rtb confd set instance protocol bgp peer-group spine address-family ipv4 vpn-multicast extended-nexthop rtb confd set instance protocol bgp peer-group spine address-family ipv4 vpn-multicast update-nexthop ipv6-address 192:1::3 rtb confd set instance ip2vrf address-family ipv4 multicast rt import target:192.1.4.0:13 rtb confd set instance ip2vrf address-family ipv4 multicast rt export target:192.1.4.0:13 rtb confd set instance ip2vrf protocol bgp address-family ipv4 multicast rtb confd set instance ip2vrf protocol bgp address-family ipv4 multicast redistribute igmp
5. Configuring PIM
Routing devices can translate Protocol Independent Multicast (PIM) join and prune messages into corresponding Internet Group Management Protocol (IGMP) or Multicast Listener Discovery (MLD) reports or leave messages.
5.1. PIM operational modes
PIM can operate in the following mode:
-
Sparse mode (PIM-SM): PIM-SM uses a shared distribution tree built rooted at an RP to determine paths from source to receiver groups. The RP must be administratively configured on the network.
5.2. Enable Multicast Globally
To enable multicast globally, enter the following command:
Syntax
Currently multicast is supported on IPv4 address family only. |
Command Parameters
<instance> |
Name of the instance |
<ipv4 |ipv6> |
Specifies the multicast address family |
Example
ubuntu@rtbrick:$ rtb confd set instance ip2vrf address-family ipv4 multicast
5.2.1. Deleting Multicast Configuration
The example below shows how to delete the mutlicast configuration.
Syntax
Example
5.3. Enabling PIM on a Specific Instance
To enable PIM on a specific instance, enter the following command.
Syntax
If no instance is specified, PIM will be enabled on the default instance. |
Command Parameters
<instance> |
Name of the instance |
Example
rtb confd set instance ip2vrf protocol pim
5.3.1. Deleting the PIM Configuration on an Instance
The example below shows how to delete the PIM configuration on an instance.
Syntax
Example
5.3.2. Configuring PIM ToS Value
To configure PIM type-of-service (TOS) value, enter the following command:
Command Parameters
<tos value> |
Specifies the type-of-service. Default value: 0. Range: 0-255. |
Example
ubuntu@rtbrick:$ rtb confd set instance ip2vrf protocol pim tos 10
5.3.3. Configuring the PIM Join-Prune Interval
To configure the the Join-Prune interval, enter the following command:
Syntax
Command Parameters
<timer-value> |
The join/prune interval value, in seconds. The timer ranges from 1 to 65535. The default timer is 210. |
Example
5.3.4. Deleting PIM ToS Value or Join-Prune Interval
To delete PIM ToS Value or Join-Prune Interval, enter the following commands:
Syntax
Example
5.4. Configuring PIM Static Join
To configure PIM static join, enter the following command:
Syntax
Command Parameters
<instance> |
Name of the instance |
<group> |
Specifies the multicast group address |
<interface> |
Specifies the name of the logical interface |
Example
ubuntu@rtb_spine_1:~$ rtb confd set instance ip2vrf protocol pim sparse-mode static-join 232.1.1.2 source 192.0.1.2 oif hostif-0/0/0/1 rtb confd set instance ip2vrf protocol pim sparse-mode static-join 232.1.1.3 source 192.0.1.3 oif null0
The null0 is a discard or sink interface for PIM static join configuration.
|
5.4.1. Deleting PIM Static Join
To delete PIM static join, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol pim sparse-mode static-join 232.1.1.2 source 192.0.1.2 oif hostif-0/0/0/1 ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol pim sparse-mode static-join 232.1.1.3 source 192.0.1.3 oif null0
5.5. Enabling PIM on an Interface
To enable PIM on an interface, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<logical-interface> |
Specifies the name of the logical interface. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol pim sparse-mode interface hostif-0/0/1/2
5.5.1. Deleting PIM on an Interface
To delete PIM on an interface, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<logical-interface> |
Specifies the name of the logical interface. |
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol pim sparse-mode interface hostif-0/0/1/2
5.5.2. Configuring PIM Redistribution
To configure PIM redistribution, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<ipv4 |ipv6> |
Specifies the address family identifier such as IPv4 or IPv6. |
<multicast |unicast> |
Specifies the subsequent address family identifier such as multicast or unicast. |
<source> |
Source protocol from which routes are being redistributed such as BGP or static. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol pim sparse-mode redistribute afi ipv4 safi multicast source bgp
5.5.3. Deleting PIM Redistribution
To delete PIM redistribution, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<ipv4 |ipv6> |
Specifies the address family identifier such as IPv4 or IPv6. |
<multicast |unicast> |
Specifies the subsequent address family identifier such as multicast or unicast. |
<source> |
Source protocol from which routes are being redistributed such as BGP or static. |
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol pim sparse-mode redistribute afi ipv4 safi multicast source bgp
5.5.4. Configuring hello-timer
To configure the hello interval, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<interface> |
Specifies the name of the logical interface. |
<value> |
Specifies the hello timer in seconds. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol pim sparse-mode interface hostif-0/0/0/1 hello-timer 100
5.5.5. Deleting hello-timer
To delete the hello interval, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol pim sparse-mode interface hostif-0/0/0/1 hello-timer
5.5.6. Configuring dr-priority
To configure the designated router (DR) priority, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<interface> |
Specifies the name of the logical interface. |
<value> |
Specifies the Specifies the designated router (DR) priority value. |
Example
ubuntu@rtbrick:~$ rtb confd set instance ip2vrf protocol pim sparse-mode interface hostif-0/0/0/1 dr-priority 101
5.5.7. Deleting dr-priority
To delete the designated router (DR) priority, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb confd delete instance ip2vrf protocol pim sparse-mode interface hostif-0/0/0/1 dr-priority
5.5.8. Configuring Override Interval
To configure the override interval, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<interface> |
Specifies the name of the logical interface. |
<interval> |
Specifies the override interval in milliseconds. |
Example
5.5.9. Deleting Override Interval
To delete the override interval, enter the following command:
Syntax
Example
5.5.10. Configuring PIM Propagation Delay
To configure the propagation delay for PIM on an interface, enter the following command:
Syntax
Command Parameters
<instance> |
Specifies the name of the instance. |
<interface> |
Specifies the name of the logical interface. |
<value> |
Specifies the propagation delay in milliseconds. |
Example
5.5.11. Deleting PIM Propagation Delay
To delete the propagation delay for PIM on an interface, enter the following command:
Syntax
Example
5.6. PIM Show commands
5.6.1. Viewing PIM Neighbors
To view the PIM neighbors, enter the following command:
Syntax
Example
ubuntu@rtbrick:~$ rtb pim.iod.1 show pim neighbor instance ip2vrf +--------------------+--------------------+---------------+--------------------+--------------------+ Nbr Address Interface Gen Id Up Time Expires +--------------------+--------------------+---------------+--------------------+--------------------+ 50.0.0.1 hostif-0/0/3/3 1297035144 0d:0h:4m:26s 1m 18s 547509us 50.0.0.2 hostif-0/0/3/3 202988910 0d:0h:4m:24s 1m 20s 569021us 50.0.0.3 hostif-0/0/3/3 1889601403 0d:0h:4m:25s 1m 19s 578914us 50.0.0.4 hostif-0/0/3/3 876939999 0d:0h:4m:24s 1m 20s 568787us 50.0.0.5 hostif-0/0/3/3 385412717 0d:0h:4m:28s 1m 16s 572552us +--------------------+--------------------+---------------+--------------------+--------------------+ ubuntu@rtbrick:~$
5.6.2. Viewing Join/Prune Timers
To view the PIM Join/Prune Timers of an instance, enter the following command:
Example
ubuntu@rtbrick:~$ rtb pim.iod.1 show pim join-prune instance ip2vrf (50.0.0.2, 225.0.0.20) Incoming interface: hostif-0/0/3/3, RPF nbr: 50.0.0.2 Type: Join, expires in 2s 361304us (50.0.0.3, 225.0.0.3) Incoming interface: hostif-0/0/3/3, RPF nbr: 50.0.0.2 Type: Join, expires in 2s 361370us (50.0.0.4, 225.0.0.4) Incoming interface: hostif-0/0/3/3, RPF nbr: 50.0.0.2 Type: Join, expires in 2s 361435us (50.0.0.5, 225.0.0.50) Incoming interface: hostif-0/0/3/3, RPF nbr: 50.0.0.2 Type: Join, expires in 2s 361489us ubuntu@rtbrick:~$
5.6.3. Viewing PIM Interfaces
To view the PIM interface details, enter the following command:
Example
ubuntu@rtbrick:~$ rtb pim.iod.1 show pim interface instance ip2vrf +---------------+---------------+----------+---------------+---------------+---------------+---------------+---------------+ Interface IP Address State DR DR Prio Hello Intrv Nbr Count Gen Id +---------------+---------------+----------+---------------+---------------+---------------+---------------+---------------+ hostif-0/0/3/3 50.0.0.25 DR 50.0.0.25 1 35 5 728707794 null0 +---------------+---------------+----------+---------------+---------------+---------------+---------------+---------------+ ubuntu@rtbrick:~$
5.6.4. Displaying Membership Information
To display the membership information, enter the following command:
Example
ubuntu@rtbrick:~$ rtb pim.iod.1 show pim membership instance ip2vrf (50.0.0.1, 232.1.1.1) Incoming interface: NULL, RPF nbr: 0.0.0.0 Source: pim, Type : Static Outgoing Interfaces: hostif-0/0/3/3 ubuntu@rtb_spine_1:~$ rtb pim.iod.1 show pim membership instance ip2vrf (50.0.0.1, 232.1.1.1) Incoming interface: NULL, RPF nbr: 0.0.0.0 Source: pim, Type : Static Outgoing Interfaces: hostif-0/0/3/3 ubuntu@rtbrick:~$
6. Multicast Show Commands
6.1. Viewing IPv4 multicast routes (on default)
To view the IPv4 route multicast, enter the following command:
Example
ubuntu@rtbrick:~$ rtb mribd show ipv4 route multicast Source codes: L local, D direct, S static, BGP-LO bgp-local-origin, BGP-L bgp-local, +--------------------+--------------------+------------+----+------------------------------+ Source Group Route-source Pref OIF +--------------------+--------------------+------------+----+------------------------------+ 20.0.0.2/32 225.1.1.1/32 BGP-LO 200 ifl-0/0/52/13 20.0.0.2/32 225.1.1.2/32 BGP-LO 200 ifl-0/0/52/13 20.0.0.2/32 225.1.1.3/32 BGP-LO 200 ifl-0/0/52/13 20.0.0.2/32 225.1.1.4/32 BGP-LO 200 ifl-0/0/52/13
6.2. Viewing IPv4 route multicast details (on default)
To view the IPv4 route multicast details, enter the following command:
Example
ubuntu@rtbrick:~$ rtb mribd show ipv4 route multicast detail 20.0.0.2/32, 225.1.1.1/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:default-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1 20.0.0.2/32, 225.1.1.2/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:default-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1 20.0.0.2/32, 225.1.1.3/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:default-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1 20.0.0.2/32, 225.1.1.4/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:default-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1
6.3. Viewing IPv4 route multicast for a specific instance
To view the IPv4 route multicast for a specific instance, enter the following command:
Example
ubuntu@rtbrick:~$ rtb mribd show ipv4 route multicast instance ip2vrf Source codes: L local, D direct, S static, BGP-LO bgp-local-origin, BGP-L bgp-local, +--------------------+--------------------+------------+----+------------------------------+ Source Group Route-source Pref OIF +--------------------+--------------------+------------+----+------------------------------+ 20.0.0.2/32 225.1.1.1/32 BGP-LO 200 ifl-0/0/52/13 20.0.0.2/32 225.1.1.2/32 BGP-LO 200 ifl-0/0/52/13 20.0.0.2/32 225.1.1.3/32 BGP-LO 200 ifl-0/0/52/13 20.0.0.2/32 225.1.1.4/32 BGP-LO 200 ifl-0/0/52/13
6.4. Viewing IPv4 route multicast for a specific instance with details
To view the IPv4 route multicast for a specific instance with details, enter the following command:
Example
ubuntu@rtbrick:~$ rtb mribd show ipv4 route multicast instance ip2vrf detail 20.0.0.2/32, 225.1.1.1/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:ip2vrf-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1 20.0.0.2/32, 225.1.1.2/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:ip2vrf-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1 20.0.0.2/32, 225.1.1.3/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:ip2vrf-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1 20.0.0.2/32, 225.1.1.4/32 Source: bgp, Preference: 200 Adjacency-Hash:022e6db84d1afb1c868431460e8f6e9eb1c717e120de567b -Hash: 90c8a071ae115453747d928fbd5cb08ee0e558238395ca83 NextHop Type: Multicast Fanout, NextHop Action: MPLS Replicate Destination:ip2vrf-ipv4-multicast Resolved in:default-ipv6-labeled-unicast Egress-Interface: ifl-0/0/52/13, NextHop MAC: b8:6a:97:a5:92:34 MPLS-Label: label:20060,bos:1
©Copyright 2020 RtBrick, Inc. All rights reserved. The information contained herein is subject to change without notice. The trademarks, logos and service marks ("Marks") displayed in this documentation are the property of RtBrick in the United States and other countries. Use of the Marks are subject to RtBrick’s Term of Use Policy, available at https://www.rtbrick.com/privacy. Use of marks belonging to other parties is for informational purposes only.