You all might have basic understanding of the Multicast and how it works in the network along with types/ways of implementation in the Cisco/Juniper Networks, here i will will not go deep on what is the Multicast but i will brief some basic understanding of the Multicast and then we will see what is MSDP and what are the SA messages header and how it works:
Multicast is a type of communication in between the Devices along with the other two types which are Unicast and Broadcast. Multicast can be described as a one-to-many, means that the traffic/data is shared among many candidates/devices. Multicast Routing is used by the routers to set up a multicast forwarding state and to exchange the multicast information with other multicast enabled devices. They are as below:
- DVMRP ( Distance Victor Multicast Routing Protocol )
- PIM-SM ( Protocol Independence Multicast-Sparse Mode )
- PIM-DM ( Protocol Independence Multicast-Dense Mode )
Below are some useful introductions to some of the basic terms used in the Multicast environment:
- Multicast Group Address is referred to the Multicast Address
- A Group Member is the Host that express interest to receive stream from the specific group address, which is also called receiver or listener
- A Multicast Source is the host that sends the packets with the destination IP Address set to multicast Group
- A Multicast Path that the multicast use to reach the receiver is called the distribution tree
- A Source Specified Multicast (SSM) is a service model that support multicast delivery from only one specified source to its receivers
Multicast Use the Class D of IANA defined Classes for the IP addresses and the range are from 126.96.36.199 Toward 188.8.131.52, where we only have 32 bit of the subnet, but the CIDR is used for special cases.
Although MSDP is not Multicast Routing, but it has a major and very important role in the configuration of multicast infrastructure. MSDP Establish a mechanism to connect xmultiple PIM-SM domains, with MSDP each PIM-SM domain has it’s own RP and does not rely on the RP of another organization’s netowrk.
In PIM-SM, the RP is configured to serve a range of multicast groups. The RP is responsible for knowing all of the active sources of all multicast group in this range. There can be only one active RP per group. But this represents interesting challenges when there is special need for redundancy, load balancing and interdomain connectivity. To resolve this challenges MSDP came into the action.
MSDP introduce the ability for RPs to connect to one another and to exchange information about the active source in their respective PIM-SM Domains, with this capability each domain can have one or more RPs, enabling support for redundancy, load balancing and interdomain connectivity.
MSDP Peering sessions is established with the TCP Port number of 639, the higher ip address of the interface is initiating the session and sends the hello message to the other side of the peer, following are the 5 states of the MSDP Peering:
- Disabled ( MSDP Peer is not Configured )
- Inactive ( MSDP Peer is configured but not listening or connecting )
- Connect ( Active Peer attempts to connect TCP Sessions )
- Listen ( Passive Peer is configured and listening to TCP port 639 )
- Established ( TCP Session is established )
When an MSDP-speaking RP receives a PIM register message, it generates an MSDP Source-Active Message for the source-group pair and forwards the message to all of its configured MSDP Peers. The SA message contains the source-address, the group address, and the address of the RP. Additionally the encapsulated data in the register message is copied by the RP into the MSDP SA.
Subsequent Register messages for the same source-group pair do not cause the creation of other SA message, unless sufficient time has passed since the last SA was sent. More specifically the router generates another SA only if the SA hold-down timer is expired, the default value is 30 Seconds.
Upon receive of the SA message the router checks to see if the message was received from its MSDP RPF-Peer for the originator of this message. The rules to determine the RPF-Peer is different from the rule to determine PIM RPF neighbor, the process of sending the SA messages in case it was received from it’s RPF Peer to all other MDSP Peer is called Peer-RPF Flooding.
Let’s see how the SA Message Header looks like:
Below are the debrief of the above headers:
- The First bit is the Message Type Code
- The Length contains the MSDP SA Message Length in Octet, and includes everything from the Type field in the end of encapsulated data packet
- Entry-Count is the Number of Source-Group Pairs listed in the Message ( each source group pairs add 12 octet to the length of the SA Message )
- The RP Address field indicated the address of the router that created the SA, this address might not be PIM-SM RP address
- Reserved Field are all zero and are reserved for special purpose
- Sprefix length is always 32 (0x20), in which each source-group pair is encoded with its own Reserved and Sprefix Length (Source address Prefix Length) fields
- The Group Address Field encode the Group Address
- The Source Address field Encode the Source Address
- and Finally the encapsulated data packet
Above are some basic and Advance concept of Multicast / MSDP and MSDP SA Message, which i really find it useful in my SP Track and i hope it was interesting for all of the reader.