connecting to the ip multicast world
DESCRIPTION
Connecting to the IP Multicast World. David Mitchell NCNE, NLANR, NCAR, and the Pittsburgh Supercomputing Center [email protected]. Agenda. What Is Multicast Multicast Protocols Multicast Configurations Troubleshooting Futures Useful Links. What Is Multicast. Unicast is one to one - PowerPoint PPT PresentationTRANSCRIPT
1
Connecting to the IP Connecting to the IP Multicast WorldMulticast World
Connecting to the IP Connecting to the IP Multicast WorldMulticast World
David MitchellDavid Mitchell
NCNE, NLANR, NCAR, and the NCNE, NLANR, NCAR, and the Pittsburgh Supercomputing Pittsburgh Supercomputing
CenterCenter
[email protected]@ncne.org
2
AgendaAgenda
• What Is Multicast
• Multicast Protocols
• Multicast Configurations
• Troubleshooting
• Futures
• Useful Links
3
What Is MulticastWhat Is Multicast
• Unicast is one to one– traffic is sent from a single source to a single
destination
• Multicast is one to many– traffic is sent from a single source to a “group”
address
4
Server
Router
Unicast
Server
Router
Multicast
Unicast vs. MulticastUnicast vs. Multicast
5
Why MulticastWhy Multicast
• More efficient method of sending the same data to lots of hosts– Distributing a video stream to multiple viewers
• Allows unique distributed protocols– clients can announce services or perform queries
in a distributed fashion ala Appletalk’s “Chooser”
6
Multicast Disadvantages
• Best Effort DeliveryBest Effort Delivery: Drops are to be expected. Multicast applications should not expect reliable delivery of data and should be designed accordingly. Reliable Multicast is still an area for much research. Expect to see more developments in this area.
• No Congestion AvoidanceNo Congestion Avoidance: Lack of TCP windowing and “slow-start” mechanisms can result in network congestion. If possible, Multicast applications should attempt to detect and avoid congestion conditions.
• DuplicatesDuplicates: Some multicast protocol mechanisms (e.g. Asserts, Registers and SPT Transitions) result in the occasional generation of duplicate packets. Multicast applications should be designed to expect occasional duplicate packets.
• Out of Order DeliveryOut of Order Delivery : Some protocol mechanisms may also result in out of order delivery of packets.
Multicast Is UDP Based!!!
7
AgendaAgenda
• What Is Multicast
• Multicast Protocols
• Multicast Configurations
• Troubleshooting
• Futures
• Useful Links
8
Multicast ProtocolsMulticast Protocols
• Multicast Addressing Basics
• IGMP
• PIM
• MSDP
• MBGP
9
• IP Multicast Group Addresses– 224.0.0.0–239.255.255.255– Class “D” Address Space
• High order bits of 1st Octet = “1110”
• Reserved Link-local Addresses– 224.0.0.0–224.0.0.255– Transmitted with TTL = 1– Examples:
• 224.0.0.1 All systems on this subnet• 224.0.0.2 All routers on this subnet• 224.0.0.4 DVMRP routers• 224.0.0.5 OSPF routers• 224.0.0.13 PIMv2 Routers
Multicast Addressing Multicast Addressing
10
• Administratively Scoped Addresses– 239.0.0.0–239.255.255.255
– Private address space• Similar to RFC1918 unicast addresses
• Not used for global Internet traffic
• Used to limit “scope” of multicast traffic
• Same addresses may be in use at different locations for different multicast sessions
– Examples• Site-local scope: 239.253.0.0/16
• Organization-local scope: 239.192.0.0/14
Multicast Addressing Multicast Addressing
11
32 Bits
28 Bits
25 Bits 23 Bits
48 Bits
01-00-5e-7f-00-0101-00-5e-7f-00-01
1110
5 BitsLost
Multicast AddressingMulticast Addressing
IP Multicast MAC Address Mapping(FDDI and Ethernet)
239.255.0.1239.255.0.1
12
224.1.1.1224.129.1.1225.1.1.1225.129.1.1 . . .238.1.1.1238.129.1.1239.1.1.1239.129.1.1
0x0100.5E01.0101
1 - Multicast MAC Address(FDDI and Ethernet)
32 - IP Multicast Addresses
Multicast AddressingMulticast Addressing
Be Aware of the 32:1 Address OverlapBe Aware of the 32:1 Address Overlap
IP Multicast MAC Address Mapping(FDDI & Ethernet)
13
Multicast Addressing Multicast Addressing
• Dynamic Group Address Assignment– Historically accomplished using SDR application
• Sessions/groups announced over well-known multicast groups
• Address collisions detected and resolved at session creation time
• Has problems scaling
– Future dynamic techniques under consideration• Multicast Address Set-Claim (MASC)
– Hierarchical, dynamic address allocation scheme– Extremely complex garbage-collection problem. – Long ways off
• MADCAP– Similar to DHCP– Need application and host stack support
14
Multicast Addressing Multicast Addressing
• Static Group Address Assignment (new)– Temporary method to meet immediate needs
– Group range: 233.0.0.0 - 233.255.255.255• Your AS number is inserted in middle two octets
• Remaining low-order octet used for group assignment
– Defined in IETF draft• “draft-ietf-mboned-glop-addressing-00.txt”
15
Multicast ProtocolsMulticast Protocols
• Multicast Addressing Basics
• IGMP
• PIM
• MSDP
• MBGP
16
• Routers solicit group membership from directly connected hosts
• RFC 1112 specifies version 1 of IGMP Supported on Windows 95
• RFC 2236 specifies version 2 of IGMP Supported on latest service pack for Windows and most UNIX systems
• IGMP version 3 is specified in IETF draft draft-ietf-idmr-igmp-v3-03.txt
• How hosts tell routers about group membership
Host-Router Signaling: IGMPHost-Router Signaling: IGMP
17
H3
• Host sends IGMP Report to join group
H3224.1.1.1
Report
H1 H2
Joining a Group
Host-Router Signaling: IGMPHost-Router Signaling: IGMP
18
• Router sends periodic Queries to 224.0.0.1
Query
• One member per group per subnet reports
224.1.1.1
Report
• Other members suppress reports
224.1.1.1
SuppressedX
224.1.1.1
SuppressedX
H1 H2 H3
Maintaining a Group
Host-Router Signaling: IGMPHost-Router Signaling: IGMP
19
• Host quietly leaves group
H1 H3H3 #1#1
• Router sends 3 General Queries (60 secs apart)
General Query
#2#2
• No IGMP Report for the group is received• Group times out (Worst case delay ~= 3 minutes)
H2
Leaving a Group (IGMPv1)
Host-Router Signaling: IGMPHost-Router Signaling: IGMP
20
• Host sends Leave message to 224.0.02
H1 H3H3
Leave to224.0.0.2
224.1.1.1
#1#1
• Router sends Group specific query to 224.1.1.1
Group SpecificQuery to 224.1.1.1#2#2
• No IGMP Report is received within ~3 seconds• Group 224.1.1.1 times out
H2
Leaving a Group (IGMPv2)
Host-Router Signaling: IGMPHost-Router Signaling: IGMP
21
• draft-ietf-idmr-igmp-v3-??.txt
• Early implementations now in beta– Enables hosts to listen only to a specified
subset of the hosts sending to the group
IGMPv3IGMPv3
22
Source = 1.1.1.1Group = 224.1.1.1
H1 - Member of 224.1.1.1
R1
R3
R2
Source = 2.2.2.2Group = 224.1.1.1
• H1 wants to receive from S = 1.1.1.1 but not from S = 2.2.2.2
• With IGMP, specific sources can be pruned back - S = 2.2.2.2 in this case
IGMPv3:Join 1.1.1.1, 224.1.1.1Leave 2.2.2.2, 224.1.1.1
IGMPv3IGMPv3
23
Multicast ProtocolsMulticast Protocols
• Multicast Addressing Basics
• IGMP
• PIM
• MSDP
• MBGP
24
PIMPIM
• Distribution Trees
• Neighbor Discovery
• PIM-DM
• PIM-SM
25
Shortest Path or Source Distribution Tree
Receiver 1
B
E
A D F
Source 1Notation: (S, G) S = Source G = Group
C
Receiver 2
Source 2
Multicast Distribution TreesMulticast Distribution Trees
26
Receiver 1
B
E
A D F
Source 1Notation: (S, G) S = Source G = Group
C
Receiver 2
Source 2
Multicast Distribution TreesMulticast Distribution Trees
Shortest Path or Source Distribution Tree
27
Multicast Distribution Trees
Shared Distribution Tree
Receiver 1
B
E
A D F
Notation: (*, G) * = All Sources G = Group
C
Receiver 2
(RP) PIM Rendezvous Point
Shared Tree
(RP)
28
Multicast Distribution Trees
Shared Distribution Tree
Receiver 1
B
E
A F
Source 1 Notation: (*, G) * = All Sources G = Group
C
Receiver 2
Source 2
(RP) PIM Rendezvous Point
Shared Tree
Source Tree
D (RP)
29
Multicast Distribution Trees
• Source or Shortest Path treesUses more memory O(S x G) but you get optimal paths from source to all receivers; minimizes delay
• Shared treesUses less memory O(G) but you may get sub-optimal paths from source to all receivers; may introduce extra delay
CharacteristicsCharacteristics of Distribution Trees
30
171.68.37.2PIM Router 2
Highest IP Address electedas “DR” (Designated Router)
PIM Hello
PIM Router 1171.68.37.1
PIM Hello
PIM Neighbor DiscoveryPIM Neighbor Discovery
• PIMv2 Hellos are periodically multicast to the “All-PIM-Routers” (224.0.0.13) group address. (Default = 30 seconds)
– Note: PIMv1 multicasts PIM Query messages to the “All-Routers” (224.0.0.2) group address.
• If the “DR” times-out, a new “DR” is elected.
• The “DR” is responsible for sending all Joins and Register messages for any receivers or senders on the network.
31
wan-gw8>show ip pim neighborPIM Neighbor TableNeighbor Address Interface Uptime Expires Mode171.68.0.70 FastEthernet0 2w1d 00:01:24 Dense 171.68.0.91 FastEthernet0 2w6d 00:01:01 Dense (DR)171.68.0.82 FastEthernet0 7w0d 00:01:14 Dense 171.68.0.86 FastEthernet0 7w0d 00:01:13 Dense 171.68.0.80 FastEthernet0 7w0d 00:01:02 Dense 171.68.28.70 Serial2.31 22:47:11 00:01:16 Dense 171.68.28.50 Serial2.33 22:47:22 00:01:08 Dense 171.68.27.74 Serial2.36 22:47:07 00:01:21 Dense 171.68.28.170 Serial0.70 1d04h 00:01:06 Dense 171.68.27.2 Serial1.51 1w4d 00:01:25 Dense 171.68.28.110 Serial3.56 1d04h 00:01:20 Dense 171.68.28.58 Serial3.102 12:53:25 00:01:03 Dense
PIM Neighbor DiscoveryPIM Neighbor Discovery
32
PIM-DM — EvaluationPIM-DM — Evaluation
• Most effective for small pilot networks
• Advantages:– Easy to configure—two commands
– Simple flood and prune mechanism
• Potential issues...– Inefficient flood and prune behavior
– Complex Assert mechanism
– Mixed control and data planes• Results in (S, G) state in every router in the network
• Can result in non-deterministic topological behaviors
– No support for shared trees
33
PIM-SM OverviewPIM-SM Overview
• Explicit join model–Receivers join to the Rendezvous Point (RP)
–Senders register with the RP
–Data flows down the shared tree and goes only to places that need the data from the sources
–Last hop routers can join source tree if the data rate warrants by sending joins to the source
• RPF check depends on tree type–For shared trees, uses RP address
–For source trees, uses Source address
34
PIM-SM OverviewPIM-SM Overview
• Only one RP is chosen for a particular group
• RP statically configured or dynamically learned (Auto-RP, PIM v2 candidate RP advertisements)
• Data forwarded based on the source state (S, G) if it exists, otherwise use the shared state (*, G)
• RFC 2326 - “PIM Sparse Mode Protocol Spec”
35
PIM-SM Shared Tree JoinPIM-SM Shared Tree Join
Receiver
RP
(*, G) Join
Shared Tree
(*, G) State created onlyalong the Shared Tree.
36
PIM-SM Sender RegistrationPIM-SM Sender Registration
Receiver
RP
(S, G) Join
Source
Shared Tree
(S, G) Register (unicast)
Source Tree
(S, G) State created onlyalong the Source Tree.Traffic Flow
37
PIM-SM Sender RegistrationPIM-SM Sender Registration
Receiver
RPSource
Shared Tree
Source TreeRP sends a Register-Stop back to the first-hop router to stop the Register process.
(S, G) Register-Stop (unicast)
Traffic Flow
(S, G) Register (unicast)
(S, G) traffic begins arriving at the RP via the Source tree.
38
PIM-SM Sender RegistrationPIM-SM Sender Registration
Receiver
RPSource
Shared Tree
Source Tree
Traffic FlowSource traffic flows nativelyalong SPT to RP.
From RP, traffic flows downthe Shared Tree to Receivers.
39
PIM-SM SPT SwitchoverPIM-SM SPT Switchover
Receiver
RP
(S, G) Join
Source
Source Tree
Shared Tree
Last-hop router joins the Source Tree.
Additional (S, G) State is created along new part of the Source Tree.
Traffic Flow
40
PIM-SM SPT SwitchoverPIM-SM SPT Switchover
Receiver
RPSource
Source Tree
Shared Tree
(S, G)RP-bit Prune
Traffic begins flowing down the new branch of the Source Tree.
Additional (S, G) State is created along along the Shared Tree to prune off (S, G) traffic.
Traffic Flow
41
PIM-SM SPT SwitchoverPIM-SM SPT Switchover
Receiver
RPSource
Source Tree
Shared Tree
(S, G) Traffic flow is now pruned off of the Shared Tree and is flowing to the Receiver via the Source Tree.
Traffic Flow
42
PIM-SM SPT SwitchoverPIM-SM SPT Switchover
Receiver
RPSource
Source Tree
Shared Tree
(S, G) traffic flow is no longer needed by the RP so it Prunes the flow of (S, G) traffic.
Traffic Flow
(S, G) Prune
43
PIM-SM SPT SwitchoverPIM-SM SPT Switchover
Receiver
RPSource
Source Tree
Shared Tree
(S, G) Traffic flow is now only flowing to the Receiver via a single branch of the Source Tree.
Traffic Flow
44
PIM-SM Protocol MechanicsPIM-SM Protocol Mechanics
• PIM SM StatePIM SM State
• PIM SM Forwarding
• PIM SM Joining
• PIM SM Registering
• PIM SM SPT-Switchover
• PIM SM Pruning
45
PIM-SM State ExamplePIM-SM State Example
sj-mbone> show ip mrouteIP Multicast Routing TableFlags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT M - MSDP created entry, X - Proxy Join Timer Running A - Advertised via MSDPTimers: Uptime/ExpiresInterface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.1), 00:13:28/00:02:59, RP 10.1.5.1, flags: SCJ Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:13:28/00:02:32 Serial0, Forward/Sparse, 00:4:52/00:02:08
(171.68.37.121/32, 224.1.1.1), 00:01:43/00:02:59, flags: CJT Incoming interface: Serial0, RPF nbr 192.10.2.1 Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11 Ethernet0, forward/Sparse, 00:01:43/00:02:11
46
PIM-SM (*,G) State RulesPIM-SM (*,G) State Rules
• (*,G) creation– Upon receipt of a (*,G) Join or
– Automatically if (S,G) must be created
• (*,G) reflects default group forwarding– IIF = RPF interface toward RP
– OIL = interfaces• that received a (*,G) Join or• with directly connected hosts or• manually configured
• (*,G) deletion– When OIL = NULL and
– no child (S,G) state exists
47
PIM-SM (S,G) State RulesPIM-SM (S,G) State Rules
• (S,G) creation– By receipt of (S,G) Join or Prune or
– By “Register” process
– Parent (*,G) created (if doesn’t exist)
• (S,G) reflects forwarding of “S” to “G”– IIF = RPF Interface normally toward source
• RPF toward RP if “RP-bit” set
– OIL = Initially, copy of (*,G) OIL minus IIF
• (S,G) deletion– By normal (S,G) entry timeout
48
PIM-SM OIL RulesPIM-SM OIL Rules
• Interfaces in OIL added – By receipt of Join message
• Intfc’s added to (*,G) are added to all (S,G)’s
• Interfaces in OIL removed – By receipt of Prune message
• Intfc’s removed from (*,G) are removed from all (S,G)’s
– Interface Expire timer counts down to zero• Timer reset (to 3 min.) by receipt of periodic Join or• By IGMP membership report
49
PIM-SM State FlagsPIM-SM State Flags
• S = Sparse Mode
• C = Directly Connected Host
• L = Local (Router is member)
• P = Pruned (All intfcs in OIL = Prune)
• T = Forwarding via SPT– Indicates at least one packet was forwarded
50
PIM-SM State Flags (Cont.)PIM-SM State Flags (Cont.)
• J = Join SPT – In (*, G) entry
•Indicates SPT-Threshold is being exceeded•Next (S,G) received will trigger join of SPT
– In (S, G) entry•Indicates SPT joined due to SPT-Threshold•If rate < SPT-Threshold, switch back to Shared Tree
• F = Register – In (S,G) entry
•Indicates the router is a first-hop router and there is a directly connected source or proxy registers are being sent.
– In (*, G) entry•Set when “F” set in at least one child (S,G)
51
PIM-SM State Flags (Cont.)PIM-SM State Flags (Cont.)
• R = RP bit– (S, G) entries only
– Set by (S,G)RP-bit Prune/Join
– Indicates info is applicable to Shared Tree
– Used to prune (S,G) traffic from Shared Tree• Initiated by Last-hop router after switch to SPT
– Modifies (S,G) forwarding behavior• IIF = RPF toward RP (I.e. up the Shared Tree)• OIL = Pruned accordingly
52
PIM-SM Protocol MechanicsPIM-SM Protocol Mechanics
• PIM SM State
• PIM SM ForwardingPIM SM Forwarding
• PIM SM Joining
• PIM SM Registering
• PIM SM SPT-Switchover
• PIM SM Pruning
53
PIM-SM Forwarding RulesPIM-SM Forwarding Rules
• Use longest match entry– Use (S, G) entry if exists
– Otherwise, use (*, G) entry
• RPF check first– If Packet didn’t arrive via IIF, drop it.
• Forward Packet (if RPF succeeded)– Send out all “unpruned” interfaces in OIL
54
E0
S0
rtr-a
S1
• Packets are “forwarded” out all interfaces in “oilist”.
• PIM Sparse mode interfaces are placed on the “oilist” for a Multicast Group IF:
– PIM neighbor Joins the group on this interface
– Host on this interface has joined the group
– Interface has been manually configured to join group.
Shared TreeMulticast Packets
(128.9.160.1, 224.1.1.1)
Source Tree (SPT)Multicast Packets
(128.9.160.43, 224.1.1.1)
E0E1
Rcvr A(*, 224.1.1.1)
to RP(10.1.5.1)
PIM SM ForwardingPIM SM Forwarding
55
PIM-SM Protocol MechanicsPIM-SM Protocol Mechanics
• PIM SM State
• PIM SM Forwarding
• PIM SM JoiningPIM SM Joining
• PIM SM Registering
• PIM SM SPT-Switchover
• PIM SM Pruning
56
PIM SM JoiningPIM SM Joining
• Leaf routers send a (*,G) Join to toward RP– Joins sent hop-by-hop via unicast path toward RP
• Each router along path creates (*,G) state– IF no (*,G) state, create it & send a Join toward RP
– ELSE Join process complete. Reached the (*,G) tree.
57
• “Rcvr A” wishes to receive group G traffic. Sends IGMP Join for G.11
IGMP Join11
E0S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
Shared Tree
To RP (10.1.5.1)
10.1.2.2
10.1.2.110.1.4.2
PIM SM JoiningPIM SM Joining
58
(*, 224.1.1.1), 00:00:05/00:02:54, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1 Outgoing interface list: Ethernet1, Forward/Sparse, 00:00:05/00:02:54
(*, 224.1.1.1), 00:00:05/00:02:54, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1 Outgoing interface list: Ethernet1, Forward/Sparse, 00:00:05/00:02:54
“rtr-b” creates (*, 224.1.1.1) state
E0S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
Rcvr A
Shared Tree
10.1.2.2
10.1.2.110.1.4.2
PIM SM JoiningPIM SM Joining
Ethernet1, Forward/Sparse, 00:00:05/00:02:54
59
• “Rcvr A” wishes to receive group G traffic. Sends IGMP Join for G.11
• “rtr-b” sends (*,G) Join towards RP.22
PIM Join22
E0S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
Shared Tree
To RP (10.1.5.1)
10.1.2.2
10.1.2.110.1.4.2
PIM SM JoiningPIM SM Joining
60
(*, 224.1.1.1), 00:00:05/00:02:54, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.4.1 Outgoing interface list: Ethernet0, Forward/Sparse, 00:00:05/00:02:54
(*, 224.1.1.1), 00:00:05/00:02:54, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.4.1 Outgoing interface list: Ethernet0, Forward/Sparse, 00:00:05/00:02:54
“rtr-a” creates (*, 224.1.1.1) state.
E0S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
Rcvr A
Shared Tree
10.1.2.2
10.1.2.110.1.4.2
PIM SM Joining PIM SM Joining
Ethernet0, Forward/Sparse, 00:00:05/00:02:54
61
PIM Join33
Shared Tree44
• Shared tree is built all the way back to the RP.44
E0S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
Shared Tree
To RP (10.1.5.1)
10.1.2.2
10.1.2.110.1.4.2
PIM SM JoiningPIM SM Joining
• “Rcvr A” wishes to receive group G traffic. Sends IGMP Join for G.11
• “rtr-a” sends (*,G) Join towards RP.33
• “rtr-b” sends (*,G) Join towards RP.22
62
PIM-SM Protocol MechanicsPIM-SM Protocol Mechanics
• PIM SM State
• PIM SM Forwarding
• PIM SM Joining
• PIM SM RegisteringPIM SM Registering
• PIM SM SPT-Switchover
• PIM SM Pruning
63
PIM SM RegisteringPIM SM Registering
• Senders begin sourcing Multicast Traffic– Senders don’t necessarily perform IGMP group joins.
• 1st-hop router unicasts “Registers” to RP– A Mcast packet is encapsulated in each Register msg
– Registers messages follow unicast path to RP
• RP receives “Register” messages– De-encapsulates the Mcast packet inside Register msg
– Forwards Mcast packet down Shared Tree
– Sends (S,G) Join toward Source / 1st-Hop router to build an (S,G) SPT between Source and RP
64
PIM SM RegisteringPIM SM Registering
• 1st-hop router receives (S,G) Join– SPT between Source and RP now built.
– Begins forwarding traffic down (S,G) SPT to RP
– (S,G) Traffic temporarily flowing down 2 paths to RP
• RP receives traffic down native (S,G) SPT– Sends a “Register-Stop” msg to Source / 1st-Hop router.
• 1st-Hop router receives “Register-Stop” msg– Stops encapsulating traffic in “Register” messages
– (S,G) Traffic now flowing down single SPT to RP
65
PIM SM Register ExamplesPIM SM Register Examples
• Receivers Join Group FirstReceivers Join Group First
• Source Registers First
66
(*, 224.1.1.1), 00:00:03/00:02:56, RP 171.68.28.140, flags:S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list: Serial0, Forward/Sparse, 00:03:14/00:02:59 Serial1, Forward/Sparse, 00:03:14/00:02:59
State in “RP” before any source registers(with receivers on Shared Tree)
rtr-a
RP
rtr-crtr-b
Shared Tree
S3S0 S1
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
E0 S1S0S0
67
rtr-b>sh ip mroute 224.1.1.1
No such group
rtr-b>sh ip mroute 224.1.1.1
No such group
State in “rtr-b” before any source registers(with receivers on Shared Tree)
rtr-a
RP
rtr-crtr-b
Shared Tree
E0
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
S3S0 S1
S1S0S0
68
rtr-a>sh ip mroute 224.1.1.1
No such group.
State in “rtr-a” before any source registers(with receivers on Shared Tree)
rtr-a
RP
rtr-crtr-b
Shared Tree
E0
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
S3S0 S1
S1S0S0
69
11
(171.68.37.121, 224.1.1.1) Mcast Packets
rtr-a
RP
Source 171.68.37.121 rtr-crtr-b
Shared Tree
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
E0 S3S0 S1
• “Source” begins sending group G traffic. 11
S1S0S0
70
(*, 224.1.1.1), 00:00:03/00:02:56, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:00:03/00:02:56, flags: FPT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Outgoing interface list: Null
(*, 224.1.1.1), 00:00:03/00:02:56, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:00:03/00:02:56, flags: FPT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Outgoing interface list: Null
“rtr-a” creates (S, G) state for source(After automatically creating a (*, G) entry)
(171.68.37.121, 224.1.1.1) Mcast Packets
Source 171.68.37.121
rtr-a
RP
Shared Tree
rtr-crtr-b
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
E0 S3S0 S1
• “rtr-a” encapsulates packets in Registers; unicasts to RP.22
Register Msgs22
• “Source” begins sending group G traffic. 11
RegisteringFPT
S1S0S0
71
Register Msgs
“RP” processes Register; creates (S, G) state
(*, 224.1.1.1), 00:09:21/00:02:38, RP 171.68.28.140, flags: S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list: Serial0, Forward/Sparse, 00:09:21/00:02:38 Serial1, Forward/Sparse, 00:03:14/00:02:46
(171.68.37.121, 224.1.1.1, 00:01:15/00:02:46, flags: Incoming interface: Serial3, RPF nbr 171.68.28.139, Outgoing interface list: Serial0, Forward/Sparse, 00:00:49/00:02:11 Serial1, Forward/Sparse, 00:00:49/00:02:11
(171.68.37.121, 224.1.1.1) Mcast Packets
Source 171.68.37.121
rtr-a
RP
Shared Tree
rtr-crtr-b
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
E0 S3S0 S1
• “rtr-c” (RP) de-encapsulates packets; forwards down Shared tree.33
33 (*, 224.1.1.1)Mcast Traffic
171.68.28.139
S1S0S0
72
Register Msgs
rtr-a
RP
rtr-c
Shared Tree
(*, 224.1.1.1)Mcast Traffic
(171.68.37.121, 224.1.1.1) Mcast Packets
Source 171.68.37.121
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
E0S0 S1
rtr-b
• RP sends (S,G) Join toward Source to build SPT.44
S1
Join S044
S0S0
73
Register Msgs
E0
“rtr-b” processes Join, creates (S, G) state(After automatically creating the (*, G) entry)
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
rtr-a
RP
rtr-crtr-b
Shared Tree
(*, 224.1.1.1)Mcast Traffic
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
S1
171.68.28.190
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
S0 S1
• “rtr-b” sends (S,G) Join toward Source to continue building SPT.55
Join S055
• RP sends (S,G) Join toward Source to build SPT.44
S0S0
74
Register Msgs
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: FT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Registering Outgoing interface list:
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: FT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Registering Outgoing interface list:
“rtr-a” processes the (S, G) Join; adds Serial0 to OIL
rtr-a
RP
rtr-crtr-b
Shared Tree
(*, 224.1.1.1)Mcast Traffic
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
E0
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
S0 S1
Serial0, Forward/Sparse, 00:04:28/00:01:32
S1S0S0
75
Register Msgs
S0 S1E0
• RP begins receiving (S,G) traffic down SPT. 66
66
• RP sends “Register-Stop” to “rtr-a”.77
Register-Stop77
rtr-a
RP
rtr-crtr-b
Shared Tree
(*, 224.1.1.1)Mcast Traffic
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
S1S0S0
76
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: FT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Registering Outgoing interface list: Serial0, Forward/Sparse, 00:04:28/00:01:32
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: FT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Registering Outgoing interface list: Serial0, Forward/Sparse, 00:04:28/00:01:32
rtr-a
RP
rtr-crtr-b
Shared Tree
(*, 224.1.1.1)Mcast Traffic
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
E0 S3S0 S1
S1S0S0
“rtr-a” stops sending Register messages(Final State in “rtr-a”)
• (S,G) Traffic now flowing down a single path (SPT) to RP.88
88
77
Final state in “rtr-b”
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: T Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: T Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
rtr-a
RP
rtr-crtr-b
Shared Tree
(*, 224.1.1.1)Mcast Traffic
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
E0
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
S0 S1S1S0S0
78
Final state in the “RP”(with receivers on Shared Tree)
(*, 224.1.1.1), 00:09:21/00:02:38, RP 171.68.28.140, flags: S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list: Serial0, Forward/Sparse, 00:09:21/00:02:38 Serial1, Forward/Sparse, 00:03:14/00:02:46
(171.68.37.121, 224.1.1.1, 00:01:15/00:02:46, flags: T Incoming interface: Serial3, RPF nbr 171.68.28.139, Outgoing interface list: Serial0, Forward/Sparse, 00:00:49/00:02:11 Serial1, Forward/Sparse, 00:00:49/00:02:11
rtr-a
RP
rtr-crtr-b
Shared Tree
(*, 224.1.1.1)Mcast Traffic
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
S3
171.68.28.139
PIM SM RegisteringReceiver Joins Group First
PIM SM RegisteringReceiver Joins Group First
S0 S1S1S0S0E0
79
PIM SM Register ExamplesPIM SM Register Examples
• Receivers Join Group First
• Source Registers FirstSource Registers First
80
rtr-c>show ip mroute 224.1.1.1
Group 224.1.1.1 not found.
rtr-c>show ip mroute 224.1.1.1
Group 224.1.1.1 not found.
State in “RP” before Registering(without receivers on Shared Tree)
rtr-a
RP
rtr-crtr-b
S3S0
S1S0S0E0S1
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
81
rtr-b>show ip mroute 224.1.1.1
Group 224.1.1.1 not found.
rtr-b>show ip mroute 224.1.1.1
Group 224.1.1.1 not found.
State in “rtr-b” before any source registers(with receivers on Shared Tree)
rtr-a
RP
rtr-b
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1
82
rtr-a>show ip mroute 224.1.1.1
Group 224.1.1.1 not found.
State in “rtr-a” before any source registers(with receivers on Shared Tree)
rtr-a
RP
rtr-b
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1
83
11
(171.68.37.121, 224.1.1.1) Mcast Packets
rtr-a
RP
Source 171.68.37.121
rtr-b
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
• “Source” begins sending group G traffic. 11
rtr-cS3
S0S1S0S0E0
S1
84
(*, 224.1.1.1), 00:00:03/00:02:56, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:00:03/00:02:56, flags: FPT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Outgoing interface list: Null
(*, 224.1.1.1), 00:00:03/00:02:56, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:00:03/00:02:56, flags: FPT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Outgoing interface list: Null
“rtr-a” creates (S, G) state for source(After automatically creating a (*, G) entry)
(171.68.37.121, 224.1.1.1) Mcast Packets
Source 171.68.37.121
rtr-a
RP
rtr-b
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
• “rtr-a” encapsulates packets in Registers; unicasts to RP.22
Register Msgs22
• “Source” begins sending group G traffic. 11
RegisteringFPT
rtr-cS3
S0S1S0S0E0
S1
85
“RP” processes Register; creates (S, G) state(After automatically creating the (*, G) entry)
(*, 224.1.1.1), 00:01:15/00:01:45, RP 171.68.28.140, flags: S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list: Null
(171.68.37.121, 224.1.1.1), 00:01:15/00:01:45, flags: P Incoming interface: Serial3, RPF nbr 171.68.28.139, Outgoing interface list: Null
(171.68.37.121, 224.1.1.1) Mcast Packets
Register Msgs
Source 171.68.37.121
rtr-a
RP
rtr-b
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
171.68.28.139
• “rtr-c” (RP) has no receivers on Shared Tree; discards packet.33
33
rtr-cS3
S0S1S0S0E0
S1
86
• RP sends “Register-Stop” to “rtr-a”.44
RP
(171.68.37.121, 224.1.1.1) Mcast Packets
Register Msgs
Source 171.68.37.121
Register-Stop 44
rtr-c
• “rtr-c” (RP) has no receivers on Shared Tree; discards packet.33
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1rtr-a rtr-b
87
RP
(171.68.37.121, 224.1.1.1) Mcast Packets
Source 171.68.37.121
55
• “rtr-a” stops encapsulating traffic in Register Messages; drops packets from Source.
55
• RP sends “Register-Stop” to “rtr-a”.44
• “rtr-c” (RP) has no receivers on Shared Tree; discards packet.33
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1rtr-a rtr-b
88
(*, 224.1.1.1), 00:01:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:01:28/00:01:32, flags: FPT Incoming interface: Ethernet0, RPF nbr 0.0.0.0 Outgoing interface list: Null
(*, 224.1.1.1), 00:01:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:01:28/00:01:32, flags: FPT Incoming interface: Ethernet0, RPF nbr 0.0.0.0 Outgoing interface list: Null
State in “rtr-a” after Registering(without receivers on Shared Tree)
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1rtr-a rtr-b
89
rtr-b>show ip mroute 224.1.1.1
Group 224.1.1.1 not found.
rtr-b>show ip mroute 224.1.1.1
Group 224.1.1.1 not found.
State in “rtr-b” after “rtr-a” Registers(without receivers on Shared Tree)
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
rtr-c
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1rtr-a rtr-b
90
State in “RP” after “rtr-a” Registers(without receivers on Shared Tree)
(*, 224.1.1.1), 00:01:15/00:01:45, RP 171.68.28.140, flags: S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list: Null
(171.68.37.121, 224.1.1.1), 00:01:15/00:01:45, flags: P Incoming interface: Serial3, RPF nbr 171.68.28.139, Outgoing interface list: Null
(*, 224.1.1.1), 00:01:15/00:01:45, RP 171.68.28.140, flags: S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list: Null
(171.68.37.121, 224.1.1.1), 00:01:15/00:01:45, flags: P Incoming interface: Serial3, RPF nbr 171.68.28.139, Outgoing interface list: Null
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
171.68.28.139
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1rtr-a rtr-b
91
rtr-cS3
S0S1S0S0E0
S1
RP
• RP (“rtr-c”) receives (*, G) Join from a receiver on Shared Tree. 66
(*, G) Join 66
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
Receivers begin joining the Shared Tree
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-a rtr-b
92
“RP” processes (*,G) Join(Adds Serial1 to Outgoing Interface Lists)
(*, 224.1.1.1), 00:09:21/00:02:38, RP 171.68.28.140, flags: S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list:
(171.68.37.121/32, 224.1.1.1, 00:01:15/00:02:46, flags: T Incoming interface: Serial3, RPF nbr 171.68.28.139, Outgoing interface list:
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1
Serial1, Forward/Sparse, 00:00:14/00:02:46
Serial1, Forward/Sparse, 00:00:14/00:02:46
Join 77
• RP sends (S,G) Joins for all known Sources in Group.77
rtr-a rtr-b
93
“rtr-b” processes Join, creates (S, G) state(After automatically creating the (*, G) entry)
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
171.68.28.190
• “rtr-b” sends (S,G) Join toward Source to continue building SPT.88
Join S088
rtr-cS3S1S0S0E0
• RP sends (S,G) Joins for all known Sources in Group.77
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
S0 S1
Join 77
rtr-a rtr-b
94
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: FT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Registering Outgoing interface list:
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial0, RPF nbr 171.68.28.191, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: FT Incoming interface: Ethernet0, RPF nbr 0.0.0.0, Registering Outgoing interface list:
“rtr-a” processes the (S, G) Join; adds Serial0 to OIL
Serial0, Forward/Sparse, 00:04:28/00:01:32
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1
99
• RP begins receiving (S,G) traffic down SPT.99
1010 (*, 224.1.1.1)Mcast Traffic
1010• RP forwards (S,G) traffic down Shared Tree to receivers.1010
rtr-a rtr-b
95
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: T Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
(*, 224.1.1.1), 00:04:28/00:01:32, RP 171.68.28.140, flags: SP Incoming interface: Serial1, RPF nbr 171.68.28.140, Outgoing interface list: Null
(171.68.37.121/32, 224.1.1.1), 00:04:28/00:01:32, flags: T Incoming interface: Serial0, RPF nbr 171.68.28.190 Outgoing interface list: Serial1, Forward/Sparse, 00:04:28/00:01:32
Final state in “rtr-b” after Receivers Join
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
(*, 224.1.1.1)Mcast Traffic
171.68.28.190
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1rtr-a rtr-b
96
Final state in “RP” after Receivers Join
(*, 224.1.1.1), 00:09:21/00:02:38, RP 171.68.28.140, flags: S Incoming interface: Null, RPF nbr 0.0.0.0, Outgoing interface list: Serial1, Forward/Sparse, 00:03:14/00:02:46
(171.68.37.121/32, 224.1.1.1, 00:01:15/00:02:46, flags: T Incoming interface: Serial3, RPF nbr 171.68.28.139, Outgoing interface list: Serial1, Forward/Sparse, 00:00:49/00:02:11
RP
Source 171.68.37.121
(171.68.37.121, 224.1.1.1) Mcast Packets
(*, 224.1.1.1)Mcast Traffic
171.68.28.139
PIM SM RegisteringSource Registers First
PIM SM RegisteringSource Registers First
rtr-cS3
S0S1S0S0E0
S1rtr-a rtr-b
97
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
• SPT Thresholds may be set for any Group– Access Lists may be used to specify which Groups
– Default Threshold = 0kbps (I.e. immediately join SPT)
– Threshold = “infinity” means “never join SPT”.
• Threshold triggers Join of Source Tree– Sends an (S,G) Join up SPT for next “S” in “G” packet
received.
• Pros– Reduces Network Latency
• Cons– More (S,G) state must be stored in the routers.
98
Once each second– Compute new (*, G) traffic rate– If threshold exceeded, set “J” flag in (*, G)
For each (Si , G) packet received:
– If “J” flag set in (*, G)• Join SPT for (Si , G)
• Mark (Si , G) entry with “J” flag
• Clear “J” flag in (*,G)
Once each second– Compute new (*, G) traffic rate– If threshold exceeded, set “J” flag in (*, G)
For each (Si , G) packet received:
– If “J” flag set in (*, G)• Join SPT for (Si , G)
• Mark (Si , G) entry with “J” flag
• Clear “J” flag in (*,G)
SPT-Switchover Mechanism
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
99
State in “rtr-c” before switch
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.5.1, Outgoing interface list: Serial1, Forward/Sparse, 00:01:43/00:02:11 Serial2, Forward/Sparse, 00:00:32/00:02:28
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
100
State in “rtr-d” before switch
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: SC Incoming interface: Serial0, RPF nbr 10.1.4.8, Outgoing interface list: Ethernet0, Forward/Sparse, 00:01:43/00:02:11
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
101
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.4.1, Outgoing interface list: Ethernet0, Forward/Sparse, 00:01:43/00:02:11
State in “rtr-a” before switch
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
102
State in “rtr-b” before switch
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
103
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11
Group “G” rate exceeds SPT Threshold at “rtr-b”;11
Set J Flag in (*, G) and wait for next (Si,G) packet.22
22
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
J
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
Group “G” rate > Threshold11
104
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11
J
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
(Si,G) packet arrives down Shared tree.33
Clear J Flag in the (*,G) & create (Si,G) state.44
44
33
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
105
New State in “rtr-b”
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11
(171.68.37.121/32, 224.1.1.1), 00:13:28/00:02:53, flags: CJT Incoming interface: Ethernet0, RPF nbr 10.1.2.1 Outgoing interface list: Ethernet1, Forward/Sparse, 00:13:28/00:02:53
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
J Flag indicates(S, G) created by
exceeding theSPT-threshold
CJT
106
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
55Send (Si,G) Join towards Si .
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
(Si,G) Join55
107
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.4.1, Outgoing interface list: Ethernet0, Forward/Sparse, 00:01:43/00:02:11
(171.68.37.121/32, 224.1.1.1), 00:13:28/00:02:53, flags: T Incoming interface: Serial1, RPF nbr 10.1.9.2 Outgoing interface list: Ethernet0, Forward/Sparse, 00:13:25/00:02:30
New state in “rtr-a”
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
108
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
“rtr-a” forwards (Si,G) Join toward Si.66
(Si,G) Join66
SPT & RPT diverge, triggering (Si,G)RP-bit Prunes toward RP.77
(Si,G)RP-bit Prune77
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
109
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
(Si, G) traffic begins flowing down SPT tree.88
(Si,G) Traffic88
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
110
E0
Rcvr B
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.5.1, Outgoing interface list: Serial1, Forward/Sparse, 00:01:43/00:02:11 Serial2, Forward/Sparse, 00:00:32/00:02:28
(171.68.37.121/32, 224.1.1.1), 00:13:28/00:02:53, flags: R Incoming interface: Serial0, RPF nbr 10.1.5.1 Outgoing interface list: Serial2, Forward/Sparse, 00:00:32/00:02:28
State in “rtr-c” after receiving the (Si, G) RP-bit Prune
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
rtr-d
S2
S0
111
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
• Unnecessary (Si, G) traffic is pruned from the Shared tree.99
99
112
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
E0S0
rtr-a
rtr-b
S1
E0E1
Rcvr A
10.1.2.2
10.1.2.110.1.4.2
S110.1.4.1
rtr-c
To Source “Si”To RP (10.1.5.1)
S0
E0
Rcvr B
rtr-d
S2
S0
(Si, G) Traffic FlowShared (RPT) Tree
SPT Tree
• Unnecessary (Si, G) traffic is pruned from the Shared tree.99
• (Si, G) traffic still flows via other branches of the Shared tree.1010
1010
113
Shared Tree Switchback Mechanism
PIM SM SPT-SwitchoverPIM SM SPT-Switchover
• Once each second when the (S,G) state is older than 1 minute
– If “J” flag set in (Si , G) entry• Compute new (Si , G) traffic rate
• If rate < SPT-threshold– Rejoin (*, G) Tree for (Si , G) traffic
– Send (Si , G) prune up SPT toward Si
– Delete (Si , G) entry
• Once each second when the (S,G) state is older than 1 minute
– If “J” flag set in (Si , G) entry• Compute new (Si , G) traffic rate
• If rate < SPT-threshold– Rejoin (*, G) Tree for (Si , G) traffic
– Send (Si , G) prune up SPT toward Si
– Delete (Si , G) entry
114
PIM-SM Protocol MechanicsPIM-SM Protocol Mechanics
• PIM SM State
• PIM SM Forwarding
• PIM SM Joining
• PIM SM Registering
• PIM SM SPT-Switchover
• PIM SM PruningPIM SM Pruning
115
• IGMP group times out / last host sends Leave
• Interface removed from all (*,G) and (S,G) entries
– IF all interfaces in “oilist” for (*,G) are pruned; THEN send Prune up shared tree toward RP
– Any (S, G) state allowed to time-out
• Each router along path “prunes” interface
– IF all interfaces in “oilist” for (*,G) are pruned; THEN send Prune up shared tree toward RP
– Any (S, G) state allowed to time-out
PIM SM PruningPIM SM Pruning
116
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11
State in “rtr-b” before Pruning
S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
To RP (10.1.5.1)
10.1.2.2
10.1.2.110.1.4.2
E0(Si, G) Traffic FlowShared Tree
SPT Tree
PIM SM Pruning Shared Tree Case
PIM SM Pruning Shared Tree Case
117
(*, 224.1.1.1), 00:01:43/00:02:13, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.4.1, Outgoing interface list: Ethernet0, Forward/Sparse, 00:01:43/00:02:11
State in “rtr-a” before Pruning
S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
To RP (10.1.5.1)
E0(Si, G) Traffic FlowShared Tree
SPT Tree
PIM SM Pruning Shared Tree Case
PIM SM Pruning Shared Tree Case
10.1.2.2
10.1.2.110.1.4.2
118
“rtr-b” is a Leaf router. Last host “Rcvr A”, leaves group G. 11
S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
To RP (10.1.5.1)
IGMP Leave11
“rtr-b” removes E1 from (*,G) and any (Si,G) “oilists”.22
22
XX“rtr-b” (*,G) “oilist” now empty; sends (*,G) Prune toward RP.33
(*,G) Prune33
E0(Si, G) Traffic FlowShared Tree
SPT Tree
PIM SM Pruning Shared Tree Case
PIM SM Pruning Shared Tree Case
10.1.2.2
10.1.2.110.1.4.2
119
“rtr-a” receives Prune; removes E0 from (*,G) “oilist”. (After the 3 second Multi-access Network Prune delay.)
44
44
“rtr-a” (*,G) “oilist” now empty; send (*,G) Prune toward RP.55
(*,G) Prune55
Pruning continues back toward RP.66
PIM SM Pruning Shared Tree Case
PIM SM Pruning Shared Tree Case
S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
E0(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
XX
XX66
120
(*, 224.1.1.1), 00:01:43/00:02:59, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11
(171.68.37.121/32, 224.1.1.1), 00:01:05/00:01:55, flags: CJT Incoming interface: Ethernet0, RPF nbr 10.1.2.1 Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:05/00:02:55
(*, 224.1.1.1), 00:01:43/00:02:59, RP 10.1.5.1, flags: SC Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:43/00:02:11
(171.68.37.121/32, 224.1.1.1), 00:01:05/00:01:55, flags: CJT Incoming interface: Ethernet0, RPF nbr 10.1.2.1 Outgoing interface list: Ethernet1, Forward/Sparse, 00:01:05/00:02:55
State in “rtr-b” before Pruning
S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
121
(*, 224.1.1.1), 00:01:43/00:02:59, RP 10.1.5.1, flags: S Incoming interface: Serial0, RPF nbr 10.1.4.1, Outgoing interface list: Ethernet0, Forward/Sparse, 00:01:43/00:02:11
(171.68.37.121/32, 224.1.1.1), 00:01:05/00:01:55, flags: T Incoming interface: Serial1, RPF nbr 10.1.9.2 Outgoing interface list: Ethernet0, Forward/Sparse, 00:01:05/00:02:55
State in “rtr-a” before Pruning
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
122
“rtr-b” is a Leaf router. Last host “Rcvr A”, leaves group G. 11
IGMP Leave11
“rtr-b” removes E1 from (*,G) and any (Si,G) “oilists”.22
22
“rtr-b” (*,G) “oilist” now empty; sends (*,G) Prune toward RP.33
(*,G) Prune33
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
XX
123
“rtr-b” stops sending periodic (S, G) joins.44
“rtr-b” is a Leaf router. Last host “Rcvr A”, leaves group G. 11
“rtr-b” removes E1 from (*,G) and any (Si,G) “oilists”.22
“rtr-b” (*,G) “oilist” now empty; sends (*,G) Prune toward RP.33
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
Rcvr A
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
XX
Periodic(S, G) Join
44
XX
124
“rtr-a” receives Prune; removes E0 from (*,G) “oilist”. (After the 3 second Multiaccess Network Prune delay.)
55
55
“rtr-a” (*,G) “oilist” now empty; sends (*,G) Prune toward RP.66
(*,G) Prune66
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
XX
125
(*, 224.1.1.1), 00:02:32/00:02:59, RP 10.1.5.1, flags: SP Incoming interface: Ethernet0, RPF nbr 10.1.2.1, Outgoing interface list:
(171.68.37.121/32, 224.1.1.1), 00:01:56/00:00:53, flags: PT Incoming interface: Ethernet0, RPF nbr 10.1.2.1 Outgoing interface list:
State in “rtr-b” after Pruning
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
126
(*, 224.1.1.1), 00:02:32/00:02:59, RP 10.1.5.1, flags: SP Incoming interface: Serial0, RPF nbr 10.1.4.1, Outgoing interface list:
(171.68.37.121/32, 224.1.1.1), 00:01:56/00:00:53, flags: PT Incoming interface: Serial1, RPF nbr 10.1.9.2 Outgoing interface list:
(*, 224.1.1.1), 00:02:32/00:02:59, RP 10.1.5.1, flags: SP Incoming interface: Serial0, RPF nbr 10.1.4.1, Outgoing interface list:
(171.68.37.121/32, 224.1.1.1), 00:01:56/00:00:53, flags: PT Incoming interface: Serial1, RPF nbr 10.1.9.2 Outgoing interface list:
State in “rtr-a” after Pruning
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
127
Another (Si,G) data packet arrives via Serial1.77
‘rtr-a’ responds by sending an (Si,G) Prune toward source.88
(Si,G) Data 77
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
(Si,G) Prune88
128
99
(Si,G) traffic ceases flowing down SPT.99
PIM SM PruningSource (SPT) Case
PIM SM PruningSource (SPT) Case
S0 rtr-a
rtr-b
S1
E0E1
To RP (10.1.5.1)
E0
To Source “Si”
(Si, G) Traffic FlowShared Tree
SPT Tree 10.1.2.2
10.1.2.110.1.4.2
Another (Si,G) data packet arrives via Serial1.77
‘rtr-a’ responds by sending an (Si,G) Prune toward source.88
129
Multicast ProtocolsMulticast Protocols
• Multicast Addressing Basics
• IGMP
• PIM
• MSDP
• MBGP
130
MSDP—Multicast SourceDiscovery Protocol
MSDP—Multicast SourceDiscovery Protocol
• MSDP concepts
• MSDP design points
• MSDP example
• Cisco MSDP implementation
• MSDP configuration
• MSDP application—Anycast RP
131
MSDP ConceptMSDP Concept
• Simple but elegant – Utilize inter-domain source trees
– Reduces problem to locating active sources
– RP or receiver last-hop can join inter-domain source tree
132
MSDP ConceptsMSDP Concepts
• Works with PIM-SM only– RP’s knows about all sources in a domain
• Sources cause a “PIM Register” to the RP• Can tell RP’s in other domains of its sources
– Via MSDP SA (Source Active) messages
– RP’s know about receivers in a domain• Receivers cause a “(*, G) Join” to the RP• RP can join the source tree in the peer domain
– Via normal PIM (S, G) joins
133
SA Message192.1.1.1, 224.2.2.2
Domain C
Domain B
Domain D
Domain E
SA
SA
SA SA
SA
SA
Source ActiveMessages
SA
Domain A
SA Message192.1.1.1, 224.2.2.2
r
Join (*, 224.2.2.2)
MSDP Peers
RP
RP
RP
RP
MSDP OverviewMSDP Overview
sRP
Register192.1.1.1, 224.2.2.2
MSDP Example
134
Domain C
Domain B
Domain D
Domain E
Domain A
RP
RP
RP
RP
r
MSDP Peers
Join
(S
, 224
.2.2
.2)
RP
MSDP OverviewMSDP Overview
s
MSDP Example
135
Domain C
Domain B
Domain D
Domain E
Domain A
RP
RP
RP
RP
r
MSDP Peers
Multicast Traffic RP
MSDP OverviewMSDP Overview
s
MSDP Example
136
Domain C
Domain B
Domain D
Domain E
Domain A
RP
RP
RP
RP
r
MSDP Peers
Multicast Traffic RP
MSDP OverviewMSDP Overview
s
Join
(S, 224.2.2.2)
MSDP Example
137
Domain C
Domain B
Domain D
Domain E
Domain A
RP
RP
RP
RP
r
MSDP Peers
Multicast Traffic RP
MSDP OverviewMSDP Overview
s
MSDP Example
138
MSDP Design PointsMSDP Design Points
• MSDP peers talk via TCP connections
• Source Active (SA) messages– Peer-RPF forwarded to prevent loops
• RPF check on AS-PATH back to the peer RP– other rules from draft apply
• If successful, flood SA message to other peers• Stub sites can be configured to accept all SA messages
(similar to static default for routing)– Since they have only one exit (e.g., default peer)
– MSDP speaker may cache SA messages• Reduces join latency
139
MSDP PeersMSDP Peers
• MSDP establishes a neighbor relationship between MSDP peers– Peers connect using TCP port 639
– Peers send keepalives every 60 secs (fixed)
– Peer connection reset after 75 seconds if no MSDP packets or keepalives are received
• MSDP peers must run BGP!– May be an MBGP peer, a BGP peer or both
– Exception: BGP is unnecessary when peering with only a single MSDP peer.
140
MSDP SA MessagesMSDP SA Messages
• MSDP SA Message Contents– One or more messages (in TLV format)
• Keepalives• Source Active (SA) Messages• Source Active Request (SA-Req) Messages• Source Active Response (SA-Resp) Message
– Source Active (SA) Messages• Used to advertise active Sources in a domain• Can also carry initial multicast packet from source
– Hack for Bursty Sources (ala SDR)• SA Message Contents:
– IP Address of Originator (usually an RP)– Number of (S, G)’s pairs being advertised– List of active (S, G)’s in the domain– Encapsulated Multicast packet
141
MSDP SA MessagesMSDP SA Messages
• MSDP Message Contents (cont.)– SA Request (SA-Req) Messages
• Used to request a list of active sources for a group– Sent to an MSDP SA Cache Server– Reduces Join Latency to active sources
• SA Request Messages contain:– Requested Group Address
– SA Response (SA-Resp) Messages• Sent in response to an SA Request message• SA Response Messages contain:
– IP Address of Originator (usually an RP)– Number of (S, G)’s pairs being advertised– List of active (S, G)’s in the domain
– Keepalive messages• Used to keep MSDP peer connection up
142
Receiving SA MessagesReceiving SA Messages
• Skip RPF Check and process SA if:– Sending MSDP peer = only MSDP peer
(i.e. the ‘default-peer’ or only ‘msdp-peer’ configured.)
– Sending MSDP peer = Mesh-Group peer
• RPF Check the received SA message.– Lookup best BGP path to RP in SA message
• Search MBGP RIB first then BGP RIB– If path to RP not found, RPF Check Fails; ignore SA message
– Sending MSDP Peer = BGP peer?• Yes: Is best path to RP via this BGP peer?
– If yes, RPF Check Succeeds; process SA message• No: Is next AS in best path to RP = AS of MSDP peer?
– If yes, RPF Check Succeeds; process SA message
143
Receiving SA MessagesReceiving SA Messages
• Detailed RPF Check rules– Case 1: Sending MSDP Peer = iBGP peer
• Is best path to RP via this BGP peer?– Translation: Is the address of the iBGP peer that advertised
the best path to the RP = address of the sending MSDP peer?
– Case 2: Sending MSDP Peer = eBGP peer• Is best path to RP via this BGP peer?
– Translation: Is the AS of eBGP peer = next AS in the best path to the RP?
– Case 3: Sending MSDP Peer != BGP peer• Is the next AS in best path to RP = AS of the sending
MSDP peer?– Translation: None needed.
144
MSDP/iMBGP mesh-peering
MSDP SA
AS1
A
3.1
4.2
4.12.1
ip pim rp-address 172.16.0.2
BGP Table router B
Network Next Hop Path*> 172.16.0.2/32 172.16.3.1 i
MSDP Peers router B
MSDP Peer AS State 172.16.3.1 1 UP 172.16.4.1 1 UP
RPF Success!
Who is the iBGP peer adverting this route,in our example 172.16.3.1
Is the MSDP == BGP peer
RPF rule when MSDP == internal (m)BGP peer
Source
B
CRP
B
RPF Check Example
145
AS1
MSDP/iMBGP mesh-peering
MSDP SA
BGP Table router B
Network Next Hop Path*> 172.16.0.2/32 172.16.3.1 i
3.1
4.2
4.12.1
ip pim rp-address 172.16.0.2
MSDP Peers router B
MSDP Peer AS State 172.16.3.1 1 UP 172.16.4.1 1 UP
Who is the iBGP peer adverting this route,In our example 172.16.3.1
Is the MSDP == BGP peer
RPF rule when MSDP == internal (m)BGP peer
RPF Failure!Source
A
B
CRP
B
RPF Check Example
146
RPF Check ExampleRPF Check Example
AS1
AS 2
AS3
MSDP/eMBGP mesh-peering
MSDP SA
BGP Table
Network Next Hop Path*> 172.16.0.2/32 172.16.3.1 1 i 172.16.0.2/32 172.16.4.1 3 1 i
3.1
4.2
4.12.1
ip pim rp-address 172.16.0.2
MSDP Peers router B
MSDP Peer AS State 172.16.3.1 1 UP 172.16.4.1 3 UP
RPF rule when MSDP == external (m)BGP peer
Who is the BGP peer adverting this route
BGP Neighbours router B
Neighbor AS Up/Down 172.16.3.1 1 06:06:08 172.16.4.1 3 06:09:06
Source RPF Success!Is the MSDP AS == Last AS in RP route
A
B
CRP
B
147
RPF Check ExampleRPF Check Example
AS1
AS 2
AS3
MSDP/eMBGP mesh-peering
MSDP SA
BGP Table
Network Next Hop Path*> 172.16.0.2/32 172.16.3.1 1 i 172.16.0.2/32 172.16.4.1 3 1 i
3.1
4.2
4.12.1
ip pim rp-address 172.16.0.2
MSDP Peers router B
MSDP Peer AS State 172.16.3.1 1 UP 172.16.4.1 3 UP
RPF rule when MSDP == external (m)BGP peer
Who is the BGP peer adverting this route
BGP Neighbours router B
Neighbor AS Up/Down 172.16.3.1 1 06:06:08 172.16.4.1 3 06:09:06
Source RPF Failure!Is the MSDP AS == Last AS in RP route
A
B
CRP
B
148
RPF Check ExampleRPF Check Example
MSDP/eMBGP mesh-peering
MSDP SA
BGP Table router B
Network Next Hop Path*> 172.16.0.2/32 172.16.3.1 1 i 172.16.0.2/32 172.16.4.1 3 1 I*> 172.16.4.0/24 172.16.4.1 3 i*> 172.16.3.0/24 172.16.3.1 1 i
MSDP Peers router B
MSDP Peer AS State 172.16.3.1 1 UP 172.16.4.1 3 UP
RPF rule when MSDP != (m)BGP peer
AS1
AS 2
AS3
3.1
4.2
4.12.1
ip pim rp-address 172.16.0.2 Source RPF Success!Is the MSDP AS == Last AS in RP route
A
B
CRP
B
149
RPF Check ExampleRPF Check Example
MSDP/eMBGP mesh-peering
MSDP SA
BGP Table router B
Network Next Hop Path*> 172.16.0.2/32 172.16.3.1 1 i 172.16.0.2/32 172.16.4.1 3 1 I*> 172.16.4.0/24 172.16.4.1 3 i*> 172.16.3.0/24 172.16.3.1 1 i
MSDP Peers router B
MSDP Peer AS State 172.16.3.1 1 UP 172.16.4.1 3 UP
RPF rule when MSDP != (m)BGP peer
AS1
AS 2
AS3
RP
3.1
4.2
4.12.1
ip pim rp-address 172.16.0.2 Source RPF Failure!
Is the MSDP AS == Last AS in RP route
A
B
C
B
150
Cisco MSDP ImplementationCisco MSDP Implementation
• Cisco implementation current with ID:– draft-ietf-msdp-spec-02.txt
• Multiple peer support– Peer with BGP, MBGP, or static peers
• SA caching (off by default)
• Sending and receiving SA-requests
• Sending and receiving SA-responses
151
Cisco MSDP ImplementationCisco MSDP Implementation
• SA input and output filtering
• SA-request input filtering
• Default peer support– So a tail site can MSDP with a backbone provider without
requiring the two to BGP peer
• Triggered join support when creating an (S,G) learned by MSDP
• Mesh groups– Reduces RPF-flooding of SA messages between fully
meshed MSDP peers
152
MSDP ConfigurationMSDP Configuration
• Configure peersip msdp peer <ip-address> [connect-source <i/f>]
• Configure default peerip msdp default-peer <ip-address> [prefix-list acl]
• SA cachingip msdp cache-sa-state [list <acl>]
• Mesh groupsip msdp mesh-group <name> <ip-address>
153
MSDP ConfigurationMSDP Configuration
• Filtering– Can filter SA in/out, groups, with acls or route-maps
• TTL Scopingip msdp ttl-threshold <ip-address> <ttl>
• For more configuration commands see:ftp://ftpeng.cisco.com/ipmulticast/msdp-commands
154
• Use existing (unicast) operation model
MBGP (routing)
• Need interdomain source discovery
MSDP (source discovery)
• Want an explicit join protocol for efficiencyPIM-SM (forwarding)
ISP Requirements to Deploy NowISP Requirements to Deploy Now
155
MSDP Application—Anycast RPMSDP Application—Anycast RP
• draft-ietf-mboned-anycast-rp-05.txt
• Within a domain, deploy more than one RP for the same group range
• Give each RP the same IP address assignment
• Sources and receivers use closest RP
• May be used intra-domain (enterprise) to provide redundancy and RP load sharing
156
MSDP Application—Anycast RPMSDP Application—Anycast RP
• Sources from one RP are known to other RPs using MSDP
• When an RP goes down, sources and receivers are taken to new RP via unicast routing– Fast convergence
157
RP1RP110.0.0.110.0.0.1
RP210.0.0.1
MSDPMSDP
RecRecRecRec
Rec
Rec
SrcSrc
SrcSrc
XX
Anycast RP—ConvergenceAnycast RP—Convergence
158
RP1RP1 RP210.0.0.110.0.0.1 10.0.0.1
Rec
RecRecRecRec
Rec
SrcSrc
Src
XX
Anycast RP—ConvergenceAnycast RP—Convergence
159
Multicast ProtocolsMulticast Protocols
• Multicast Addressing Basics
• IGMP
• PIM
• MSDP
• MBGP
160
MBGP—Multiprotocol BGPMBGP—Multiprotocol BGP
• MBGP overview
• MBGP capability negotiation
• MBGP NLRI exchange
161
MBGP OverviewMBGP Overview
• MBGP: Multiprotocol BGP(aka multicast BGP in multicast networks)– Defined in RFC 2283 (extensions to BGP)
– Can carry different types of routes• Unicast• Multicast
– Both routes carried in same BGP session
– Does not propagate multicast state info
– Same path selection and validation rules• AS-Path, LocalPref, MED, …
162
MBGP OverviewMBGP Overview
• New multiprotocol attributes– MP_REACH_NLRI
– MP_UNREACH_NLRI
• MP_REACH_NLRI and MP_UNREACH_NLRI– Address Family Information (AFI) = 1 (IPv4)
• Sub-AFI = 1 (NLRI is used for unicast)• Sub-AFI = 2 (NLRI is used for multicast
RPF check)• Sub-AFI = 3 (NLRI is used for both unicast and multicast RPF
check)
163
MBGP OverviewMBGP Overview
• Separate BGP tables maintained– Unicast Routing Information Base (RIB)
– Multicast Routing Information Base (MRIB)
• Unicast RIB (U-RIB)– Contains unicast prefixes for unicast forwarding
– Populated with BGP unicast NLRI• AFI = 1, Sub-AFI = 1 or 3
• Multicast RIB (M-RIB)– Contains unicast prefixes for RPF checking
– Populated with BGP multicast NLRI• AFI = 1, Sub-AFI = 2 or 3
164
MBGP OverviewMBGP Overview
• MBGP allows different unicast and multicast topologies and different policies– Same IP address may have different signification
• Unicast routing information• Multicast RPF information
– For same IPv4 address two different NLRI with different next-hops
– Can use existing or new BGP peering topology for multicast
165
MBGP NLRI ExchangeMBGP NLRI Exchange
• BGP/MBGP configuration allows you to:– Define which NLRI type are exchanged
(unicast, multicast, both)
– Set NLRI type through route-maps (redistribution)
– Define policies through standard BGP attributes(for unicast and/or multicast NLRI)
• No redistribution allowed between MBGP and BGP tables– NLRI type can be set with set nlri route-map command
166
MBGP NLRI ExchangeMBGP NLRI Exchange
• MRIB is populated by:– Receiving AFI/SAFI 1/2 MP_REACH_NLRI from
neighbors
– Configured/stored locally by:
network <foo> <foo-mask> [nlri multicast unicast]redistribute <unicast> route-map <map>aggregate-address <foo> <foo-mask> [nlri multicast unicast]neighbor <foo> default-originate [nlri multicast unicast]
• Note: Syntax changes in 12.07T/12.1 forward
167
AS 321AS 123
BGP Session for Unicast and Multicast NLRI
Sender
192.168.100.0/24
192.192.25.0/24
Receiver
MBGP — NLRI InformationMBGP — NLRI Information
.1 .2
192.168.10.0/24 router bgp 321 neighbor 192.168.100.1 remote-as 123 nlri unicast multicastnlri unicast multicast network 192.192.25.0 255.255.255.0 nlri unicast multicastnlri unicast multicastno auto-summary
Congruent Topologies
168
NLRI: 192.192.25/24 AS_PATH: 321MED:Next-Hop: 192.168.100.2...
Unicast Information
Multicast Information
MP_REACH_NLRI: 192.192.25/24AFI: 1, Sub-AFI: 2 (multicast) AS_PATH: 321MED:Next-Hop: 192.168.100.2...
Routing Update
MBGP — NLRI InformationMBGP — NLRI Information
Congruent TopologiesAS 321
AS 123BGP Session for Unicast and
Multicast NLRI
Sender
192.168.100.0/24
192.192.25.0/24
Receiver
.1 .2
192.168.10.0/24
169
AS 321AS 123
192.192.25.0/24
Sender
192.168.100.0/24
192.168.200.0/24
Unicast Traffic.1
.1
.2
.2
router bgp 321 . . . network 192.192.25.0 nlri unicast multicast neighbor 192.168.100.1 remote-as 123 nlri unicast neighbor 192.168.200.1 remote-as 123 nlri multicast
Multicast Traffic
MBGP — NLRI InformationMBGP — NLRI Information
Incongruent Topologies
170
MBGP — NLRI Information
NLRI: 192.192.25/24 AS_PATH: 321MED:Next-Hop: 192.168.100.2192.168.100.2
NLRI: 192.192.25/24 AS_PATH: 321MED:Next-Hop: 192.168.100.2192.168.100.2
Unicast Information
Routing Update
Incongruent Topologies
AS 321AS 123
192.192.25.0/24
Sender
192.168.100.0/24
192.168.200.0/24
Unicast Traffic.1
.1
.2
.2Multicast Traffic
171
MBGP — NLRI Information
MP_REACH_NLRI: 192.192.25/24AFI: 1, Sub-AFI: 2 AS_PATH: 321MED:Next-Hop: 192.168.200.2192.168.200.2
MP_REACH_NLRI: 192.192.25/24AFI: 1, Sub-AFI: 2 AS_PATH: 321MED:Next-Hop: 192.168.200.2192.168.200.2
Multicast Information
Routing Update
Incongruent Topologies
AS 321AS 123
192.192.25.0/24
Sender
192.168.100.0/24
192.168.200.0/24
Unicast Traffic.1
.1
.2
.2Multicast Traffic
172
MBGP — NLRI Information
Incongruent Topologies
AS 321AS 123
192.192.25.0/24
Sender
192.168.100.0/24
192.168.200.0/24
Unicast Traffic.1
.1
.2
.2Multicast Traffic
Network Next-Hop Path192.192.25.0/24 192.168.100.2 321
Network Next-Hop Path192.192.25.0/24 192.168.200.2 321
Unicast RIB
Multicast RIB
173
Populating the MRIBPopulating the MRIB
• Just to restatenetwork <foo> <foo-mask> [nlri multicast unicast]redistribute <unicast> route-map <map>aggregate-address <foo> <foo-mask> [nlri multicast unicast]neighbor <foo> default-originate [nlri multicast unicast]
174
MBGP—SummaryMBGP—Summary
• Solves part of inter-domain problem– Can exchange multicast routing information
– Uses standard BGP configuration knobs
– Permits separate unicast and multicast topologies if desired
• Still must use PIM to:– Build distribution trees
– Actually forward multicast traffic
– PIM-SM recommended• But there’s still a problem using PIM-SM here… (more on that
later)
175
Midterm ExamMidterm Exam
– ...is used to propagate forwarding state?
PIM-SM - Protocol Independent Multicast-Sparse Mode
– ...maintains routing information for interdomain RPF checking?
MBGP - Multiprotocol Border Gateway Protocol
Which protocol...
– …exchanges active source information between RPs?
MSDP - Multicast Source Discovery Protocol
176
AgendaAgenda
• What Is Multicast
• Multicast Protocols
• Multicast Configurations
• Troubleshooting
• Futures
• Useful Links
177
Putting it all together..Putting it all together..
• PIM-SM, MBGP, MSDP
• Public multicast peering (MIX)
• Transit topology examples
• Address allocation– GLOP draft-ietf-mboned-static-allocation-00.txt
178
ISP Requirements at the MIXISP Requirements at the MIX
• Current solution: MBGP + PIM-SM + MSDP– Environment
• ISPs run iMBGP and PIM-SM (internally)• ISPs multicast peer at a public interconnect
– Deployment • Border routers run eMBGP• The interfaces on interconnect run PIM-SM• RPs’ MSDP peering is fully meshed• All peers set a common distance for eMBGP
179
ISP BPublic
InterconnectISP A
ISP C AS 10888
RPRP
RP RP
eMBGP
iMBGPiMBGP
iMBGPiMBGP
PIM-SM
PIM-SM PIM-SM
Peering Solution: MBGP + PIM-SM +MSDP
ISP Requirements at the MIXISP Requirements at the MIX
Redistribute old MBONEDVMRP routes into MBGP
180
Multicast Transit Design ObjectivesMulticast Transit Design Objectives
• PIM Border Constraints– Confine registers within domain
– Confine local groups
– Confine RP announcements
– Control SA advertisements via MSDP
• Border RPF check– RPF check against unicast routes to multicast sources
• MSDP RPF check– RPF check toward RP in received SAs
181
Recommended MSDP SA FilterRecommended MSDP SA Filter
! domain-local applicationsaccess-list 111 deny ip any host 224.0.2.2 ! access-list 111 deny ip any host 224.0.1.3 ! Rwhodaccess-list 111 deny ip any host 224.0.1.24 ! Microsoft-ds access-list 111 deny ip any host 224.0.1.22 ! SVRLOCaccess-list 111 deny ip any host 224.0.1.2 ! SGI-Dogfightaccess-list 111 deny ip any host 224.0.1.35 ! SVRLOC-DAaccess-list 111 deny ip any host 224.0.1.60 ! hp-device-disc! auto-rp groupsaccess-list 111 deny ip any host 224.0.1.39 access-list 111 deny ip any host 224.0.1.40! scoped groupsaccess-list 111 deny ip any 239.0.0.0 0.255.255.255! loopback, private addresses (RFC 1918)access-list 111 deny ip 10.0.0.0 0.255.255.255 anyaccess-list 111 deny ip 127.0.0.0 0.255.255.255 anyaccess-list 111 deny ip 172.16.0.0 0.15.255.255 anyaccess-list 111 deny ip 192.168.0.0 0.0.255.255 anyaccess-list 111 permit ip any any
ftp://ftp-eng.cisco.com/ipmulticast/msdp-sa-filter.txt
182
Multicast Boundary FilterMulticast Boundary Filter
!deny auto-rp groupsaccess-list 1 deny 224.0.1.40access-list 1 deny 224.0.1.39!deny scoped groupsaccess-list 1 deny 239.0.0.0 0.255.255.255!permit the rest of 224/4access-list 1 permit 224.0.0.0 15.255.255.255
Minimum RecommendedMinimum Recommended
183
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
PIM Border Constraints
pos0/0 1.1.1.1 pos0/0 1.1.1.2
ip pim send-rp-announce Loopback0 scope 255ip pim send-rp-discovery Loopback0 scope 255
int pos0/0 ip pim sparse-dense-mode
int pos0/0 ip pim sparse-dense-mode
Single-Homed, ISP RP, Non-MBGPSingle-Homed, ISP RP, Non-MBGP
184
Single-Homed, ISP RP, Non-MBGPSingle-Homed, ISP RP, Non-MBGP
Checking PIM Border (RP mapping)
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RPpos0/0 1.1.1.1 pos0/0 1.1.1.2
tail-gw#show ip pim rp mappingPIM Group-to-RP Mappings
Group(s) 224.0.0.0/4 RP 3.3.3.7 (loopback.transit.net), v2v1 Info source: 1.1.1.2 (tail.transit.net), via Auto-RP Uptime: 21:57:41, expires: 00:02:08
185
Single-Homed, ISP RP, Non-MBGPSingle-Homed, ISP RP, Non-MBGP
Checking PIM Border (RP mapping)
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RPpos0/0 1.1.1.1 pos0/0 1.1.1.2
Transit-tail#show ip pim rp mappingPIM Group-to-RP MappingsThis system is an RP (Auto-RP)This system is an RP-mapping agent
Group(s) 224.0.0.0/4 RP 3.3.3.7 (loopback.transit.net), v2v1 Info source: 3.3.3.7 (loopback.transit.net), via Auto-RP Uptime: 22:08:47, expires: 00:02:14
186
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
Border RPF Check
pos0/0 1.1.1.1 pos0/0 1.1.1.2
ip route 192.168.100.0 255.255.255.0 1.1.1.1
router bgp 109 ... network 192.168.100.0 nlri unicast multicast
ip route 0.0.0.0 0.0.0.0 1.1.1.2
Single-Homed, ISP RP, Non-MBGPSingle-Homed, ISP RP, Non-MBGP
187
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
MSDP RPF Check
pos0/0 1.1.1.1 pos0/0 1.1.1.2
- no RP / no MSDP
Single-Homed, ISP RP, Non-MBGPSingle-Homed, ISP RP, Non-MBGP
- no downstream RP - no downstream MSDP peering
188
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
PIM Border Constraints
pos0/0 1.1.1.1 pos0/0 1.1.1.2
int pos0/0 ip pim sparse-mode ip pim bsr-border ip multicast boundary 1
ip msdp sa-filter out 1.1.1.2 111ip msdp sa-filter in 1.1.1.2 111
Single-Homed, Customer RP, Non-MBGPSingle-Homed, Customer RP, Non-MBGP
Note: Access-list 111 = Recommended SA Filter
189
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
PIM Border Constraints
pos0/0 1.1.1.1 pos0/0 1.1.1.2
Single-Homed, Customer RP, Non-MBGPSingle-Homed, Customer RP, Non-MBGP
int pos0/0 ip pim sparse-mode ip pim bsr-border ip multicast boundary 1
ip msdp sa-filter out 1.1.1.1 111ip msdp sa-filter in 1.1.1.1 111
Note: Access-list 111 = Recommended SA Filter
190
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
Border RPF Check
pos0/0 1.1.1.1 pos0/0 1.1.1.2
ip route 192.168.100.0 255.255.255.0 1.1.1.1
router bgp 109 ... network 192.168.100.0 nlri unicast multicast
ip route 0.0.0.0 0.0.0.0 1.1.1.2
Single-Homed, Customer RP, Non-MBGPSingle-Homed, Customer RP, Non-MBGP
191
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
MSDP RPF Check
pos0/0 1.1.1.1 pos0/0 1.1.1.2
ip msdp peer 1.1.1.1 connect-source pos0/0
ip msdp peer 1.1.1.2 connect-source pos0/0
Single-Homed, Customer RP, Non-MBGPSingle-Homed, Customer RP, Non-MBGP
192
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
PIM Border Constraints
pos0/0 1.1.1.1 pos0/0 1.1.1.2
int pos0/0 ip pim sparse-mode ip pim bsr-border ip multicast boundary 1
ip msdp sa-filter out 1.1.1.2 111ip msdp sa-filter in 1.1.1.2 111
Single-Homed, Customer RP, MBGPSingle-Homed, Customer RP, MBGP
Note: Access-list 111 = Recommended SA Filter
193
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
PIM Border Constraints
pos0/0 1.1.1.1 pos0/0 1.1.1.2
Single-Homed, Customer RP, MBGPSingle-Homed, Customer RP, MBGP
int pos0/0 ip pim sparse-mode ip pim bsr-border ip multicast boundary 1
ip msdp sa-filter out 1.1.1.1 111ip msdp sa-filter in 1.1.1.1 111
Note: Access-list 111 = Recommended SA Filter
194
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
Border RPF Check
pos0/0 1.1.1.1 pos0/0 1.1.1.2
Single-Homed, Customer RP, MBGPSingle-Homed, Customer RP, MBGP
router bgp 109 neighbor 1.1.1.1 remote-as 100 nlri unicast multicast neighbor 1.1.1.1 update-source pos 0/0
router bgp 100 network 192.168.100.0 nlri unicast multicast neighbor 1.1.1.2 remote-as 109 nlri unicast multicast neighbor 1.1.1.2 update-source pos0/0
195
192.168.100.0/24
Receiver
Tail-site Customer Transit AS109
RP
MSDP RPF Check
pos0/0 1.1.1.1 pos0/0 1.1.1.2
ip msdp peer 1.1.1.1 connect-source pos0/0
ip msdp peer 1.1.1.2 connect-source pos0/0
Single-Homed, Customer RP, MBGPSingle-Homed, Customer RP, MBGP
196
Which Mode—Sparse or DenseWhich Mode—Sparse or Dense
• Sparse mode– Must configure a Rendezvous Point (RP)
• Statically (on every Router)• Using Auto-RP (Routers learn RP automatically)• Using BSR (Routers learn RP automatically)
– Very efficient• Uses Explicit Join model• Traffic only flows to where it’s needed
– Separate control and data planes• Router state only created along flow paths• Deterministic topological behavior
– Scales better than dense mode• Works for bothboth sparsely or densely populated networks
197
CONCLUSIONCONCLUSIONVirtually all production networks should
be configured to run in Sparse mode!
Which Mode—Sparse or DenseWhich Mode—Sparse or Dense
198
RP PlacementRP Placement
• Q: “Where do I put the RP?”– A: “Generally speaking, it’s not critical”
• SPT’s are normally used by default– RP is a place for source and receivers to meet– Traffic does not normally flow through the RP– RP is therefore not a bottleneck
• Exception: SPT-Threshold = Infinity– Traffic stays on the shared tree– RP couldcould become a bottleneck
199
Static RP’sStatic RP’s
• Hard-coded RP address– When used, must be configured on every router
– All routers must have the same RP address
– RP fail-over not possible• Exception: If Anycast RPs are used.
• Commandip pim rp-address <address> [group-list <acl>] [override]
– Optional group list specifies group range• Default: Range = 224.0.0.0/4 (Includes Auto-RP Groups!!!!)(Includes Auto-RP Groups!!!!)
– Override keyword “overrides” Auto-RP information• Default: Auto-RP learned info takes precedence
200
Auto-RP OverviewAuto-RP Overview
• All routers automatically learn RP address– No configuration necessary except on:
• Candidate RPs• Mapping Agents
• Makes use of Multicast to distribute info– Two specially IANA assigned Groups used
• Cisco-Announce - 224.0.1.39• Cisco-Discovery - 224.0.1.40
– Typically Dense mode is used forward these groups
• Permits backup RP’s to be configured
• Can be used with Admin-Scoping
201
Auto-RP FundamentalsAuto-RP Fundamentals
• Candidate RPs– Configured via global config command
ip pim send-rp-announce <intfc> scope <ttl> [group-list acl]
– Multicast RP-Announcement messages• Sent to Cisco-Announce (224.0.1.39) group• Sent every rp-announce-interval (default: 60 sec)
– RP-Announcements contain:• Group Range (default = 224.0.0.0/4)• Candidate’s RP address• Holdtime = 3 x <rp-announce-interval>
202
Auto-RP FundamentalsAuto-RP Fundamentals
• Mapping agents– Configured via global config command
ip pim send-rp-discovery scope <ttl>
– Receive RP-Announcements• Select highest C-RP IP addr as RP for group range• Stored in Group-to-RP Mapping Cache with holdtimes
– Multicast RP-Discovery messages• Sent to Cisco-Discovery (224.0.1.40) group• Sent every 60 seconds or when changes detected
– RP-Discovery messages contain:• Contents of MA’s Group-to-RP Mapping Cache
203
Auto-RP FundamentalsAuto-RP Fundamentals
• All Cisco routers– Join Cisco-Discovery (224.0.1.40) group
• Automatic • No configuration necessary
– Receive RP-Discovery messages• Stored in local Group-to-RP Mapping Cache• Information used to determine RP for group range
204
Auto-RP—From 10,000 FeetAuto-RP—From 10,000 Feet
Announce Announce
Ann
ounc
eA
nnou
nce
Announce Announce
Ann
ounc
eA
nnou
nce
Announce
RP-Announcements multicast to theCisco Announce (224.0.1.39) group
AA
CC DDC-RP1.1.1.1
C-RP2.2.2.2
BB
MA MA
205
CC DDC-RP1.1.1.1
C-RP2.2.2.2
Auto-RP—From 10,000 FeetAuto-RP—From 10,000 Feet
Discovery
Discovery
Dis
cove
ry
Dis
cove
ry
Discovery
Discovery
Dis
cove
ry
Dis
cove
ry
Discovery
RP-Discoveries multicast to theCisco Discovery (224.0.1.40) group
AA BB
MA MA
206
BSR OverviewBSR Overview
• A single Bootstrap Router (BSR) is elected– Multiple Candidate BSR’s (C-BSR) can be configured
• Provides backup in case currently elected BSR fails
– C-RP’s send C-RP announcements to the BSR• C-RP announcements are sent via unicast
• BSR stores ALL C-RP announcements in the “RP-set”
– BSR periodically sends BSR messages to all routers• BSR Messages contain entire RP-set and IP address of BSR
• Messages are flooded hop-by-hop throughout the network away from the BSR
– All routers select the RP from the RP-set• All routers use the same selection algorithm; select same RP
• BSR cannot cannot be used with Admin-Scoping
207
BSR FundamentalsBSR Fundamentals
• Candidate RPs– Configured via global config command
– ip pim rp-candidate <intfc> [group-list acl]
– Unicast PIMv2 C-RP messages to BSR• Learns IP address of BSR from BSR messages• Sent every rp-announce-interval (default: 60 sec)
– C-RP messages contain:• Group Range (default = 224.0.0.0/4)• Candidate’s RP address• Holdtime = 3 x <rp-announce-interval>
208
BSR FundamentalsBSR Fundamentals
• Bootstrap router (BSR)– Receive C-RP messages
• Accepts and stores ALL C-RP messages• Stored in Group-to-RP Mapping Cache w/holdtimes
– Originates BSR messages• Multicast to All-PIM-Routers (224.0.0.13) group
– (Sent with a TTL = 1)• Sent out all interfaces. Propagate hop-by-hop• Sent every 60 seconds or when changes detected
– BSR messages contain:• Contents of BSR’s Group-to-RP Mapping Cache• IP Address of active BSR
209
BSR FundamentalsBSR Fundamentals
• Candidate bootstrap router (C-BSR)– Configured via global config command
ip pim bsr-candidate <intfc> <hash-length> [priority <pri>]
– <intfc>» Determines IP address
– <hash-length> » Sets RP selection hash mask length
– <pri> » Sets the C-BSR priority (default = 0)
– C-BSR with highest priority elected BSR– C-BSR IP address used as tie-breaker
» (Highest IP address wins)– The active BSR may be preempted
» New router w/higher BSR priority forces new election
210
BSR FundamentalsBSR Fundamentals
• All PIMv2 routers– Receive BSR messages
• Stored in local Group-to-RP Mapping Cache• Information used to determine active BSR address
– Selects RP using Hash algorithm• Selected from local Group-to-RP Mapping Cache• All routers select same RP using same algorithm• Permits RP-load balancing across group range
211
PIMv2 Sparse Mode
PIMv2 Sparse Mode
C-RP C-RP
D
E
F
G
A
BSR—From 10,000 feetBSR—From 10,000 feet
BS
R M
sgs
BSR MsgsBSR Msgs
BS
R M
sgs
C-RP Advert
isemen
t
(unicast)
C-RP Advertisement
(unicast)
BSR Msgs Flooded Hop-by-Hop
B C
BSRBSR
212
Auto-RP vs BSRAuto-RP vs BSR
• Auto-RP– Easy to configure
– Supports Admin. Scoped Zones
– Works in either PIMv1 or PIMv2 Cisco networks
– Cisco proprietary
• BSR– Easy to configure
– Does notnot support Admin. Scoped Zones
– Non-proprietary (PIMv2 networks only)
213
Anycast RP—OverviewAnycast RP—Overview
• Uses single statically defined RP address– Two or more routers have same RP address
• RP address defined as a Loopback Interface.• Loopback address advertised as a Host route.
– Senders & Receivers Join/Register with closest RP• Closest RP determined from the unicast routing table.
• MSDP session(s) run between all RPs– Informs RPs of sources in other parts of network
– RPs join SPT to active sources as necessary
214
RP1RP110.0.0.110.0.0.1
RP210.0.0.1
MSDPMSDP
RecRecRecRec
Rec
Rec
SrcSrc
SrcSrc
XX
Anycast RP—ConvergenceAnycast RP—Convergence
215
RP1RP1 RP210.0.0.110.0.0.1 10.0.0.1
Rec
RecRecRecRec
Rec
SrcSrc
Src
XX
Anycast RP—ConvergenceAnycast RP—Convergence
216
PIM Configuration StepsPIM Configuration Steps
• Enable Multicast Routing on every every router
• Configure every every interface for PIM• Use Sparse-Dense Mode (to support Auto-RP)
• Configure the RP (if using Sparse Mode)– Static RP addressing
• RP address must be configured on every router
– Using Auto-RP or BSR• Configure certain routers as Candidate RP(s)• All other routers automatically learn elected RP
217
PIM Sparse Mode
PIM Sparse Mode
RP/Mapping AgentC D
A B
On every router: ip multicast-routingip pim accept-RP Auto-RP
On every interface: ip pim sparse-dense-mode
On routers B and C: ip pim send-rp-announce loopback0 scope <ttl>ip pim send-rp-discovery loopback0 scope <ttl>
RP/Mapping Agent
Fool-Proof Multicast ConfigurationFool-Proof Multicast Configuration
218
We’ll just use the spare 56K line for the IP Multicast traffic and not the T1.
no ip pim dense-mode ip pim dense-mode
Classic Partial Multicast Cloud Mistake
T1 56K
src
rcvrNetworkEngineer
XX
RPF Failure!!!!!RPF Failure!!!!!
219
JUST DO IT!JUST DO IT!Enable multicast on ALLALL interfaces in ALLALL routers in a given network. Failure to do
so will require complex (and typically unnecessary) Multicast Traffic Engineering.
Beginner’s Guide to IP MulticastBeginner’s Guide to IP Multicast
220
AgendaAgenda
• What Is Multicast
• Multicast Protocols
• Multicast Configurations
• Troubleshooting
• Futures
• Useful Links
221
Debugging and TroubleshootingDebugging and Troubleshooting
• Monitoring Tools– sdr_monitor
• Kamil Sarac and Kevin Almeroth - UCSB• http://www.cs.ucsb.edu/~ksarac/sdr-desc.html• Several sites on Abilene and vBNS
– mlisten• http://www.cc.gatech.edu/computing/Telecomm/mbone/
– Abilene Core Node Router Proxy• http://hydra.uits.iu.edu/~abilene/proxy/
222
Debugging and TroubleshootingDebugging and Troubleshooting
• Multicast Looking Glass– Written by NLANR Engineering Services
– Based on DIGEX Looking Glass
– Queries Pittsburgh GigaPoP multicast border router for multicast information
– http://www.ncne.nlanr.net/tools/mlg2.html
223
Debugging and TroubleshootingDebugging and Troubleshooting
• Mtrace– No longer gives coherent stats
– Won’t even traverse some routers
– Basically useless
• Multicast Debugging Handbook– draft-ietf-mboned-mdh-02.txt
224
Debugging and Troubleshooting (cont.)Debugging and Troubleshooting (cont.)
• Useful Cisco Commands
show ip sdr [detail | address | <“session name”>]
show ip mroute [summary | address | active]
show ip rpf <ip address>
show ip msdp [ summary | peer | count | sa-cache ]
show ip mbgp [address | neighbor [ ip [adv]]
225
>show ip sdrshow ip sdr
SDR Cache - 67 entries
2/5 ASSIST J Kerr Repeat
3/4 LAN Systems - NT & SMS in Labs
4J KRVM Radio
ABONE Discussion
BGMP/MASC discussion
CANARIE 5th Annual Advanced Networks Workshop(MPEG1)
dslab-test
ECG - Tunnel Test from UB
GT test
High Bandwidth Bird (HBB)
iBAND3 Keynotes [MP3] at Stardust.com
IMJ -- Channel 1
IMJ -- Channel 2
Korea Radio Broadcasting from SNU
...
226
>show ip sdr detail>show ip sdr detailSDR Cache - 68 entries
Session Name: BGMP/MASC discussion
Description: BGMP/MASC discussion
Group: 0.0.0.0, ttl: 0, Contiguous allocation: 1
Lifetime: from 12:30:00 EDT May 31 1999 until 19:50:00 EDT Jun 9 2000
Uptime: 12:17:02, Last Heard: 11:27:03
Announcement source: 128.9.160.100, destination: 224.2.127.254
Created by: pavlin 3136737610 3136737920 IN IP4 128.9.160.100
Phone number: Pavlin Radoslavov (USC/ISI) +1 310 822 1511 (ext. 8125)
Email: Pavlin Radoslavov (USC/ISI) <[email protected]>
URL: http://netweb.usc.edu/bgmp/
Media: audio 17396 RTP/AVP 0
Media group: 224.2.134.153, ttl: 127
Attribute: ptime:40
Media: whiteboard 48173 udp wb
Media group: 224.2.188.133, ttl: 127
Media: text 56770 udp nt
Media group: 224.2.168.204, ttl: 127
227
>show ip sdr "NASA TV - Broadcast from NASA HQ"
SDR Cache - 68 entries
Session Name: NASA TV - Broadcast from NASA HQ
Description: NASA TV Multicasting from NASA HQ
Group: 0.0.0.0, ttl: 0, Contiguous allocation: 1
Lifetime: from 12:36:16 EDT Jun 11 1999 until 11:36:16 EST Dec 11 1999
Uptime: 1d17h, Last Heard: 18:21:10
Announcement source: 131.182.10.250, destination: 224.2.127.254
Created by: ellery 3132060082 3138107776 IN IP4 131.182.10.250
Phone number: +202 651 8512
Email: [email protected] (Ellery D. Coleman)
URL: http://www.nasa.gov/ntv
Media: audio 23748 RTP/AVP 0
Media group: 224.2.203.38, ttl: 127
Media: video 60068 RTP/AVP 31
Media group: 224.2.203.37, ttl: 127
Attribute: framerate:9
Attribute: quality:8
Attribute: grayed:0
228
>show ip bgp neighbors 192.88.115.113
BGP neighbor is 192.88.115.113, remote AS 145, external link
Index 2, Offset 0, Mask 0x4
NEXT_HOP is always this router
BGP version 4, remote router ID 204.147.128.139
BGP state = Established, table version = 2, up for 05:54:44
Last read 00:00:05, last send 00:00:07
Hold time 90, keepalive interval 30 seconds
Neighbor NLRI negotiation:
Configured for unicast and multicast routes
Peer negotiated unicast and multicast routes
Exchanging unicast and multicast routes
...
Number of unicast/multicast prefixes received 0/6773
...
229
>show ip mbgp neigh 192.88.115.113 adv
Network Next Hop Metric LocPrf Weight Path
*> 128.182.0.0 0.0.0.0 0 32768 i
*> 192.88.115.64/24 0.0.0.0 0 32768 i
230
AgendaAgenda
• What Is Multicast
• Multicast Protocols
• Multicast Configurations
• Troubleshooting
• Futures
• Useful Links
231
FuturesFutures
• PIM modes designed for specific scalings and applications– Bidir-PIM
– Single Source Multicast (SSM)
232
Bidir PIMBidir PIM
• Designed for many to many multicast groups
• Builds a single (*,G) shared tree which all sources use
• Relieves the router from having to keep state for each and every source
233
SSMSSM
• Designed to allow receivers to specify the single source which they wish to receive traffic from, such as when viewing a broadcast from a single provider
• Requires IGMPv3 so that receivers can tell the first hop router which source they want
• RP is not used
• Requires an out of band method to discover the proper source (e.g. a web pag or email
234
AgendaAgenda
• What Is Multicast
• Multicast Protocols
• Multicast Configurations
• Troubleshooting
• Futures
• Useful Links
235
Useful LinksUseful Links
• Multicast Documentation (FAQ and Tools): http://www.ncne.nlanr.net/faq/multicast.html
• Cisco IOS Documentation • Cisco IP Multicast: ftp://ftp-eng.cisco.com/ipmulticast/• Introduction to Multicast Routing:
http://www.3com.com/nsc/501303.html• Send mail to [email protected]