Why Using Multicast in your network?
• Better bandwidth utilization
• Less router/host processing
• Used when received address unknown
• Used to deliver a fee to a group of receivers
How does the Multicast work?
• Send a copy of a packet addressed to a group of receivers (multicast group)
• Multicast Routers replicate and forward the packet where the receivers might exist
• Receivers express their interest in multicast traffic by sending control messages to the routers
• Enhanced Efficiency
• Optimize Performance
• Distributed Applications
• Foundation for a whole range of new services
• Multicast is UDP based
• Best Effort Delivery
• No congestion avoidance
• Out of sequence delivery
• One to Many: The single source send to a multicast group , typically there is no feedback from the receivers and audio/video distribution
• Many to Many
• Many to One
Example of Multicast Applications:
• SDR: Session Directory is a tool that participants to view advertised multicast sessions and launch appropriate multicast applications to join an existing session.
• VAT(Video Audio Tool): Allow Audio Conferencing to multiple users
• VIC(Video Conferencing): Video Conferencing allow multiple participants to share the video and audio
• WB (White Board): Allow multiples users to share the text and graphical environment.
• H.321 – Multimedia over ISDN
• H.323 – Multimedia over LAN
• H.324 – Multimedia over Analog
• G.7xx – Voice Codecs
• H.26x – Video Codecs
• T.12x – Whiteboarding
• RFC 1889/1890 – RTP (Real Time Protocol) Provide the sequence and timestamping and syncronization.
• CRTP use about 5% of control
• First Hop
• Last Hop
• Network functions:
• Multicast Source
- Build appropriate tree
- Forward according to the tree
- Prevent loop
- Maintain distribution tree and state of leaf segment
• Multicast Receiver
• Source doesn’t have protocol
• Routing Protocol Intradomain: DMVRP, PIM, MOSPF, CBT
• Routing Protocol Interdomain: MBGP, MSDP
• Receiver use IGMP (Internet Group Management Protocol)
IP Multicast Addressing
• Range 220.127.116.11 through 18.104.22.168
• Reserved use by IANA 22.214.171.124 through 126.96.36.199
• Global scope addresses are 188.8.131.52 through 184.108.40.206
- 220.127.116.11 – All Multicast systems on subnet (All hosts)
- 18.104.22.168 – All routers on subnet (All Multicast Routers)
- 22.214.171.124 – All DMVRP routers
- 126.96.36.199 – All PIM v2 routers
- 188.8.131.52 – All OSPF routers
- 184.108.40.206 – All OSPF DR
- 220.127.116.11 and 18.104.22.168 used by unicast routing protocols
• Administrative and private domain addresses are 22.214.171.124 through 126.96.36.199
• Static Group Addressing for Interdomain Multicast
233.x.x.0 – 233.x.x.255 (Where the AS number is inserted in the middle of the 2 octets.
233/8 where the AS is inserted in the 2 middle octets.
The final octet is available for group assignment
Example of [FONT='Times New Roman','serif']Glop bit representation[/FONT] in AS 789
[FONT='Times New Roman','serif']So 0×315 is AS 789[/FONT]
[FONT='Times New Roman','serif']Our Multicast Range is from 233.3.21.001 to 188.8.131.52[/FONT]
[FONT='Times New Roman','serif']03 in hex == 2 in dec[/FONT]
[FONT='Times New Roman','serif']15 in hex == 21 in dec[/FONT]
[FONT='Times New Roman','serif']The address used as the router ID would be: 184.108.40.206/24[/FONT]
[FONT='Times New Roman','serif']The IANA should allocate 233/8. The remaining 24 bits will be administered as described in RFC1797:[/FONT]
[FONT='Times New Roman','serif']Consider, for exampe, AS 5662. Written in binary, left padded with 0s, we get 0001011000011110 Mapping the high order octet to the second octet of the address, and the low order octect to the the third octet, we get 233.22.30/24.[/FONT]
[FONT='Times New Roman','serif']RFC 2770 proposes that the 220.127.116.11/8 address range be reserved for statically defined addresses by organizations that already have an AS number reserved. The AS number of the domain is embedded into the second and third octets of the 18.104.22.168/8 range.[/FONT]
[FONT='Times New Roman','serif']For example, the AS 62010 is written in hex as F23A. Separating out the two octets F2 and 3A, we get 242 and 58 in decimal. This would give us a subnet of 22.214.171.124 that would be globally reserved for AS 62010 to use. [/FONT]
• Source Specific Multicast Addressing Group address range for interdomain : 126.96.36.199/8
• Dynamic Group Address Assignment
Multicast Sessions – Directory Services
- MASC (Multicast Address Set Claim)
• Learning about Multicast Sessions
- The application may join predefined group
- Some type of directory services
- Some URL received by e-mail for example
• Methods of Session Announced
- Use the SDR at the sender and receiver side.
- The SDR at the sender side is used to create a new session to avoid address conflicts.
- The SRD at the receiver side is used to learn about available sessions and groups
• Multicast Forwarding , the Multicast Routing is concern where the packet come from.
• RPF (Reverse Path Forward) – The packet is never sent back out to the RPF interface.
• TTL Threshold – If the TTL is bigger than the current TTL coming, the packet is dropped.
• Scoping Address – If the packet doesn’t match the address, the packet it isn’t passed either way.
Multicast Distribution Trees and Protocol Types
- SPT (Shortest Path Trees) : Notation (S,G) S=IP address of Sender, G=Multicast Group (The tree is per source)
- Share Distribution Tree ( also called Rendezvous Point - RP ) : Notation (*,G) *=any source, G=Multicast Group
- Dense Mode : Push Model is implemented. Initial traffic flooded to all Branches, and Branches without receivers get pruned and after timeout the traffic is flooded again.
- Sparse Mode : Pull Model is implemented. An explicit JOIN Model. The last router pull the traffic from the “meeting point”(RP) or from the Source. Branches without receivers never get traffic.
Intradomain Multicast routing Protocols:
PIM DENSE MODE
• Routing Protocol Independent
• Flood and Prune Mechanism
• Appropriate for small implementation and pilot networks
• PIM-DM Assert Mechanism is used to shut off the duplicate flows onto the same network
• Easy configuration
• Complex Assert Mechanism
• Inefficient flood and prune mechanism (time out of prune is 3 minutes)
PIM SPARSE MODE
• Protocol Independent
• Support both Source and Share Trees
• Based on pull model
• Use RP (Rendezvous Point)
• Bi-directional mode
• Traffic only sent down joined branches
• Basis for interdomain Multicast Routing
• Defined in RFC2362
DVMRP (Distance Vector Multicast Routing Protocol)
• Similar to RIP
• Infinity = 32 hops
• Subnet Mask is route Advertisement
• Push Model
• Uses DVMRP route table for RPF check
• The IGMP type code for DVMRP is 0×13
• The DVMRP is carried in the IGMP v.2
• The DVMRP build the Source Tree from the Truncated Broadcast Tree (TBT)
• The definition of TBT : The TBT represent the shortest path rooted from the source to all routers in the network.
• When we have two path to get in the same network, the lowest IP Address will tie break and avoid duplicated path.
• The PRUNE also is used to select the best path when we have two ways or when we don’t have any traffic from the receivers.
MOSPF (Multicast Extension of OSPF)
- Slow convergence
- Big multicast Routing Table
- Max number of hops 32
- Flood and prune behavior
- Scaling problems
• The MOSPF use the new type of OSPF LSA called Group-Membership LSA.
• The Group-Membership LSA does not travel between areas . Intra Area Traffic.
• Inter Area Traffic
CBT (Core Based Trees)
- OSPF Only
- Multicast traffic not flooded everywhere
- Scaling problem (run the Dijkstra Algorithm in every multicast)
- Not appropriate for large number of senders
- Not appropriate for dynamic group membership
• Bi directional
• Efficiency using tree
• Interoperate with DVMRP
• Core can became a bottle neck
Interdomain Multicast routing Protocols:
• MBGP (Multicast BGP)
• MSDP (Multicast Source Discovery Protocol) is used to distribute the information on the existence of active sources inside one PIM-SM domain to other domain.
Reporting Group Membership
• IGMP v1 RFC 1112 08/89 Many problems
• IGMP v2 RFC 2236 11/97
• Query send the 188.8.131.52 to all hosts every 60 seconds
• Report sent by host to join a specific group.
• Type of IGMP packet could be Query 0×1 and Report 0×2
• Report Suppression is used to save bandwidth, it means that only one station per Multicast group send a report and the other stations suppress their report to answer the query.
• Leave IGMP v1 – There is no special method to leave the Multicast Group, we have only to have to silence the host or no send the report for the query and the group timeout.
IGMPv1 Vs IGMPv2
• Group Specific Query: This version allows the IGMP to query only the group instead query all hosts
• Leave Group Message: Allow the hosts to tell the router that they are leaving the group.
• Query Election Mechanism: An IGMP query router is elected and the election is based on the lowest IP address. Only Query Router send the Queries
• Query Internal Response Time: The response time is sent together with the query in order to report know the time the host have before the query timeout.
• The IGMPv2 is Backward compatible to IGMPv1
• IGMPv2 Packet: 0×11 Membership Query, 0×12 Membership Report IGMPv1, 0×16 Membership Report IGMPv2
• Router IGMPv1 and Host IGMPv2: The host MUST send IGMPv1 report in order to the Router understand.
• Router IGMPv2 and Host IGMPv1: The router MUST be able to recognize that there are IGMPv1 Hosts, the Router MUST ignore any leave process for Group Specific Query, because the Host will not understand the IGMPv2 timeout sent by the router (Must set the time out Timer as nothing)
• All the routers in the same segment MUST run the same IGMP version, and the default IGMP version of the IOS is version 2.
IGMPv3 is draft standard
• Enable host to listen only to a specific send group
• Allow the routers in Sparse Mode to build source distribution trees directly (avoiding RPs)
IP Multicasting Layer 2
• The mapping of IP Multicast to FDDI or Ethernet MAC address (01-00-5e) is mapping the lowest 23 bits and we lost 5 bits, because we have 28 bits in the Multicast mask.
• 32:1 Overlapping
• The mapping of IP Multicast to Token Ring Functional Address (c0-00-00-04-00-00) or Broadcast Address (ff-ff-ff-ff-ff-ff)
Layer 2 Frame Switching Solution
• CGMP (Cisco Group Management Protocol) : Simple, Proprietary , Run between Router and Switches, and as soon the Router receive the IGMP, the router inform the Switch.
• IGMP Snooping : Complex, Standardized, proprietary implementations – Switches only. The Switch build the MAC table by intercepting the IGMP messages
• GMRP (GARP Multicast Registration Protocol) : Standardized, not widely deployed –Switches and hosts . IEEE 802.1p GARP
• RGMP (Router-port Group Management Protocol) : Simple, proprietary, routers and switches
PIM DENSE MODE
• Graft Message: Revert the Prune command, instead wait until next flood
• Assert Message: Which router should continue forward in the LAN or should stop.
• Prune Message: When data arrives in a non RPF, the prune message is sent to shut off the flow off traffic.
• PIM V2 Packet use the IP TYPE Packet 103
• Mayor components of (S,G) entry
- PIM Packet Header
- PIM Hello are sent every 30 seconds to All PIM Routers (184.108.40.206)
- PIM Join/Prune
- PIM Graft/Graft Ack
- PIM Assert
Meaning of T, P, C and L flags?
- Incoming interface (non RPF)
- List of Outgoing Interface (OIL)
• T = SPT
• P = Pruned
• C = Direct connected
• L = Router is a Group Member
Frequently Asked Questions
Q1: What is the difference between pruning point to point link compare to multi access network?
A1: P2P the prune take effect immediately and multi-access take 3 seconds per router
Q2: Why do I need the GRAFT Ack packet?
A2: If we do not receive the ACK,we will not know if the sender stop send or if the GRAFT packet was lost
Q3: What is the purpose of the State Refresh in PIM DM who originate it?
A3: The state refresh message originated by first hop sender allows routers to eliminate periodic reflood in case of no group members in the network.
How to check PIM Configuration : show ip pim interface, show ip pim neighbors and mrinfo
How to check the path toward : show ip rpf
How to check which groups are in the leaf router: show ip igmp groups
How to check the multicast forward state: show ip mroute
How to monitor PIM activities: debug ip pim
How to debug multicast forward state: debug ip mrouting
Which debug is needed take care to enable in high volume traffic: debug ip mpacket
PIM SPARSE MODE PROTOCOL RFC2362
• PIM SM v2 Packets:
• B- Directional PIM Mode for any number sources sources Only one (*,G) is created in this mode.
- PIM Hello every 30 seconds (220.127.116.11)
- PIM Join/Prune
- PIM Register/Register-Stop
- Rendezvous Point Announced
- RP reachability (Cisco)
How to check if the Multicast is sparse or dense mode? Show ip mroute
Debug RP? Show ip pim rp, show ip pim rp mapping , debug ip pim
The RP announcement: Manually Configured, Auto-RP and Bootstrap Mechanism
RP and Distribution of RP
• Manually Configured the RP
• Auto RP
• PIM v2 Bootstrap Mechanism
- Used in PIM v1, Cisco proprietary implementation which allow redundancy RP and only require configuration in the Candidates RPs.
- The Auto RP has two parts: RPs Candidates and Mapping Agents
• PIM v2 Candidates : A single BSR (Boot Strap Router) is elected and can have multiples backups. Sent RP-Announce-Interval every 60 seconds.
• The RPs candidate send the message to the BSR (every 60 seconds) and the BSR maintain the update off all C-RPs. The RPs candidate also learn the IP address of the BSR
• Debug PIM BSR: show ip pim bsr, debug ip pim bsr, show ip pim rp mapping, show ip pim bsr-router
• To prevent the wrong Router to become an accept-rp function is used. This function verify the join messages, check groups and RP combination against Access-List.
• When there is no known RP in the group, the group MUST operate in dense mode.
• A to decrease the load on the RPs:
Auto RP Mechanism
- Increasing the CPU and Memory
- Switching to SPT, prevent the traffic going to the RP
- Using Anycast-RP , mechanism to share the load between logicalRPs and several physical RPs. This mechanism can be used in manual configuration of the RPs
- It is recommended to use the sparse mode in this mode
- The C-RP with higher IP address is selected as actual RP.
- If the Mapping Agent is not receiving the C-RP advertisements, probably the problem is that the TTL is too low from the C-RP to reach the Mapping agent
- The deny all statement is to force all groups to operate in dense mode even if some C-RPs announce the group as sparse.
Controlling RP Information
- The highest IP address is used to select the BSR candidate, when all BSRs have the same priority.
- The C-RPs learn from the active BSR and send their candidacy information in unicast manner to the active BSR.
- In case of failure, the others C-RP can assume.
- The same hash mask length has to be configured throughout the network to ensure the same RP is selected
Chúc các bạn vui !!!
- The Auto-RP group must operate in dense mode and the value of the TTL has to be set to the value at least equal to the diameter of the domain. To prevent the Auto-RP from leaking outside the domain the ip multicast boundary has to be configured for Auto-RP.
- The BSR messages are stopped by ip pim bsr-border domain.
- IP PIM ACCEPT-RP command can have 3 options: to control the group mode, to filter join messages and to filter register messages
- The IP PIM ACCEPT REGISTER command is used on the RP to prevent the first hop router to register on the RP