MSDP

Multicast Source Discovery Protocol

MSDP-speaking routers in a PIM-SM domain have MSDP peering relationship with MSDP peers in another domain. The peering relationship is made up of a TCP connection in which control information is exchanged. Each domain has one or more connections to this virtual topology.

When a PIM-SM RP learns about a new multicast source within its own domain from a standard PIM register mechanism, it encapsulates the first data packet in an MSDP source-active message and sends it to all MSDP peers.

The source-active message is flooded (after an RPF check) by each peer to its MSDP peers until the source-active message reaches every MSDP router in the interconnected networks. If the receiving MSDP peer is an RP, and the RP has a (*.G) entry (receiver) for the group, the RP creates state for the source and joins to the shortest path tree for the source. The encapsulated data is de-encapsulated and forwarded down the shared tree of that RP. When the packet is received by the last hop router of the receiver, the last hop router also may join the shortest path tree to the source.

The MSDP speaker periodically sends source-active messages that include all sources.

Anycast RP for MSDP

MSDP is a mechanism that allows rendezvous points to share information about active sources. When RPs in remote domains hear about the active sources, they can pass on that information to the local receivers and multicast data can be forwarded between the domains. MSDP allows each domain to maintain an independent RP that does not rely on other domains but enables RPs to forward traffic between domains. PIM-SM is used to forward the traffic between the multicast domains.

Using PIM-SM, multicast sources and receivers register with their local RP by the closest multicast router. The RP maintains information about the sources and receivers for any particular group. RPs in other domains do not have any knowledge about sources located in other domains.

MSDP is required to provide inter-domain multicast services using Any Source Multicast (ASM). Anycast RP for MSDP enables fast convergence when an MSDP/PIM PR router fails by allowing receivers and sources to rendezvous at the closest RP.

MSDP procedure

When an RP in a PIM-SM domain first learns of a new sender, for example, by PIM register messages, it constructs a source-active (SA) message and sends it to its MSDP peers. The SA message contains the following fields:

  • source address of the data source

  • group address the data source sends to

  • IP address of the RP

Note: An RP that is not a designated router on a shared network does not originate SAs for directly-connected sources on that shared network. It only originates in response to receiving register messages from the designated router.

Each MSDP peer receives and forwards the message away from the RP address in a peer-RPF flooding fashion. The notion of peer-RPF flooding is with respect to forwarding SA messages. The Multicast RPF Routing Information Base (MRIB) is examined to determine which peer toward the originating RP of the SA message is selected. Such a peer is called an RPF peer.

If the MSDP peer receives the SA from a non-RPF peer toward the originating RP, it drops the message. Otherwise, it forwards the message to all its MSDP peers (except the one from which it received the SA message).

When an MSDP peer which is also an RP for its own domain receives a new SA message, it determines if there are any group members within the domain interested in any group described by an (S,G) entry within the SA message. That is, the RP checks for a (*,G) entry with a non-empty outgoing interface list. This implies that some system in the domain is interested in the group. In this case, the RP triggers an (S,G) join event toward the data source as if a join/prune message was received addressed to the RP. This sets up a branch of the source-tree to this domain. Subsequent data packets arrive at the RP by this tree branch and are forwarded down the shared-tree inside the domain. If leaf routers choose to join the source-tree they have the option to do so according to existing PIM-SM conventions. If an RP in a domain receives a PIM join message for a new group G, the RP must trigger an (S,G) join event for each active (S,G) for that group in its SA cache.

This procedure is called flood-and-join because if any RP is not interested in the group, the SA message can be ignored, otherwise, they join a distribution tree.

MSDP peering scenarios

draft-ietf-mboned-msdp-deploy-nn.txt, Multicast Source Discovery Protocol (MSDP) Deployment Scenarios, describes how protocols work together to provide intra- and inter-domain ASM service.

Inter-domain peering:

  • peering between PIM border routers (single-hop peering)

  • peering between non-border routers (multi-hop peering)

  • MSDP peering without BGP

  • MSDP peering between mesh groups

  • MSDP peering at a multicast exchange

Intra-domain peering:

  • peering between routers configured for both MSDP and MBGP

  • MSDP peer is not BGP peer (meaning, no BGP peer)

MSDP peer groups

MSDP peer groups are typically created when multiple peers have a set of common operational parameters. Group parameters not specifically configured are inherited from the global level.

MSDP mesh groups

MSDP mesh groups are used to reduce source active flooding primarily in intra-domain configurations. When a number of speakers in an MSDP domain are fully meshed they can be configured as a mesh group. The originator of the source active message forwards the message to all members of the mesh group. Because of this, forwarding the SA between non-originating members of the mesh group is not necessary.

MSDP routing policies

MSDP routing policies allow for filtering of inbound and, or outbound active source messages. Policies can be configured at different levels:

  • global level

    Global level applies to all peers.

  • group level

    Group level applies to all peers in the peer-group.

  • neighbor level

    Neighbor level applies only to a specified peer.

The most specific level is used. If multiple policy names are specified, the policies are evaluated in the order they are specified. The first policy that matches is applied. If no policy is applied source active messages are passed.

Match conditions include:

  • neighbor

    Matches on a neighbor address is the source address in the IP header of the source active message.

  • route filter

    Matches on a multicast group address embedded in the source active message.

  • source address filter

    Matches on a multicast source address embedded in the source active message.

Multicast in virtual private networks

Draft Rosen

RFC 4364, BGP/MPLS IP Virtual Private Networks (VPNs), describes a method of providing a VPN service. A VPN provides secure connections to the network, allowing more efficient service to remote users without compromising the security of firewalls. The Rosen draft specifies the protocols and procedures which must be implemented for a service provider to provide a unicast VPN. The draft extends that specification by describing the protocols and procedures that a service provider must implement to support multicast traffic in a VPN, assuming that PIM [PIMv2] is the multicast routing protocol used within the VPN, and the SP network can provide PIM.

IGMP is not supported for receivers or senders directly attached to the PE.

For more information, see the ‟Virtual Private Routed Network Service” section of the 7450 ESS, 7750 SR, 7950 XRS, and VSR Layer 3 Services Guide: IES and VPRN.

Configuring MSDP with CLI

This section provides information to configure MSDP using the command line interface.

Basic MSDP configuration

Perform the following basic MSDP configuration tasks:

  • Enable MSDP (required).

  • Configure peer.

  • Configure local address.

Configuring MSDP parameters

Use the following commands to configure basic MSDP parameters:

config>router# msdp
        — peer ip-address
            — active-source-limit number
            — authentication-key [authentication-key | hash-key] [hash | hash2 | custom]
            — default-peer
            — export policy-name [policy-name]
            — import policy-name [policy-name]
            — local-address ip-address
            — receive-msdp-msg-rate number interval seconds [threshold threshold]
            — no shutdown
        — no shutdown

Use the following CLI syntax to configure MSDP parameters.

config>router>msdp# peer 10.20.1.1
    — config>router>msdp>peer# local-address 10.20.1.6
    — config>router>msdp>peer# no shutdown
    — config>router>msdp>peer# exit
    — config>router>msdp# no shutdown
    — config>router>msdp# 

The following example displays the MSDP configuration:

ALA-48>config>router>msdp# info
-------------------------------------------
         peer 10.20.1.1
             local-address 10.20.1.6
         exit
-------------------------------------------
ALA-48>config>router>msdp# 

Disabling MSDP

Use the following CLI syntax to disable PIM.

config>router# 
        — msdp
            — shutdown

The following example displays the command usage to disable multicast:

config>router#
    — config>router>msdp# shutdown
    — config>router>msdp# exit

The following example displays the configuration output:

A:LAX>config>router# info
----------------------------------------------
...
#------------------------------------------
echo "MSDP Configuration"
#--------------------------------------------------
        msdp
            shutdown
            peer 10.20.1.1
                local-address 10.20.1.6
            exit
            group "test"
                active-source-limit 50000
                receive-msdp-msg-rate 100 interval 300 threshold 5000
                export "LDP-export"
                import "LDP-import"
                local-address 10.10.10.103
                mode mesh-group
                peer 10.10.10.104
                exit
            exit
        exit
#--------------------------------------------------