Chapter 1. New and Changed Information

New and Changed Information

Chapter 2. Overview

About Multicast

Multicast Distribution Trees

Source Trees

Shared Trees

Bidirectional Shared Trees

Multicast Forwarding

Cisco NX-OS PIM

ASM

Bidir

SSM

RPF Routes for Multicast

IGMP

IGMP Snooping

Interdomain Multicast

SSM

MSDP

MBGP

MRIB

Virtual Port Channels and Multicast

Licensing Requirements for Multicast

Guidelines and Limitations for Multicast

High-Availability Requirements for Multicast

Virtual Device Contexts

Technical Assistance

Chapter 3. Configuring IGMP

About IGMP

IGMP Versions

IGMP Basics

Licensing Requirements for IGMP

Prerequisites for IGMP

Guidelines and Limitations for IGMP

Default Settings for IGMP

Configuring IGMP Parameters

Configuring IGMP Interface Parameters

Configuring an IGMP SSM Translation

Configuring the Enforce Router Alert Option Check

Restarting the IGMP Process

Verifying the IGMP Configuration

Configuration Examples for IGMP

Chapter 4. Configuring MLD

About MLD

MLD Versions

MLD Basics

Licensing Requirements for MLD

Prerequisites for MLD

Guidelines and Limitations for MLD

Default Settings for MLD

Configuring MLD Parameters

Configuring MLD Interface Parameters

Configuring an MLD SSM Translation

Verifying the MLD Configuration

Configuration Example for MLD

Chapter 5. Configuring PIM and PIM6

About PIM and PIM6

Hello Messages

Join-Prune Messages

State Refreshes

Rendezvous Points

Static RP

BSRs

Auto-RP

Multiple RPs Configured in a PIM Domain

Anycast-RP

PIM Register Messages

Designated Routers

Designated Forwarders

ASM Switchover from Shared Tree to Source Tree

Administratively Scoped IP Multicast

Multicast Counters

Multicast Heavy Template

PIM Graceful Restart

Generation IDs

PIM Graceful Restart Operations

PIM Graceful Restart and Multicast Traffic Flow

High Availability

Licensing Requirements for PIM and PIM6

Prerequisites for PIM and PIM6

Guidelines and Limitations for PIM and PIM6

Default Settings

Configuring PIM and PIM6

PIM and PIM6 Configuration Tasks

Enabling the PIM and PIM6 Feature

Configuring PIM or PIM6 Sparse Mode Parameters

Configuring PIM Sparse Mode Parameters

Configuring PIM6 Sparse Mode Parameters

Configuring ASM and Bidir

Configuring Static RPs

Configuring Static RPs (PIM)

Configuring Static RPs (PIM6)

Configuring BSRs

Configuring BSRs Candidate RP Arguments and Keywords

Configuring BSRs (PIM)

Configuring Auto-RP

Configuring Auto RP (PIM)

Configuring a PIM Anycast-RP Set

Configuring a PIM Anycast RP Set (PIM)

Configuring a PIM Anycast RP Set (PIM6)

Configuring Shared Trees Only for ASM

Configuring Shared Trees Only for ASM (PIM)

Configuring Shared Trees Only for ASM (PIM6)

Configuring SSM (PIM)

Configuring SSM (PIM6)

Configuring PIM SSM Over a vPC

Configuring RPF Routes for Multicast

Configuring Multicast Multipath

Configuring Route Maps to Control RP Information Distribution

Configuring Route Maps to Control RP Information Distribution (PIM)

Configuring Route Maps to Control RP Information Distribution (PIM6)

Configuring Message Filtering

Configuring Message Filtering (PIM)

Configuring Message Filtering (PIM6)

Restarting the PIM and PIM6 Processes

Restarting the PIM Process

Restarting the PIM6 Process

Configuring BFD for PIM in VRF Mode

Configuring BFD for PIM in Interface Mode

Enabling the Multicast Heavy Template

Verifying the PIM and PIM6 Configuration

Displaying Statistics

Displaying PIM and PIM6 Statistics

Clearing PIM and PIM6 Statistics

Configuration Examples for PIM

SSM Configuration Example

PIM SSM Over vPC Configuration Example

BSR Configuration Example

Auto-RP Configuration Example

PIM Anycast RP Configuration Example

Prefix-Based and Route-Map-Based Configurations

Output

Related Documents

Standards

MIBs

Chapter 6. Configuring IGMP Snooping

About IGMP Snooping

IGMPv1 and IGMPv2

IGMPv3

IGMP Snooping Querier

Virtualization Support

Licensing Requirements for IGMP Snooping

Prerequisites for IGMP Snooping

Guidelines and Limitations for IGMP Snooping

Default Settings

Configuring IGMP Snooping Parameters

Configuring Global IGMP Snooping Parameters

Configuring IGMP Snooping Parameters per VLAN

Verifying the IGMP Snooping Configuration

Displaying IGMP Snooping Statistics

Clearing IGMP Snooping Statistics

Configuration Examples for IGMP Snooping

Chapter 7. Configuring MSDP

About MSDP

SA Messages and Caching

MSDP Peer-RPF Forwarding

MSDP Mesh Groups

Licensing Requirements for MSDP

Prerequisites for MSDP

Default Settings

Configuring MSDP

Enabling the MSDP Feature

Configuring MSDP Peers

Configuring MSDP Peer Parameters

Configuring MSDP Global Parameters

Configuring MSDP Mesh Groups

Restarting the MSDP Process

Verifying the MSDP Configuration

Monitoring MSDP

Displaying Statistics

Clearing Statistics

Configuration Examples for MSDP

Related Documents

Standards

Appendix A. IETF RFCs for IP Multicast

IETF RFCs for IP Multicast

Appendix B. Configuration Limits for Cisco NX-OS Multicast

Configuration Limits

Preface

Audience

Document Conventions

Related Documentation for Cisco Nexus 9000 Series Switches

Documentation Feedback

Obtaining Documentation and Submitting a Service Request

Copyright Page

Chapter 1. New and Changed Information

This chapter provides release-specific information for each new and changed feature in the Cisco Nexus 9000 Series NX-OS Multicast Routing Configuration Guide, Release 7.x.

- New and Changed Information

New and Changed Information

This table summarizes the new and changed features for the Cisco Nexus 9000 Series NX-OS Multicast Routing Configuration Guide, Release 7.x and tells you where they are documented.

New and Changed Features for Cisco NX-OS Release 7.x

Feature

Description

Changed in Release

Where Documented

IGMP snooping

Added support for Cisco Nexus 9508 switches with the N9K-X9636C-R and N9K-X9636Q-R line cards.

7.0(3)F2(1)

Guidelines and Limitations for IGMP Snooping

PIM

Added PIM ASM and SSM support for Cisco Nexus 9508 switches with the N9K-X9636C-R and N9K-X9636Q-R line cards.

7.0(3)F2(1)

Guidelines and Limitations for PIM and PIM6

PIM

Added Layer 3 port-channel subinterface support for PIM sparse mode for Cisco Nexus 9300-EX Series switches, Cisco Nexus 3232C and 3264Q switches, and N9K-X9732C-EX, N9K-X9736C-EX, and N9K-X97160YC-EX line cards.

7.0(3)I6(1)

Guidelines and Limitations for PIM and PIM6

PIM

Introduced multicast counters for Cisco Nexus 9300-EX Series switches.

7.0(3)I6(1)

Multicast Counters

Verifying the PIM and PIM6 Configuration

PIM

Added Layer 3 port-channel subinterface support for PIM sparse mode for Cisco Nexus 9300 Series switches.

7.0(3)I5(2)

Configuring PIM and PIM6

MLD

Introduced this feature.

7.0(3)I5(1)

Configuring MLD

PIM

Added PIM6 ASM and SSM support.

7.0(3)I5(1)

Configuring PIM and PIM6

IGMP snooping

Added the ip igmp snooping report-flood and ip igmp snooping proxy-leave use-group-address commands.

7.0(3)I4(2)

Configuring IGMP Snooping Parameters per VLAN

PIM

Added PIM SSM support over vPCs.

7.0(3)I4(1)

Configuring PIM and PIM6

Heavy template

Introduced this feature.

7.0(3)I3(2)

Multicast Heavy Template

Enabling the Multicast Heavy Template

IGMP

Added a limitation for Cisco Nexus 9200 Series switches.

7.0(3)I3(1)

Configuring IGMP

IGMP

Added support for Source-Specific Multicast (SSM) translation.

7.0(3)I2(1)

Configuring IGMP

PIM

Added support for the Source-Specific Multicast (SSM) and bidirectional shared trees (Bidir) distribution modes.

7.0(3)I2(1)

Configuring PIM and PIM6

PIM

Added the resilient option to the ip multicast multipath command.

7.0(3)I1(1)

Configuring PIM and PIM6

Chapter 2. Overview

This chapter describes the multicast features of Cisco NX-OS.

- About Multicast

- Licensing Requirements for Multicast

- Guidelines and Limitations for Multicast

- High-Availability Requirements for Multicast

- Virtual Device Contexts

- Technical Assistance

About Multicast

IP multicast is a method of forwarding the same set of IP packets to a number of hosts within a network. You can use multicast in IPv4 networks to provide efficient delivery of data to multiple destinations.

Multicast involves both a method of delivery and discovery of senders and receivers of multicast data, which is transmitted on IP multicast addresses called groups. A multicast address that includes a group and source IP address is often referred to as a channel. The Internet Assigned Number Authority (IANA) has assigned 224.0.0.0 through 239.255.255.255 as IPv4 multicast addresses. For more information, see Click Here

Note

For a complete list of RFCs related to multicast, see Appendix A, IETF RFCs for IP Multicast.

The routers in the network listen for receivers to advertise their interest in receiving multicast data from selected groups. The routers then replicate and forward the data from sources to the interested receivers. Multicast data for a group is transmitted only to those LAN segments with receivers that requested it.

This figure shows one source transmitting multicast data that is delivered to two receivers. In the figure, because the center host is on a LAN segment where no receiver requested multicast data, no data is delivered to that receiver.

Multicast Traffic from One Source to Two Receivers

- Multicast Distribution Trees

- Multicast Forwarding

- Cisco NX-OS PIM

- IGMP

- IGMP Snooping

- Interdomain Multicast

- MRIB

- Virtual Port Channels and Multicast

Multicast Distribution Trees

A multicast distribution tree represents the path that multicast data takes between the routers that connect sources and receivers. The multicast software builds different types of trees to support different multicast methods.

- Source Trees

- Shared Trees

- Bidirectional Shared Trees

Source Trees

A source tree represents the shortest path that the multicast traffic takes through the network from the sources that transmit to a particular multicast group to receivers that requested traffic from that same group. Because of the shortest path characteristic of a source tree, this tree is often referred to as a shortest path tree (SPT). This figure shows a source tree for group 224.1.1.1 that begins at host A and connects to hosts B and C.

Source Tree

The notation (S, G) represents the multicast traffic from source S on group G. The SPT in this figure is written (192.0.2.1, 224.1.1.1). Multiple sources can be transmitting on the same group.

Shared Trees

A shared tree represents the shared distribution path that the multicast traffic takes through the network from a shared root or rendezvous point (RP) to each receiver. (The RP creates an SPT to each source.) A shared tree is also called an RP tree (RPT). This figure shows a shared tree for group 224.1.1.1 with the RP at router D. Source hosts A and D send their data to router D, the RP, which then forwards the traffic to receiver hosts B and C.

Shared Tree

The notation (*, G) represents the multicast traffic from any source on group G. The shared tree in this figure is written (*, 224.2.2.2).

Bidirectional Shared Trees

A bidirectional shared tree represents the shared distribution path that the multicast traffic takes through the network from a shared root, or rendezvous point (RP), to each receiver. Multicast data is forwarded to receivers encountered on the way to the RP. The advantage of the bidirectional shared tree is shown in the figure below. Multicast traffic flows directly from host A to host B through routers B and C. In a shared tree, the data from source host A is first sent to the RP (router D) and then forwarded to router B for delivery to host B.

Bidirectional Shared Tree

The notation (*, G) represents the multicast traffic from any source on group G. The bidirectional tree in the figure is written as (*, 224.2.2.2).

Multicast Forwarding

Because multicast traffic is destined for an arbitrary group of hosts, the router uses reverse path forwarding (RPF) to route data to active receivers for the group. When receivers join a group, a path is formed toward the source (SSM mode) or the RP (ASM or Bidir mode). The path from a source to a receiver flows in the reverse direction from the path that was created when the receiver joined the group.

For each incoming multicast packet, the router performs an RPF check. If the packet arrives on the interface leading to the source, the packet is forwarded out each interface in the outgoing interface (OIF) list for the group. Otherwise, the router drops the packet.

Note

In Bidir mode, if a packet arrives on a non-RPF interface and the interface was elected as the designated forwarder (DF), then the packet is also forwarded in the upstream direction toward the RP.

This figure shows an example of RPF checks on packets coming in from different interfaces. The packet that arrives on E0 fails the RPF check because the unicast route table lists the source of the network on interface E1. The packet that arrives on E1 passes the RPF check because the unicast route table lists the source of that network on interface E1.

RPF Check Example

Cisco NX-OS PIM

Cisco NX-OS supports multicasting with Protocol Independent Multicast (PIM) sparse mode. PIM is IP routing protocol independent and can leverage whichever unicast routing protocols are used to populate the unicast routing table. In PIM sparse mode, multicast traffic is sent only to locations of the network that specifically request it. PIM dense mode is not supported by Cisco NX-OS.

Note

In this publication, the term “PIM” is used for PIM sparse mode version 2.

To access multicast commands, you must enable the PIM feature. Multicast is enabled only after you enable PIM on an interface of each router in a domain. You can configure PIM for an IPv4 network. By default, IGMP is running on the system.

PIM, which is used between multicast-capable routers, advertises group membership across a routing domain by constructing multicast distribution trees. PIM builds shared distribution trees, on which packets from multiple sources are forwarded, as well as source distribution trees, on which packets from a single source are forwarded.

The distribution trees change automatically to reflect the topology changes due to link or router failures. PIM dynamically tracks both multicast-capable sources and receivers, although the source state is not created in Bidir mode.

The router uses the unicast routing table and RPF routes for multicast to create multicast routing information. In Bidir mode, additional multicast routing information is created.

Note

In this publication, “PIM for IPv4” refers to the Cisco NX-OS implementation of PIM sparse mode.

This figure shows two PIM domains in an IPv4 network.

PIM Domains in an IPv4 Network

- The lines with arrows show the path of the multicast data through the network. The multicast data originates from the sources at hosts A and D.

- The dashed line connects routers B and F, which are Multicast Source Discovery Protocol (MSDP) peers. MSDP supports the discovery of multicast sources in other PIM domains.

- Hosts B and C receive multicast data by using Internet Group Management Protocol (IGMP) to advertise requests to join a multicast group.

- Routers A, C, and D are designated routers (DRs). When more than one router is connected to a LAN segment, such as C and E, the PIM software chooses one router to be the DR so that only one router is responsible for putting multicast data on the segment.

Router B is the rendezvous point (RP) for one PIM domain, and router F is the RP for the other PIM domain. The RP provides a common point for connecting sources and receivers within a PIM domain.

PIM supports these multicast modes for connecting sources and receivers:

- Any source multicast (ASM)

- Source-Specific Multicast (SSM)

- Bidirectional shared trees (Bidir)

Cisco NX-OS supports a combination of these modes for different ranges of multicast groups. You can also define RPF routes for multicast.

- ASM

- Bidir

- SSM

- RPF Routes for Multicast

ASM

Any Source Multicast (ASM) is a PIM tree building mode that uses shared trees to discover new sources and receivers as well as source trees to form shortest paths from receivers to sources. The shared tree uses a network node as the root, called the rendezvous point (RP). The source tree is rooted at first-hop routers, directly attached to each source that is an active sender. The ASM mode requires an RP for a group range. An RP can be configured statically or learned dynamically by the Auto-RP or BSR group-to-RP discovery protocols. If an RP is learned and is not known to be a Bidir-RP, the group operates in ASM mode.

The ASM mode is the default mode when you configure RPs.

Bidir

Bidirectional shared trees (Bidir) is a PIM mode that, like the ASM mode, builds a shared tree between receivers and the RP but does not support switching over to a source tree when a new receiver is added to a group. In the Bidir mode, the router that is connected to a receiver is called the designated forwarder (DF) because multicast data can be forwarded directly from the designated router (DR) to the receiver without first going to the RP. The Bidir mode requires that you configure an RP.

The Bidir mode can reduce the amount of resources required on a router when there are many multicast sources and can continue to operate whether or not the RP is operational or connected.

SSM

Source-Specific Multicast (SSM) is a PIM mode that builds a source tree that originates at the designated router on the LAN segment that receives a request to join a multicast source. Source trees are built by sending PIM join messages in the direction of the source. The SSM mode does not require any RP configuration.

The SSM mode allows receivers to connect to sources outside the PIM domain.

RPF Routes for Multicast

You can configure static multicast RPF routes to override what the unicast routing table uses. This feature is used when the multicast topology is different than the unicast topology.

IGMP

By default, the Internet Group Management Protocol (IGMP) for PIM is running on the system.

IGMP is used by hosts that want to receive multicast data to request membership in multicast groups. Once the group membership is established, multicast data for the group is directed to the LAN segment of the requesting host.

You can configure IGMPv2 or IGMPv3 on an interface. You have to configure IGMPv3 with (S, G) to support SSM mode. By default, the software enables IGMPv2.

IGMP Snooping

IGMP snooping is a feature that limits multicast traffic on VLANs to the subset of ports that have known receivers. By examining (snooping) IGMP membership report messages from interested hosts, multicast traffic is sent only to VLAN ports that interested hosts reside on. By default, IGMP snooping is running on the system.

Interdomain Multicast

Cisco NX-OS provides several methods that allow multicast traffic to flow between PIM domains.

- SSM

- MSDP

- MBGP

SSM

The PIM software uses SSM to construct a shortest path tree from the designated router for the receiver to a known source IP address, which may be in another PIM domain. The ASM and Bidir modes mode cannot access sources from another PIM domain without the use of another protocol.

Once you enable PIM in your networks, you can use SSM to reach any multicast source that has an IP address known to the designated router for the receiver.

MSDP

Multicast Source Discovery Protocol (MSDP) is a multicast routing protocol that is used with PIM to support the discovery of multicast sources in different PIM domains.

Note

Cisco NX-OS supports the PIM Anycast-RP, which does not require MSDP configuration.

MBGP

Multiprotocol BGP (MBGP) defines extensions to BGP4 that enable routers to carry multicast routing information. PIM can use this multicast information to reach sources in external BGP autonomous systems.

MRIB

The Cisco NX-OS IPv4 Multicast Routing Information Base (MRIB) is a repository for route information that is generated by multicast protocols such as PIM and IGMP. The MRIB does not affect the route information itself. The MRIB maintains independent route information for each virtual routing and forwarding (VRF) instance.

The major components of the Cisco NX-OS multicast software architecture are as follows:

- The Multicast FIB (MFIB) Distribution (MFDM) API defines an interface between the multicast Layer 2 and Layer 3 control plane modules, including the MRIB, and the platform forwarding plane. The control plane modules send the Layer 3 route update using the MFDM API.

- The multicast FIB distribution process distributes the multicast update messages to all the relevant modules and the standby supervisor. It runs only on the supervisor.

- The Layer 2 multicast client process sets up the Layer 2 multicast hardware forwarding path. It runs on both the supervisor and the modules.

- The unicast and multicast FIB process manages the Layer 3 hardware forwarding path. It runs on both the supervisor and the modules.

The following figure shows the Cisco NX-OS multicast software architecture.

Cisco NX-OS Multicast Software Architecture

Virtual Port Channels and Multicast

A virtual port channel (vPC) allows a single device to use a port channel across two upstream switches. When you configure a vPC, the following multicast features might be affected:

- PIM—Cisco NX-OS software for the Cisco Nexus 9000 Series switches does not support PIM SSM or Bidir on a vPC. Cisco NX-OS software fully supports PIM ASM on a vPC.

- IGMP snooping—You should configure the vPC peers identically.

Licensing Requirements for Multicast

The multicast features that require a license are as follows:

- PIM

- MSDP

The multicast features that require no license are as follows:

- IGMP

- IGMP snooping

For a complete explanation of the Cisco NX-OS licensing scheme, see Cisco NX-OS Licensing Guide.

Guidelines and Limitations for Multicast

- Layer 3 Ethernet port-channel subinterfaces are not supported with multicast routing.

- Layer 3 IPv6 multicast routing is not supported.

- Layer 2 IPv6 multicast packets will be flooded on the incoming VLAN.

- Traffic storm control is not supported for unknown multicast traffic.

High-Availability Requirements for Multicast

After a multicast routing protocol is restarted, its state is recovered from the MRIB process. When a supervisor switchover occurs, the MRIB recovers its state from the hardware, and the multicast protocols recover their state from periodic message activity. For more information about high availability, see the Cisco Nexus 9000 Series NX-OS High Availability and Redundancy Guide.

Virtual Device Contexts

Cisco NX-OS can segment operating system and hardware resources into virtual device contexts (VDCs) that emulate virtual devices. The Cisco Nexus 9000 Series switches currently do not support multiple VDCs. All switch resources are managed in the default VDC.

Technical Assistance

Description

Link

Technical Assistance Center (TAC) home page, containing 30,000 pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.

Click Here

Chapter 3. Configuring IGMP

This chapter describes how to configure the Internet Group Management Protocol (IGMP) on Cisco NX-OS devices for IPv4 networks.

- About IGMP

- Licensing Requirements for IGMP

- Prerequisites for IGMP

- Guidelines and Limitations for IGMP

- Default Settings for IGMP

- Configuring IGMP Parameters

- Restarting the IGMP Process

- Verifying the IGMP Configuration

- Configuration Examples for IGMP

About IGMP

IGMP is an IPv4 protocol that a host uses to request multicast data for a particular group. Using the information obtained through IGMP, the software maintains a list of multicast group or channel memberships on a per-interface basis. The systems that receive these IGMP packets send multicast data that they receive for requested groups or channels out the network segment of the known receivers.

By default, the IGMP process is running. You cannot enable IGMP manually on an interface. IGMP is automatically enabled when you perform one of the following configuration tasks on an interface:

- Enable PIM

- Statically bind a local multicast group

- Enable link-local group reports

- IGMP Versions

- IGMP Basics

IGMP Versions

The device supports IGMPv2 and IGMPv3, and IGMPv1 report reception.

By default, the software enables IGMPv2 when it starts the IGMP process. You can enable IGMPv3 on interfaces where you want its capabilities.

IGMPv3 includes the following key changes from IGMPv2:

- Support for Source-Specific Multicast (SSM), which builds shortest path trees from each receiver to the source, through the following features:

- Host messages that can specify both the group and the source.

- The multicast state that is maintained for groups and sources, not just for groups as in IGMPv2.

- Hosts no longer perform report suppression, which means that hosts always send IGMP membership reports when an IGMP query message is received.

Note

The Cisco Nexus 9000 Series switches do not support SSM until Cisco NX-OS Release 7.0(3)I2(1).

For detailed information about IGMPv2, see RFC 2236.

For detailed information about IGMPv3, see RFC 3376.

IGMP Basics

This figure shows the basic IGMP process of a router that discovers multicast hosts. Hosts 1, 2, and 3 send unsolicited IGMP membership report messages to initiate receiving multicast data for a group or channel.

IGMPv1 and IGMPv2 Query-Response Process

In the figure below, router A, which is the IGMP designated querier on the subnet, sends query messages to the all-hosts multicast group at 224.0.0.1 periodically to discover whether any hosts want to receive multicast data. You can configure the group membership timeout value that the router uses to determine that no members of a group or source exist on the subnet.

The software elects a router as the IGMP querier on a subnet if it has the lowest IP address. As long as a router continues to receive query messages from a router with a lower IP address, it resets a timer that is based on its querier timeout value. If the querier timer of a router expires, it becomes the designated querier. If that router later receives a host query message from a router with a lower IP address, it drops its role as the designated querier and sets its querier timer again.

In this figure, host 1’s membership report is suppressed, and host 2 sends its membership report for group 224.1.1.1 first. Host 1 receives the report from host 2. Because only one membership report per group needs to be sent to the router, other hosts suppress their reports to reduce network traffic. Each host waits for a random time interval to avoid sending reports at the same time. You can configure the query maximum response time parameter to control the interval in which hosts randomize their responses.

Note

IGMPv1 and IGMPv2 membership report suppression occurs only on hosts that are connected to the same port.

In this figure, router A sends the IGMPv3 group-and-source-specific query to the LAN. Hosts 2 and 3 respond to the query with membership reports that indicate that they want to receive data from the advertised group and source. This IGMPv3 feature supports SSM.

IGMPv3 Group-and-Source-Specific Query

Note

IGMPv3 hosts do not perform IGMP membership report suppression.

Messages sent by the designated querier have a time-to-live (TTL) value of 1, which means that the messages are not forwarded by the directly connected routers on the subnet. You can configure the frequency and number of query messages sent specifically for IGMP startup, and you can configure a short query interval at startup so that the group state is established as quickly as possible. Although usually unnecessary, you can tune the query interval used after startup to a value that balances the responsiveness to host group membership messages and the traffic created on the network.

Caution

Changing the query interval can severely impact multicast forwarding.

When a multicast host leaves a group, a host that runs IGMPv2 or later sends an IGMP leave message. To check if this host is the last host to leave the group, the software sends an IGMP query message and starts a timer that you can configure called the last member query response interval. If no reports are received before the timer expires, the software removes the group state. The router continues to send multicast traffic for a group until its state is removed.

You can configure a robustness value to compensate for packet loss on a congested network. The robustness value is used by the IGMP software to determine the number of times to send messages.

Link local addresses in the range 224.0.0.0/24 are reserved by the Internet Assigned Numbers Authority (IANA). Network protocols on a local network segment use these addresses; routers do not forward these addresses because they have a TTL of 1. By default, the IGMP process sends membership reports only for nonlink local addresses, but you can configure the software to send reports for link local addresses.

Licensing Requirements for IGMP

Product

License Requirement

Cisco NX-OS

IGMP requires no license. Any feature not included in a license package is bundled with the nx-os image and is provided at no extra charge to you. For a complete explanation of the Cisco NX-OS licensing scheme, see the Cisco NX-OS Licensing Guide.

Prerequisites for IGMP

IGMP has the following prerequisites:

- You are logged onto the device.

- For global configuration commands, you are in the correct virtual routing and forwarding (VRF) mode. The default configuration mode shown in the examples in this chapter applies to the default VRF.

Guidelines and Limitations for IGMP

IGMP has the following guidelines and limitations:

- For Cisco Nexus 9200 Series switches, the S, G routes do not expire if IGMP or source traffic originates from the same IP address.

Default Settings for IGMP

This table lists the default settings for IGMP parameters.

Default IGMP Parameters

Parameters

Default

IGMP version

2

Startup query interval

30 seconds

Startup query count

2

Robustness value

2

Querier timeout

255 seconds

Query timeout

255 seconds

Query max response time

10 seconds

Query interval

125 seconds

Last member query response interval

1 second

Last member query count

2

Group membership timeout

260 seconds

Report link local multicast groups

Disabled

Enforce router alert

Disabled

Immediate leave

Disabled

Configuring IGMP Parameters

You can configure the IGMP global and interface parameters to affect the operation of the IGMP process.

Note

If you are familiar with the Cisco IOS CLI, be aware that the Cisco NX-OS commands for this feature might differ from the Cisco IOS commands that you would use.

- Configuring IGMP Interface Parameters

- Configuring an IGMP SSM Translation

- Configuring the Enforce Router Alert Option Check

Configuring IGMP Interface Parameters

You can configure the optional IGMP interface parameters described in the table below.

IGMP Interface Parameters

Parameter

Description

IGMP version

IGMP version that is enabled on the interface. The IGMP version can be 2 or 3. The default is 2.

Static multicast groups

Multicast groups that are statically bound to the interface. You can configure the groups to join the interface with the (*, G) state or specify a source IP to join with the (S, G) state. You can specify a route-map policy name that lists the group prefixes, group ranges, and source prefixes to use with the match ip multicast command.

Note:
Although you can configure the (S, G) state, the source tree is built only if you enable IGMPv3.

You can configure a multicast group on all the multicast-capable routers on the network so that pinging the group causes all the routers to respond.

Static multicast groups on OIF

Multicast groups that are statically bound to the output interface. You can configure the groups to join the output interface with the (*, G) state or specify a source IP to join with the (S, G) state. You can specify a route-map policy name that lists the group prefixes, group ranges, and source prefixes to use with the match ip multicast command.

Note:
Although you can configure the (S, G) state, the source tree is built only if you enable IGMPv3.

Startup query interval

Startup query interval. By default, this interval is shorter than the query interval so that the software can establish the group state as quickly as possible. Values range from 1 to 18,000 seconds. The default is 31 seconds.

Startup query count

Number of queries sent at startup that are separated by the startup query interval. Values range from 1 to 10. The default is 2.

Robustness value

Robustness variable that you can tune to reflect expected packet loss on a congested network. You can increase the robustness variable to increase the number of times that packets are resent. Values range from 1 to 7. The default is 2.

Querier timeout

Number of seconds that the software waits after the previous querier has stopped querying and before it takes over as the querier. Values range from 1 to 65,535 seconds. The default is 255 seconds.

Query max response time

Maximum response time advertised in IGMP queries. You can tune the IGMP messages on the network by setting a larger value so that host responses are spread out over a longer time. This value must be less than the query interval. Values range from 1 to 25 seconds. The default is 10 seconds.

Query interval

Frequency at which the software sends IGMP host query messages. You can tune the number of IGMP messages on the network by setting a larger value so that the software sends IGMP queries less often. Values range from 1 to 18,000 seconds. The default is 125 seconds.

Last member query response interval

Interval in which the software sends a response to an IGMP query after receiving a host leave message from the last known active host on the subnet. If no reports are received in the interval, the group state is deleted. You can use this value to tune how quickly the software stops transmitting on the subnet. The software can detect the loss of the last member of a group or source more quickly when the values are smaller. Values range from 1 to 25 seconds. The default is 1 second.

Last member query count

Number of times that the software sends an IGMP query, separated by the last member query response interval, in response to a host leave message from the last known active host on the subnet. Values range from 1 to 5. The default is 2.

Setting this value to 1 means that a missed packet in either direction causes the software to remove the multicast state from the queried group or channel. The software may wait until the next query interval before the group is added again.

Group membership timeout

Group membership interval that must pass before the router decides that no members of a group or source exist on the network. Values range from 3 to 65,535 seconds. The default is 260 seconds.

Report link local multicast groups

Option that enables sending reports for groups in 224.0.0.0/24. Link local addresses are used only by protocols on the local network. Reports are always sent for nonlink local groups. The default is disabled.

Report policy

Access policy for IGMP reports that is based on a route-map policy.

[1]

Access groups

Option that configures a route-map policy to control the multicast groups that hosts on the subnet serviced by an interface can join.

Note:
Only the match ip multicast group command is supported in this route map policy. The match ip address command for matching an ACL is not supported.

Immediate leave

Option that minimizes the leave latency of IGMPv2 group memberships on a given IGMP interface because the device does not send group-specific queries. When immediate leave is enabled, the device removes the group entry from the multicast routing table immediately upon receiving a leave message for the group. The default is disabled.

Note:
Use this command only when there is one receiver behind the interface for a given group.

[1]
To configure route-map policies, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

interface interface

Example:

switch(config)# interface ethernet 2/1
switch(config-if)#

Enters interface configuration mode.

Step 3

Option

Description

ip igmp version value

Example:

switch(config-if)# ip igmp version 3

Sets the IGMP version to the value specified. Values can be 2 or 3. The default is 2.

The no form of the command sets the version to 2.

ip igmp join-group {group [source source] | route-map policy-name}

Example:

switch(config-if)# ip igmp join-group 230.0.0.0

Configures an interface on the device to join the specified group or channel. The device accepts the multicast packets for CPU consumption only.

Caution:
The device CPU must be able to handle the traffic generated by using this command. Because of CPU load constraints, using this command, especially in any form of scale, is not recommended. Consider using the ip igmp static-oif command instead.

ip igmp static-oif {group [source source] | route-map policy-name}

Example:

switch(config-if)# ip igmp static-oif 230.0.0.0

Statically binds a multicast group to the outgoing interface, which is handled by the device hardware. If you specify only the group address, the (*, G) state is created. If you specify the source address, the (S, G) state is created. You can specify a route-map policy name that lists the group prefixes, group ranges, and source prefixes to use with the match ip multicast command.

Note:
A source tree is built for the (S, G) state only if you enable IGMPv3.

ip igmp startup-query-interval seconds

Example:

switch(config-if)# ip igmp startup-query-interval 25

Sets the query interval used when the software starts up. Values can range from 1 to 18,000 seconds. The default is 31 seconds.

ip igmp startup-query-count count

Example:

switch(config-if)# ip igmp startup-query-count 3

Sets the query count used when the software starts up. Values can range from 1 to 10. The default is 2.

ip igmp robustness-variable value

Example:

switch(config-if)# ip igmp robustness-variable 3

Sets the robustness variable. Values can range from 1 to 7. The default is 2.

ip igmp querier-timeout seconds

Example:

switch(config-if)# ip igmp querier-timeout 300

Sets the querier timeout that the software uses when deciding to take over as the querier. Values can range from 1 to 65,535 seconds. The default is 255 seconds.

ip igmp query-timeout seconds

Example:

switch(config-if)# ip igmp query-timeout 300

Sets the query timeout that the software uses when deciding to take over as the querier. Values can range from 1 to 65,535 seconds. The default is 255 seconds.

Note:
This command has the same functionality as the ip igmp querier-timeout command.

ip igmp query-max-response-time seconds

Example:

switch(config-if)# ip igmp query-max-response-time 15

Sets the response time advertised in IGMP queries. Values can range from 1 to 25 seconds. The default is 10 seconds.

ip igmp query-interval interval

Example:

switch(config-if)# ip igmp query-interval 100

Sets the frequency at which the software sends IGMP host query messages. Values can range from 1 to 18,000 seconds. The default is 125 seconds.

ip igmp last-member-query-response-time seconds

Example:

switch(config-if)# ip igmp last-member-query-response-time 3

Sets the query interval waited after sending membership reports before the software deletes the group state. Values can range from 1 to 25 seconds. The default is 1 second.

ip igmp last-member-query-count count

Example:

switch(config-if)# ip igmp last-member-query-count 3

Sets the number of times that the software sends an IGMP query in response to a host leave message. Values can range from 1 to 5. The default is 2.

ip igmp group-timeout seconds

Example:

switch(config-if)# ip igmp group-timeout 300

Sets the group membership timeout for IGMPv2. Values can range from 3 to 65,535 seconds. The default is 260 seconds.

ip igmp report-link-local-groups

Example:

switch(config-if)# ip igmp report-link-local-groups

Enables sending reports for groups in 224.0.0.0/24. Reports are always sent for nonlink local groups. By default, reports are not sent for link local groups.

ip igmp report-policy policy

Example:

switch(config-if)# ip igmp report-policy my_report_policy

Configures an access policy for IGMP reports that is based on a route-map policy.

ip igmp access-group policy

Example:

switch(config-if)# ip igmp access-group my_access_policy

Configures a route-map policy to control the multicast groups that hosts on the subnet serviced by an interface can join.

Note:
Only the match ip multicast group command is supported in this route map policy. The match ip address command for matching an ACL is not supported.

ip igmp immediate-leave

Example:

switch(config-if)# ip igmp immediate-leave

Enables the device to remove the group entry from the multicast routing table immediately upon receiving a leave message for the group. Use this command to minimize the leave latency of IGMPv2 group memberships on a given IGMP interface because the device does not send group-specific queries. The default is disabled.

Note:
Use this command only when there is one receiver behind the interface for a given group.

These commands are used to configure the IGMP interface parameters.

Step 4

show ip igmp interface [interface] [vrf vrf-name | all] [brief]

Example:

switch(config)# show ip igmp interface

(Optional)
Displays IGMP information about the interface.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring an IGMP SSM Translation

You can configure an SSM translation to provide SSM support when the router receives IGMPv1 or IGMPv2 membership reports. Only IGMPv3 provides the capability to specify group and source addresses in membership reports. By default, the group prefix range is 232.0.0.0/8.

The IGMP SSM translation feature enables an SSM-based multicast core network to be deployed when the multicast host does not support IGMPv3 or is forced to send group joins instead of (S,G) reports to interoperate with Layer 2 switches. The IGMP SSM translation feature provides the functionality to configure multiple sources for the same SSM group. Protocol Independent Multicast (PIM) must be configured on the device before configuring the SSM translation.

This table lists the example SSM translations.

Example SSM Translations

Group Prefix

Source Address

232.0.0.0/8

10.1.1.1

232.0.0.0/8

10.2.2.2

232.1.0.0/16

10.3.3.3

232.1.1.0/24

10.4.4.4

This table shows the resulting MRIB routes that the IGMP process creates when it applies an SSM translation to the IGMP membership report. If more than one translation applies, the router creates the (S, G) state for each translation.

Example Result of Applying SSM Translations

IGMPv2 Membership Report

Resulting MRIB Route

232.1.1.1

(10.4.4.4, 232.1.1.1)

232.2.2.2

(10.1.1.1, 232.2.2.2)
(10.2.2.2, 232.2.2.2)

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip igmp ssm-translate group-prefix source-addr

Example:

switch(config)# ip igmp ssm-translate 232.0.0.0/8 10.1.1.1

Configures the translation of IGMPv1 or IGMPv2 membership reports by the IGMP process to create the (S,G) state as if the router had received an IGMPv3 membership report.

Step 3

show running-configuration igmp

Example:

switch(config)# show running-configuration igmp

(Optional)
Shows the running-configuration information, including ssm-translate command lines.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring the Enforce Router Alert Option Check

You can configure the enforce router alert option check for IGMPv2 and IGMPv3 packets.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

[no] ip igmp enforce-router-alert

Example:

switch(config)# ip igmp enforce-router-alert

Enables or disables the enforce router alert option check for IGMPv2 and IGMPv3 packets. By default, the enforce router alert option check is enabled.

Step 3

show running-configuration igmp

Example:

switch(config)# show running-configuration igmp

(Optional)
Shows the running-configuration information.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Restarting the IGMP Process

You can restart the IGMP process and optionally flush all routes.

Procedure

Command or Action

Purpose

Step 1

restart igmp

Example:

switch# restart igmp

Restarts the IGMP process.

Step 2

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 3

ip igmp flush-routes

Example:

switch(config)# ip igmp flush-routes

Removes routes when the IGMP process is restarted. By default, routes are not flushed.

Step 4

show running-configuration igmp

Example:

switch(config)# show running-configuration igmp

(Optional)
Shows the running-configuration information.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Verifying the IGMP Configuration

To display the IGMP configuration information, perform one of the following tasks:

Command

Description

show ip igmp interface [interface] [vrf vrf-name | all] [brief]

Displays IGMP information about all interfaces or a selected interface, the default VRF, a selected VRF, or all VRFs. If IGMP is in vPC mode, use this command to display vPC statistics.

show ip igmp groups [{source [group]}] | {group [source]}] [interface] [summary] [vrf vrf-name | all]

Displays the IGMP attached group membership for a group or interface, the default VRF, a selected VRF, or all VRFs.

show ip igmp route [{source [group]}] | {group [source]}] [interface] [summary] [vrf vrf-name | all]

Displays the IGMP attached group membership for a group or interface, the default VRF, a selected VRF, or all VRFs.

show ip igmp local-groups

Displays the IGMP local group membership.

show running-configuration igmp

Displays the IGMP running-configuration information.

show startup-configuration igmp

Displays the IGMP startup-configuration information.

Configuration Examples for IGMP

The following example shows how to configure the IGMP parameters:

configure terminal
ip igmp ssm-translate 232.0.0.0/8 10.1.1.1
interface ethernet 2/1
ip igmp version 3
ip igmp join-group 230.0.0.0
ip igmp startup-query-interval 25
ip igmp startup-query-count 3
ip igmp robustness-variable 3
ip igmp querier-timeout 300
ip igmp query-timeout 300
ip igmp query-max-response-time 15
ip igmp query-interval 100
ip igmp last-member-query-response-time 3
ip igmp last-member-query-count 3
ip igmp group-timeout 300
ip igmp report-link-local-groups
ip igmp report-policy my_report_policy
ip igmp access-group my_access_policy

Chapter 4. Configuring MLD

This chapter describes how to configure Multicast Listener Discovery (MLD) on Cisco NX-OS devices for IPv6 networks.

- About MLD

- Licensing Requirements for MLD

- Prerequisites for MLD

- Guidelines and Limitations for MLD

- Default Settings for MLD

- Configuring MLD Parameters

- Verifying the MLD Configuration

- Configuration Example for MLD

About MLD

MLD is an IPv6 protocol that a host uses to request multicast data for a particular group. Using the information obtained through MLD, the software maintains a list of multicast group or channel memberships on a per-interface basis. The devices that receive MLD packets send the multicast data that they receive for requested groups or channels out the network segment of the known receivers.

MLDv1 is derived from IGMPv2, and MLDv2 is derived from IGMPv3. IGMP uses IP Protocol 2 message types while MLD uses IP Protocol 58 message types, which is a subset of the ICMPv6 messages.

The MLD process is started automatically on the device. You cannot enable MLD manually on an interface. MLD is enabled automatically when you perform one of the following configuration tasks on an interface:

- Enable PIM6

- Statically bind a local multicast group

- Enable link-local group reports

- MLD Versions

- MLD Basics

MLD Versions

The device supports MLDv1 and MLDv2. MLDv2 supports MLDv1 listener reports.

By default, the software enables MLDv2 when it starts the MLD process. You can enable MLDv1 on interfaces where you want only its capabilities.

MLDv2 includes the following key changes from MLDv1:

- Support for Source-Specific Multicast (SSM), which builds shortest path trees from each receiver to the source, through the following features:

- Host messages that can specify both the group and the source.

- The multicast state that is maintained for groups and sources, not just for groups as in MLDv1.

- Hosts no longer perform report suppression, which means that hosts always send MLD listener reports when an MLD query message is received.

For detailed information about MLDv1, see RFC 2710. For detailed information about MLDv2, see RFC 3810.

MLD Basics

The basic MLD process of a router that discovers multicast hosts is shown in the figure below.

MLD Query-Response Process

Hosts 1, 2, and 3 send unsolicited MLD listener report messages to initiate receiving multicast data for a group or channel. Router A, which is the MLD designated querier on the subnet, sends a general query message to the link-scope all-nodes multicast address FF02::1 periodically to discover which multicast groups hosts want to receive. The group-specific query is used to discover whether a specific group is requested by any hosts. You can configure the group membership timeout value that the router uses to determine if any members of a group or source exist on the subnet.

Host 1’s listener report is suppressed, and host 2 sends its listener report for group FFFE:FFFF:90::1 first. Host 1 receives the report from host 2. Because only one listener report per group needs to be sent to the router, other hosts suppress their reports to reduce network traffic. Each host waits for a random time interval to avoid sending reports at the same time. You can configure the query maximum response time parameter to control the interval at which hosts randomize their responses.

Note

MLDv1 membership report suppression occurs only on hosts that are connected to the same port.

Router A sends the MLDv2 group-and-source-specific query to the LAN. Hosts 2 and 3 respond to the query with listener reports to indicate that they want to receive data from the advertised group and source. This MLDv2 feature supports SSM.

Note

In MLDv2, all hosts respond to queries.

MLDv2 Group-and-Source-Specific Query

The software elects a router as the MLD querier on a subnet if it has the lowest IP address. As long as a router continues to receive query messages from a router with a lower IP address, it remains a nonquerier and resets a timer that is based on its querier timeout value. If the querier timer of a router expires, it becomes the designated querier. If that router later receives a host query message from a router with a lower IP address, it drops its role as the designated querier and sets its querier timer again.

Messages sent by the designated querier have a time-to-live (TTL) value of 1, which means that the messages are not forwarded by the directly connected routers on the subnet, and you can configure the frequency and number of query messages sent specifically for MLD startup. You can configure a short query interval at startup so that the group state is established as quickly as possible. Although usually unnecessary, you can tune the query interval used after startup to a value that balances responsiveness to host group membership and the traffic created on the network.

Caution

If you change the query interval, you can severely impact multicast forwarding in your network.

When a multicast host leaves a group, it should send a done message for MLDv1 or a listener report that excludes the group to the link-scope all-routers multicast address FF02::2. To check if this host is the last host to leave the group, the software sends an MLD query message and starts a timer that you can configure called the last member query response interval. If no reports are received before the timer expires, the software removes the group state. The router continues to send multicast traffic for a group until its state is removed.

You can configure a robustness value to compensate for the packet loss on a congested network. The robustness value is used by the MLD software to determine the number of times to send messages.

Link local addresses in the range FF02::0/16 have link scope, as defined by the Internet Assigned Numbers Authority (IANA). Network protocols on a local network segment use these addresses; routers do not forward these addresses because they have a TTL of 1. By default, the MLD process sends listener reports only for nonlink local addresses, but you can configure the software to send reports for link local addresses.

Licensing Requirements for MLD

Product

License Requirement

Cisco NX-OS

MLD requires no license. Any feature not included in a license package is bundled with the nx-os image and is provided at no extra charge to you. For a complete explanation of the Cisco NX-OS licensing scheme, see the Cisco NX-OS Licensing Guide.

Prerequisites for MLD

MLD has the following prerequisites:

- You are logged into the device.

- For global configuration commands, you are in the correct virtual routing and forwarding (VRF) mode. The default configuration mode shown in the examples in this chapter applies to the default VRF.

Guidelines and Limitations for MLD

MLD has the following guidelines and limitations:

- Only the Cisco Nexus 9200, 9300, and 9300-EX Series switches support MLD.

Default Settings for MLD

Default MLD Parameters

Parameters

Default

MLD version

2

Startup query interval

30 seconds

Startup query count

2

Robustness value

2

Querier timeout

255 seconds

Query timeout

255 seconds

Query max response time

10 seconds

Query interval

125 seconds

Last member query response interval

1 second

Last member query count

2

Group membership timeout

260 seconds

Report link local multicast groups

Disabled

Immediate leave

Disabled

Configuring MLD Parameters

You can configure the MLD global and interface parameters to affect the operation of the MLD process.

Note

Before you can access the MLD commands, you must enable the MLD feature.

- Configuring MLD Interface Parameters

- Configuring an MLD SSM Translation

Configuring MLD Interface Parameters

MLD Interface Parameters

Parameter

Description

MLD version

The MLD version that is enabled on the interface. MLDv2 supports MLDv1. The MLD version can be 1 or 2. The default is 2.

Static multicast groups

Multicast groups that are statically bound to the interface. You can configure the groups to join the interface with the (*, G) state or specify a source IP to join with the (S, G) state. You can specify a route-map policy name that lists the group prefixes, group ranges, and source prefixes to use with the match ip multicast command.

Note:
Although you can configure the (S, G) state, the source tree is built only if you enable MLDv2.

You can configure a multicast group on all the multicast-capable routers on the network so that pinging the group causes all the routers to respond.

Static multicast groups on OIF

Multicast groups that are statically bound to the output interface. You can configure the groups to join the output interface with the (*, G) state or specify a source IP to join with the (S, G) state. You can specify a route-map policy name that lists the group prefixes, group ranges, and source prefixes to use with the match ip multicast command.

Although you can configure the (S, G) state, the source tree is built only if you enable MLDv2.

Note:
Group prefixes in the route map must have a mask of 120 or longer.

Startup query interval

Startup query interval. By default, this interval is shorter than the query interval so that the software can establish the group state as quickly as possible. Values range from 1 to 18,000 seconds. The default is 30 seconds.

Startup query count

The number of queries sent at startup that are separated by the startup query interval. Values range from 1 to 10. The default is 2.

Robustness value

A robustness variable that you can tune to reflect expected packet loss on a congested network. You can increase the robustness variable to increase the number of times that packets are resent. Values range from 1 to 7. The default is 2.

Querier timeout

The number of seconds that the software waits after the previous querier has stopped querying and before it takes over as the querier. Values range from 1 to 65,535 seconds. The default is 255 seconds.

Query max response time

The maximum response time advertised in MLD queries. You can tune the burstiness of MLD messages on the network by setting a larger value so that host responses are spread out over a longer time. This value must be less than the query interval. Values range from 1 to 25 seconds. The default is 10 seconds.

Query interval

The frequency at which the software sends MLD host query messages. You can tune the number of MLD messages on the network by setting a larger value so that the software sends MLD queries less often. Values range from 1 to 18,000 seconds. The default is 125 seconds.

Last member query response interval

The query interval for response to an MLD query that the software sends after receiving a host leave message from the last known active host on the subnet. If no reports are received in the interval, the group state is deleted. You can use this value to tune how quickly the software stops transmitting on the subnet. The software can detect the loss of the last member of a group or source more quickly when the values are smaller. Values range from 1 to 25 seconds. The default is 1 second.

Last member query count

The number of times that the software sends an MLD query, separated by the last member query response interval, in response to a host leave message from the last known active host on the subnet. Values range from 1 to 5. The default is 2.

Caution:
Setting this value to 1 means that a missed packet in either direction causes the software to remove the multicast state from the queried group or channel. The software can wait until the next query interval before the group is added again.

Group membership timeout

The group membership interval that must pass before the router decides that no members of a group or source exist on the network. Values range from 3 to 65,535 seconds. The default is 260 seconds.

Report link local multicast groups

An option that enables sending reports for groups in FF02::0/16. Link local addresses are used only by protocols on the local network. Reports are always sent for nonlink local groups. The default is disabled.

Report policy

An access policy for MLD reports that is based on a route-map policy.

Access groups

An option that configures a route-map policy to control the multicast groups that hosts on the subnet serviced by an interface can join.

Note:
Only the match ip multicast group command is supported in this route map policy. The match ip address command for matching an ACL is not supported.

Immediate leave

An option that minimizes the leave latency of MLDv1 group memberships on a given MLD interface because the device does not send group-specific queries. When immediate leave is enabled, the device will remove the group entry from the multicast routing table immediately upon receiving a leave message for the group. The default is disabled.

Note:
Use this command only when there is one receiver behind the interface for a given group.

1 To configure route-map policies, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

interface interface

Example:

switch(config)# interface ethernet 2/1
switch(config-if)#

Enters interface configuration mode.

Step 3

Option

Description

ipv6 mld version value
Example

switch(config-if)# ipv6 mld version 2

Sets the MLD version that is enabled on the interface. MLDv2 supports MLDv1. Values can be 1 or 2. The default is 2.

The no form of the command sets the version to 2.

ipv6 mld join-group {group [source source] | route-map policy-name}
Example

switch(config-if)# ipv6 mld join-group FFFE::1

Statically binds a multicast group to the interface. If you specify only the group address, the (*, G) state is created. If you specify the source address, the (S, G) state is created. You can specify a route-map policy name that lists the group prefixes, group ranges, and source prefixes to use with the match ip multicast command.

Note:
A source tree is built for the (S, G) state only if you enable MLDv2.

Caution:
The device CPU must handle the traffic generated by using this command.

ipv6 mld static-oif {group [source source] | route-map policy-name}
Example

switch(config-if)# ipv6 mld static-oif FFFE::1

Statically binds a multicast group to the outgoing interface, which is handled by the device hardware. If you specify only the group address, the (*, G) state is created. If you specify the source address, the (S, G) state is created. You can specify a route-map policy name that lists the group prefixes, group ranges, and source prefixes to use with the match ip multicast command.

Note:
A source tree is built for the (S, G) state only if you enable MLDv2.

Note:
The maximum number of groups supported per entry in the route map is 256.

ipv6 mld startup-query-interval seconds
Example

switch(config-if)# ipv6 mld startup-query-interval 25

Sets the query interval used when the software starts up. Values can range from 1 to 18,000 seconds. The default is 31 seconds.

ipv6 mld startup-query-count count
Example

switch(config-if)# ipv6 mld startup-query-count 3

Sets the query count used when the software starts up. Values can range from 1 to 10. The default is 2.

ipv6 mld robustness-variable value
Example

switch(config-if)# ipv6 mld robustness-variable 3

Sets the robustness variable. You can use a larger value for a network prone to packet loss. Values can range from 1 to 7. The default is 2.

ipv6 mld querier-timeout seconds
Example

switch(config-if)# ipv6 mld querier-timeout 300

Sets the querier timeout that the software uses when deciding to take over as the querier. Values can range from 1 to 65,535 seconds. The default is 255 seconds.

ipv6 mld query-timeout seconds
Example

switch(config-if)# ipv6 mld query-timeout 300

Sets the query timeout that the software uses when deciding to take over as the querier. Values can range from 1 to 65,535 seconds. The default is 255 seconds.

Note:
This command has the same functionality as the ipv6 mld querier-timeout command.

ipv6 mld query-max-response-time seconds
Example

switch(config-if)# ipv6 mld query-max-response-time 15

Sets the response time advertised in MLD queries. Values can range from 1 to 25 seconds. The default is 10 seconds.

ipv6 mld query-interval interval
Example

switch(config-if)# ipv6 mld query-interval 100

Sets the frequency at which the software sends MLD host query messages. Values can range from 1 to 18,000 seconds. The default is 125 seconds.

ipv6 mld last-member-query-response-time seconds
Example

switch(config-if)# ipv6 mld last-member-query-response-time 3

Sets the query response time after sending membership reports before the software deletes the group state. Values can range from 1 to 25 seconds. The default is 1 second.

ipv6 mld last-member-query-count count
Example

switch(config-if)# ipv6 mld last-member-query-count 3

Sets the number of times that the software sends an MLD query in response to a host leave message. Values can range from 1 to 5. The default is 2.

ipv6 mld group-timeout seconds
Example

switch(config-if)# ipv6 mld group-timeout 300

Sets the group membership timeout for MLDv2. Values can range from 3 to 65,535 seconds. The default is 260 seconds.

ipv6 mld report-link-local-groups
Example

switch(config-if)# ipv6 mld report-link-local-groups

Enables sending reports for groups in 224.0.0.0/24. Reports are always sent for nonlink local groups. By default, reports are not sent for link local groups.

ipv6 mld report-policy policy
Example

switch(config-if)# ipv6 mld report-policy my_report_policy

Configures an access policy for MLD reports that is based on a route-map policy.

ipv6 mld access-group policy
Example

switch(config-if)# ipv6 mld access-group my_access_policy

Configures a route-map policy to control the multicast groups that hosts on the subnet serviced by an interface can join.

Note:
Only the match ip multicast group command is supported in this route map policy. The match ip address command for matching an ACL is not supported.

ipv6 mld immediate-leave
Example

switch(config-if)# ipv6 mld immediate-leave

Enables the device to remove the group entry from the multicast routing table immediately upon receiving a leave message for the group. Use this command to mnimize the leave latency of MLDv1 group memberships on a given MLD interface because the device does not send group-specific queries. The default is disabled.

Note:
Use this command only when there is one receiver behind the interface for a given group.

Use the following commands to configure the MLD interface parameters.

Step 4

show ipv6 mld interface [interface] [vrf vrf-name | all] [brief]

Example:

switch(config)# show ipv6 mld interface

(Optional)
Displays MLD information about the interface.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring an MLD SSM Translation

You can configure an SSM translation to provide SSM support when the router receives MLDv1 listener reports. Only MLDv2 provides the capability to specify group and source addresses in listener reports. By default, the group prefix range is FF3x/96. To modify the PIM SSM range, see Configuring SSM.

Example SSM Translations

Group Prefix

Source Address

FF30::0/16

2001:0DB8:0:ABCD::1

FF30::0/16

2001:0DB8:0:ABCD::2

FF30:30::0/24

2001:0DB8:0:ABCD::3

FF32:40::0/24

2001:0DB8:0:ABCD::4

The following table shows the resulting M6RIB routes that the MLD process creates when it applies an SSM translation to the MLD v1 listener report. If more than one translation applies, the router creates the (S, G) state for each translation.

Example Result of Applying SSM Translations

MLDv1 Listener Report

Resulting M6RIB Route

FF32:40::40

(2001:0DB8:0:ABCD::4, FF32:40::40)

FF30:10::10

(2001:0DB8:0:ABCD::1, FF30:10::10)
(2001:0DB8:0:ABCD::2, FF30:10::10)

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ipv6 [icmp] mld ssm-translate group-prefix source-addr

Example:

switch(config)# ipv6 mld ssm-translate FF30::0/16 2001:0DB8:0:ABCD::1

Configures the translation of MLDv1 listener reports by the MLD process to create the (S, G) state as if the router had received an MLDv2 listener report.

Step 3

show running-configuration ssm-translate

Example:

switch(config)# show running-configuration ssm-translate

(Optional)
Shows ssm-translate configuration lines in the running configuration.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Verifying the MLD Configuration

To display the MLD configuration information, perform one of the following tasks:

show ipv6 mld interface [interface] [vrf vrf-name | all] [brief]

Displays MLD information about all interfaces or a selected interface or about the default VRF, a selected VRF, or all VRFs.

show ipv6 mld groups [group | interface] [vrf vrf-name | all]

Displays the MLD attached group membership for a group or interface or for the default VRF, a selected VRF, or all VRFs.

show ipv6 mld route [group | interface] [vrf vrf-name | all]

Displays the MLD attached group membership for a group or interface or for the default VRF, a selected VRF, or all VRFs.

show ipv6 mld local-groups

Displays the MLD local group membership.

Configuration Example for MLD

The following example shows how to configure MLD:

configure terminal
ipv6 mld ssm-translate FF30::0/16 2001:0DB8:0:ABCD::1
interface ethernet 2/1
ipv6 mld version 2
ipv6 mld join-group FFFE::1
ipv6 mld startup-query-interval 25
ipv6 mld startup-query-count 3
ipv6 mld robustness-variable 3
ipv6 mld querier-timeout 300
ipv6 mld query-timeout 300
ipv6 mld query-max-response-time 15
ipv6 mld query-interval 100
ipv6 mld last-member-query-response-time 3
ipv6 mld last-member-query-count 3
ipv6 mld group-timeout 300
ipv6 mld report-link-local-groups
ipv6 mld report-policy my_report_policy
ipv6 mld access-group my_access_policy

Chapter 5. Configuring PIM and PIM6

This chapter describes how to configure the Protocol Independent Multicast (PIM) and PIM6 features on Cisco NX-OS devices in your IPv4 and IPv6 networks.

- About PIM and PIM6

- Licensing Requirements for PIM and PIM6

- Prerequisites for PIM and PIM6

- Guidelines and Limitations for PIM and PIM6

- Default Settings

- Configuring PIM and PIM6

- Verifying the PIM and PIM6 Configuration

- Displaying Statistics

- Configuration Examples for PIM

- Related Documents

- Standards

- MIBs

About PIM and PIM6

PIM, which is used between multicast-capable routers, advertises group membership across a routing domain by constructing multicast distribution trees. PIM builds shared distribution trees on which packets from multiple sources are forwarded, as well as source distribution trees on which packets from a single source are forwarded.

Cisco NX-OS supports PIM sparse mode for IPv4 networks (PIM) and for IPv6 networks (PIM6). In PIM sparse mode, multicast traffic is sent only to locations of the network that specifically request it. You can configure PIM and PIM6 to run simultaneously on a router. You can use PIM and PIM6 global parameters to configure rendezvous points (RPs), message packet filtering, and statistics. You can use PIM and PIM6 interface parameters to enable multicast, identify PIM borders, set the PIM hello message interval, and set the designated router (DR) priority.

Note

Cisco NX-OS does not support PIM dense mode.

In Cisco NX-OS, multicast is enabled only after you enable the PIM and PIM6 feature on each router and then enable PIM or PIM6 sparse mode on each interface that you want to participate in multicast. You can configure PIM for an IPv4 network and PIM6 for an IPv6 network. In an IPv4 network, if you have not already enabled IGMP on the router, PIM enables it automatically. In an IPv6 network, MLD is enabled by default.

You use the PIM and PIM6 global configuration parameters to configure the range of multicast group addresses to be handled by these distribution modes:

- Any Source Multicast (ASM) provides discovery of multicast sources. It builds a shared tree between sources and receivers of a multicast group and supports switching over to a source tree when a new receiver is added to a group. ASM mode requires that you configure an RP.

- Source-Specific Multicast (SSM) builds a source tree originating at the designated router on the LAN segment that receives a request to join a multicast source. SSM mode does not require you to configure RPs. Source discovery must be accomplished through other means.

- Bidirectional shared trees (Bidir) build a shared tree between sources and receivers of a multicast group but do not support switching over to a source tree when a new receiver is added to a group. Bidir mode requires that you configure an RP. Bidir forwarding does not require source discovery because only the shared tree is used.

Note

Cisco Nexus 9000 Series switches do not support PIM6 Bidir.

You can combine these modes to cover different ranges of group addresses.

For more information about PIM sparse mode and shared distribution trees used by the ASM and Bidir modes, see RFC 4601.

For more information about PIM SSM mode, see RFC 3569.

For more information about PIM Bidir mode, see draft-ietf-pim-bidir-09.txt.

- Hello Messages

- Join-Prune Messages

- State Refreshes

- Rendezvous Points

- PIM Register Messages

- Designated Routers

- Designated Forwarders

- ASM Switchover from Shared Tree to Source Tree

- Administratively Scoped IP Multicast

- Multicast Counters

- Multicast Heavy Template

- PIM Graceful Restart

- High Availability

Hello Messages

The PIM process begins when the router establishes PIM neighbor adjacencies by sending PIM hello messages to the multicast IPv4 address 224.0.0.13 or IPv6 address FF02::d. Hello messages are sent periodically at the interval of 30 seconds. When all neighbors have replied, the PIM software chooses the router with the highest priority in each LAN segment as the designated router (DR). The DR priority is based on a DR priority value in the PIM hello message. If the DR priority value is not supplied by all routers, or the priorities match, the highest IP address is used to elect the DR.

The hello message also contains a hold-time value, which is typically 3.5 times the hello interval. If this hold time expires without a subsequent hello message from its neighbor, the device detects a PIM failure on that link.

For added security, you can configure an MD5 hash value that the PIM software uses to authenticate PIM hello messages with PIM neighbors.

Note

PIM6 does not support MD5 authentication.

Join-Prune Messages

When the DR receives an IGMP membership report message from a receiver for a new group or source, the DR creates a tree to connect the receiver to the source by sending a PIM join message out the interface toward the rendezvous point (ASM or Bidir mode) or source (SSM mode). The rendezvous point (RP) is the root of a shared tree, which is used by all sources and hosts in the PIM domain in the ASM or Bidir mode. SSM does not use an RP but builds a shortest path tree (SPT) that is the lowest cost path between the source and the receiver.

When the DR determines that the last host has left a group or source, it sends a PIM prune message to remove the path from the distribution tree.

The routers forward the join or prune action hop by hop up the multicast distribution tree to create (join) or tear down (prune) the path.

Note

In this publication, the terms “PIM join message” and “PIM prune message” are used to simplify the action taken when referring to the PIM join-prune message with only a join or prune action.

Join-prune messages are sent as quickly as possible by the software. You can filter the join-prune messages by defining a routing policy.

State Refreshes

PIM requires that multicast entries are refreshed within a 3.5-minute timeout interval. The state refresh ensures that traffic is delivered only to active listeners, and it keeps routers from using unnecessary resources.

To maintain the PIM state, the last-hop DR sends join-prune messages once per minute. State creation applies to both (*, G) and (S, G) states as follows:

- (*, G) state creation example—An IGMP (*, G) report triggers the DR to send a (*, G) PIM join message toward the RP.

- (S, G) state creation example—An IGMP (S, G) report triggers the DR to send an (S, G) PIM join message toward the source.

If the state is not refreshed, the PIM software tears down the distribution tree by removing the forwarding paths in the multicast outgoing interface list of the upstream routers.

Rendezvous Points

A rendezvous point (RP) is a router that you select in a multicast network domain that acts as a shared root for a multicast shared tree. You can configure as many RPs as you like, and you can configure them to cover different group ranges.

- Static RP

- BSRs

- Auto-RP

- Multiple RPs Configured in a PIM Domain

- Anycast-RP

Static RP

You can statically configure an RP for a multicast group range. You must configure the address of the RP on every router in the domain.

You can define static RPs for the following reasons:

- To configure routers with the Anycast-RP address

- To manually configure an RP on a device

BSRs

The bootstrap router (BSR) ensures that all routers in the PIM domain have the same RP cache as the BSR. You can configure the BSR to help you select an RP set from BSR candidate RPs. The function of the BSR is to broadcast the RP set to all routers in the domain. You select one or more candidate BSRs to manage the RPs in the domain. Only one candidate BSR is elected as the BSR for the domain.

Caution

Do not configure both Auto-RP and BSR protocols in the same network.

This figure shows the BSR mechanism. Router A, the software-elected BSR, sends BSR messages out all enabled interfaces (shown by the solid lines in the figure). The messages, which contain the RP set, are flooded hop by hop to all routers in the network. Routers B and C are candidate RPs that send their candidate-RP advertisements directly to the elected BSR (shown by the dashed lines in the figure).

The elected BSR receives candidate-RP messages from all the candidate RPs in the domain. The bootstrap message sent by the BSR includes information about all of the candidate RPs. Each router uses a common algorithm to select the same RP address for a given multicast group.

BSR Mechanism

In the RP selection process, the RP address with the best priority is determined by the software. If the priorities match for two or more RP addresses, the software might use the RP hash in the selection process. Only one RP address is assigned to a group.

By default, routers are not enabled to listen or forward BSR messages. You must enable the BSR listening and forwarding feature so that the BSR mechanism can dynamically inform all routers in the PIM domain of the RP set assigned to multicast group ranges.

For more information about bootstrap routers, see RFC 5059.

Note

The BSR mechanism is a nonproprietary method of defining RPs that can be used with third-party routers.

Note

BSR is not supported for PIM6.

Auto-RP

Auto-RP is a Cisco protocol that was introduced prior to the Internet standard bootstrap router mechanism. You configure Auto-RP by selecting candidate mapping agents and RPs. Candidate RPs send their supported group range in RP-Announce messages to the Cisco RP-Announce multicast group 224.0.1.39. An Auto-RP mapping agent listens for RP-Announce messages from candidate RPs and forms a Group-to-RP mapping table. The mapping agent multicasts the Group-to-RP mapping table in RP-Discovery messages to the Cisco RP-Discovery multicast group 224.0.1.40.

Caution

Do not configure both Auto-RP and BSR protocols in the same network.

This figure shows the Auto-RP mechanism. Periodically, the RP mapping agent multicasts the RP information that it receives to the Cisco-RP-Discovery group 224.0.1.40 (shown by the solid lines in the figure).

Auto-RP Mechanism

By default, routers are not enabled to listen or forward Auto-RP messages. You must enable the Auto-RP listening and forwarding feature so that the Auto-RP mechanism can dynamically inform routers in the PIM domain of the group-to-RP mapping.

Note

Auto-RP is not supported for PIM6.

Multiple RPs Configured in a PIM Domain

This section describes the election process rules when multiple RPs are configured in a PIM domain.

Anycast-RP

Anycast-RP has two implementations: one uses Multicast Source Discovery Protocol (MSDP) and the other is based on RFC 4610, Anycast-RP Using Protocol Independent Multicast (PIM). This section describes how to configure PIM Anycast-RP.

You can use PIM Anycast-RP to assign a group of routers, called the Anycast-RP set, to a single RP address that is configured on multiple routers. The set of routers that you configure as Anycast-RPs is called the Anycast-RP set. This method is the only RP method that supports more than one RP per multicast group, which allows you to load balance across all RPs in the set. The Anycast RP supports all multicast groups.

PIM register messages are sent to the closest RP, and PIM join-prune messages are sent in the direction of the closest RP as determined by the unicast routing protocols. If one of the RPs goes down, unicast routing ensures these messages will be sent in the direction of the next-closest RP.

You must configure PIM on the loopback interface that is used for the PIM Anycast RP and the PIM Bidir RP.

For more information about PIM Anycast-RP, see RFC 4610.

PIM Register Messages

PIM register messages are unicast to the RP by designated routers (DRs) that are directly connected to multicast sources. The PIM register message has the following functions:

- To notify the RP that a source is actively sending to a multicast group.

- To deliver multicast packets sent by the source to the RP for delivery down the shared tree.

The DR continues to send PIM register messages to the RP until it receives a Register-Stop message from the RP. The RP sends a Register-Stop message in either of the following cases:

- The RP has no receivers for the multicast group being transmitted.

- The RP has joined the SPT to the source but has not started receiving traffic from the source.

You can use the ip pim register-source command to configure the IP source address of register messages when the IP source address of a register message is not a uniquely routed address to which the RP can send packets. This situation might occur if the source address is filtered so that the packets sent to it are not forwarded or if the source address is not unique to the network. In these cases, the replies sent from the RP to the source address will fail to reach the DR, resulting in Protocol Independent Multicast sparse mode (PIM-SM) protocol failures.

The following example shows how to configure the IP source address of the register message to the loopback 3 interface of a DR:

ip pim register-source loopback 3

Note

In Cisco NX-OS, PIM register messages are rate limited to avoid overwhelming the RP.

You can filter PIM register messages by defining a routing policy.

Designated Routers

In PIM ASM and SSM modes, the software chooses a designated router (DR) from the routers on each network segment. The DR is responsible for forwarding multicast data for specified groups and sources on that segment.

The DR for each LAN segment is determined as described in the Hello messages.

In ASM mode, the DR is responsible for unicasting PIM register packets to the RP. When a DR receives an IGMP membership report from a directly connected receiver, the shortest path is formed to the RP, which may or may not go through the DR. The result is a shared tree that connects all sources transmitting on the same multicast group to all receivers of that group.

In SSM mode, the DR triggers (S, G) PIM join or prune messages toward the source. The path from the receiver to the source is determined hop by hop. The source must be known to the receiver or the DR.

Designated Forwarders

In PIM Bidir mode, the software chooses a designated forwarder (DF) at RP discovery time from the routers on each network segment. The DF is responsible for forwarding multicast data for specified groups on that segment. The DF is elected based on the best metric from the network segment to the RP.

If the router receives a packet on the RPF interface toward the RP, the router forwards the packet out all interfaces in the OIF-list. If a router receives a packet on an interface on which the router is the elected DF for that LAN segment, the packet is forwarded out all interfaces in the OIF-list except the interface that it was received on and also out the RPF interface toward the RP.

Note

Cisco NX-OS puts the RPF interface into the OIF-list of the MRIB but not in the OIF-list of the MFIB.

ASM Switchover from Shared Tree to Source Tree

Note

Cisco NX-OS puts the RPF interface into the OIF-list of the MRIB but not into the OIF-list of the MFIB.

In ASM mode, the DR that is connected to a receiver switches over from the shared tree to the shortest-path tree (SPT) to a source unless you configure the PIM parameter to use shared trees only.

During the switchover, messages on the SPT and shared tree might overlap. These messages are different. The shared tree messages are propagated upstream toward the RP, while SPT messages go toward the source.

For information about SPT switchovers, see the “Last-Hop Switchover to the SPT" section in RFC 4601.

Administratively Scoped IP Multicast

The administratively scoped IP multicast method allows you to set boundaries on the delivery of multicast data. For more information, see RFC 2365.

You can configure an interface as a PIM boundary so that PIM messages are not sent out on that interface.

You can use the Auto-RP scope parameter to set a time-to-live (TTL) value.

Multicast Counters

Beginning with Cisco NX-OS Release 7.0(3)I6(1), only Cisco Nexus 9300-EX Series switches support multicast counters. These counters provide more granularity and visibility about multicast traffic. Specifically, they show an absolute multicast packet count (bytes and rate for every multicast S,G route). These counters are valid only for S,G routes and not for *,G routes. Multicast counters appear in the output of the show ip mroute command when the multicast heavy template is enabled.

Multicast Heavy Template

You can enable the multicast heavy template in order to support significantly more multicast routes and to display multicast counters in the output of the show ip mroute command.

The multicast heavy template is supported for the following devices and releases:

- Cisco Nexus N9K-X9732C-EX, N9K-X9736C-E, and N9K-X97160YC-EX line cards, beginning with Cisco NX-OS Release 7.0(3)I3(2), but only for increased scalability

- Cisco Nexus 9300-EX Series switches, beginning with Cisco NX-OS Release 7.0(3)I6(1), for both increased scalability and multicast counters

PIM Graceful Restart

Protocol Independent Multicast (PIM) graceful restart is a multicast high availability (HA) enhancement that improves the convergence of multicast routes (mroutes) after a route processor (RP) switchover. In the event of an RP switchover, the PIM graceful restart feature utilizes the generation ID (GenID) value (defined in RFC 4601) as a mechanism to trigger adjacent PIM neighbors on an interface to send PIM join messages for all (*, G) and (S, G) states that use that interface as a reverse path forwarding (RPF) interface. This mechanism enables PIM neighbors to immediately reestablish those states on the newly active RP.

- Generation IDs

- PIM Graceful Restart Operations

- PIM Graceful Restart and Multicast Traffic Flow

Generation IDs

A generation ID (GenID) is a randomly generated 32-bit value that is regenerated each time Protocol Independent Multicast (PIM) forwarding is started or restarted on an interface. In order to process the GenID value in PIM hello messages, PIM neighbors must be running Cisco software with an implementation of PIM that is compliant with RFC 4601.

Note

PIM neighbors that are not compliant with RFC 4601 and are unable to process GenID differences in PIM hello messages will ignore the GenIDs.

PIM Graceful Restart Operations

This figure illustrates the operations that occur after a route processor (RP) switchover on devices that support the PIM graceful restart feature.

PIM Graceful Restart Operations During an RP Switchover

The PIM graceful restart operations are as follows:

- In steady state, PIM neighbors exchange periodic PIM hello messages.

- An active RP receives PIM joins periodically to refresh multicast route (mroute) states.

- When an active RP fails, the standby RP takes over to become the new active RP.

- The new active RP then modifies the generation ID (GenID) value and sends the new GenID in PIM hello messages to adjacent PIM neighbors.

- Adjacent PIM neighbors that receive PIM hello messages on an interface with a new GenID send PIM graceful restart for all (*, G) and (S, G) mroutes that use that interface as an RPF interface.

- Those mroute states are then immediately reestablished on the newly active RP.

PIM Graceful Restart and Multicast Traffic Flow

Multicast traffic flow on PIM neighbors is not affected if the multicast traffic detects support for PIM graceful restart PIM or PIM hello messages from a node with the failing RP within the default PIM hello hold-time interval. Multicast traffic flow on a failing RP is not affected if it is non-stop forwarding (NSF) capable.

Caution

The default PIM hello hold-time interval is 3.5 times the PIM hello period. Multicast high availability (HA) operations might not function as per design if you configure the PIM hello interval with a value lower than the default value of 30 seconds.

High Availability

For information about high availability, see the Cisco Nexus 9000 Series NX-OS High Availability and Redundancy Guide.

Licensing Requirements for PIM and PIM6

Product

License Requirement

Cisco NX-OS

PIM and PIM6 require an Enterprise Services license. For a complete explanation of the Cisco NX-OS licensing scheme and how to obtain and apply licenses, see the Cisco NX-OS Licensing Guide.

Prerequisites for PIM and PIM6

PIM and PIM6 have the following prerequisites:

- You are logged onto the device.

- For global commands, you are in the correct virtual routing and forwarding (VRF) mode. The default configuration mode shown in the examples in this chapter applies to the default VRF.

- For PIM Bidir, you must configure the ACL TCAM region size using the hardware access-list tcam region mcast-bidir command. See Configuring ACL TCAM Region Sizes for more information.

Note

This limitation does not apply to Cisco Nexus 9300-EX Series switches.

Note

By default the mcast-bidir region size is zero. You need to allocate enough entries to this region in order to support PIM Bidir.

- For Cisco Nexus 9300 Series switches, make sure that the mask length for Bidir ranges is equal to or greater than 24 bits.

Guidelines and Limitations for PIM and PIM6

PIM and PIM6 have the following guidelines and limitations:

- For most Cisco Nexus devices, RPF failure traffic is dropped and sent to the CPU at a very low rate to trigger PIM asserts. For the Cisco Nexus 9000 Series switches, RPF failure traffic is always copied to the CPU in order to learn multicast sources.

- For first-hop source detection in most Cisco Nexus devices, traffic coming from the first hop is detected based on the source subnet check, and multicast packets are copied to the CPU only if the source belongs to the local subnet. The Cisco Nexus 9000 Series switches cannot detect the local source, so multicast packets are sent to the supervisor to learn the local multicast source.

- Cisco NX-OS PIM and PIM6 do not interoperate with any version of PIM dense mode or PIM sparse mode version 1.

- Do not configure both Auto-RP and BSR protocols in the same network.

- Configure candidate RP intervals to a minimum of 15 seconds.

- You must configure PIM on the loopback interface that is used for the PIM Anycast RP and the PIM Bidir RP.

- For all Cisco NX-OS 7.x releases, the loopback interface that is used to configure RP in multicast must have the ip[v6] pim sparse-mode configuration.

- If a device is configured with a BSR policy that should prevent it from being elected as the BSR, the device ignores the policy. This behavior results in the following undesirable conditions:

- If a device receives a BSM that is permitted by the policy, the device, which incorrectly elected itself as the BSR, drops that BSM so that routers downstream fail to receive it. Downstream devices correctly filter the BSM from the incorrect BSR so that these devices do not receive RP information.

- A BSM received by a BSR from a different device sends a new BSM but ensures that downstream devices do not receive the correct BSM.

- Default values for the PIM hello interval are recommended and should not be modified.

- Cisco Nexus 9000 Series switches support PIM ASM on vPCs.

Note

Cisco Nexus 9508 switches with the N9K-X9636C-R and N9K-X9636Q-R line cards support PIM ASM beginning with Cisco NX-OS Release 7.0(3)F1(1) but do not support PIM ASM on vPCs.

- Beginning with Cisco NX-OS Release 7.0(3)I4(1), Cisco Nexus 9000 Series switches support PIM SSM on vPCs.

Note

Cisco Nexus 9508 switches with the N9K-X9636C-R and N9K-X9636Q-R line cards support PIM SSM beginning with Cisco NX-OS Release 7.0(3)F2(1) but do not support PIM SSM on vPCs.

- Beginning with Cisco NX-OS Release 7.0(3)I5(1), Cisco Nexus 9000 Series switches support PIM6 ASM and SSM.

Note

Cisco Nexus 9508 switches running a Cisco NX-OS 7.0(3)Fx(x) release do not support PIM6 ASM and SSM.

- PIM6 Bidir is not supported.

- PIM6 is not supported on SVIs.

- PIM6 is not supported on any FEX ports (Layer 2 and Layer 3).

- PIM6 does not support BSRs.

- Cisco Nexus 9000 Series switches do not support PIM Bidir on vPCs or PIM6 ASM, SSM, and Bidir on vPCs.

- The following devices support PIM and PIM6 sparse mode on Layer 3 port-channel subinterfaces:

- Cisco Nexus 9300 Series switches, beginning with Cisco NX-OS Release 7.0(3)I5(2) for PIM and beginning with Cisco NX-OS Release 7.0(3)I6(1) for PIM6

- Cisco Nexus 9300-EX Series switches, Cisco Nexus 3232C and 3264Q switches, and Cisco Nexus 9500 Series switches with N9K-X9732C-EX, N9K-X9736C-EX, and N9K-X97160YC-EX line cards, beginning with Cisco NX-OS Release 7.0(3)I6(1)

Default Settings

This table lists the default settings for PIM and PIM6 parameters.

Default PIM and PIM6 Parameters

Parameters

Default

Use shared trees only

Disabled

Flush routes on restart

Disabled

Log neighbor changes

Disabled

Auto-RP message action

Disabled

BSR message action

Disabled

SSM multicast group range or policy

232.0.0.0/8 for IPv4 and FF3x::/96 for IPv6

PIM sparse mode

Disabled

Designated router priority

1

Hello authentication mode

Disabled

Domain border

Disabled

RP address policy

No message filtering

PIM register message policy

No message filtering

BSR candidate RP policy

No message filtering

BSR policy

No message filtering

Auto-RP mapping agent policy

No message filtering

Auto-RP RP candidate policy

No message filtering

Join-prune policy

No message filtering

Neighbor adjacency policy

Become adjacent with all PIM neighbors

BFD

Disabled

Configuring PIM and PIM6

You can configure both PIM and PIM6 on the same router. You can configure either PIM or PIM6 for each interface, depending on whether that interface is running IPv4 or IPv6.

Note

Cisco NX-OS supports only PIM sparse mode version 2. In this publication, “PIM” refers to PIM sparse mode version 2.

You can configure separate ranges of addresses in the PIM or PIM6 domain using the multicast distribution modes described in the table below.

Multicast Distribution Mode

Requires RP Configuration

Description

ASM

Yes

Any source multicast

Bidir

Yes

Bidirectional shared trees

SSM

No

Source-Specific Multicast

RPF routes for multicast

No

RPF routes for multicast

- PIM and PIM6 Configuration Tasks

- Enabling the PIM and PIM6 Feature

- Configuring PIM or PIM6 Sparse Mode Parameters

- Configuring ASM and Bidir

- Configuring SSM (PIM)

- Configuring SSM (PIM6)

- Configuring PIM SSM Over a vPC

- Configuring RPF Routes for Multicast

- Configuring Route Maps to Control RP Information Distribution

- Configuring Message Filtering

- Restarting the PIM and PIM6 Processes

- Configuring BFD for PIM in VRF Mode

- Enabling the Multicast Heavy Template

PIM and PIM6 Configuration Tasks

The following steps configure PIM and PIM6.

1. Select the range of multicast groups that you want to configure in each multicast distribution mode.

2. Enable PIM and PIM6.

3. Follow the configuration steps for the multicast distribution modes that you selected in Step 1.

- For ASM or Bidir mode, see Configuring ASM.

- For SSM mode, see Configuring SSM.

- For RPF routes for multicast, see Configuring RPF Routes for Multicast.

4. Configure message filtering.

Note

The CLI commands used to configure PIM are as follows:

- Configuration commands begin with ip pim for PIM and with ipv6 pim for PIM6.

- Show commands begin with show ip pim for PIM and with show ipv6 pim for PIM6.

Enabling the PIM and PIM6 Feature

Before you can access the PIM or PIM6 commands, you must enable the PIM or PIM6 feature.

Note

Beginning with Cisco NX-OS Release 7.0(3)I5(1), you no longer need to enable at least one interface with IP PIM sparse mode in order to enable PIM or PIM6.

Before You Begin

Ensure that you have installed the Enterprise Services license.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

feature pim

Example:

switch(config)# feature pim

Enables PIM. By default, PIM is disabled.

Step 3

feature pim6

Example:

switch(config)# feature pim6

Enables PIM6. By default, PIM6 is disabled.

Step 4

show running-configuration pim

Example:

switch(config)# show running-configuration pim

(Optional)
Shows the running-configuration information for PIM.

Step 5

show running-configuration pim6

Example:

switch(config)# show running-configuration pim6

(Optional)
Shows the running-configuration information for PIM6.

Step 6

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring PIM or PIM6 Sparse Mode Parameters

You configure PIM or PIM6 sparse mode on every device interface that you want to participate in a sparse mode domain. You can configure the sparse mode parameters described in the table below.

PIM and PIM6 Sparse Mode Parameters

Parameter

Description

Global to the device

Auto-RP message action

Enables listening for and forwarding of Auto-RP messages. The default is disabled, which means that the router does not listen for or forward Auto-RP messages unless it is configured as a candidate RP or mapping agent.

Note:
PIM6 does not support the Auto-RP method.

BSR message action

Enables listening for and forwarding of BSR messages. The default is disabled, which means that the router does not listen for or forward BSR messages unless it is configured as a candidate RP or BSR candidate.

Note:
PIM6 does not support BSR.

Bidir RP limit

Configures the number of Bidir RPs that you can configure for IPv4. The maximum number of Bidir RPs supported per VRF for PIM cannot exceed 8. Values range from 0 to 8. The default is 6.

Note:
PIM6 does not support Bidir.

Register rate limit

Configures the IPv4 or IPv6 register rate limit in packets per second. The range is from 1 to 65,535. The default is no limit.

Initial holddown period

Configures the IPv4 or IPv6 initial holddown period in seconds. This holddown period is the time it takes for the MRIB to come up initially. If you want faster convergence, enter a lower value. The range is from 90 to 210. Specify 0 to disable the holddown period. The default is 210.

Per device interface

PIM sparse mode

Enables PIM or PIM6 on an interface.

Designated router priority

Sets the designated router (DR) priority that is advertised in PIM hello messages on this interface. On a multi-access network with multiple PIM-enabled routers, the router with the highest DR priority is elected as the DR router. If the priorities match, the software elects the DR with the highest IP address. The DR originates PIM register messages for the directly connected multicast sources and sends PIM join messages toward the rendezvous point (RP) for directly connected receivers. Values range from 1 to 4294967295. The default is 1.

Designated router delay

Delays participation in the designated router (DR) election by setting the DR priority that is advertised in PIM hello messages to 0 for a specified period. During this delay, no DR changes occur, and the current switch is given time to learn all of the multicast states on that interface. After the delay period expires, the correct DR priority is sent in the hello packets, which retriggers the DR election. Values range from 3 to 0xffff seconds.

Hello authentication mode

Enables an MD5 hash authentication key, or password, in PIM hello messages on the interface so that directly connected neighbors can authenticate each other. The PIM hello messages are IPsec encoded using the Authentication Header (AH) option. You can enter an unencrypted (cleartext) key or one of these values followed by a space and the MD5 authentication key:

- 0—Specifies an unencrypted (cleartext) key

- 3—Specifies a 3-DES encrypted key

- 7—Specifies a Cisco Type 7 encrypted key

The authentication key can be up to 16 characters. The default is disabled.

Note:
PIM6 does not support MD5 authentication.

Hello interval

Configures the interval at which hello messages are sent in milliseconds. The range is from 1000 to 18724286. The default is 30000.

Note:
See the Cisco Nexus 9000 Series NX-OS Verified Scalability Guide for the verified range of this parameter and associated PIM neighbor scale.

Domain border

Enables the interface to be on the border of a PIM domain so that no bootstrap, candidate-RP, or Auto-RP messages are sent or received on the interface. The default is disabled.

Note:
PIM6 does not support the Auto-RP method.

Neighbor policy

Configures which PIM neighbors to become adjacent to based on a route-map policy[1] where you can specify IP addresses to become adjacent to with the match ip[v6] address command. If the policy name does not exist or no IP addresses are configured in a policy, adjacency is established with all neighbors. The default is to become adjacent with all PIM neighbors.

Note:
We recommend that you should configure this feature only if you are an experienced network administrator.

[1] To configure route-map policies, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

- Configuring PIM Sparse Mode Parameters

- Configuring PIM6 Sparse Mode Parameters

Configuring PIM Sparse Mode Parameters

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip pim auto-rp {listen [forward] | forward [listen]}

Example:

switch(config)# ip pim auto-rp listen

(Optional)
Enables listening for or forwarding of Auto-RP messages. The default is disabled, which means that the software does not listen for or forward Auto-RP messages.

Step 3

ip pim bsr {listen [forward] | forward [listen]}

Example:

switch(config)# ip pim bsr forward

(Optional)
Enables listening for or forwarding of BSR messages. The default is disabled, which means that the software does not listen for or forward BSR messages.

Step 4

ip pim bidir-rp-limit limit

Example:

switch(config)# ip pim bidir-rp-limit 4

(Optional)
Specifies the number of Bidir RPs that you can configure for IPv4. The maximum number of Bidir RPs supported per VRF for PIM cannot exceed 8. Values range from 0 to 8. The default value is 6.

Step 5

ip pim register-rate-limit rate

Example:

switch(config)# ip pim register-rate-limit 1000

(Optional)
Configures the rate limit in packets per second. The range is from 1 to 65,535. The default is no limit.

Step 6

ip pim spt-threshold infinity group-list route-map-name

Example:

switch(config)# ip pim spt-threshold infinity group-list my_route-map-name

(Optional)
Creates the IPv4 PIM (*, G) state only, for the group prefixes defined in the specified route map. Cisco NX-OS Release 3.1 supports up to 1000 route-map entries, and Cisco NX-OS releases prior to 3.1 support up to 500 route-map entries.

This command is not supported for virtual port channels (vPC/vPC+).

Note:
The ip pim use-shared-tree-only group-list command performs the same function as the ip pim spt-threshold infinity group-list command. You can choose to use either command to implement this step.

Step 7

[ip | ipv4] routing multicast holddown holddown-period

Example:

switch(config)# ip routing multicast holddown 100

(Optional)
Configures the initial holddown period in seconds. The range is from 90 to 210. Specify 0 to disable the holddown period. The default is 210.

Step 8

show running-configuration pim

Example:

switch(config)# show running-configuration pim

(Optional)
Displays PIM running-configuration information, including the Bidir RP limit and register rate limit.

Step 9

interface interface

Example:

switch(config)# interface ethernet 2/1
switch(config-if)#

Enters interface configuration mode.

Step 10

ip pim sparse-mode

Example:

switch(config-if)# ip pim sparse-mode

Enables PIM sparse mode on this interface. The default is disabled.

Step 11

ip pim dr-priority priority

Example:

switch(config-if)# ip pim dr-priority 192

(Optional)
Sets the designated router (DR) priority that is advertised in PIM hello messages. Values range from 1 to 4294967295. The default is 1.

Step 12

ip pim dr-delay delay

Example:

switch(config-if)# ip pim dr-delay 3

(Optional)
Delays participation in the designated router (DR) election by setting the DR priority that is advertised in PIM hello messages to 0 for a specified period. During this delay, no DR changes occur, and the current switch is given time to learn all of the multicast states on that interface. After the delay period expires, the correct DR priority is sent in the hello packets, which retriggers the DR election. Values range from 3 to 0xffff seconds.

Note:
This command delays participation in the DR election only upon bootup or following an IP address or interface state change. It is intended for use with multicast-access non-vPC Layer 3 interfaces only.

Step 13

ip pim hello-authentication ah-md5 auth-key

Example:

switch(config-if)# ip pim hello-authentication ah-md5 my_key

(Optional)
Enables an MD5 hash authentication key in PIM hello messages. You can enter an unencrypted (cleartext) key or one of these values followed by a space and the MD5 authentication key:

- 0—Specifies an unencrypted (cleartext) key

- 3—Specifies a 3-DES encrypted key

- 7—Specifies a Cisco Type 7 encrypted key

The key can be up to 16 characters. The default is disabled.

Step 14

ip pim hello-interval interval

Example:

switch(config-if)# ip pim hello-interval 25000

(Optional)
Configures the interval at which hello messages are sent in milliseconds. The range is from 1000 to 18724286. The default is 30000.

Note:
The minimum value is 1 millisecond.

Step 15

ip pim border

Example:

switch(config-if)# ip pim border

(Optional)
Enables the interface to be on the border of a PIM domain so that no bootstrap, candidate-RP, or Auto-RP messages are sent or received on the interface. The default is disabled.

Step 16

ip pim neighbor-policy policy-name

Example:

switch(config-if)# ip pim neighbor-policy my_neighbor_policy

(Optional)
Enables the interface to be on the border of a PIM domain so that no bootstrap, candidate-RP, or Auto-RP messages are sent or received on the interface. The default is disabled.

Also configures which PIM neighbors to become adjacent to based on a route-map policy with the match ip address command. The policy name can be up to 63 characters. The default is to become adjacent with all PIM neighbors.

Note:
We recommend that you configure this feature only if you are an experienced network administrator.

Step 17

show ip pim interface [interface | brief] [vrf vrf-name | all]

Example:

switch(config-if)# show ip pim interface

(Optional)
Displays PIM interface information.

Step 18

copy running-config startup-config

Example:

switch(config-if)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring PIM6 Sparse Mode Parameters

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ipv6 pim register-rate-limit rate

Example:

switch(config)# ipv6 pim register-rate-limit 1000

(Optional)
Configures the rate limit in packets per second. The range is from 1 to 65,535. The default is no limit.

Step 3

ipv6 routing multicast holddown holddown-period

Example:

switch(config)# ipv6 routing multicast holddown 100

(Optional)
Configures the initial holddown period in seconds. The range is from 90 to 210. Specify 0 to disable the holddown period. The default is 210.

Step 4

show running-configuration pim6

Example:

switch(config)# show running-configuration pim6

(Optional)
Displays PIM6 running-configuration information, including the register rate limit.

Step 5

interface interface

Example:

switch(config)# interface ethernet 2/1
switch(config-if)#

Enters interface configuration mode on the specified interface.

Step 6

ipv6 pim sparse-mode

Example:

switch(config-if)# ipv6 pim sparse-mode

Enables PIM sparse mode on this interface. The default is disabled.

Step 7

ipv6 pim dr-priority priority

Example:

switch(config-if)# ipv6 pim dr-priority 192

(Optional)
Sets the designated router (DR) priority that is advertised in PIM6 hello messages. Values range from 1 to 4294967295. The default is 1.

Step 8

ipv6 pim hello-interval interval

Example:

switch(config-if)# ipv6 pim hello-interval 25000

(Optional)
Configures the interval at which hello messages are sent in milliseconds. The range is from 1000 to 18724286. The default is 30000.

Step 9

ipv6 pim border

Example:

switch(config-if)# ipv6 pim border

(Optional)
Enables the interface to be on the border of a PIM6 domain so that no bootstrap, candidate-RP, or Auto-RP messages are sent or received on the interface. The default is disabled.

Step 10

ipv6 pim neighbor-policy policy-name

Example:

switch(config-if)# ipv6 pim neighbor-policy policy1

(Optional)
Configures which PIM6 neighbors to become adjacent to based on a route-map policy with the match ipv6 address command. The policy name can be up to 63 characters. The default is to become adjacent with all PIM6 neighbors.

Note:
We recommend that you configure this feature only if you are an experienced network administrator.

Step 11

show ipv6 pim interface [interface | brief] [vrf vrf-name | all]

Example:

switch(config-if)# show ipv6 pim interface

Displays PIM6 interface information.

Step 12

copy running-config startup-config

Example:

switch(config-if)# copy running-config startup-config

(Optional) Saves configuration changes.

Configuring ASM and Bidir

Any Source Multicast (ASM) and bidirectional shared trees (Bidir) are multicast distribution modes that require the use of RPs to act as a shared root between sources and receivers of multicast data.

To configure ASM or Bidir mode, you configure sparse mode and the RP selection method, where you indicate the distribution mode and assign the range of multicast groups.

- Configuring Static RPs

- Configuring BSRs

- Configuring Auto-RP

- Configuring a PIM Anycast-RP Set

- Configuring Shared Trees Only for ASM

Configuring Static RPs

You can configure an RP statically by configuring the RP address on every router that will participate in the PIM domain.

Note

We recommend that the RP address uses the loopback interface.

You can specify a route-map policy name that lists the group prefixes to use with the match ip multicast command or specify a prefix-list method of configuration.

Note

Cisco NX-OS always uses the longest-match prefix to find the RP, so the behavior is the same irrespective of the position of the group prefix in the route map or in the prefix list.

The following example configuration produces the same output using Cisco NX-OS (231.1.1.0/24 is always denied irrespective of the sequence number):

ip prefix-list plist seq 10 deny 231.1.1.0/24
ip prefix-list plist seq 20 permit 231.1.0.0/16
ip prefix-list plist seq 10 permit 231.1.0.0/16
ip prefix-list plist seq 20 deny 231.1.1.0/24

- Configuring Static RPs (PIM)

- Configuring Static RPs (PIM6)

Configuring Static RPs (PIM)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip pim rp-address rp-address [group-list ip-prefix | prefix-list name | route-map policy-name] [bidir]

Example:

switch(config)# ip pim rp-address 192.0.2.33 group-list 224.0.0.0/9

Configures a PIM static RP address for a multicast group range.

You can specify a prefix-list policy name for the static RP address or a route-map policy name that lists the group prefixes to use with the match ip multicast command.

The mode is ASM unless you specify the bidir keyword.

The example configures PIM ASM mode for the specified group range.

Step 3

show ip pim group-range [ip-prefix | vrf vrf-name]

Example:

switch(config)# show ip pim group-range

(Optional)
Displays PIM RP information, including BSR listen and forward states.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring Static RPs (PIM6)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM6.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ipv6 pim rp-address rp-address [group-list ipv6-prefix | route-map policy-nsmr]

Example:

switch(config)# ipv6 pim rp-address 2001:0db8:0:abcd::1 group-list ff1e:abcd:def1::0/24

Configures a PIM6 static RP address for a multicast group range. You can specify a route-map policy name that lists the group prefixes to use with the match ip multicast command. The mode is ASM. The default group range is ff00::0/8.

The example configures PIM6 ASM mode for the specified group range.

Step 3

show ipv6 pim group-range [ipv6-prefix | vrf vrf-name]

Example:

switch(config)# show ipv6 pim group-range

(Optional)
Displays PIM6 modes and group ranges.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring BSRs

You configure BSRs by selecting candidate BSRs and RPs.

Caution

Do not configure both Auto-RP and BSR protocols in the same network.

You can configure a candidate BSR with the arguments described in the table below.

Note

PIM6 does not support BSRs.

Candidate BSR Arguments

Argument

Description

interface

Interface type and number used to derive the BSR source IP address used in bootstrap messages.

hash-length

Number of high order 1s used to form a mask that is ANDed with group address ranges of candidate RPs to form a hash value. The mask determines the number of consecutive addresses to assign across RPs with the same group range. For PIM, this value ranges from 0 to 32 and has a default of 30. For PIM6, this value ranges from 0 to 128 and has a default of 126.

priority

Priority assigned to this BSR. The software elects the BSR with the highest priority, or if the BSR priorities match, the software elects the BSR with the highest IP address. This value ranges from 0, the lowest priority, to 255 and has a default of 64.

- Configuring BSRs Candidate RP Arguments and Keywords

- Configuring BSRs (PIM)

Configuring BSRs Candidate RP Arguments and Keywords

You can configure a candidate RP with the arguments and keywords described in this table.

BSR Candidate RP Arguments and Keywords

Argument or Keyword

Description

interface

Interface type and number used to derive the BSR source IP address used in bootstrap messages.

group-list ip-prefix

Multicast groups handled by this RP specified in a prefix format.

interval

Number of seconds between sending candidate-RP messages. This value ranges from 1 to 65,535 and has a default of 60 seconds.

Note:
We recommend that you configure the candidate RP interval to a minimum of 15 seconds.

priority

Priority assigned to this RP. The software elects the RP with the highest priority for a range of groups or, if the priorities match, the highest IP address. (The highest priority is the lowest numerical value.) This value ranges from 0, the highest priority, to 255 and has a default of 192.

Note:
This priority differs from the BSR BSR-candidate priority, which prefers the highest value between 0 and 255.

bidir

Unless you specify bidir, this RP will be in ASM mode. If you specify bidir, the RP will be in Bidir mode.

route-map policy-name

Route-map policy name that defines the group prefixes where this feature is applied.

Tip

You should choose the candidate BSRs and candidate RPs that have good connectivity to all parts of the PIM domain.

You can configure the same router to be both a BSR and a candidate RP. In a domain with many routers, you can select multiple candidate BSRs and RPs to automatically fail over to alternates if a BSR or an RP fails.

To configure candidate BSRs and RPs, follow these steps:

1. Configure whether each router in the PIM domain should listen for and forward BSR messages. A router configured as either a candidate RP or a candidate BSR will automatically listen for and forward all bootstrap router protocol messages, unless an interface is configured with the domain border feature.

2. Select the routers to act as candidate BSRs and RPs.

3. Configure each candidate BSR and candidate RP as described in this section.

4. Configure BSR message filtering.

Configuring BSRs (PIM)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip pim bsr {forward [listen] | listen [forward]}

Example:

switch(config)# ip pim bsr listen forward

Configures listen and forward.

Ensure that you have entered this command in each VRF on the remote PE.

Step 3

ip pim [bsr] bsr-candidate interface [hash-len hash-length] [priority priority]

Example:

switch(config)# ip pim bsr-candidate ethernet 2/1 hash-len 24

Configures a candidate bootstrap router (BSR). The source IP address used in a bootstrap message is the IP address of the interface. The hash length ranges from 0 to 32 and has a default of 30. The priority ranges from 0 to 255 and has a default of 64.

Step 4

ip pim [bsr] rp-candidate interface group-list ip-prefix route-map policy-name priority priority interval interval [bidir]

Example:

switch(config)# ip pim rp-candidate ethernet 2/1 group-list 239.0.0.0/24

(Optional)
Configures a candidate RP for BSR. The priority ranges from 0, the highest priority, to 65,535 and has a default of 192. The interval ranges from 1 to 65,535 seconds and has a default of 60.

Use the bidir option to create a Bidir candidate RP.

Note:
We recommend that you configure the candidate RP interval to a minimum of 15 seconds.

The example configures an ASM candidate RP.

Step 5

show ip pim group-range [ip-prefix | vrf vrf-name]

Example:

switch(config)# show ip pim group-range

(Optional)
Displays PIM modes and group ranges.

Step 6

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring Auto-RP

You can configure Auto-RP by selecting candidate mapping agents and RPs. You can configure the same router to be both a mapping agent and a candidate RP.

Note

Auto-RP is not supported by PIM6.

Caution

Do not configure both Auto-RP and BSR protocols in the same network.

You can configure an Auto-RP mapping agent with the arguments described in this table.

Auto-RP Mapping Agent Arguments

Argument

Description

interface

Interface type and number used to derive the IP address of the Auto-RP mapping agent used in bootstrap messages.

scope ttl

Time-to-Live (TTL) value that represents the maximum number of hops that RP-Discovery messages are forwarded. This value can range from 1 to 255 and has a default of 32.

If you configure multiple Auto-RP mapping agents, only one is elected as the mapping agent for the domain. The elected mapping agent ensures that all candidate RP messages are sent out. All mapping agents receive the candidate RP messages and advertise the same RP cache in their RP-discovery messages.

You can configure a candidate RP with the arguments and keywords described in this table.

Auto-RP Candidate RP Arguments and Keywords

Argument or Keyword

Description

interface

Interface type and number used to derive the IP address of the candidate RP used in bootstrap messages.

group-list ip-prefix

Multicast groups handled by this RP. It is specified in a prefix format.

scope ttl

Time-to-Live (TTL) value that represents the maximum number of hops that RP-Discovery messages are forwarded. This value can range from 1 to 255 and has a default of 32.

interval

Number of seconds between sending RP-Announce messages. This value can range from 1 to 65,535 and has a default of 60.

Note:
We recommend that you configure the candidate RP interval to a minimum of 15 seconds.

bidir

If not specified, this RP will be in ASM mode. If specified, this RP will be in Bidir mode.

route-map policy-name

Route-map policy name that defines the group prefixes where this feature is applied.

Tip

You should choose mapping agents and candidate RPs that have good connectivity to all parts of the PIM domain.

To configure Auto-RP mapping agents and candidate RPs, follow these steps:

1. For each router in the PIM domain, configure whether that router should listen for and forward Auto-RP messages. A router configured as either a candidate RP or an Auto-RP mapping agent will automatically listen for and forward all Auto-RP protocol messages, unless an interface is configured with the domain border feature.

2. Select the routers to act as mapping agents and candidate RPs.

3. Configure each mapping agent and candidate RP as described in this section.

4. Configure Auto-RP message filtering.

Ensure that you have installed the Enterprise Services license and enabled PIM.

- Configuring Auto RP (PIM)

Configuring Auto RP (PIM)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip pim {send-rp-discovery | auto-rp mapping-agent} interface [scope ttl]

Example:

switch(config)# ip pim auto-rp mapping-agent ethernet 2/1

Configures an Auto-RP mapping agent. The source IP address used in Auto-RP Discovery messages is the IP address of the interface. The default scope is 32.

Step 3

ip pim {send-rp-announce | auto-rp rp-candidate} interface {group-list ip-prefix | prefix-list name | route-map policy-name} [scope ttl] interval interval] [bidir]

Example:

switch(config)# ip pim auto-rp rp-candidate ethernet 2/1 group-list 239.0.0.0/24

Configures an Auto-RP candidate RP. The default scope is 32. The default interval is 60 seconds. By default, the command creates an ASM candidate RP. Use the bidir option to create a Bidir candidate RP.

Note:
We recommend that you configure the candidate RP interval to a minimum of 15 seconds.

The example configures an ASM candidate RP.

Step 4

show ip pim group-range [ip-prefix | vrf vrf-name]

Example:

switch(config)# show ip pim group-range

(Optional)
Displays PIM modes and group ranges.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring a PIM Anycast-RP Set

To configure a PIM Anycast-RP set, follow these steps:

1. Select the routers in the PIM Anycast-RP set.

2. Select an IP address for the PIM Anycast-RP set.

3. Configure each peer RP in the PIM Anycast-RP set as described in this section.

- Configuring a PIM Anycast RP Set (PIM)

- Configuring a PIM Anycast RP Set (PIM6)

Configuring a PIM Anycast RP Set (PIM)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

interface loopback number

Example:

switch(config)# interface loopback 0
switch(config-if)#

Configures an interface loopback.

This example configures interface loopback 0.

Step 3

ip address ip-prefix

Example:

switch(config-if)# ip address 192.0.2.3/32

Configures an IP address for this interface.

This example configures an IP address for the Anycast-RP.

Step 4

ip pim sparse-mode

Example:

switch(config-if)# ip pim sparse-mode

Enables PIM sparse mode.

Step 5

exit

Example:

switch(config-if)# exit
switch(config)#

Exits interface configuration mode.

Step 6

ip pim anycast-rp anycast-rp-address anycast-rp-peer-address

Example:

switch(config)# ip pim anycast-rp 192.0.2.3 192.0.2.31

Configures a PIM Anycast-RP peer address for the specified Anycast-RP address. Each command with the same Anycast-RP address forms an Anycast-RP set. The IP addresses of RPs are used for communication with RPs in the set.

Step 7

Repeat Step 6 using the same Anycast-RP address for each RP in the RP set (including the local router).

—

Step 8

show ip pim group-range [ip-prefix | vrf vrf-name]

Example:

switch(config)# show ip pim group-range

(Optional)
Displays PIM modes and group ranges.

Step 9

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring a PIM Anycast RP Set (PIM6)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM6.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

interface loopback number

Example:

switch(config)# interface loopback 0
switch(config-if)#

Configures an interface loopback.

This example configures interface loopback 0.

Step 3

ipv6 address ipv6-prefix

Example:

switch(config-if)# ipv6 address 2001:0db8:0:abcd::3/32

Configures an IP address for this interface.

This example configures an IP address for the Anycast-RP.

Step 4

ipv6 pim sparse-mode

Example:

switch(config-if)# ipv6 pim sparse-mode

Enable PIM6 sparse mode.

Step 5

exit

Example:

switch(config-if)# exit
switch(config)#

Exits interface configuration mode.

Step 6

ipv6 pim anycast-rp anycast-rp-address anycast-rp-peer-address

Example:

switch(config)# ipv6 pim anycast-rp 2001:0db8:0:abcd::3 2001:0db8:0:abcd::31

Configures a PIM6 Anycast-RP peer address for the specified Anycast-RP address. Each command with the same Anycast-RP address forms an Anycast-RP set. The IP addresses of RPs are used for communication with RPs in the set.

Step 7

Repeat Step 6 using the same Anycast-RP address for each RP in the RP set (including the local router).

—

Step 8

show ipv6 pim group-range [ipv6-prefix ] [vrf vrf-name | all ]

Example:

switch(config)# show ipv6 pim group-range

(Optional)
Displays PIM6 modes and group ranges.

Step 9

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring Shared Trees Only for ASM

You can configure shared trees only on the last-hop router for Any Source Multicast (ASM) groups, which means that the router never switches over from the shared tree to the SPT when a receiver joins an active group. You can specify a group range where the use of shared trees is to be enforced with the match ip[v6] multicast command. This option does not affect the normal operation of the router when a source tree join-prune message is received.

Note

The Cisco NX-OS software does not support the shared-tree feature on vPCs. For more information about vPCs, see the Cisco Nexus 9000 Series NX-OS Interfaces Configuration Guide.

The default is disabled, which means that the software can switch over to source trees.

Note

In ASM mode, only the last-hop router switches from the shared tree to the SPT.

- Configuring Shared Trees Only for ASM (PIM)

- Configuring Shared Trees Only for ASM (PIM6)

Configuring Shared Trees Only for ASM (PIM)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip pim use-shared-tree-only group-list policy-name

Example:

switch(config)# ip pim use-shared-tree-only group-list my_group_policy

Builds only shared trees, which means that the software never switches over from the shared tree to the SPT. You specify a route-map policy name that lists the groups to use with the match ip multicast command. By default, the software triggers a PIM (S, G) join toward the source when it receives multicast packets for a source for which it has the (*, G) state.

Step 3

show ip pim group-range [ip-prefix | vrf vrf-name]

Example:

switch(config)# show ip pim group-range

(Optional)
Displays PIM modes and group ranges.

Step 4

copy running-config startup-config

Example:

switch(config-if)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring Shared Trees Only for ASM (PIM6)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM6.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ipv6 pim use-shared-tree-only group-list policy-name

Example:

switch(config)# ipv6 pim use-shared-tree-only group-list my_group_policy

Builds only shared trees, which means that the software never switches over from the shared tree to the SPT. You specify a route-map policy name that lists the groups to use with the match ipv6 multicast command. By default, the software triggers a PIM (S, G) join toward the source when it receives multicast packets for a source for which it has the (*, G) state.

Step 3

show ipv6 pim group-range [ipv6-prefix | vrf vrf-name]

Example:

switch(config)# show ipv6 pim group-range

(Optional)
Displays PIM6 modes and group ranges.

Step 4

copy running-config startup-config

Example:

switch(config-if)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring SSM (PIM)

SSM is a multicast distribution mode where the software on the DR connected to a receiver that is requesting data for a multicast source builds a shortest path tree (SPT) to that source.

On an IPv4 network, a host can request multicast data for a specific source only if it is running IGMPv3 and the DR for that host is running IGMPv3. You will usually enable IGMPv3 when you configure an interface for PIM in the SSM mode. For hosts running IGMPv1 or IGMPv2, you can configure group-to-source mapping using SSM translation.

You can configure the group range that is used by SSM.

Note

If you want to use the default SSM group range, you do not need to configure the SSM group range.

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

[no] ip pim ssm {prefix-list name | range {ip-prefix | none} | route-map policy-name}

Example:

switch(config)# ip pim ssm range 239.128.1.0/24

Example:

switch(config)# no ip pim ssm range none

The following options are available:

- prefix-list—Specifies a prefix-list policy name for the SSM range.

- range—Configures a group range for SSM. The default range is 232.0.0.0/8. If the keyword none is specified, all group ranges are removed.

- route-map—Specifies a route-map policy name that lists the group prefixes to use with the match ip multicast command.

The no option removes the specified prefix from the SSM range or removes the prefix-list or route-map policy. If the keyword none is specified, the no command resets the SSM range to the default value of 232.0.0.0/8.

Note:
You can configure a maximum of four ranges for SSM multicast, using the prefix-list, range, or route-map commands.

Step 3

show ip pim group-range [ip-prefix | vrf vrf-name]

Example:

switch(config)# show ip pim group-range

(Optional)
Displays PIM modes and group ranges.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring SSM (PIM6)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM6.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

[no] ipv6 pim ssm {prefix-list name | range {ivp6-prefix | none} | route-map policy-name}

Example:

switch(config)# ipv6 pim ssm range FF30::0/32

Example:

switch(config)# no ipv6 pim ssm range none

The following options are available:

- prefix-list—Specifies a prefix-list policy name for the SSM range.

- range—Configures a group range for SSM. The default range is FF3x/96. If the keyword none is specified, all group ranges are removed.

- route-map—Specifies a route-map policy name that lists the group prefixes to use with the match ipv6 multicast command.

The no option removes the specified prefix from the SSM range or removes the prefix-list or route-map policy. If the keyword none is specified, the no command resets the SSM range to the default value of FF3x/96.

Note:
You can configure a maximum of four ranges for SSM multicast, using the prefix-list, range, or route-map commands.

Step 3

show ipv6 pim group-range [ipv6-prefix | vrf vrf-name]

(Optional)
Displays PIM6 modes and group ranges.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring PIM SSM Over a vPC

Configuring PIM SSM over a vPC enables support for IGMPv3 joins and PIM S,G joins over vPC peers in the SSM range. This configuration is supported for orphan sources or receivers in the Layer 2 or Layer 3 domain. When you configure PIM SSM over a vPC, no rendezvous point (RP) configuration is required.

(S,G) entries will have the RPF as the interface toward the source, and no *,G states will be maintained in the MRIB.

Before You Begin

Ensure that you have the PIM and vPC features enabled.

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

vrf context name

Example:

switch(config)# vrf context Enterprise
switch(config-vrf)#

Creates a new VRF and enters VRF configuration mode. The name can be any case-sensitive, alphanumeric string up to 32 characters.

Step 3

[no] ip pim ssm {prefix-list name | range {ip-prefix | none} | route-map policy-name}

Example:

switch(config-vrf)# ip pim ssm range 234.0.0.0/24

(Optional) The following options are available:

- prefix-list—Specifies a prefix-list policy name for the SSM range.

- range—Configures a group range for SSM. The default range is 232.0.0.0/8. If the keyword none is specified, all group ranges are removed.

- route-map—Specifies a route-map policy name that lists the group prefixes to use with the match ip multicast command.

By default, the SSM range is 232.0.0.0/8. PIM SSM over vPC works as long as S,G joins are received in this range. If you want to override the default with some other range, you must specify that range using this command. The command in the example overrides the default range to 234.0.0.0/24.

The no option removes the specified prefix from the SSM range or removes the prefix-list or route-map policy. If the keyword none is specified, the no command resets the SSM range to the default value of 232.0.0.0/8.

Step 4

show ip pim group-range [ip-prefix] [vrf vrf-name | all]

Example:

switch(config-vrf)# show ip pim group-range

(Optional)
Displays PIM modes and group ranges.

Step 5

copy running-config startup-config

Example:

switch(config-vrf)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring RPF Routes for Multicast

You can define reverse path forwarding (RPF) routes for multicast when you want multicast data to diverge from the unicast traffic path. You can define RPF routes for multicast on border routers to enable RPF to an external network.

Multicast routes are used not to directly forward traffic but to make RPF checks. RPF routes for multicast cannot be redistributed.

Note

IPv6 static multicast routes are not supported.

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip mroute {ip-addr mask | ip-prefix} {next-hop | nh-prefix | interface} [route-preference] [vrf vrf-name]

Example:

switch(config)# ip mroute 192.0.2.33/1 224.0.0.0/1

Configures an RPF route for multicast for use in RPF calculations. Route preference values range from 1 to 255. The default preference is 1.

Step 3

show ip static-route [multicast] [vrf vrf-name]

Example:

switch(config)# show ip static-route multicast

(Optional) Displays configured static routes.

Step 4

copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

- Configuring Multicast Multipath

Configuring Multicast Multipath

By default, the RPF interface for multicast is chosen automatically when multiple ECMP paths are available.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip multicast multipath {none | s-g-hash next-hop-based | resilient}

Example:

switch(config)# ip multicast multipath none

Configures multicast multipath using the following options:

- none—Disables multicast multipath by suppressing hashing across multiple ECMPs in the URIB RPF lookup. With this option, the highest RPF neighbor (next-hop) address is used for the RPF interface.

- s-g-hash next-hop-based—Initiates S, G, nexthop hashing (rather than the default of S/RP, G-based hashing) to select the RPF interface.

- resilient—If the ECMP path list changes and the old RPF information is still part of the ECMP, this option uses the old RPF information instead of performing a rehash and potentially changing the RPF information.

Note:
For Cisco Nexus 9508 switches with the X9636C-R or X9636Q-R line card or the C9508-FM-R fabric module, if you want to change from the resilient option to the none option, first enter the no ip multicast multipath resilient command and then enter the ip multicast multipath none command.

Step 3

clear ip mroute *

Example:

switch(config)# clear ip mroute *

Clears multipath routes and activates multicast multipath suppression.

Configuring Route Maps to Control RP Information Distribution

You can configure route maps to help protect against some RP configuration errors and malicious attacks.

By configuring route maps, you can control distribution of RP information that is distributed throughout the network. You specify the BSRs or mapping agents to be listened to on each client router and the list of candidate RPs to be advertised (listened to) on each BSR and mapping agent to ensure that what is advertised is what you expect.

Note

Only the match ipv6 multicast command has an effect in the route map.

Ensure that you have installed the Enterprise Services license and enabled PIM or PIM6.

- Configuring Route Maps to Control RP Information Distribution (PIM)

- Configuring Route Maps to Control RP Information Distribution (PIM6)

Configuring Route Maps to Control RP Information Distribution (PIM)

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

route-map map-name [permit | deny] [sequence-number]

Example:

switch(config)# route-map ASM_only permit 10
switch(config-route-map)#

Example:

switch(config)# route-map Bidir_only permit 10
switch(config-route-map)#

Enters route-map configuration mode.

Step 3

match ip multicast {rp ip-address [rp-type rp-type]} {group ip-prefix} {source source-ip-address}

Example:

switch(config-route-map)# match ip multicast group 224.0.0.0/4 rp 0.0.0.0/0 rp-type ASM

Example:

switch(config-route-map)# match ip multicast group 224.0.0.0/4 rp 0.0.0.0/0 rp-type Bidir

Matches the group, RP, and RP type specified. You can specify the RP type (ASM or Bidir). This configuration method requires the group and RP specified as shown in the example.

Step 4

show route-map

Example:

switch(config-route-map)# show route-map

(Optional)
Displays configured route maps.

Step 5

copy running-config startup-config

Example:

switch(config-route-map)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring Route Maps to Control RP Information Distribution (PIM6)

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

route-map map-name [permit | deny] [sequence-number]

Example:

switch(config)# route-map ASM_only permit 10
switch(config-route-map)#

Enters route-map configuration mode.

Step 3

match ipv6 multicast {rp ip-address [rp-type rp-type]} {group ipv6-prefix} {source source-ip-address}

Example:

switch(config-route-map)# match ipv6 multicast group ff1e:abcd:def1::0/24 rp 2001:0db8:0:abcd::1 rp-type ASM

Matches the group, RP, and RP type specified. You can specify the RP type (ASM). This configuration method requires the group and RP specified as shown in the example.

Step 4

show route-map

Example:

switch(config-route-map)# show route-map

(Optional)
Displays configured route maps.

Step 5

copy running-config startup-config

Example:

switch(config-route-map)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring Message Filtering

Note

Prefix matches in the rp-candidate-policy must be exact relative to what the c-rp is advertising. Subset matches are not possible.

You can configure filtering of the PIM and PIM6 messages described in the table below.

PIM and PIM6 Message Filtering

Message Type

Description

Global to the Device

Log Neighbor changes

Enables syslog messages that list the neighbor state changes to be generated. The default is disabled.

PIM register policy

Enables PIM register messages to be filtered based on a route-map policy[1] where you can specify group or group and source addresses with the match ip[v6] multicast command. This policy applies to routers that act as an RP. The default is disabled, which means that the software does not filter PIM register messages.

BSR candidate RP policy

Enables BSR candidate RP messages to be filtered by the router based on a route-map policy where you can specify the RP and group addresses and whether the type is Bidir or ASM with the match ip multicast command. This command can be used on routers that are eligible for BSR election. The default is no filtering of BSR messages.

Note:
PIM6 does not support BSRs.

BSR policy

Enables BSR messages to be filtered by the BSR client routers based on a route-map policy where you can specify BSR source addresses with the match ip multicast command. This command can be used on client routers that listen to BSR messages. The default is no filtering of BSR messages.

Note:
PIM6 does not support BSRs.

Auto-RP candidate RP policy

Enables Auto-RP announce messages to be filtered by the Auto-RP mapping agents based on a route-map policy where you can specify the RP and group addresses and whether the type is Bidir or ASM with the match ip multicast command. This command can be used on a mapping agent. The default is no filtering of Auto-RP messages.

Note:
PIM6 does not support the Auto-RP method.

Auto-RP mapping agent policy

Enables Auto-RP discover messages to be filtered by client routers based on a route-map policy where you can specify mapping agent source addresses with the match ip multicast command. This command can be used on client routers that listen to discover messages. The default is no filtering of Auto-RP messages.

Note:
PIM6 does not support the Auto-RP method.

Per Device Interface

Join-prune policy

Enables join-prune messages to be filtered based on a route-map policy where you can specify group, group and source, or group and RP addresses with the match ip[v6] multicast command. The default is no filtering of join-prune messages.

[1] For information about configuring route-map policies, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

Route maps as a filtering policy can be used (either permit or deny for each statement) for the following commands:

- The jp-policy command can use (S,G), (*,G), or (RP,G).

- The register-policy command can use (S,G) or (*,G).

- The igmp report-policy command can use (*,G) or (S,G).

- The state-limit reserver-policy command can use (*,G) or (S,G).

- The auto-rp rp-candidate-policy command can use (RP,G).

- The bsr rp-candidate-policy command can use (RP,G).

- The autorp mapping-agent policy command can use (S).

- The bsr bsr-policy command can use (S).

Route maps as containers can be used for the following commands, where the route-map action (permit or deny) is ignored:

- The ip pim rp-address route map command can use only G.

- The ip pim ssm-range route map can use only G.

- The ip igmp static-oif route map command can use (S,G), (*,G), (S,G-range), (*,G-range).

- The ip igmp join-group route map command can use (S,G), (*,G), (S,G-range, (*, G-range).

- Configuring Message Filtering (PIM)

- Configuring Message Filtering (PIM6)

Configuring Message Filtering (PIM)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip pim log-neighbor-changes

Example:

switch(config)# ip pim log-neighbor-changes

(Optional) Enables syslog messages that list the neighbor state changes to be generated. The default is disabled.

Step 3

ip pim register-policy policy-name

Example:

switch(config)# ip pim register-policy my_register_policy

(Optional)
Enables PIM register messages to be filtered based on a route-map policy. You can specify group or group and source addresses with the match ip multicast command.

Step 4

ip pim bsr rp-candidate-policy policy-name

Example:

switch(config)# ip pim bsr rp-candidate-policy my_bsr_rp_candidate_policy

(Optional)
Enables BSR candidate RP messages to be filtered by the router based on a route-map policy where you can specify the RP and group addresses and whether the type is ASM or Bidir with the match ip multicast command. This command can be used on routers that are eligible for BSR election. The default is no filtering of BSR messages.

Step 5

ip pim bsr bsr-policy policy-name

Example:

switch(config)# ip pim bsr bsr-policy my_bsr_policy

(Optional)
Enables BSR messages to be filtered by the BSR client routers based on a route-map policy where you can specify BSR source addresses with the match ip multicast command. This command can be used on client routers that listen to BSR messages. The default is no filtering of BSR messages.

Step 6

ip pim auto-rp rp-candidate-policy policy-name

Example:

switch(config)# ip pim auto-rp rp-candidate-policy my_auto_rp_candidate_policy

(Optional)
Enables Auto-RP announce messages to be filtered by the Auto-RP mapping agents based on a route-map policy where you can specify the RP and group addresses and whether the type is ASM or Bidir with the match ip multicast command. This command can be used on a mapping agent. The default is no filtering of Auto-RP messages.

Step 7

ip pim auto-rp mapping-agent-policy policy-name

Example:

switch(config)# ip pim auto-rp mapping-agent-policy my_auto_rp_mapping_policy

(Optional)
Enables Auto-RP discover messages to be filtered by client routers based on a route-map policy where you can specify mapping agent source addresses with the match ip multicast command. This command can be used on client routers that listen to discover messages. The default is no filtering of Auto-RP messages.

Step 8

interface interface

Example:

switch(config)# interface ethernet 2/1
switch(config-if)#

Enters interface mode on the specified interface.

Step 9

ip pim jp-policy policy-name [in | out]

Example:

switch(config-if)# ip pim jp-policy my_jp_policy

(Optional)
Enables join-prune messages to be filtered based on a route-map policy where you can specify group, group and source, or group and RP addresses with the match ip multicast command. The default is no filtering of join-prune messages.

Step 10

show run pim

Example:

switch(config-if)# show run pim

(Optional)
Displays PIM configuration commands.

Step 11

copy running-config startup-config

Example:

switch(config-if)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring Message Filtering (PIM6)

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM6.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ipv6 pim log-neighbor-changes

Example:

switch(config)# ipv6 pim log-neighbor-changes

(Optional) Enables syslog messages that list the neighbor state changes to be generated. The default is disabled.

Step 3

ipv6 pim register-policy policy-name

Example:

switch(config)# ipv6 pim register-policy my_register_policy

(Optional)
Enables PIM register messages to be filtered based on a route-map policy. You can specify group or group and source addresses with the match ipv6 multicast command. The default is disabled.

Step 4

interface interface

Example:

switch(config)# interface ethernet 2/1
switch(config-if)#

Enters interface mode on the specified interface.

Step 5

ipv6 pim jp-policy policy-name [in | out]

Example:

switch(config-if)# ipv6 pim jp-policy my_jp_policy

(Optional)
Enables join-prune messages to be filtered based on a route-map policy where you can specify group, group and source, or group and RP addresses with the match ipv6 multicast command. The default is no filtering of join-prune messages.

This command filters messages in both incoming and outgoing directions.

Step 6

show run pim6

Example:

switch(config-if)# show run pim6

(Optional)
Displays PIM6 configuration commands.

Step 7

copy running-config startup-config

Example:

switch(config-if)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Restarting the PIM and PIM6 Processes

When static RP is configured, you can restart the PIM and PIM6 processes and optionally flush all routes. By default, routes are not flushed.

Note

When Auto-RP or BSR is configured, multicast traffic is dropped (for up to 60 seconds).

When routes are flushed, they are removed from the Multicast Routing Information Base (MRIB and M6RIB) and the Multicast Forwarding Information Base (MFIB and M6FIB).

When you restart PIM or PIM6, the following tasks are performed:

- The PIM database is deleted.

- The MRIB and MFIB are unaffected and forwarding of traffic continues.

- The multicast route ownership is verified through the MRIB.

- Periodic PIM join and prune messages from neighbors are used to repopulate the database.

- Restarting the PIM Process

- Restarting the PIM6 Process

Restarting the PIM Process

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

restart pim

Example:

switch# restart pim

Restarts the PIM process.

Note:
Traffic loss might occur during the restart process.

Step 2

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 3

ip pim flush-routes

Example:

switch(config)# ip pim flush-routes

Removes routes when the PIM process is restarted. By default, routes are not flushed.

Step 4

show running-configuration pim

Example:

switch(config)# show running-configuration pim

(Optional)
Displays the PIM running-configuration information, including the flush-routes command.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Restarting the PIM6 Process

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM6.

Procedure

Command or Action

Purpose

Step 1

restart pim6

Example:

switch# restart pim6

Restarts the PIM6 process.

Step 2

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 3

ipv6 pim flush-routes

Example:

switch(config)# ipv6 pim flush-routes

Removes routes when the PIM6 process is restarted. By default, routes are not flushed.

Step 4

show running-configuration pim6

Example:

switch(config)# show running-configuration pim6

(Optional)
Displays the PIM6 running-configuration information, including the flush-routes command.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring BFD for PIM in VRF Mode

Note

You can configure Bidirectional Forwarding Detection (BFD) for PIM by either VRF or interface.

Note

BFD is not supported for PIM6.

Before You Begin

Ensure that you have installed the Enterprise Services license, enabled PIM, and enabled BFD.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

vrf context vrf-name

Example:

switch# vrf context test
switch(config-vrf)#

Enters VRF configuration mode.

Step 3

ip pim bfd

Example:

switch(config-vrf)# ip pim bfd

Enables BFD on the specified VRF.

Note:
You can also enter the ip pim bfd command in global configuration mode, which enables BFD on the VRF instance.

- Configuring BFD for PIM in Interface Mode

Configuring BFD for PIM in Interface Mode

Before You Begin

Ensure that you have installed the Enterprise Services license, enabled PIM, and enabled BFD.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

interface interface-type

Example:

switch(config)# interface ethernet 7/40
switch(config-if)#

Enters interface configuration mode.

Step 3

ip pim bfd instance

Example:

switch(config-if)# ip pim bfd instance

Enables BFD on the specified interfaces. You can enable or disable BFD on PIM interfaces irrespective of whether BFD is enabled on the VRF.

Step 4

show running-configuration pim

Example:

switch(config-if)# show running-configuration pim

(Optional)
Displays the PIM running-configuration information.

Step 5

copy running-config startup-config

Example:

switch(config-if)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Enabling the Multicast Heavy Template

You can enable the multicast heavy template in order to support significantly more multicast routes and to display multicast counters in the output of the show ip mroute command.

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

system routing template-multicast-heavy

Example:

switch(config)# system routing template-multicast-heavy

Enables the multicast heavy template.

Step 3

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Verifying the PIM and PIM6 Configuration

To display the PIM and PIM6 configuration information, perform one of the following tasks. Use the show ip form of the command for PIM and the show ipv6 form of the command for PIM6.

Command

Description

show ip[v6] mroute [ip-address] [detail | summary]

Displays the IP or IPv6 multicast routing table.

The detail option displays detailed route attributes.

The summary option displays route counts and packet rates.

Note:
Beginning with Cisco NX-OS Release 7.0(3)I6(1), this command also displays multicast counters for Cisco Nexus 9300-EX Series switches, if the multicast heavy template is enabled. See sample outputs below.

show ip[v6] pim df [vrf vrf-name | all]

Displays the designated forwarder (DF) information for each RP by interface.

show ip[v6] pim group-range [ip-prefix] [vrf vrf-name | all]

Displays the learned or configured group ranges and modes. For similar information, see the show ip[v6] pim rp command.

show ip[v6] pim interface [interface | brief] [vrf vrf-name | all]

Displays information by the interface.

show ip[v6] pim neighbor [interface interface | ip-prefix] [vrf vrf-name | all]

Displays neighbors by the interface.

show ip[v6] pim oif-list group [source] [vrf vrf-name | all]

Displays all the interfaces in the outgoing interface (OIF) list.

show ip[v6] pim route [source | group [source]] [vrf vrf-name | all]

Displays information for each multicast route, including interfaces on which a PIM join for that (S, G) has been received.

show ip[v6] pim rp [ip-prefix] [vrf vrf-name | all]

Displays rendezvous points (RPs) known to the software, how they were learned, and their group ranges. For similar information, see the show ip[v6] pim group-range command.

show ip pim rp-hash group [vrf vrf-name | all]

Displays the bootstrap router (BSR) RP hash information. For information about the RP hash, see RFC 5059.

show ip[v6] pim config-sanity

Displays the following messages if any PIM configuration errors are detected:

For Static RPs:

- interface_name should be PIM enabled

- interface_name should be UP

For Anycast RPs:

- Anycast-RP rp_address should be configured on local interface

- For Anycast-RP rp_address, interface_name should be PIM enabled

- Anycast-RP rp_address is not configured as RP for any group-range

- interface_name should be PIM enabled

- interface_name should be UP

- None of the members in Anycast-RP set for rp_address is local

For BSR RPs:

- BSR RP Candidate interface interface_name is not PIM/IP enabled

- BSR RP Candidate interface interface_name is not IP enabled

- BSR RP Candidate interface interface_name is not PIM enabled

- interface_name should be UP

- BSR Candidate interface interface_name is not PIM/IP enabled

- BSR Candidate interface interface_name is not IP enabled

- BSR Candidate interface interface_name is not PIM enabled

- interface_name should be UP

For Auto-RPs:

- Auto-RP RP Candidate interface interface_name is not PIM/IP enabled

- Auto-RP RP Candidate interface interface_name is not IP enabled

- Auto-RP RP Candidate interface interface_name is not PIM enabled

- interface_name should be UP

- Auto-RP Candidate interface interface_name is not PIM/IP enabled

- Auto-RP Candidate interface interface_name is not IP enabled

- Auto-RP Candidate interface interface_name is not PIM enabled

- interface_name should be UP

show running-config pim[6]

Displays the running-configuration information.

show startup-config pim[6]

Displays the startup-configuration information.

show ip[v6] pim vrf [vrf-name | all] [detail]

Displays per-VRF information.

This example shows sample output, including multicast counters, for the show ip mroute summary command:

switch# show ip mroute summary
IP Multicast Routing Table for VRF "default"
Route Statistics unavailable - only liveness detected

Total number of routes: 701
Total number of (*,G) routes: 0
Total number of (S,G) routes: 700
Total number of (*,G-prefix) routes: 1
Group count: 700, rough average sources per group: 1.0

Group: 224.1.24.0/32, Source count: 1
Source          packets      bytes           aps   pps       bit-rate     oifs
192.205.38.2    3110         158610          51    0         27.200  bps  5

Group: 224.1.24.1/32, Source count: 1
Source          packets      bytes           aps   pps       bit-rate     oifs
192.205.38.2    3106         158406          51    0         27.200  bps  5

This example shows sample output, including multicast counters, for the show ip mroute ip-address summary command:

switch# show ip mroute 224.1.24.1 summary
IP Multicast Routing Table for VRF "default"
Route Statistics unavailable - only liveness detected

Total number of routes: 701
Total number of (*,G) routes: 0
Total number of (S,G) routes: 700
Total number of (*,G-prefix) routes: 1
Group count: 700, rough average sources per group: 1.0

Group: 224.1.24.1/32, Source count: 1
Source          packets      bytes           aps   pps       bit-rate     oifs
192.205.38.2    3114         158814          51    0         27.200  bps  5

This example shows sample output, including multicast counters, for the show ip mroute detail command:

switch# show ip mroute detail
IP Multicast Routing Table for VRF "default"

Total number of routes: 701
Total number of (*,G) routes: 0
Total number of (S,G) routes: 700
Total number of (*,G-prefix) routes: 1

(192.205.38.2/32, 224.1.24.0/32), uptime: 13:03:24, nbm(5) pim(0) ip(0)
Data Created: No
Stats: 3122/159222 [Packets/Bytes], 27.200  bps
Stats: Active Flow
Incoming interface: Ethernet1/51, uptime: 13:03:24, internal
Outgoing interface list: (count: 5)
Ethernet1/39, uptime: 13:03:24, nbm
Ethernet1/40, uptime: 13:03:24, nbm
Ethernet1/38, uptime: 13:03:24, nbm
Ethernet1/37, uptime: 13:03:24, nbm
Ethernet1/36, uptime: 13:03:24, nbm

This example shows sample output, including multicast counters, for the show ip mroute ip-address detail command:

switch# show ip mroute 224.1.24.1 detail
IP Multicast Routing Table for VRF "default"

Total number of routes: 701
Total number of (*,G) routes: 0
Total number of (S,G) routes: 700
Total number of (*,G-prefix) routes: 1

(192.205.38.2/32, 224.1.24.1/32), uptime: 13:00:32, nbm(5) ip(0) pim(0)
Data Created: No
Stats: 3110/158610 [Packets/Bytes], 27.200  bps
Stats: Active Flow
Incoming interface: Ethernet1/50, uptime: 12:59:04, internal
Outgoing interface list: (count: 5)
Ethernet1/39, uptime: 12:59:04, nbm
Ethernet1/40, uptime: 12:59:04, nbm
Ethernet1/38, uptime: 12:59:04, nbm
Ethernet1/37, uptime: 12:59:04, nbm
Ethernet1/36, uptime: 13:00:32, nbm

Displaying Statistics

You can display and clear PIM and PIM6 statistics by using the commands in this section.

- Displaying PIM and PIM6 Statistics

- Clearing PIM and PIM6 Statistics

Displaying PIM and PIM6 Statistics

You can display the PIM and PIM6 statistics and memory usage using these commands.

Note

Use the show ip form of the command for PIM and the show ipv6 form of the command for PIM6.

Command

Description

show ip[v6] pim policy statistics

Displays policy statistics for register, RP, and join-prune message policies.

show ip[v6] pim statistics [vrf vrf-name]

Displays global statistics.

Clearing PIM and PIM6 Statistics

You can clear the PIM and PIM6 statistics using these commands. Use the show ip form of the command for PIM and the show ipv6 form of the command for PIM6.

Command

Description

clear ip[v6] pim interface statistics interface

Clears counters for the specified interface.

clear ip[v6] pim policy statistics

Clears policy counters for register, RP, and join-prune message policies.

clear ip[v6] pim statistics [vrf vrf-name]

Clears global counters handled by the PIM process.

Configuration Examples for PIM

This section describes how to configure PIM using different data distribution modes and RP selection methods.

- SSM Configuration Example

- PIM SSM Over vPC Configuration Example

- BSR Configuration Example

- Auto-RP Configuration Example

- PIM Anycast RP Configuration Example

- Prefix-Based and Route-Map-Based Configurations

SSM Configuration Example

To configure PIM in SSM mode, follow these steps for each router in the PIM domain:

1. Configure PIM sparse mode parameters on the interfaces that you want to participate in the domain. We recommend that you enable PIM on all interfaces.

switch# configure terminal
switch(config)# interface ethernet 2/1
switch(config-if)# ip pim sparse-mode

2. Configure the parameters for IGMP that support SSM. Usually, you configure IGMPv3 on PIM interfaces to support SSM.

switch# configure terminal
switch(config)# interface ethernet 2/1
switch(config-if)# ip igmp version 3

3. Configure the SSM range if you do not want to use the default range.

switch# configure terminal
switch(config)# ip pim ssm range 239.128.1.0/24

4. Configure message filtering.

switch# configure terminal
switch(config)# ip pim log-neighbor-changes

The following example shows how to configure PIM SSM mode:

configure terminal
interface ethernet 2/1
ip pim sparse-mode
ip igmp version 3
exit
ip pim ssm range 239.128.1.0/24
ip pim log-neighbor-changes

PIM SSM Over vPC Configuration Example

This example shows how to override the default SSM range of 232.0.0.0/8 to 225.1.1.0/24. PIM SSM over vPC will work as long as S,G joins are received in this range.

switch# configure terminal
switch(config)# vrf context Enterprise
switch(config-vrf)# ip pim ssm range 225.1.1.0/24
switch(config-vrf)# show ip pim group-range --> Shows the configured SSM group range.
PIM Group-Range Configuration for VRF "Enterprise"
Group-range        Mode      RP-address       Shared-tree-only range
225.1.1.0/24       SSM       -                -

switch1# show vpc (primary vPC) --> Shows vPC-related information.
Legend:
(*) - local vPC is down, forwarding via vPC peer-link

vPC domain id                     : 10
Peer status                       : peer adjacency formed ok
vPC keep-alive status             : peer is alive
Configuration consistency status  : success
Per-vlan consistency status       : success
Type-2 consistency status         : success
vPC role                          : primary
Number of vPCs configured         : 2
Peer Gateway                      : Disabled
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Enabled
Auto-recovery status              : Disabled
Delay-restore status              : Timer is off.(timeout = 30s)
Delay-restore SVI status          : Timer is off.(timeout = 10s)

vPC Peer-link status
---------------------------------------------------------------------
id   Port   Status Active vlans
--   ----   ------ --------------------------------------------------
1    Po1000 up     101-102

vPC status
----------------------------------------------------------------------
id   Port   Status Consistency Reason                     Active vlans
--   ----   ------ ----------- ------                     ------------
1    Po1    up     success     success                    102

2    Po2    up     success     success                    101

switch2# show vpc (secondary vPC)
Legend:
(*) - local vPC is down, forwarding via vPC peer-link

vPC domain id                     : 10
Peer status                       : peer adjacency formed ok
vPC keep-alive status             : peer is alive
Configuration consistency status  : success
Per-vlan consistency status       : success
Type-2 consistency status         : success
vPC role                          : secondary
Number of vPCs configured         : 2
Peer Gateway                      : Disabled
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Enabled
Auto-recovery status              : Disabled
Delay-restore status              : Timer is off.(timeout = 30s)
Delay-restore SVI status          : Timer is off.(timeout = 10s)

vPC Peer-link status
---------------------------------------------------------------------
id   Port   Status Active vlans
--   ----   ------ --------------------------------------------------
1    Po1000 up     101-102

vPC status
----------------------------------------------------------------------
id   Port   Status Consistency Reason                     Active vlans
--   ----   ------ ----------- ------                     ------------
1    Po1    up     success     success                    102

2    Po2    up     success     success                    101

switch1# show ip igmp snooping group vlan 101 (primary vPC IGMP snooping states) --> Shows if S,G v3 joins are received and on which VLAN. The same VLAN should be OIF in the MRIB output.

Type: S - Static, D - Dynamic, R - Router port, F - Fabricpath core port

Vlan  Group Address      Ver  Type  Port list
101   */*                -    R     Po1000 Vlan101
101   225.1.1.1          v3
100.6.160.20          D     Po2

switch2# show ip igmp snooping group vlan 101 (secondary vPC IGMP snooping states)
Type: S - Static, D - Dynamic, R - Router port, F - Fabricpath core port

Vlan  Group Address      Ver  Type  Port list
101   */*                -    R     Po1000 Vlan101
101   225.1.1.1          v3
100.6.160.20          D     Po2

switch1# show ip pim route (primary vPC PIM route) --> Shows the route information in the PIM protocol.
PIM Routing Table for VRF "default" - 3 entries

(10.6.159.20/32, 225.1.1.1/32), expires 00:02:37
Incoming interface: Ethernet1/19, RPF nbr 10.6.159.20
Oif-list:       (1) 00000000, timeout-list: (0) 00000000
Immediate-list: (1) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 2, JP-holdtime round-up: 3

(100.6.160.20/32, 225.1.1.1/32), expires 00:01:19
Incoming interface: Vlan102, RPF nbr 100.6.160.20
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 2, JP-holdtime round-up: 3

(*, 232.0.0.0/8), expires 00:01:19
Incoming interface: Null0, RPF nbr 0.0.0.0
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 2, JP-holdtime round-up: 3

switch2# show ip pim route (secondary vPC PIM route)
PIM Routing Table for VRF "default" - 3 entries
(10.6.159.20/32, 225.1.1.1/32), expires 00:02:51
Incoming interface: Vlan102, RPF nbr 100.6.160.100
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 3, JP-holdtime round-up: 3

(100.6.160.20/32, 225.1.1.1/32), expires 00:02:51
Incoming interface: Vlan102, RPF nbr 100.6.160.20
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 3, JP-holdtime round-up: 3

(*, 232.0.0.0/8), expires 00:02:51
Incoming interface: Null0, RPF nbr 0.0.0.0
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 3, JP-holdtime round-up: 3

switch2# show ip pim route (secondary vPC PIM route)
PIM Routing Table for VRF "default" - 3 entries

(10.6.159.20/32, 225.1.1.1/32), expires 00:02:29
Incoming interface: Vlan102, RPF nbr 100.6.160.100
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 3, JP-holdtime round-up: 3

(100.6.160.20/32, 225.1.1.1/32), expires 00:02:29
Incoming interface: Vlan102, RPF nbr 100.6.160.20
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 3, JP-holdtime round-up: 3

(*, 232.0.0.0/8), expires 00:02:29
Incoming interface: Null0, RPF nbr 0.0.0.0
Oif-list:       (0) 00000000, timeout-list: (0) 00000000
Immediate-list: (0) 00000000, timeout-list: (0) 00000000
Sgr-prune-list: (0) 00000000
Timeout-interval: 3, JP-holdtime round-up: 3

switch1# show ip mroute (primary vPC MRIB route) --> Shows the IP multicast routing table.

IP Multicast Routing Table for VRF "default"

(10.6.159.20/32, 225.1.1.1/32), uptime: 03:16:40, pim ip
Incoming interface: Ethernet1/19, RPF nbr: 10.6.159.20
Outgoing interface list: (count: 1)
Vlan102, uptime: 03:16:40, pim

(100.6.160.20/32, 225.1.1.1/32), uptime: 03:48:57, igmp ip pim
Incoming interface: Vlan102, RPF nbr: 100.6.160.20
Outgoing interface list: (count: 1)
Vlan101, uptime: 03:48:57, igmp

(*, 232.0.0.0/8), uptime: 6d06h, pim ip
Incoming interface: Null, RPF nbr: 0.0.0.0
Outgoing interface list: (count: 0)

switch1# show ip mroute detail (primary vPC MRIB route) --> Shows if the (S,G) entries have the RPF as the interface toward the source and no *,G states are maintained for the SSM group range in the MRIB.

IP Multicast Routing Table for VRF "default"

Total number of routes: 3
Total number of (*,G) routes: 0
Total number of (S,G) routes: 2
Total number of (*,G-prefix) routes: 1

(10.6.159.20/32, 225.1.1.1/32), uptime: 03:24:28, pim(1) ip(0)
Data Created: Yes
VPC Flags
RPF-Source Forwarder
Stats: 1/51 [Packets/Bytes], 0.000   bps
Stats: Inactive Flow
Incoming interface: Ethernet1/19, RPF nbr: 10.6.159.20
Outgoing interface list: (count: 1)
Vlan102, uptime: 03:24:28, pim

(100.6.160.20/32, 225.1.1.1/32), uptime: 03:56:45, igmp(1) ip(0) pim(0)
Data Created: Yes
VPC Flags
RPF-Source Forwarder
Stats: 1/51 [Packets/Bytes], 0.000   bps
Stats: Inactive Flow
Incoming interface: Vlan102, RPF nbr: 100.6.160.20
Outgoing interface list: (count: 1)
Vlan101, uptime: 03:56:45, igmp (vpc-svi)

(*, 232.0.0.0/8), uptime: 6d06h, pim(0) ip(0)
Data Created: No
Stats: 0/0 [Packets/Bytes], 0.000   bps
Stats: Inactive Flow
Incoming interface: Null, RPF nbr: 0.0.0.0
Outgoing interface list: (count: 0)

switch2# show ip mroute detail (secondary vPC MRIB route)
IP Multicast Routing Table for VRF "default"

Total number of routes: 3
Total number of (*,G) routes: 0
Total number of (S,G) routes: 2
Total number of (*,G-prefix) routes: 1

(10.6.159.20/32, 225.1.1.1/32), uptime: 03:26:24, igmp(1) pim(0) ip(0)
Data Created: Yes
Stats: 1/51 [Packets/Bytes], 0.000   bps
Stats: Inactive Flow
Incoming interface: Vlan102, RPF nbr: 100.6.160.100
Outgoing interface list: (count: 1)
Ethernet1/17, uptime: 03:26:24, igmp

(100.6.160.20/32, 225.1.1.1/32), uptime: 04:06:32, igmp(1) ip(0) pim(0)
Data Created: Yes
VPC Flags
RPF-Source Forwarder
Stats: 1/51 [Packets/Bytes], 0.000   bps
Stats: Inactive Flow
Incoming interface: Vlan102, RPF nbr: 100.6.160.20
Outgoing interface list: (count: 1)
Vlan101, uptime: 04:03:24, igmp (vpc-svi)

(*, 232.0.0.0/8), uptime: 6d06h, pim(0) ip(0)
Data Created: No
Stats: 0/0 [Packets/Bytes], 0.000   bps
Stats: Inactive Flow
Incoming interface: Null, RPF nbr: 0.0.0.0
Outgoing interface list: (count: 0)

BSR Configuration Example

To configure PIM in ASM mode using the BSR mechanism, follow these steps for each router in the PIM domain:

1. Configure PIM sparse mode parameters on the interfaces that you want to participate in the domain. We recommend that you enable PIM on all interfaces.

switch# configure terminal
switch(config)# interface ethernet 2/1
switch(config-if)# ip pim sparse-mode

2. Configure whether that router should listen and forward BSR messages.

switch# configure terminal
switch(config)# ip pim bsr forward listen

3. Configure the BSR parameters for each router that you want to act as a BSR.

switch# configure terminal
switch(config)# ip pim bsr-candidate ethernet 2/1 hash-len 30

4. Configure the RP parameters for each router that you want to act as a candidate RP.

switch# configure terminal
switch(config)# ip pim rp-candidate ethernet 2/1 group-list 239.0.0.0/24

5. Configure message filtering.

switch# configure terminal
switch(config)# ip pim log-neighbor-changes

The following example shows how to configure PIM ASM mode using the BSR mechanism and how to configure the BSR and RP on the same router:

configure terminal
interface ethernet 2/1
ip pim sparse-mode
exit
ip pim bsr forward listen
ip pim bsr-candidate ethernet 2/1 hash-len 30
ip pim rp-candidate ethernet 2/1 group-list 239.0.0.0/24
ip pim log-neighbor-changes

Auto-RP Configuration Example

To configure PIM in Bidir mode using the Auto-RP mechanism, follow these steps for each router in the PIM domain:

1. Configure PIM sparse mode parameters on the interfaces that you want to participate in the domain. We recommend that you enable PIM on all interfaces.

switch# configure terminal
switch(config)# interface ethernet 2/1
switch(config-if)# ip pim sparse-mode

2. Configure whether that router should listen and forward Auto-RP messages.

switch# configure terminal
switch(config)# ip pim auto-rp forward listen

3. Configure the mapping agent parameters for each router that you want to act as a mapping agent.

switch# configure terminal
switch(config)# ip pim auto-rp mapping-agent ethernet 2/1

4. Configure the RP parameters for each router that you want to act as a candidate RP.

switch# configure terminal
switch(config)# ip pim auto-rp rp-candidate ethernet 2/1 group-list 239.0.0.0/24 bidir

5. Configure message filtering.

switch# configure terminal
switch(config)# ip pim log-neighbor-changes

This example shows how to configure PIM Bidir mode using the Auto-RP mechanism and how to configure the mapping agent and RP on the same router:

configure terminal
interface ethernet 2/1
ip pim sparse-mode
exit
ip pim auto-rp listen
ip pim auto-rp forward
ip pim auto-rp mapping-agent ethernet 2/1
ip pim auto-rp rp-candidate ethernet 2/1 group-list 239.0.0.0/24 bidir
ip pim log-neighbor-changes

PIM Anycast RP Configuration Example

To configure ASM mode using the PIM Anycast-RP method, follow these steps for each router in the PIM domain:

1. Configure PIM sparse mode parameters on the interfaces that you want to participate in the domain. We recommend that you enable PIM on all interfaces.

switch# configure terminal
switch(config)# interface ethernet 2/1
switch(config-if)# ip pim sparse-mode

2. Configure the RP address that you configure on all routers in the Anycast-RP set.

switch# configure terminal
switch(config)# interface loopback 0
switch(config-if)# ip address 192.0.2.3/32
switch(config-if)# ip pim sparse-mode

3. Configure a loopback with an address to use in communication between routers in the Anycast-RP set for each router that you want to be in the Anycast-RP set.

switch# configure terminal
switch(config)# interface loopback 1
switch(config-if)# ip address 192.0.2.31/32
switch(config-if)# ip pim sparse-mode

4. Configure the Anycast-RP parameters and repeat with the IP address of each Anycast-RP for each router that you want to be in the Anycast-RP set. This example shows two Anycast-RPs.

switch# configure terminal
switch(config)# ip pim anycast-rp 192.0.2.3 193.0.2.31
switch(config)# ip pim anycast-rp 192.0.2.3 193.0.2.32

5. Configure message filtering.

switch# configure terminal
switch(config)# ip pim log-neighbor-changes

The following example shows how to configure PIM ASM mode using two Anycast-RPs:

configure terminal
interface ethernet 2/1
ip pim sparse-mode
exit
interface loopback 0
ip address 192.0.2.3/32
ip pim sparse-mode
exit
interface loopback 1
ip address 192.0.2.31/32
ip pim sparse-mode
exit
ip pim anycast-rp 192.0.2.3 192.0.2.31
ip pim anycast-rp 192.0.2.3 192.0.2.32
ip pim log-neighbor-changes

Prefix-Based and Route-Map-Based Configurations

ip prefix-list plist11 seq 10 deny 231.129.128.0/17
ip prefix-list plist11 seq 20 deny 231.129.0.0/16
ip prefix-list plist11 seq 30 deny 231.128.0.0/9
ip prefix-list plist11 seq 40 permit 231.0.0.0/8

ip prefix-list plist22 seq 10 deny 231.129.128.0/17
ip prefix-list plist22 seq 20 deny 231.129.0.0/16
ip prefix-list plist22 seq 30 permit 231.128.0.0/9
ip prefix-list plist22 seq 40 deny 231.0.0.0/8

ip prefix-list plist33 seq 10 deny 231.129.128.0/17
ip prefix-list plist33 seq 20 permit 231.129.0.0/16
ip prefix-list plist33 seq 30 deny 231.128.0.0/9
ip prefix-list plist33 seq 40 deny 231.0.0.0/8

ip pim rp-address 172.21.0.11 prefix-list plist11
ip pim rp-address 172.21.0.22 prefix-list plist22
ip pim rp-address 172.21.0.33 prefix-list plist33
route-map rmap11 deny 10
match ip multicast group 231.129.128.0/17
route-map rmap11 deny 20
match ip multicast group 231.129.0.0/16
route-map rmap11 deny 30
match ip multicast group 231.128.0.0/9
route-map rmap11 permit 40
match ip multicast group 231.0.0.0/8

route-map rmap22 deny 10
match ip multicast group 231.129.128.0/17
route-map rmap22 deny 20
match ip multicast group 231.129.0.0/16
route-map rmap22 permit 30
match ip multicast group 231.128.0.0/9
route-map rmap22 deny 40
match ip multicast group 231.0.0.0/8

route-map rmap33 deny 10
match ip multicast group 231.129.128.0/17
route-map rmap33 permit 20
match ip multicast group 231.129.0.0/16
route-map rmap33 deny 30
match ip multicast group 231.128.0.0/9
route-map rmap33 deny 40
match ip multicast group 231.0.0.0/8

ip pim rp-address 172.21.0.11 route-map rmap11
ip pim rp-address 172.21.0.22 route-map rmap22
ip pim rp-address 172.21.0.33 route-map rmap33

- Output

Output

dc3rtg-d2(config-if)# show ip pim rp
PIM RP Status Information for VRF "default"
BSR disabled
Auto-RP disabled
BSR RP Candidate policy: None
BSR RP policy: None
Auto-RP Announce policy: None
Auto-RP Discovery policy: None

RP: 172.21.0.11, (0), uptime: 00:12:36, expires: never,
priority: 0, RP-source: (local), group-map: rmap11, group ranges:
231.0.0.0/8  231.128.0.0/9 (deny)
231.129.0.0/16 (deny) 231.129.128.0/17 (deny)
RP: 172.21.0.22, (0), uptime: 00:12:36, expires: never,
priority: 0, RP-source: (local), group-map: rmap22, group ranges:
231.0.0.0/8 (deny) 231.128.0.0/9
231.129.0.0/16 (deny) 231.129.128.0/17 (deny)
RP: 172.21.0.33, (0), uptime: 00:12:36, expires: never,
priority: 0, RP-source: (local), group-map: rmap33, group ranges:
231.0.0.0/8 (deny) 231.128.0.0/9 (deny)
231.129.0.0/16  231.129.128.0/17 (deny)

dc3rtg-d2(config-if)# show ip mroute
IP Multicast Routing Table for VRF "default"

(*, 231.1.1.1/32), uptime: 00:07:20, igmp pim ip
Incoming interface: Ethernet2/1, RPF nbr: 10.165.20.1
Outgoing interface list: (count: 1)
loopback1, uptime: 00:07:20, igmp

(*, 231.128.1.1/32), uptime: 00:14:27, igmp pim ip
Incoming interface: Ethernet2/1, RPF nbr: 10.165.20.1
Outgoing interface list: (count: 1)
loopback1, uptime: 00:14:27, igmp

(*, 231.129.1.1/32), uptime: 00:14:25, igmp pim ip
Incoming interface: Ethernet2/1, RPF nbr: 10.165.20.1
Outgoing interface list: (count: 1)
loopback1, uptime: 00:14:25, igmp

(*, 231.129.128.1/32), uptime: 00:14:26, igmp pim ip
Incoming interface: Null, RPF nbr: 10.0.0.1
Outgoing interface list: (count: 1)
loopback1, uptime: 00:14:26, igmp

(*, 232.0.0.0/8), uptime: 1d20h, pim ip
Incoming interface: Null, RPF nbr: 10.0.0.1
Outgoing interface list: (count: 0)

dc3rtg-d2(config-if)# show ip pim group-range
PIM Group-Range Configuration for VRF "default"
Group-range        Mode      RP-address       Shared-tree-only range
232.0.0.0/8        ASM       -                -
231.0.0.0/8        ASM       172.21.0.11      -
231.128.0.0/9      ASM       172.21.0.22      -
231.129.0.0/16     ASM       172.21.0.33      -
231.129.128.0/17   Unknown   -                -

Related Documents

Related Topic

Document Title

ACL TCAM regions

Cisco Nexus 9000 Series NX-OS Security Configuration Guide

Configuring VRFs

Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide

Standards

Standards

Title

No new or modified standards are supported by this feature, and support for existing standards has not been modified by this feature.

—

MIBs

MIBs

MIBs Link

MIBs related to PIM

To locate and download supported MIBs, go to the following URL:

Click Here

Chapter 6. Configuring IGMP Snooping

This chapter describes how to configure Internet Group Management Protocol (IGMP) snooping on a Cisco NX-OS device.

- About IGMP Snooping

- Licensing Requirements for IGMP Snooping

- Prerequisites for IGMP Snooping

- Guidelines and Limitations for IGMP Snooping

- Default Settings

- Configuring IGMP Snooping Parameters

- Verifying the IGMP Snooping Configuration

- Displaying IGMP Snooping Statistics

- Clearing IGMP Snooping Statistics

- Configuration Examples for IGMP Snooping

About IGMP Snooping

Note

We recommend that you do not disable IGMP snooping on the device. If you disable IGMP snooping, you might see reduced multicast performance because of excessive false flooding within the device.

IGMP snooping software examines Layer 2 IP multicast traffic within a VLAN to discover the ports where interested receivers reside. Using the port information, IGMP snooping can reduce bandwidth consumption in a multi-access LAN environment to avoid flooding the entire VLAN. IGMP snooping tracks which ports are attached to multicast-capable routers to help the routers forward IGMP membership reports. The IGMP snooping software responds to topology change notifications. By default, IGMP snooping is enabled on the device.

This figure shows an IGMP snooping switch that sits between the host and the IGMP router. The IGMP snooping switch snoops the IGMP membership reports and Leave messages and forwards them only when necessary to the connected IGMP routers.

IGMP Snooping Switch

The IGMP snooping software operates upon IGMPv1, IGMPv2, and IGMPv3 control plane packets where Layer 3 control plane packets are intercepted and influence the Layer 2 forwarding behavior.

The Cisco NX-OS IGMP snooping software has the following proprietary features:

- Source filtering that allows forwarding of multicast packets based on destination and source IP addresses

- Multicast forwarding based on IP addresses rather than the MAC address

- Multicast forwarding alternately based on the MAC address

For more information about IGMP snooping, see RFC 4541.

- IGMPv1 and IGMPv2

- IGMPv3

- IGMP Snooping Querier

- Virtualization Support

IGMPv1 and IGMPv2

Both IGMPv1 and IGMPv2 support membership report suppression, which means that if two hosts on the same subnet want to receive multicast data for the same group, the host that receives a member report from the other host suppresses sending its report. Membership report suppression occurs for hosts that share a port.

If no more than one host is attached to each VLAN switch port, you can configure the fast leave feature in IGMPv2. The fast leave feature does not send last member query messages to hosts. As soon as the software receives an IGMP leave message, the software stops forwarding multicast data to that port.

IGMPv1 does not provide an explicit IGMP leave message, so the software must rely on the membership message timeout to indicate that no hosts remain that want to receive multicast data for a particular group.

Note

The software ignores the configuration of the last member query interval when you enable the fast leave feature because it does not check for remaining hosts.

IGMPv3

The IGMPv3 snooping implementation on Cisco NX-OS supports full IGMPv3 snooping, which provides constrained flooding based on the (S, G) information in the IGMPv3 reports. This source-based filtering enables the device to constrain multicast traffic to a set of ports based on the source that sends traffic to the multicast group.

By default, the software tracks hosts on each VLAN port. The explicit tracking feature provides a fast leave mechanism. Because every IGMPv3 host sends membership reports, report suppression limits the amount of traffic that the device sends to other multicast-capable routers. When report suppression is enabled, and no IGMPv1 or IGMPv2 hosts requested the same group, the software provides proxy reporting. The proxy feature builds the group state from membership reports from the downstream hosts and generates membership reports in response to queries from upstream queriers.

Even though the IGMPv3 membership reports provide a full accounting of group members on a LAN segment, when the last host leaves, the software sends a membership query. You can configure the parameter last member query interval. If no host responds before the timeout, the software removes the group state.

IGMP Snooping Querier

When PIM is not enabled on an interface because the multicast traffic does not need to be routed, you must configure an IGMP snooping querier to send membership queries. You define the querier in a VLAN that contains multicast sources and receivers but no other active querier.

The querier can be configured to use any IP address in the VLAN.

As a best practice, a unique IP address, one that is not already used by the switch interface or the Hot Standby Router Protocol (HSRP) virtual IP address, should be configured so as to easily reference the querier.

Note

The IP address for the querier should not be a broadcast IP address, multicast IP address, or 0 (0.0.0.0).

When an IGMP snooping querier is enabled, it sends out periodic IGMP queries that trigger IGMP report messages from hosts that want to receive IP multicast traffic. IGMP snooping listens to these IGMP reports to establish appropriate forwarding.

The IGMP snooping querier performs querier election as described in RFC 2236. Querier election occurs in the following configurations:

- When there are multiple switch queriers configured with the same subnet on the same VLAN on different switches.

- When the configured switch querier is in the same subnet as with other Layer 3 SVI queriers.

Virtualization Support

You can define multiple virtual routing and forwarding (VRF) instances for IGMP snooping.

You can use the show commands with a VRF argument to provide a context for the information displayed. The default VRF is used if no VRF argument is supplied.

For information about configuring VRFs, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

Licensing Requirements for IGMP Snooping

Product

License Requirement

Cisco NX-OS

IGMP snooping requires no license. Any feature not included in a license package is bundled with the nx-os image and is provided at no extra charge to you. For a complete explanation of the Cisco NX-OS licensing scheme, see Cisco NX-OS Licensing Guide.

Prerequisites for IGMP Snooping

IGMP snooping has the following prerequisites:

- You are logged onto the device.

- For global commands, you are in the correct virtual routing and forwarding (VRF) mode. The default configuration mode shown in the examples in this chapter applies to the default VRF.

Guidelines and Limitations for IGMP Snooping

IGMP snooping has the following guidelines and limitations:

- Cisco Nexus 9000 Series switches support IGMP snooping for IPv4 but do not support MLD snooping for IPv6.

- Layer 3 IPv6 multicast routing is not supported.

- Layer 2 IPv6 multicast packets will be flooded on the incoming VLAN.

- Cisco Nexus 9000 Series switches support IGMP snooping with vPCs.

Note

Cisco Nexus 9508 switches with the N9K-X9636C-R and N9K-X9636Q-R line cards support IGMP snooping beginning with Cisco NX-OS Release 7.0(3)F2(1) but do not support IGMP snooping with vPCs.

- The IGMP snooping configuration must be identical on both vPC peers in a vPC pair. Either enable or disable IGMP snooping on both vPC peers.

- You must enable the ip igmp snooping group-timeout command when you use the ip igmp snooping proxy general-queries command. We recommend that you set it to "never". Otherwise, you might experience multicast packet loss.

- All external multicast router ports (either statically configured or dynamically learned) use the global ltl index. As a result, traffic in VLAN X goes out on the multicast router ports in both VLAN X and VLAN Y, in case both multicast router ports (Layer 2 trunks) carry both VLAN X and VLAN Y.

Default Settings

Parameters

Default

IGMP snooping

Enabled

Explicit tracking

Enabled

Fast leave

Disabled

Last member query interval

1 second

Snooping querier

Disabled

Report suppression

Enabled

Link-local groups suppression

Enabled

IGMPv3 report suppression for the entire device

Disabled

IGMPv3 report suppression per VLAN

Enabled

Configuring IGMP Snooping Parameters

Note

If you are familiar with the Cisco IOS CLI, be aware that the Cisco NX-OS commands for this feature might differ from the Cisco IOS commands that you would use.

Note

You must enable IGMP snooping globally before any other commands take effect.

- Configuring Global IGMP Snooping Parameters

- Configuring IGMP Snooping Parameters per VLAN

Configuring Global IGMP Snooping Parameters

To affect the operation of the IGMP snooping process globally, you can configure various optional IGMP snooping parameters.

Notes for IGMP Snooping Parameters

- IGMP Snooping Proxy parameter

To decrease the burden placed on the snooping switch during each IGMP general query (GQ) interval, the Cisco NX-OS software provides a way to decouple the periodic general query behavior of the IGMP snooping switch from the query interval configured on the multicast routers.

You can configure the device to consume IGMP general queries from the multicast router, rather than flooding the general queries to all the switchports. When the device receives a general query, it produces proxy reports for all currently active groups and distributes the proxy reports over the period specified by the MRT that is specified in the router query. At the same time, independent of the periodic general query activity of the multicast router, the device sends an IGMP general query on each port in the VLAN in a round-robin fashion. It cycles through all the interfaces in the VLAN at the rate given by the following formula.

Rate = {number of interfaces in VLAN} * {configured MRT} * {number of VLANs}

When queries are run in this mode, the default MRT value is 5,000 milliseconds (5 seconds). For a device that has 500 switchports in a VLAN, it would take 2,500 seconds (40 minutes) to cycle through all the interfaces in the system. This is also true when the device itself is the querier.

This behavior ensures that only one host responds to a general query at a given time, and it keeps the simultaneous reporting rate below the packet-per-second IGMP capability of the device (approximately 3,000 to 4,000 pps).

Note

When you use this option, you must change the ip igmp snooping group-timeout parameter to a high value or to never time out.

The ip igmp snooping proxy general-queries [mrt] command causes the snooping function to proxy reply to general queries from the multicast router while also sending round-robin general queries on each switchport with the specified MRT value. (The default MRT value is 5 seconds.)

- IGMP Snooping Group-timeout parameter

Configuring the group-timeout parameter disables the behavior of an expiring membership based on three missed general queries. Group membership remains on a given switchport until the device receives an explicit IGMP leave on that port.

The ip igmp snooping group-timeout {timeout | never} command modifies or disables the behavior of an expiring IGMP snooping group membership after three missed general queries.

Procedure

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

Use the following commands to configure global IGMP snooping parameters.

Option

Description

ip igmp snooping

switch(config)# ip igmp snooping

Enables IGMP snooping for the device. The default is enabled.

Note:
If the global setting is disabled with the no form of this command, IGMP snooping on all VLANs is disabled, whether IGMP snooping is enabled on a VLAN or not. If you disable IGMP snooping, Layer 2 multicast frames flood to all modules.

ip igmp snooping event-history

switch(config)# ip igmp snooping event-history

Configures the size of the event history buffer. The default is small.

ip igmp snooping group-timeout {minutes | never}

switch(config)# ip igmp snooping group-timeout never

Configures the group membership timeout value for all VLANs on the device.

ip igmp snooping link-local-groups-suppression

switch(config)# ip igmp snooping link-local-groups-suppression

Configures link-local groups suppression for the entire device. The default is enabled.

ip igmp snooping proxy general-inquiries [mrt seconds]

switch(config)# ip igmp snooping proxy general-inquiries

Configures the IGMP snooping proxy for the device. The default is 5 seconds.

ip igmp snooping v3-report-suppression

switch(config)# ip igmp snooping v3-report-suppression

Limits the membership report traffic sent to multicast-capable routers. When you disable report suppression, all IGMP reports are sent as-is to multicast-capable routers. The default is enabled.

ip igmp snooping report-suppression

switch(config)# ip igmp snooping report-suppression

Configures IGMPv3 report suppression and proxy reporting. The default is disabled.

Step 3

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional) Copies the running configuration to the startup configuration.

Configuring IGMP Snooping Parameters per VLAN

To affect the operation of the IGMP snooping process per VLAN, you can configure various optional IGMP snooping parameters.

Note

You configure the IGMP snooping parameters that you want by using this configuration mode; however, the configurations apply only after you specifically create the specified VLAN. See the Cisco Nexus 9000 Series NX-OS Layer 2 Switching Configuration Guide for information on creating VLANs.

Procedure

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip igmp snooping

Example:

switch(config)# ip igmp snooping

Enables IGMP snooping. The default is enabled.

Note:
If the global setting is disabled with the no form of this command, IGMP snooping on all VLANs is disabled, whether IGMP snooping is enabled on a VLAN or not. If you disable IGMP snooping, Layer 2 multicast frames flood to all modules.

Step 3

vlan configuration vlan-id

Example:

switch(config)# vlan configuration 2
switch(config-vlan-config)#

Configures the IGMP snooping parameters you want for the VLAN. These configurations do not apply until you create the specified VLAN.

Step 4

Use the following commands to configure IGMP snooping parameters per VLAN.

Option

Description

ip igmp snooping

switch(config-vlan-config)# ip igmp snooping

Enables IGMP snooping for the current VLAN. The default is enabled.

ip igmp snooping access-group {prefix-list | route-map} policy-name interface interface slot/port

switch(config-vlan-config)# ip igmp snooping access-group prefix-list plist interface ethernet 2/2

Configures a filter for IGMP snooping reports that is based on a prefix-list or route-map policy. The default is disabled.

ip igmp snooping explicit-tracking

switch(config-vlan-config)# ip igmp snooping explicit-tracking

Tracks IGMPv3 membership reports from individual hosts for each port on a per-VLAN basis. The default is enabled on all VLANs.

ip igmp snooping fast-leave

switch(config-vlan-config)# ip igmp snooping fast-leave

Supports IGMPv2 hosts that cannot be explicitly tracked because of the host report suppression mechanism of the IGMPv2 protocol. When you enable fast leave, the IGMP software assumes that no more than one host is present on each VLAN port. The default is disabled for all VLANs.

ip igmp snooping group-timeout {minutes | never}

switch(config-vlan-config)# ip igmp snooping group-timeout never

Configures the group membership timeout for the specified VLANs.

ip igmp snooping last-member-query-interval seconds

switch(config-vlan-config)# ip igmp snooping last-member-query-interval 3

Removes the group from the associated VLAN port if no hosts respond to an IGMP query message before the last member query interval expires. Values range from 1 to 25 seconds. The default is 1 second.

ip igmp snooping proxy general-queries [mrt seconds]

switch(config-vlan-config)# ip igmp snooping proxy general-queries

Configures an IGMP snooping proxy for specified VLANs. The default is 5 seconds.

[no] ip igmp snooping proxy-leave use-group-address

switch(config-vlan-config)# ip igmp snooping proxy-leave use-group-address

Changes the destination address of proxy leave messages to the address of the group that is leaving.

Normally, IGMP proxy leave messages generated by the IGMP snooping module use the 224.0.0.2 multicast router address when all hosts leave the group. You should implement this configuration if your multicast applications rely on receiving reports and leave messages to start or stop multicast traffic based on the destination address of the packet.

ip igmp snooping querier ip-address

switch(config-vlan-config)# ip igmp snooping querier 172.20.52.106

Configures a snooping querier when you do not enable PIM because multicast traffic does not need to be routed. The IP address is used as the source in messages.

ip igmp snooping querier-timeout seconds

switch(config-vlan-config)# ip igmp snooping querier-timeout 300

Configures a snooping querier timeout value for IGMPv2 when you do not enable PIM because multicast traffic does not need to be routed. The default is 255 seconds.

ip igmp snooping query-interval seconds

switch(config-vlan-config)# ip igmp snooping query-interval 120

Configures a snooping query interval when you do not enable PIM because multicast traffic does not need to be routed. The default value is 125 seconds.

ip igmp snooping query-max-response-time seconds

switch(config-vlan-config)# ip igmp snooping query-max-response-time 12

Configures a snooping MRT for query messages when you do not enable PIM because multicast traffic does not need to be routed. The default value is 10 seconds.

[no] ip igmp snooping report-flood {all | interface ethernet slot/port}

switch(config-vlan-config)# ip igmp snooping report-flood interface ethernet 1/2
ip igmp snooping report-flood interface ethernet 1/3

Floods IGMP reports on all active interfaces of the VLAN or only on specific interfaces.

IGMP reports typically are forwarded to multicast router ports as detected by the IGMP snooping module and are not flooded in the VLAN. However, this command forces the switch to send IGMP reports to custom ports belonging to the VLAN in addition to the multicast router ports. You should implement this configuration if your multicast applications require the ability to view IGMP reports in order to transmit traffic.

ip igmp snooping report-policy {prefix-list | route-map} policy-name interface interface slot/port

switch(config-vlan-config)# ip igmp snooping report-policy route-map rmap interface ethernet 2/4

Configures a filter for IGMP snooping reports that is based on a prefix-list or route-map policy. The default is disabled.

ip igmp snooping startup-query-count value

switch(config-vlan-config)# ip igmp snooping startup-query-count 5

Configures snooping for a number of queries sent at startup when you do not enable PIM because multicast traffic does not need to be routed.

ip igmp snooping startup-query-interval seconds

switch(config-vlan-config)# ip igmp snooping startup-query-interval 15000

Configures a snooping query interval at startup when you do not enable PIM because multicast traffic does not need to be routed.

ip igmp snooping robustness-variable value

switch(config-vlan-config)# ip igmp snooping robustness-variable 5

Configures the robustness value for the specified VLANs. The default value is 2.

ip igmp snooping report-suppression

switch(config-vlan-config)# ip igmp snooping report-suppression

Limits the membership report traffic sent to multicast-capable routers. When you disable report suppression, all IGMP reports are sent as-is to multicast-capable routers. The default is enabled.

ip igmp snooping mrouter interface interface

switch(config-vlan-config)# ip igmp snooping mrouter interface ethernet 2/1

Configures a static connection to a multicast router. The interface to the router must be in the selected VLAN. You can specify the interface by the type and the number, such as ethernet slot/port.

ip igmp snooping static-group group-ip-addr [source source-ip-addr] interface interface

switch(config-vlan-config)# ip igmp snooping static-group 230.0.0.1 interface ethernet 2/1

Configures the Layer 2 port of a VLAN as a static member of a multicast group. You can specify the interface by the type and the number, such as ethernet slot/port.

ip igmp snooping link-local-groups-suppression

switch(config-vlan-config)# ip igmp snooping link-local-groups-suppression

Configures link-local groups suppression for the specified VLANs. The default is enabled.

ip igmp snooping v3-report-suppression

switch(config-vlan-config)# ip igmp snooping v3-report-suppression

Configures IGMPv3 report suppression and proxy reporting for the specified VLANs. The default is enabled per VLAN.

ip igmp snooping version value

switch(config-vlan-config)# ip igmp snooping version 2

Configures the IGMP version number for the specified VLANs.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional) Copies the running configuration to the startup configuration.

Verifying the IGMP Snooping Configuration

Command

Description

show ip igmp snooping [vlan vlan-id]

Displays the IGMP snooping configuration by VLAN.

show ip igmp snooping groups [source [group] | group [source]] [vlan vlan-id] [detail]

Displays IGMP snooping information about groups by VLAN.

show ip igmp snooping querier [vlan vlan-id]

Displays IGMP snooping queriers by VLAN.

show ip igmp snooping mroute [vlan vlan-id]

Displays multicast router ports by VLAN.

show ip igmp snooping explicit-tracking [vlan vlan-id]

Displays IGMP snooping explicit tracking information by VLAN.

Displaying IGMP Snooping Statistics

You can display the IGMP snooping statistics using these commands.

Command

Description

show ip igmp snooping statistics vlan

Displays IGMP snooping statistics. You can see the virtual port channel (vPC) statistics in this output.

show ip igmp snooping {report-policy | access-group} statistics [vlan vlan]

Displays detailed statistics per VLAN when IGMP snooping filters are configured.

Clearing IGMP Snooping Statistics

You can clear the IGMP snooping statistics using these commands.

Command

Description

clear ip igmp snooping statistics vlan

Clears the IGMP snooping statistics.

clear ip igmp snooping {report-policy | access-group} statistics [vlan vlan]

Clears the IGMP snooping filter statistics.

Configuration Examples for IGMP Snooping

Note

The configurations in this section apply only after you create the specified VLAN. See the Cisco Nexus 9000 Series NX-OS Layer 2 Switching Configuration Guide for information on creating VLANs.

The following example shows how to configure the IGMP snooping parameters:

config t
ip igmp snooping
vlan configuration 2
ip igmp snooping
ip igmp snooping explicit-tracking
ip igmp snooping fast-leave
ip igmp snooping last-member-query-interval 3
ip igmp snooping querier 172.20.52.106
ip igmp snooping report-suppression
ip igmp snooping mrouter interface ethernet 2/1
ip igmp snooping static-group 230.0.0.1 interface ethernet 2/1
ip igmp snooping link-local-groups-suppression
ip igmp snooping v3-report-suppression

The following example shows how to configure prefix lists and use them to filter IGMP snooping reports:

ip prefix-list plist seq 5 permit 224.1.1.1/32
ip prefix-list plist seq 10 permit 224.1.1.2/32
ip prefix-list plist seq 15 deny 224.1.1.3/32
ip prefix-list plist seq 20 deny 225.0.0.0/8 eq 32

vlan configuration 2
ip igmp snooping report-policy prefix-list plist interface Ethernet 2/2
ip igmp snooping report-policy prefix-list plist interface Ethernet 2/3

In the above example, the prefix-list permits 224.1.1.1 and 224.1.1.2 but rejects 224.1.1.3 and all the groups in the 225.0.0.0/8 range. The prefix-list is an implicit "deny" if there is no match. If you wish to permit everything else, add ip prefix-list plist seq 30 permit 224.0.0.0/4 eq 32.

The following example shows how to configure route maps and use them to filter IGMP snooping reports:

route-map rmap permit 10
match ip multicast group 224.1.1.1/32
route-map rmap permit 20
match ip multicast group 224.1.1.2/32
route-map rmap deny 30
match ip multicast group 224.1.1.3/32
route-map rmap deny 40
match ip multicast group 225.0.0.0/8

vlan configuration 2
ip igmp snooping report-policy route-map rmap interface Ethernet 2/4
ip igmp snooping report-policy route-map rmap interface Ethernet 2/5

In the above example, the route-map permits 224.1.1.1 and 224.1.1.2 but rejects 224.1.1.3 and all the groups in the 225.0.0.0/8 range. The route-map is an implicit "deny" if there is no match. If you wish to permit everything else, add route-map rmap permit 50 match ip multicast group 224.0.0.0/4.

Chapter 7. Configuring MSDP

This chapter describes how to configure Multicast Source Discovery Protocol (MSDP) on a Cisco NX-OS device.

- About MSDP

- Licensing Requirements for MSDP

- Prerequisites for MSDP

- Default Settings

- Configuring MSDP

- Verifying the MSDP Configuration

- Monitoring MSDP

- Configuration Examples for MSDP

- Related Documents

- Standards

About MSDP

You can use the Multicast Source Discovery Protocol (MSDP) to exchange multicast source information between multiple Border Gateway Protocol (BGP) enabled Protocol Independent Multicast (PIM) sparse-mode domains. In addition, MSDP can be used to create an Anycast-RP configuration to provide RP redundancy and load sharing. For information about BGP, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

When a receiver joins a group that is transmitted by a source in another domain, the rendezvous point (RP) sends PIM join messages in the direction of the source to build a shortest path tree. The designated router (DR) sends packets on the sourcetree within the source domain, which can travel through the RP in the source domain and along the branches of the sourcetree to other domains. In domains where there are receivers, RPs in those domains can be on the sourcetree. The peering relationship is conducted over a TCP connection.

The following figure shows four PIM domains. The connected RPs (routers) are called MSDP peers because they are exchanging active source information with each other. Each MSDP peer advertises its own set of multicast source information to the other peers. Source Host 2 sends the multicast data to group 224.1.1.1. On RP 6, the MSDP process learns about the source through PIM register messages and generates Source-Active (SA) messages to its MSDP peers that contain information about the sources in its domain. When RP 3 and RP 5 receive the SA messages, they forward them to their MSDP peers. When RP 5 receives the request from Host 1 for the multicast data on group 224.1.1.1, it builds a shortest path tree to the source by sending a PIM join message in the direction of Host 2 at 192.1.1.1.

MSDP Peering Between RPs in Different PIM Domains

When you configure MSDP peering between each RP, you create a full mesh. Full MSDP meshing is typically done within an autonomous system, as shown between RPs 1, 2, and 3, but not across autonomous systems. You use BGP to do loop suppression and MSDP peer-RPF to suppress looping SA messages.

Note

You do not need to configure BGP in order to use Anycast-RP (a set of RPs that can perform load balancing and failover) within a PIM domain.

Note

You can use PIM Anycast (RFC 4610) to provide the Anycast-RP function instead of MSDP.

For detailed information about MSDP, see RFC 3618.

- SA Messages and Caching

- MSDP Peer-RPF Forwarding

- MSDP Mesh Groups

SA Messages and Caching

MSDP peers exchange Source-Active (SA) messages to propagate information about active sources. SA messages contain the following information:

- Source address of the data source

- Group address that the data source uses

- IP address of the RP or the configured originator ID

When a PIM register message advertises a new source, the MSDP process reencapsulates the message in an SA message that is immediately forwarded to all MSDP peers.

The SA cache holds the information for all sources learned through SA messages. Caching reduces the join latency for new receivers of a group because the information for all known groups can be found in the cache. You can limit the number of cached source entries by configuring the SA limit peer parameter. You can limit the number of cached source entries for a specific group prefix by configuring the group limit global parameter. The SA cache is enabled by default and cannot be disabled.

The MSDP software sends SA messages for each group in the SA cache every 60 seconds or at the configured SA interval global parameter. An entry in the SA cache is removed if an SA message for that source and group is not received within the SA interval plus 3 seconds.

MSDP Peer-RPF Forwarding

MSDP peers forward the SA messages that they receive away from the originating RP. This action is called peer-RPF flooding. The router examines the BGP or MBGP routing table to determine which peer is the next hop in the direction of the originating RP of the SA message. This peer is called a reverse path forwarding (RPF) peer.

If the MSDP peer receives the same SA message from a non-RPF peer in the direction of the originating RP, it drops the message. Otherwise, it forwards the message to all its MSDP peers.

MSDP Mesh Groups

You can use MSDP mesh groups to reduce the number of SA messages that are generated by peer-RPF flooding. By configuring a peering relationship between all the routers in a mesh and then configuring a mesh group of these routers, the SA messages that originate at a peer are sent by that peer to all other peers. SA messages received by peers in the mesh are not forwarded.

A router can participate in multiple mesh groups. By default, no mesh groups are configured.

Licensing Requirements for MSDP

Product

License Requirement

Cisco NX-OS

MSDP requires an Enterprise Services license. For a complete explanation of the Cisco NX-OS licensing scheme and how to obtain and apply licenses, see the Cisco NX-OS Licensing Guide.

Prerequisites for MSDP

MSDP has the following prerequisites:

- You are logged onto the device.

- For global commands, you are in the correct virtual routing and forwarding (VRF) mode. The default configuration mode shown in the examples in this chapter applies to the default VRF.

- You configured PIM for the networks where you want to configure MSDP.

Default Settings

This table lists the default settings for MSDP parameters.

Default MSDP Parameters

Parameters

Default

Description

Peer has no description

Administrative shutdown

Peer is enabled when it is defined

MD5 password

No MD5 password is enabled

SA policy IN

All SA messages are received

SA policy OUT

All registered sources are sent in SA messages

SA limit

No limit is defined

Originator interface name

RP address of the local system

Group limit

No group limit is defined

SA interval

60 seconds

Configuring MSDP

You can establish MSDP peering by configuring the MSDP peers within each PIM domain as follows:

1. Select the routers to act as MSDP peers.

2. Enable the MSDP feature.

3. Configure the MSDP peers for each router identified in Step 1.

4. Configure the optional MSDP peer parameters for each MSDP peer.

5. Configure the optional global parameters for each MSDP peer.

6. Configure the optional mesh groups for each MSDP peer.

Note

The MSDP commands that you enter before you enable MSDP are cached and then run when MSDP is enabled. Use the ip msdp peer or ip msdp originator-id command to enable MSDP.

Note

If you are familiar with the Cisco IOS CLI, be aware that the Cisco NX-OS commands for this feature might differ from the Cisco IOS commands that you would use.

- Enabling the MSDP Feature

- Configuring MSDP Peers

- Configuring MSDP Peer Parameters

- Configuring MSDP Global Parameters

- Configuring MSDP Mesh Groups

- Restarting the MSDP Process

Enabling the MSDP Feature

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

feature msdp

Example:

switch# feature msdp

Enables the MSDP feature so that you can enter MSDP commands. By default, the MSDP feature is disabled.

Step 3

show running-configuration msdp

Example:

switch# show running-configuration msdp

(Optional)
Shows the running-configuration information for MSDP.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring MSDP Peers

You can configure an MSDP peer when you configure a peering relationship with each MSDP peer that resides either within the current PIM domain or in another PIM domain. MSDP is enabled on the router when you configure the first MSDP peering relationship.

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM and MSDP.

Ensure that you configured PIM in the domains of the routers that you will configure as MSDP peers.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip msdp peer peer-ip-address connect-source interface [remote-as as-number]

Example:

switch(config)# ip msdp peer 192.168.1.10 connect-source ethernet 2/1 remote-as 8

Configures an MSDP peer with the specified peer IP address. The software uses the source IP address of the interface for the TCP connection with the peer. The interface can take the form of type slot/port. If the AS number is the same as the local AS, then the peer is within the PIM domain; otherwise, this peer is external to the PIM domain. By default, MSDP peering is disabled.

Note:
MSDP peering is enabled when you use this command.

Step 3

Repeat Step 2 for each MSDP peering relationship by changing the peer IP address, the interface, and the AS number as appropriate.

—

Step 4

show ip msdp summary [vrf [vrf-name | all]]

Example:

switch# show ip msdp summary

(Optional)
Displays a summary of MDSP peers.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring MSDP Peer Parameters

You can configure the optional MSDP peer parameters described in this table. You configure these parameters in global configuration mode for each peer based on its IP address.

MSDP Peer Parameters

Parameter

Description

Description

Description string for the peer. By default, the peer has no description.

Administrative shutdown

Method to shut down the MSDP peer. The configuration settings are not affected by this command. You can use this parameter to allow configuration of multiple parameters to occur before making the peer active. The TCP connection with other peers is terminated by the shutdown. By default, a peer is enabled when it is defined.

MD5 password

MD5-shared password key used for authenticating the peer. By default, no MD5 password is enabled.

SA policy IN

Route-map policy for incoming SA messages. By default, all SA messages are received.

Note:   To configure route-map policies, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

SA policy OUT

Route-map policy for outgoing SA messages. By default, all registered sources are sent in SA messages.

Note:   To configure route-map policies, see the Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide.

SA limit

Number of (S, G) entries accepted from the peer and stored in the SA cache. By default, there is no limit.

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM and MSDP.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

Option

Description

ip msdp description peer-ip-address description
Example:

switch(config)# ip msdp description 192.168.1.10 peer in Engineering network

Sets a description string for the peer. By default, the peer has no description.

ip msdp shutdown peer-ip-address
Example:

switch(config)# ip msdp shutdown 192.168.1.10

Shuts down the peer. By default, the peer is enabled when it is defined.

ip msdp password peer-ip-address password
Example:

switch(config)# ip msdp password 192.168.1.10 my_md5_password

Enables an MD5 password for the peer. By default, no MD5 password is enabled.

ip msdp sa-policy peer-ip-address policy-name in
Example:

switch(config)# ip msdp sa-policy 192.168.1.10 my_incoming_sa_policy in

Enables a route-map policy for incoming SA messages. By default, all SA messages are received.

ip msdp sa-policy peer-ip-address policy-name out
Example:

switch(config)# ip msdp sa-policy 192.168.1.10 my_outgoing_sa_policy out

Enables a route-map policy for outgoing SA messages. By default, all registered sources are sent in SA messages.

ip msdp sa-limit peer-ip-address limit
Example:

switch(config)# ip msdp sa-limit 192.168.1.10 5000

Sets a limit on the number of (S, G) entries accepted from the peer. By default, there is no limit.

The following commands configure the MSDP peer parameters.

Step 3

show ip msdp peer [peer-address] [vrf [vrf-name | all]]

Example:

switch(config)# show ip msdp peer 192.168.1.10

(Optional)
Displays detailed MDSP peer information.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring MSDP Global Parameters

You can configure the optional MSDP global parameters described in this table.

MSDP Global Parameters

Parameter

Description

Originator interface name

IP address used in the RP field of an SA message entry. When Anycast RPs are used, all RPs use the same IP address. You can use this parameter to define a unique IP address for the RP of each MSDP peer. By default, the software uses the RP address of the local system.

Note:
We recommend that you use a loopback interface for the RP address.

Group limit

Maximum number of (S, G) entries that the software creates for the specified prefix. The software ignores groups when the group limit is exceeded and logs a violation. By default, no group limit is defined.

SA interval

Interval at which the software transmits Source-Active (SA) messages. The range is from 60 to 65,535 seconds. The default is 60 seconds.

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM and MSDP.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

Option

Description

ip msdp originator-id interface
Example:

switch(config)# ip msdp originator-id loopback0

Sets a description string for the peer. By default, the peer has no description.

Sets the IP address used in the RP field of an SA message entry. By default, the software uses the RP address of the local system.

Note:
We recommend that you use a loopback interface for the RP address.

ip msdp group-limit limit source source-prefix
Example:

switch(config)# ip msdp group-limit 1000 source 192.168.1.0/24

Maximum number of (S, G) entries that the software creates for the specified prefix. The software ignores groups when the group limit is exceeded and logs a violation. By default, no group limit is defined.

ip msdp sa-interval seconds
Example:

switch(config)# ip msdp sa-interval 80

Interval at which the software transmits Source-Active (SA) messages. The range is from 60 to 65,535 seconds. The default is 60 seconds.

Step 3

show ip msdp summary [vrf [ vrf-name | all]]

Example:

switch(config)# show ip msdp summary

(Optional)

Displays a summary of the MDSP configuration.

Step 4

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Configuring MSDP Mesh Groups

You can configure optional MDSP mesh groups in global configuration mode by specifying each peer in the mesh. You can configure multiple mesh groups on the same router and multiple peers per mesh group.

Before You Begin

Ensure that you have installed the Enterprise Services license and enabled PIM and MSDP.

Procedure

Command or Action

Purpose

Step 1

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 2

ip msdp mesh-group peer-ip-addr mesh-name

Example:

switch(config)# ip msdp mesh-group 192.168.1.10 my_mesh_1

Configures an MSDP mesh with the peer IP address specified. You can configure multiple meshes on the same router and multiple peers per mesh group. By default, no mesh groups are configured.

Step 3

Repeat Step 2 for each MSDP peer in the mesh by changing the peer IP address.

—

Step 4

show ip msdp mesh-group [mesh-group] [vrf [vrf-name | all]]

Example:

switch# show ip msdp mesh-group

(Optional)
Displays information about the MDSP mesh group configuration.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Restarting the MSDP Process

Before You Begin

You can restart the MSDP process and optionally flush all routes.

Procedure

Command or Action

Purpose

Step 1

restart msdp

Example:

switch# restart msdp

Restarts the MSDP process.

Step 2

configure terminal

Example:

switch# configure terminal
switch(config)#

Enters global configuration mode.

Step 3

ip msdp flush-routes

Example:

switch(config)# ip msdp flush-routes

Removes routes when the MSDP process is restarted. By default, routes are not flushed.

Step 4

show running-configuration | include flush-routes

Example:

switch(config)# show running-configuration | include flush-routes

(Optional)
Displays flush-routes configuration lines in the running configuration.

Step 5

copy running-config startup-config

Example:

switch(config)# copy running-config startup-config

(Optional)
Copies the running configuration to the startup configuration.

Verifying the MSDP Configuration

To display the MSDP configuration information, perform one of the following tasks.

Command

Description

show ip msdp count [as-number] [vrf [vrf-name | all]]

Displays MSDP (S, G) entry and group counts by the autonomous system (AS) number.

show ip msdp mesh-group [mesh-group] [vrf [vrf-name | all]]

Displays the MSDP mesh group configuration.

show ip msdp peer [peer-address] [vrf [vrf-name | all]]

Displays MSDP information for the MSDP peer.

show ip msdp rpf [rp-address] [vrf [vrf-name | all]]

Displays the next-hop AS on the BGP path to an RP address.

show ip msdp sources [vrf [vrf-name | all]]

Displays the MSDP-learned sources and violations of configured group limits.

show ip msdp summary [vrf [vrf-name | all]]

Displays a summary of the MSDP peer configuration.

Monitoring MSDP

You can display and clear MSDP statistics by using the features in this section.

- Displaying Statistics

- Clearing Statistics

Displaying Statistics

You can display MSDP statistics using these commands.

Command

Description

show ip msdp policy statistics sa-policy peer-address {in | out} [vrf [vrf-name | all]]

Displays the MSDP policy statistics for the MSDP peer.

show ip msdp {sa-cache | route} [source-address] [group-address] [vrf [vrf-name | all]] [asn-number] [peer peer-address]

Displays the MSDP SA route cache. If you specify the source address, all groups for that source are displayed. If you specify a group address, all sources for that group are displayed.

Clearing Statistics

You can clear the MSDP statistics using these commands.

Command

Description

clear ip msdp peer [peer-address] [vrf vrf-name]

Clears the TCP connection to an MSDP peer.

clear ip msdp policy statistics sa-policy peer-address {in | out} [vrf vrf-name]

Clears statistics counters for MSDP peer SA policies.

clear ip msdp statistics [peer-address] [vrf vrf-name]

Clears statistics for MSDP peers.

clear ip msdp {sa-cache | route} [group-address] [vrf [vrf-name | all]]

Clears the group entries in the SA cache.

Configuration Examples for MSDP

To configure MSDP peers, some of the optional parameters, and a mesh group, follow these steps for each MSDP peer:

1. Configure the MSDP peering relationship with other routers.

switch# configure terminal
switch(config)# ip msdp peer 192.168.1.10 connect-source ethernet 1/0 remote-as 8

2. Configure the optional peer parameters.

switch# configure terminal
switch(config)# ip msdp password 192.168.1.10 my_peer_password_AB

3. Configure the optional global parameters.

switch# configure terminal
switch(config)# ip msdp sa-interval 80

4. Configure the peers in each mesh group.

switch# configure terminal
switch(config)# ip msdp mesh-group 192.168.1.10 mesh_group_1

The following example shows how to configure a subset of the MSDP peering that is shown below.

RP 3: 192.168.3.10 (AS 7)

configure terminal
ip msdp peer 192.168.1.10 connect-source ethernet 1/1
ip msdp peer 192.168.2.10 connect-source ethernet 1/2
ip msdp peer 192.168.6.10 connect-source ethernet 1/3 remote-as 9
ip msdp password 192.168.6.10 my_peer_password_36
ip msdp sa-interval 80
ip msdp mesh-group 192.168.1.10 mesh_group_123
ip msdp mesh-group 192.168.2.10 mesh_group_123
ip msdp mesh-group 192.168.3.10 mesh_group_123

RP 5: 192.168.5.10 (AS 8)

configure terminal
ip msdp peer 192.168.4.10 connect-source ethernet 1/1
ip msdp peer 192.168.6.10 connect-source ethernet 1/2 remote-as 9
ip msdp password 192.168.6.10 my_peer_password_56
ip msdp sa-interval 80

RP 6: 192.168.6.10 (AS 9)

configure terminal
ip msdp peer 192.168.7.10 connect-source ethernet 1/1
ip msdp peer 192.168.3.10 connect-source ethernet 1/2 remote-as 7
ip msdp peer 192.168.5.10 connect-source ethernet 1/3 remote-as 8
ip msdp password 192.168.3.10 my_peer_password_36
ip msdp password 192.168.5.10 my_peer_password_56
ip msdp sa-interval 80

Related Documents

Related Topic

Document Title

Configuring MBGP

Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide

Standards

Standards

Title

RFC 4624

Multicast Source Discovery Protocol (MSDP) MIB

Appendix A. IETF RFCs for IP Multicast

This appendix contains Internet Engineering Task Force (IETF) RFCs related to IP multicast. For information about IETF RFCs, see Click Here .

- IETF RFCs for IP Multicast

IETF RFCs for IP Multicast

This table lists the RFCs related to IP multicast.

RFCs

Title

RFC 2236

Internet Group Management Protocol

RFC 2365

Administratively Scoped IP Multicast

RFC 2710

Multicast Listener Discovery (MLD) for IPv6

RFC 2858

Multiprotocol Extensions for BGP-4

RFC 3376

Internet Group Management Protocol

RFC 3446

Anycast Rendezvous Point (RP) mechanism using Protocol Independent Multicast (PIM) and Multicast Source Discovery Protocol (MSDP)

RFC 3569

An Overview of Source-Specific Multicast (SSM)

RFC 3618

Multicast Source Discovery Protocol (MSDP)

RFC 3810

Multicast Listener Discovery Version 2 (MLDv2) for IPv6

RFC 4601

Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)

RFC 4610

Anycast-RP Using Protocol Independent Multicast (PIM)

RFC 5059

Bootstrap Router (BSR) Mechanism for Protocol Independent Multicast (PIM)

RFC 5132

IP Multicast MIB

Appendix B. Configuration Limits for Cisco NX-OS Multicast

This appendix describes the configuration limits for Cisco NX-OS multicast.

- Configuration Limits

Configuration Limits

The features supported by Cisco NX-OS have maximum configuration limits. Some of the features have configurations that support limits less than the maximum limits.

The configuration limits are documented in the Cisco Nexus 9000 Series NX-OS Verified Scalability Guide.

Preface

This preface includes the following sections:

- Audience

- Document Conventions

- Related Documentation for Cisco Nexus 9000 Series Switches

- Documentation Feedback

- Obtaining Documentation and Submitting a Service Request

Audience

This publication is for network administrators who install, configure, and maintain Cisco Nexus switches.

Document Conventions

Command descriptions use the following conventions:

Convention

Description

bold

Bold text indicates the commands and keywords that you enter literally as shown.

Italic

Italic text indicates arguments for which the user supplies the values.

[x]

Square brackets enclose an optional element (keyword or argument).

[x | y]

Square brackets enclosing keywords or arguments separated by a vertical bar indicate an optional choice.

{x | y}

Braces enclosing keywords or arguments separated by a vertical bar indicate a required choice.

[x {y | z}]

Nested set of square brackets or braces indicate optional or required choices within optional or required elements. Braces and a vertical bar within square brackets indicate a required choice within an optional element.

variable

Indicates a variable for which you supply values, in context where italics cannot be used.

string

A nonquoted set of characters. Do not use quotation marks around the string or the string will include the quotation marks.

Examples use the following conventions:

Convention

Description

screen font

Terminal sessions and information the switch displays are in screen font.

boldface screen font

Information you must enter is in boldface screen font.

italic screen font

Arguments for which you supply values are in italic screen font.

< >

Nonprinting characters, such as passwords, are in angle brackets.

[ ]

Default responses to system prompts are in square brackets.

!, #

An exclamation point (!) or a pound sign (#) at the beginning of a line of code indicates a comment line.

Related Documentation for Cisco Nexus 9000 Series Switches

The entire Cisco Nexus 9000 Series switch documentation set is available at the following URL:

Click Here

Documentation Feedback

To provide technical feedback on this document, or to report an error or omission, please send your comments to nexus9k-docfeedback@cisco.com. We appreciate your feedback.

Obtaining Documentation and Submitting a Service Request

For information on obtaining documentation, using the Cisco Bug Search Tool (BST), submitting a service request, and gathering additional information, see What's New in Cisco Product Documentation at: Click Here .

Subscribe to What's New in Cisco Product Documentation, which lists all new and revised Cisco technical documentation as an RSS feed and delivers content directly to your desktop using a reader application. The RSS feeds are a free service.

THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS.

THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY.

The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB's public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California.

NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS" WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE.

IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.

This product includes cryptographic software written by Eric Young (eay@cryptsoft.com).

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. ( Click Here )

This product includes software written by Tim Hudson (tjh@cryptsoft.com).

Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL: Click Here . Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1110R)