Multicast

  • Multicast address range: 224.0.0.0 to 239.255.255.255
  • Local scope address: 224.0.0.1 to 224.0.0.255. Router will never forward.
  • Global scope address: 224.0.1.0 to 238.255.255.255 (used in internet)
  • Limited/administratively scoped:  239.0.0.0 to 239.255.255.255
  • Session Description Protocol (SDP) and Session Announcement Protocol (SAP) are means to announce available sessions and assist in creating one.
  • IGMPv-1:
    • Multicast router sends multicast queries to 224.0.0.1. Host reply with membership report to multicast address they need to join.
    • Only one host sends report – Report suppression.
    • No leave mechanism.
  • IGMPv-2:
    • Group-specific membership queries.
    • Leave report. (to 224.0.0.2)
    • Querier election (when 2 routers in same domain, lower IP address is the designated Querier)
    • Query-interval response time (will be in Query packet)
    • When router receives leave message, it sends a group-specific query.
  • IGMPv-3:
    • Source-specific join.
    • Reports are sent to 224.0.0.22 rather than 224.0.0.2
  • IGMP is layer-3 protocol.
    • To make L2 switch aware: use CGMP or IGMP snooping.
  • CGMP:
    • Router –act as server. Switch act as Client.
    • Runs only on interface where PIM is enabled. CLI: “ip cgmp”
    • Once Router receives any IGMP msg, it forwards to known L2 multicast MAC- 0100.0cdd.dddd
  • IGMP snooping
  • Used Multicast Address:
    • 224.0.0.1 – All host
    • 224.0.0.2 – Multicast routers.
    • 224.0.0.5- OSPF
    • 224.0.0.6- OSPF DR/BDR
    • 224.0.0.9 – RIPv2
    • 224.0.0.10- EIGRP
    • 224.0.0.22 – IGMPv3
    • 224.0.1.40 – Auto-RP
    • 224.0.1.39 – RP announce
    • 224.0.0.13 – PIM
  • Multicast MAC:
    • 01:00:5e:00:00:00 to 01:00:5e:7f:ff:ff
    • First 25 bits constant. Remaining 23 bits from IP address.
    • 32 MC IP address to maps to same MAC address.
  • Distribution Tree:
    • A tree for each multicast group.
    • Source tree:  (S,G)
      • SRC is the root and braches out to receivers.
      • A separate tree is built for every source S sending to group G.
    • Shared tree: same for all SRCs in a multicast group. Root is RP. Multicast packets are sent to RP which forward that towards receivers. (*,G)
    • Reverse Path Forwarding (RPF):
      • Packets are forwarded away from SRC.
      • Ensures a router can get a packet from only one upstream port (towards SRC) and forwards to downstream ports (away from SRC).
      • PIM:
        • PIM-Sparse Mode:
          • “Pull” model to send the MC traffic.
          • Uses “Shared Tree” and hence needs RP.
          • Receivers send explicit Join.
        • PIM- Dense Mode:
          • “Push” method to send the traffic. MC packets flood to entire network. Router “prune” if they don’t need that traffic.
          • Uses Source tree.
          • Traffic received via RPF port from SRC is flooded to all PM-DM neighbors.
          • Prune messages are sent via RPF interface to upstream router to stop sending multicast packet.
          • Prune messages may also sent via non-RPF interface to stop MC packets if that is not the shortest path to SRC.
          • Flood-Prune process repeats for every 3 mins as prune message expires in 3 mins..
        • PIM-Spare Dense Mode:
          • Router operate as sparse mode for groups for which RPs are known. Operates as Dense mode for groups which has no RP.
          • supports automatic discovery of RPs for each multicast source
          • Cisco recommended mode.
  • Commands:
    • ip multicast-routing – Global config mode
    • ip pim sparse-dense-mode – Interface config mode
    • ip pim send-rp-announce interface type scope ttl group-list access-list – Global config
      • Router to be RP. Send auto-RP to 224.0.1.39 announcing, he is the RP for groups given in “group-list”
      • Address of interface provided will be the RP address.
    • ip pim send-rp-discovery interface type scope ttl– global configuration command
      • Makes router as RP-mapping agent
      • Listens to 224.0.1.39 and sends the group-RP mapping to 224.0.1.40
      • Other routers listen to 224.0.1.40 discovers the RP.
    • ip pim spt-threshold {rate | infinity} [group-list access-list]global configuration command
      • To set when router switches from shared tree to source tree.
      • If the source sends at rate equal or greater than “rate”, PIM join is triggered towards source to build source tree.
    • ip igmp join-group group-address –  interface configuration command
    • ip igmp static-group group-address —  interface configuration command
  • SHOW COMMANDS:
    • show ip mroute [group-address] [summary] [count] [active kbps]
    • show ip pim interface [type number] [count]
    • show ip pim neighbor [type number]
    • mrinfo [hostname | address]—Displays information about multicast routers that are peering with the local router (if no address is specified) or with the specified router
    • show ip pim rp [group-name | group-address | mapping]
    • show ip rpf {address | name}
    • show ip igmp interface [type number]
    • show ip igmp groups [group-address | type number]
  • SNOOPING COMMANDS:
    • show multicast group [igmp]
    • show multicast router [igmp]
    • show igmp statistics vlan-id
  • IGMP Membership query will be sent to 224.0.0.1 with multicast IP field = 0.0.0.0 periodically. (General query)
  • Membership Report was periodically sent to 224.0.1.40 (implies PIM enabled) by router.
  • Membership leave will be sent to 224.0.0.2 (for V2)
  • After receiving the leave, the Querier perform group-specific query twice with time-out period of 1 sec for each. So, if there is no report for 2 secs, the group will be removed.
  • Membership query packet type: 0x11
  • V1 Membership report packet type: 0x12
  • V2 Membership report packet type: 0x16
  • Leave group packet type: 0x17
  • PIMv2 hello sent to 224.0.0.13 every 30 secs—“ip pim query-interval”
  • PIM hold timer – 3.5 times the hello timer. = 105 sec
  • PIMv2 protocol ID: 103 / TTL =1
  • PIMv1 protocol ID: 2 (IGMP) with destination IP address: 224.0.0.2
  • PIMv2 message types:
    • hello : 0
    • Register (used in PIM-SM only) : 1
    • Register-Stop (used in PIM-SM only) : 2
    • Join/Prune: 3
    • Bootstrap (used in PIM-SM only) : 4
    • Assert :5
    • Graft (used in PIM-DM only) : 6
    • Graft-Ack (used in PIM-DM only): 7
    • Candidate-RP-Advertisement (used in PIM-SM only) : 8
  • Bootstrap messages originated by BSR every 60 secs and contains “RP-set”.
  • When a PIMv2 router peers with a PIMv1 router, it automatically sets that interface to PIMv1.
  • PIM-DM message:
    • Hello
    • Join/Prune – Join/prune to a tree
    • Graft – to join a tree which is already pruned
    • “Graft-ack” – ACK to graft send within 3 sec of “Graft” msg.
    • Assert – used to select “Forwarder” in multi-access environ.
  • SPT- shortest path tree (Source tree). RPT – Rendezvous point tree (shared tree)
  • Timers for (S,G)  — Uptime / Expiration time (3.5 min)
    • Expiration time- if there is no MC packets for this time, the entry will be removed.
  • Timers for outgoing interface: —- uptime/expire
    • Expire – Prune expire timer.
  • RPF neighbor – 0.0.0.0 for (S,G) entry – implies the SRC is connected to this router.
  • When a source’s RPF router changes, PIM-DM first sends a Prune message to the old router. A Graft message is then sent to the new RPF router to build the new tree.
  • PIM-DR:
    • As IGMPv-1 has no Querier, it has to relay on PIM to select a DR- highest IP address in the subnet. DR hold timer- 105 sec
  • PIM forwarder:
    • In Multi-access environ, when 2 routers receive packets from upstream neighbor, forwarder is elected.
    • ‘Assert’ msg is used to elect.
    • Election process:
      • Lowest AD via source IP is learned
      • If tie, Lowest Metric to reach source IP
      • If tie, highest IP in the network.
  • PIM-SM: (7 PIMv2 messages)
    • Hello
    • Bootstrap – sent by BSR to announce “RP set”. DES IP: 224.0.0.13
    • Candidate-RP-advertisement – Unicast from C-RP to BSR
    • Join/Prune
    • Assert
    • Register – first packet from SRC to RP
    • Register-stop – RP sent this message after SPT is created from RP to SRC DR.
  • Selecting RP:
    • Manual static configuration
      • Not recommended for larger environ
    • Open-standard ‘Bootstrap protocol’
      • C-BSR and C-RP are configured, each configured with priority and IP address.
      • Select BSR from C-BSR: Election process
        • Highest priority (default -0)
        • If tie, highest IP address
        • BSR sends “RP-set” which has RP/s-Group mapping
        • If there are many RPs to a group, election process
          • Highest priority (lowest priority number)
          • If tie, Highest Hash output
          • If tie, highest IP address.
    • Auto-RP protocol
      • Cisco-proprietary
      • ‘RP-mapping’ agent in place of BSR
      • Agent send “RP-group” mapping instead of “RP-set”
      • Uses 224.0.1.39 — C-RP send “RP-announce” message every 60 sec to this address.
      • Uses 224.0.1.40 —  RP agent send “RP-group” message via “RP-discovery” message
  • When the upstream router receives the Join/Prune, one of four situations may occur:
    • The router is not the RP, and it is on the shared tree. The router adds the interface on which it received the Join/Prune to the outgoing interface list for the group.
    • The router is not the RP, and it is not on the tree. The router creates a (*, G) entry and sends its own Join/Prune upstream toward the RP.
    • The router is the RP, and it has an entry for the group. The router adds the interface on which it received the Join/Prune to the outgoing interface list for the group.
    • The router is the RP, and it has no entry for the group. The router creates a (*, G) entry and adds the receiving interface to the outgoing interface list for the group.
  • Source registration:
    • SRC-DR sends the first multicast packet to RP (unicast) encapsulated inside “Register” message.
    • RP sends “Register-stop” if:
      • SPT is formed between SRC DR and RP. (S,G) entry
      • No members/downstream routers available for that group.
  • PIM-SM also try to form SPT from receiver to source (might be via RP)
    • Shifting from RPT to SPT can be controlled via “ip pim spt-threshold <kbps/infinity> CLI.
    • By default, receiver will try to form SPT after its first MC packet received
  • Flags associated with an entry in mroute table:
Flags Description
D-Dense Entry is operating in dense mode.
S-Sparse Entry is operating in sparse mode.
C-Connected A member of the multicast group is present on the directly connected interface.
L-Local The router itself is a member of the group
P-Pruned The route has been pruned
R-RP-bit set Indicates that the (S, G) entry is pointing toward the RP. This is typically prune state along the shared tree for a particular source.
F-Register flag Indicates that the software is registering for a multicast source.
T-SPT-bit set Indicates that packets have been received on the shortest path tree.
J-Join SPT For (*, G) entries, indicates that the rate of traffic flowing down the shared tree is exceeding the SPT-Threshold set for the group. (The default SPT-Threshold setting is 0 Kbps.) When the J-Join SPT flag is set, the next (S, G) packet received down the shared tree triggers an (S, G) join in the direction of the source, thereby causing the router join the source tree.For (S, G) entries, indicates that the entry was created because the SPT-Threshold for the group was exceeded. When the J-Join SPT flag is set for (S, G) entries, the router monitors the traffic rate on the source tree and attempts to switch back to the shared tree for this source if the traffic rate on the source tree falls below the group’s SPT-Threshold for more than 1 minute.
  • Timer table:
Timers Comments Default value CLI  /Comment
IGMP query The frequency at which the router queries for group members on the interface 60 sec ip igmp query-interval <seconds>
IGMP query response The Max-Response-Time value advertised in IGMP query messages, telling hosts how long the router waits before deleting the group. The command is valid only for IGMPv2. 10 sec ip igmp query-max-response-time <seconds>
IGMP query timeout The time the router waits to hear a query from another router before taking over as the querier. (2x query interval) 120 sec ip igmp query-timeout <seconds>
PIM hello interval Changes the interval at which PIMv2 Hello or PIMv1 Router Query messages are sent 30 secs ip pim query-interval <seconds>
PIM hold-down timer. Time that a router waits to hear a Hello message from a PIM neighbor before declaring the neighbor dead 105 sec The holdtime is 3.5 times the Hello interval.
PIM-SM join/leave interval Changes the interval at which sparse-mode Join-Prune messages are sent 60 sec ip pim message-interval <seconds>
Join expire/hold-down  timer If a PIM-SM router does not hear a Join/Prune for a known group from a downstream neighbor within the holdtime, it prunes the downstream router from the outgoing interface list of the group entry 3 mins Thrice the join/leave interval.
(S,G) expiration time 2.5 mins (150 sec)
Prune Expiration time In PIM-DM, after receiving prune message, expiration time starts 3.5 mins (210 sec)
Prune override In multi-access environ, the upstream router starts this timer to stop the packets after receiving prune 3 sec
Register-suppression timer When the timer expires, the router again sends its multicast packets to the RP in Register messages. 60 sec. 5 seconds before this occurs, the DR sends a Register message with a flag set, called the Null-Register bit, and with no encapsulated packets. If this message triggers a Register Stop from the RP, the RS timer is reset.
Bootstrap message BSR sends “RP-set” every 60 sec to all routers. 60 sec
Bootstrap timer BS wait timer 130 sec When a router is configured as a candidate BSR, it listens for any BS message for 130 sec, after which it declares itself as BSR

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s