Published On: August 3ʳᵈ, 2020 06:05

IP Multicast Routing Configuration Guide, Cisco IOS XE Amsterdam 17.3.x (Catalyst 9500 Switches)

Prerequisites for Basic IP Multicast Routing

The following are the prerequisites for configuring basic IP multicast routing:

  • You must configure the PIM version and the PIM mode in order to perform IP multicast routing. The switch populates its multicast routing table and forwards multicast packets it receives from its directly connected LANs according to the mode setting. You can configure an interface to be in the PIM dense mode, sparse mode, or sparse-dense mode.

  • Enabling PIM on an interface also enables IGMP operation on that interface. (To participate in IP multicasting, the multicast hosts, routers, and multilayer device must have IGMP operating. )

    If you enable PIM on multiple interfaces, when most of these interfaces are not on the outgoing interface list, and IGMP snooping is disabled, the outgoing interface might not be able to sustain line rate for multicast traffic because of the extra replication.

Restrictions for Basic IP Multicast Routing

The following are the restrictions for IP multicast routing:

    Information About Basic IP Multicast Routing

    IP multicasting is an efficient way to use network resources, especially for bandwidth-intensive services such as audio and video. IP multicast routing enables a host (source) to send packets to a group of hosts (receivers) anywhere within the IP network by using a special form of IP address called the IP multicast group address.

    The sending host inserts the multicast group address into the IP destination address field of the packet, and IP multicast routers and multilayer devices forward incoming IP multicast packets out all interfaces that lead to members of the multicast group. Any host, regardless of whether it is a member of a group, can send to a group. However, only the members of a group receive the message.

    Multicast Forwarding Information Base Overview

    The device uses the Multicast Forwarding Information Base (MFIB) architecture and the Multicast Routing Information Base (MRIB) for IP multicast.

    The MFIB architecture provides both modularity and separation between the multicast control plane (Protocol Independent Multicast [PIM] and Internet Group Management Protocol [IGMP]) and the multicast forwarding plane (MFIB). This architecture is used in Cisco IOS IPv6 multicast implementations.

    MFIB itself is a multicast routing protocol independent forwarding engine; that is, it does not depend on PIM or any other multicast routing protocol. It is responsible for:

    • Forwarding multicast packets

    • Registering with the MRIB to learn the entry and interface flags set by the control plane

    • Handling data-driven events that must be sent to the control plane

    • Maintaining counts, rates, and bytes of received, dropped, and forwarded multicast packets

    The MRIB is the communication channel between MRIB clients. Examples of MRIB clients are PIM, IGMP, the multicast routing (mroute) table, and the MFIB.

    Default IP Multicast Routing Configuration

    This table displays the default IP multicast routing configuration.

    Table 1. Default IP Multicast Routing Configuration

    Feature

    Default Setting

    Multicast routing

    Disabled on all interfaces.

    PIM version

    Version 2.

    PIM mode

    No mode is defined.

    PIM stub routing

    None configured.

    PIM RP address

    None configured.

    PIM domain border

    Disabled.

    PIM multicast boundary

    None.

    Candidate BSRs

    Disabled.

    Candidate RPs

    Disabled.

    Shortest-path tree threshold rate

    0 kb/s.

    PIM router query message interval

    30 seconds.

    How to Configure Basic IP Multicast Routing

    This section provides information about configuring basic IP multicast routing.

    Configuring Basic IP Multicast Routing

    By default, multicast routing is disabled, and there is no default mode setting.

    This procedure is required.

    Before you begin

    You must configure the PIM version and the PIM mode. The switch populates its multicast routing table and forwards multicast packets it receives from its directly connected LANs according to the mode setting.

    In populating the multicast routing table, dense-mode interfaces are always added to the table. Sparse-mode interfaces are added to the table only when periodic join messages are received from downstream devices or when there is a directly connected member on the interface. When forwarding from a LAN, sparse-mode operation occurs if there is an RP known for the group. If so, the packets are encapsulated and sent toward the RP. When no RP is known, the packet is flooded in a dense-mode fashion. If the multicast traffic from a specific source is sufficient, the receiver’s first-hop router might send join messages toward the source to build a source-based distribution tree.

    SUMMARY STEPS

    1. enable
    2. configure terminal
    3. interface interface-id
    4. ip pim {dense-mode | sparse-mode | sparse-dense-mode}
    5. end
    6. show running-config
    7. copy running-config startup-config

    DETAILED STEPS

      Command or Action Purpose
    Step 1

    enable

    Example:

    
    Device> enable
    
    
    

    Enables privileged EXEC mode.

    Enter your password, if prompted.

    Step 2

    configure terminal

    Example:

    
    Device# configure terminal
    
    
    

    Enters global configuration mode.

    Step 3

    interface interface-id

    Example:

    
    Device(config)# interface 
    gigabitethernet 1/0/1
    
    
    

    Specifies the Layer 3 interface on which you want to enable multicast routing, and enters interface configuration mode.

    The specified interface must be one of the following:

    • A routed port—A physical port that has been configured as a Layer 3 port by entering the no switchport interface configuration command. You will also need to enable IP PIM sparse-dense-mode on the interface, and join the interface as a statically connected member to an IGMP static group.

    • An SVI—A VLAN interface created by using the interface vlan vlan-id global configuration command. You will also need to enable IP PIM sparse-dense-mode on the VLAN, join the VLAN as a statically connected member to an IGMP static group, and then enable IGMP snooping on the VLAN, the IGMP static group, and physical interface.

    These interfaces must have IP addresses assigned to them.

    Step 4

    ip pim {dense-mode | sparse-mode | sparse-dense-mode}

    Example:

    
    Device(config-if)# ip pim 
    sparse-dense-mode
    
    
    

    Enables a PIM mode on the interface.

    By default, no mode is configured.

    The keywords have these meanings:

    • dense-mode —Enables dense mode of operation.

    • sparse-mode —Enables sparse mode of operation. If you configure sparse mode, you must also configure an RP.

    • sparse-dense-mode —Causes the interface to be treated in the mode in which the group belongs. Sparse-dense mode is the recommended setting.

    Note 

    To disable PIM on an interface, use the no ip pim interface configuration command.

    Step 5

    end

    Example:

    
    Device(config-if)# end
    
    
    

    Returns to privileged EXEC mode.

    Step 6

    show running-config

    Example:

    
    Device# show running-config 
    
    
    

    Verifies your entries.

    Step 7

    copy running-config startup-config

    Example:

    
    Device# copy running-config startup-config 
    
    
    

    (Optional) Saves your entries in the configuration file.

    Configuring IP Multicast Forwarding

    You can use the following procedure to configure IPv4 Multicast Forwarding Information Base (MFIB) interrupt-level IP multicast forwarding of incoming packets or outgoing packets on the device.


    Note

    After you have enabled IP multicast routing by using the ip multicast-routing command, IPv4 multicast forwarding is enabled. Because IPv4 multicast forwarding is enabled by default, you can use the no form of the ip mfib command to disable IPv4 multicast forwarding.


    SUMMARY STEPS

    1. enable
    2. configure terminal
    3. ip mfib
    4. exit
    5. show running-config
    6. copy running-config startup-config

    DETAILED STEPS

      Command or Action Purpose
    Step 1

    enable

    Example:

    Device> enable
    

    Enables privileged EXEC mode.

    Enter your password, if prompted.

    Step 2

    configure terminal

    Example:

    Device# configure terminal
    

    Enters global configuration mode.

    Step 3

    ip mfib

    Example:

    Device(config)# ip mfib
    

    Enables IP multicast forwarding.

    Step 4

    exit

    Example:

    Device(config)# exit
    

    Returns to privileged EXEC mode.

    Step 5

    show running-config

    Example:

    Device# show running-config
    

    Verifies your entries.

    Step 6

    copy running-config startup-config

    Example:

    Device# copy running-config startup-config
    

    (Optional) Saves your entries in the configuration file.

    Configuring a Static Multicast Route (mroute)

    • Static mroutes are used to calculate RPF information, not to forward traffic.

    • Static mroutes cannot be redistributed.

    Static mroutes are strictly local to the device on which they are defined. Because Protocol Independent Multicast (PIM) does not have its own routing protocol, there is no mechanism to distribute static mroutes throughout the network. Consequently, the administration of static mroutes tends to be more complicated than the administration of unicast static routes.

    When static mroutes are configured, they are stored on the device in a separate table referred to as the static mroute table. When configured, the ip mroute command enters a static mroute into the static mroute table for the source address or source address range specified for the source-address and mask arguments. Sources that match the source address or that fall in the source address range specified for the source-address argument will RPF to either the interface associated with the IP address specified for the rpf-address argument or the local interface on the device specified for the interface-type and interface-number arguments. If an IP address is specified for the rpf-address argument, a recursive lookup is done from the unicast routing table on this address to find the directly connected neighbor.

    If there are multiple static mroutes configured, the device performs a longest-match lookup of the mroute table. When the mroute with the longest match (of the source-address) is found, the search terminates and the information in the matching static mroute is used. The order in which the static mroutes are configured is not important.

    The administrative distance of an mroute may be specified for the optional distance argument. If a value is not specified for the distance argument, the distance of the mroute defaults to zero. If the static mroute has the same distance as another RPF source, the static mroute will take precedence. There are only two exceptions to this rule: directly connected routes and the default unicast route.

    SUMMARY STEPS

    1. enable
    2. configure terminal
    3. ip mroute [vrf vrf-name] source-address mask { fallback-lookup {global | vrf vrf-name }[ protocol ] {rpf-address | interface-type interface-number}} [distance]
    4. exit
    5. show running-config
    6. copy running-config startup-config

    DETAILED STEPS

      Command or Action Purpose
    Step 1

    enable

    Example:

    Device> enable
    

    Enables privileged EXEC mode.

    Enter your password, if prompted.

    Step 2

    configure terminal

    Example:

    Device# configure terminal
    

    Enters global configuration mode.

    Step 3

    ip mroute [vrf vrf-name] source-address mask { fallback-lookup {global | vrf vrf-name }[ protocol ] {rpf-address | interface-type interface-number}} [distance]

    Example:

    Device(config)# ip mroute 10.1.1.1 255.255.255.255 10.2.2.2
    

    The source IP address 10.1.1.1 is configured to be reachable through the interface associated with IP address 10.2.2.2.

    Step 4

    exit

    Example:

    Device(config)# exit
    

    Returns to privileged EXEC mode.

    Step 5

    show running-config

    Example:

    Device# show running-config
    

    (Optional) Verifies your entries.

    Step 6

    copy running-config startup-config

    Example:

    Device# copy running-config startup-config
    

    (Optional) Saves your entries in the configuration file.

    Configuring Optional IP Multicast Routing Features

    This section provides information about configuringg optional IP multicast routing features.

    Defining the IP Multicast Boundary

    You define a multicast boundary to prevent Auto-RP messages from entering the PIM domain. You create an access list to deny packets destined for 224.0.1.39 and 224.0.1.40, which carry Auto-RP information.

    This procedure is optional.

    SUMMARY STEPS

    1. enable
    2. configure terminal
    3. access-list access-list-number deny source [source-wildcard]
    4. interface interface-id
    5. ip multicast boundary access-list-number
    6. end
    7. show running-config
    8. copy running-config startup-config

    DETAILED STEPS

      Command or Action Purpose
    Step 1

    enable

    Example:
    Device> enable
    

    Enables privileged EXEC mode.

    • Enter your password if prompted.

    Step 2

    configure terminal

    Example:
    Device# configure terminal
    

    Enters global configuration mode.

    Step 3

    access-list access-list-number deny source [source-wildcard]

    Example:
    Device(config)# 
    access-list 12 deny 224.0.1.39
    access-list 12 deny 224.0.1.40
    

    Creates a standard access list, repeating the command as many times as necessary.

    • For access-list-number , the range is 1 to 99.

    • The deny keyword denies access if the conditions are matched.

    • For source , enter multicast addresses 224.0.1.39 and 224.0.1.40, which carry Auto-RP information.

    • (Optional) For source-wildcard , enter the wildcard bits in dotted decimal notation to be applied to the source. Place ones in the bit positions that you want to ignore.

    The access list is always terminated by an implicit deny statement for everything.

    Step 4

    interface interface-id

    Example:
    Device(config)# interface gigabitethernet 1/0/1
    

    Specifies the interface to be configured, and enters interface configuration mode.

    The specified interface must be one of the following:

    • A routed port—A physical port that has been configured as a Layer 3 port by entering the no switchport interface configuration command.

    • An SVI—A VLAN interface created by using the interface vlan vlan-id global configuration command.

    These interfaces must have IP addresses assigned to them.

    Step 5

    ip multicast boundary access-list-number

    Example:
    Device(config-if)# ip multicast boundary 12
    

    Configures the boundary, specifying the access list you created in Step 2.

    Step 6

    end

    Example:
    Device(config)# end
    

    Returns to privileged EXEC mode.

    Step 7

    show running-config

    Example:
    Device# show running-config
    

    Verifies your entries.

    Step 8

    copy running-config startup-config

    Example:
    Device# copy running-config startup-config
    

    (Optional) Saves your entries in the configuration file.

    Configuring sdr Listener Support

    This section provides information about configuring sdr listener support.

    Enabling sdr Listener Support

    By default, the device does not listen to session directory advertisements. This procedure is optional.

    SUMMARY STEPS

    1. enable
    2. configure terminal
    3. interface interface-id
    4. ip sap listen
    5. end
    6. show running-config
    7. copy running-config startup-config

    DETAILED STEPS

      Command or Action Purpose
    Step 1

    enable

    Example:
    Device> enable
    

    Enables privileged EXEC mode.

    Enter your password, if prompted.

    Step 2

    configure terminal

    Example:
    Device# configure terminal
    

    Enters global configuration mode.

    Step 3

    interface interface-id

    Example:
    Device(config)# interface gigabitethernet 1/0/1
    

    Specifies the interface to be enabled for sdr, and enters interface configuration mode.

    The specified interface must be one of the following:

    • A routed port—A physical port that has been configured as a Layer 3 port by entering the no switchport interface configuration command. You will also need to enable IP PIM sparse-dense-mode on the interface, and join the interface as a statically connected member to an IGMP static group. For a configuration example, see Example: Interface Configuration as a Routed Port.

    • An SVI—A VLAN interface created by using the interface vlan vlan-id global configuration command. You will also need to enable IP PIM sparse-dense-mode on the VLAN, join the VLAN as a statically connected member to an IGMP static group, and then enable IGMP snooping on the VLAN, the IGMP static group, and physical interface. For a configuration example, see Example: Interface Configuration as an SVI.

    These interfaces must have IP addresses assigned to them.

    Step 4

    ip sap listen

    Example:
    Device(config-if)# ip sap listen
    

    Enables the device software to listen to session directory announcements.

    Step 5

    end

    Example:
    Device(config-if)# end
    

    Returns to privileged EXEC mode.

    Step 6

    show running-config

    Example:
    Device# show running-config
    

    Verifies your entries.

    Step 7

    copy running-config startup-config

    Example:
    Device# copy running-config startup-config
    

    (Optional) Saves your entries in the configuration file.

    Limiting How Long an sdr Cache Entry Exists

    By default, entries are never deleted from the sdr cache. You can limit how long the entry remains active so that if a source stops advertising SAP information, old advertisements are not unnecessarily kept.

    This procedure is optional.

    SUMMARY STEPS

    1. enable
    2. configure terminal
    3. ip sap cache-timeout minutes
    4. end
    5. show running-config
    6. show ip sap
    7. copy running-config startup-config

    DETAILED STEPS

      Command or Action Purpose
    Step 1

    enable

    Example:
    Device> enable
    

    Enables privileged EXEC mode.

    Enter your password, if prompted.

    Step 2

    configure terminal

    Example:
    Device# configure terminal
    

    Enters global configuration mode.

    Step 3

    ip sap cache-timeout minutes

    Example:
    Device(config)# ip sap cache-timeout 30
    

    Limits how long a Session Announcement Protocol (SAP) cache entry stays active in the cache.

    By default, entries are never deleted from the cache.

    For minutes , the range is 1 to 1440 minutes (24 hours).

    Step 4

    end

    Example:
    Device(config)# end
    

    Returns to privileged EXEC mode.

    Step 5

    show running-config

    Example:
    Device# show running-config
    

    Verifies your entries.

    Step 6

    show ip sap

    Example:
    Device# show ip sap
    

    Displays the SAP cache.

    Step 7

    copy running-config startup-config

    Example:
    Device# copy running-config startup-config
    

    (Optional) Saves your entries in the configuration file.

    Monitoring and Maintaining Basic IP Multicast Routing

    Clearing Caches, Tables, and Databases

    You can remove all contents of a particular cache, table, or database. Clearing a cache, table, or database might be necessary when the contents of the particular structure are or suspected to be invalid.

    You can use any of the privileged EXEC commands in the following table to clear IP multicast caches, tables, and databases.

    Table 2. Commands for Clearing Caches, Tables, and Databases

    Command

    Purpose

    clear ip igmp group {group [ hostname | IP address] | vrf name group [ hostname | IP address] }

    Deletes entries from the IGMP cache.

    clear ip mfib { counters [group | source] | global counters [group | source] | vrf * }

    Clears all active IPv4 Multicast Forwarding Information Base (MFIB) traffic counters.

    clear ip mrm {status-report [ source ] }

    IP multicast routing clear commands.

    clear ip mroute { * | [hostname | IP address] | vrf name group [ hostname | IP address] }

    Deletes entries from the IP multicast routing table.

    clear ip msdp { peer | sa-cache | statistics | vrf }

    Clears the Multicast Source Discovery Protocol (MSDP) cache.

    clear ip multicast { limit | redundancy statistics }

    Clears the IP multicast information.

    clear ip pim { df [ int | rp rp address ] | interface | rp-mapping [rp address] | vrf vpn name { df | interface | rp-mapping }

    Clears the PIM cache.

    clear ip sap [group-address | session-name]

    Deletes the Session Directory Protocol Version 2 cache or an sdr cache entry.

    Displaying System and Network Statistics

    You can display specific statistics, such as the contents of IP routing tables, caches, and databases.


    Note

    This release does not support per-route statistics.


    You can display information to learn resource usage and solve network problems. You can also display information about node reachability and discover the routing path that packets of your device are taking through the network.

    You can use any of the privileged EXEC commands in the following table to display various routing statistics.

    Table 3. Commands for Displaying System and Network Statistics

    Command

    Purpose

    ping [group-name | group-address]

    Sends an ICMP Echo Request to a multicast group address.

    show ip igmp filter

    Displays IGMP filter information.

    show ip igmp groups [group-name|group-address|type-number]

    Displays the multicast groups that are directly connected to the device and that were learned through IGMP.

    show ip igmp interface [type number]

    Displays multicast-related information about an interface.

    show ip igmp profile [ profile_number]

    Displays IGMP profile information.

    show ip igmp ssm-mapping [ hostname/IP address ]

    Displays IGMP SSM mapping information.

    show ip igmp static-group {class-map [ interface [ type ] ]

    Displays static group information.

    show ip igmp membership [ name/group address | all | tracked ]

    Displays IGMP membership information for forwarding.

    show ip igmp vrf

    Displays the selected VPN Routing/Forwarding instance by name.

    show ip mfib [ type number ]

    Displays the IP multicast forwarding information base.

    show ip mrib { client | route | vrf }

    Displays the multicast routing information base.

    show ip mrm { interface | manager | status-report }

    Displays the IP multicast routing monitor information.

    show ip mroute [group-name | group-address] [source] [ count | interface | proxy | pruned | summary | verbose]

    Displays the contents of the IP multicast routing table.

    show ip msdp { count | peer | rpf-peer | sa-cache | summary | vrf }

    Displays the Multicast Source Discovery Protocol (MSDP) information.

    show ip multicast [ interface | limit | mpls | redundancy | vrf ]

    Displays global multicast information.

    show ip pim all-vrfs { tunnel }

    Display all VRFs.

    show ip pim autorp

    Display global auto-RP information.

    show ip pim boundary [ type number ]

    Displays boundary information.

    show ip pim bsr-router

    Display bootstrap router information (version 2).

    show ip pim interface [type number] [count | detail | df | stats ]

    Displays information about interfaces configured for PIM. This command is available in all software images.

    show ip pim neighbor [type number]

    Lists the PIM neighbors discovered by the device. This command is available in all software images.

    show ip pim mdt [ bgp ]

    Displays multicast tunnel information.

    show ip pim rp [group-name | group-address]

    Displays the RP routers associated with a sparse-mode multicast group. This command is available in all software images.

    show ip pim rp-hash [group-name | group-address]

    Displays the RP to be chosen based upon the group selected.

    show ip pim tunnel [ tunnel | verbose ]

    Displays the registered tunnels.

    show ip pim vrf name

    Displays VPN routing and forwarding instances.

    show ip rpf {source-address | name}

    Displays how the device is doing Reverse-Path Forwarding (that is, from the unicast routing table, DVMRP routing table, or static mroutes).

    Command parameters include:

    • Host name or IP address —IP name or group address.

    • Select —Group-based VRF select information.

    • vrf —Selects VPN Routing/Forwarding instance.

    show ip sap [group | session-name | detail]

    Displays the Session Announcement Protocol (SAP) Version 2 cache.

    Command parameters include:

    • A.B.C.D —IP group address.

    • WORD —Session name (in double quotes).

    • detail —Session details.

    Configuration Examples for Basic IP Multicast Routing

    This section provides configuration examples for Basic IP Multicast Routing.

    Example: Configuring an IP Multicast Boundary

    This example shows how to set up a boundary for all administratively-scoped addresses:

    
    Device(config)# access-list 1 deny 239.0.0.0 0.255.255.255
    Device(config)# access-list 1 permit 224.0.0.0 15.255.255.255
    Device(config)# interface gigabitethernet1/0/1
    Device(config-if)# ip multicast boundary 1
    
    
    

    Example: Responding to mrinfo Requests

    The software answers mrinfo requests sent by mrouted systems and Cisco routers and multilayer devices. The software returns information about neighbors through DVMRP tunnels and all the routed interfaces. This information includes the metric (always set to 1), the configured TTL threshold, the status of the interface, and various flags. You can also use the mrinfo privileged EXEC command to query the router or device itself, as in this example:

    
    Device# mrinfo
      171.69.214.27 (mm1-7kd.cisco.com) [version cisco 11.1] [flags: PMS]:
      171.69.214.27 -> 171.69.214.26 (mm1-r7kb.cisco.com) [1/0/pim/querier]
      171.69.214.27 -> 171.69.214.25 (mm1-45a.cisco.com) [1/0/pim/querier]
      171.69.214.33 -> 171.69.214.34 (mm1-45c.cisco.com) [1/0/pim]
      171.69.214.137 -> 0.0.0.0 [1/0/pim/querier/down/leaf]
      171.69.214.203 -> 0.0.0.0 [1/0/pim/querier/down/leaf]
      171.69.214.18 -> 171.69.214.20 (mm1-45e.cisco.com) [1/0/pim]
      171.69.214.18 -> 171.69.214.19 (mm1-45c.cisco.com) [1/0/pim]
      171.69.214.18 -> 171.69.214.17 (mm1-45a.cisco.com) [1/0/pim]
    
    
    

    Additional References for Basic IP Multicast Routing

    Related Documents

    Related Topic Document Title

    For complete syntax and usage information for the commands used in this chapter.

    See the IP Multicast Routing Commands section of the Command Reference (Catalyst 9500 Series Switches)

    Cisco IOS commands

    Cisco IOS Master Commands List, All Releases

    Feature History and Information for Basic IP Multicast Routing

    The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

    Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to https://www.cisco.com/go/cfn. An account on Cisco.com is not required.

    Table 4. Feature Information for Basic IP Multicast Routing

    Feature Name

    Release

    Modification

    Basic IP Multicast Routing

    Cisco IOS XE Everest 16.5.1a

    IP Multicast is an efficient way to use network resources, especially for bandwidth-intensive services such as audio and video. IP multicast routing enables a host (source) to send packets to a group of hosts (receivers) anywhere within the IP network by using a special form of IP address called the IP multicast group address.