IPMulticast
AIT Workshop
May 2003
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
What is Multicasting?
Multicast Uses
|
|
|
|
Any Applications with multiple
receivers |
|
1-to-many or many-to-many |
|
Live Video distribution |
|
Collaborative groupware |
|
Periodic Data Delivery -
"Push" technology |
|
stock quotes, sports scores, magazines,
newspapers |
|
advertisements |
|
Server/Web-site replication |
|
Reducing Network/Resource Overhead |
|
more efficient to establish multicast
tree rather then multiple point-to-point links |
|
Resource Discovery |
|
Distributed Interactive Simulation
(DIS) |
|
wargames |
|
virtual reality |
|
|
Glossary of Terms: the
basics
|
|
|
|
|
Source = source of multicast stream |
|
Multicast stream = IP packet with
multicast address as IP destination address. a.k.a. multicast group. |
|
s,g (unicast source, group) reference |
|
UDP packets (TTL > 1 for routed
nets) |
|
Receiver = receiver (s) of multicast stream |
IP Multicast building
blocks
|
|
|
|
The SENDERS send |
|
Multicast Addressing - rfc1700 |
|
class D (224.0.0.0 - 239.255.255.255) |
|
The RECEIVERS inform the routers what
they want to receive |
|
Internet Group Management Protocol
(IGMP) - rfc2236 -> version 2 |
|
The routers make sure the STREAMS make
it to the correct receiving nets. |
|
Multicast Routing Protocols
(PIM-SM/SSM) |
|
RPF
(reverse path forwarding) – against source address |
Multicast Forwarding
|
|
|
|
Multicast Routing is backwards from
Unicast Routing |
|
Unicast Routing is concerned about
where the packet is going. |
|
Multicast Routing is concerned about
where the packet came from. |
|
Multicast Routing uses “Reverse Path
Forwarding” |
Multicast Forwarding
|
|
|
|
What is RPF? |
|
A router forwards a multicast datagram
only if received on the up stream interface to the source (i.e. it follows
the distribution tree). |
|
The RPF Check |
|
The source IP address of incoming
multicast packets are checked against a unicast routing table. |
|
If the datagram arrived on the
interface specified in the
routing table for the source
address; then the RPF check
succeeds. |
|
Otherwise, the RPF Check fails. |
Reverse Path Forwarding
|
|
|
|
Multicast uses unicast routes to
determine path back to source |
|
IGP, connected, MBGP |
|
RPF checks ensures packets won’t loop |
|
Routes contain incoming interface |
|
Packets matching are forwarded |
|
Packets mis-matching are dropped |
IP Multicast Components
|
|
|
Group Membership Protocol - enables
hosts to dynamically join/leave multicast groups. Membership info is
communicated to nearest router |
|
Multicast Routing Protocol - enables
routers to build a delivery tree between the sender(s) and receivers of a
multicast group |
|
|
Multicast Distribution
Trees
Multicast Distribution
Trees
Multicast Distribution
Trees
|
|
|
|
Source
or Shortest Path trees |
|
More resource intensive; requires more
stateà n(S x G) |
|
You get optimal paths from source to
all receivers, minimizes delay |
|
Best for one-to-many distribution |
|
Shared
or Core Based trees |
|
Uses less resources; less memory àn(G) |
|
You may get sub optimal paths from
source to all receivers, depending on topology |
|
The RP (core) itself and its location may
affect performance |
|
Best for many-to-many distribution |
|
May be necessary for source discovery
(PIM-SM) |
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
Multicast Addressing
|
|
|
|
|
IP Multicast Group Addresses |
|
224.0.0.0–239.255.255.255 |
|
Class “D” Address Space |
|
High order bits of 1st Octet = “1110” |
|
TTL value defines scope and limits
distribution |
|
IP multicast packet must have TTL >
interface TTL or it is discarded |
|
values are: 0=host, 1=network, 32=same
site, 64=same region, 128=same continent, 255=unrestricted |
|
No longer recommended as a reliable
scoping mechanism |
Multicast Addressing
|
|
|
|
|
draft-albanna-iana-ipv4-mcast-guidelines-xx |
|
http://www.iana.org/assignments/multicast-addresses |
|
Examples of Reserved & Link-local
Addresses |
|
224.0.0.0 - 224.0.0.255 reserved &
not forwarded |
|
239.0.0.0 - 239.255.255.255
Administrative Scoping |
|
224.0.0.1 - All local hosts |
|
224.0.0.2 - All local routers |
|
224.0.0.4 - DVMRP |
|
224.0.0.5 - OSPF |
|
224.0.0.6 - Designated Router OSPF |
|
224.0.0.9 - RIP2 |
|
224.0.0.13 - PIM |
|
224.0.0.15 - CBT |
|
224.0.0.18 - VRRP |
Dynamic Address
Allocation
|
|
|
|
SDR The defacto |
|
224.2.0.0 – 224.2.255.255 (224.2/16)
SDP/SAP Block |
|
Still used, but not required |
|
Will not scale well |
|
Limited address space |
|
Single directory application for ALL
content?!?!? |
|
Web links should prevail |
Multicast Addressing
|
|
|
|
|
Administratively Scoped Addresses –
rfc2365 |
|
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
|
|
|
|
|
GLOP addresses |
|
Provides globally available private
Class D space |
|
233.x.x/24 per AS number |
|
RFC2770 |
|
|
|
How? |
|
AS number = 16 bits |
|
Insert the 16 ASN into the middle two
octets of 233/8 |
|
|
|
Online Glop Calculator: |
|
http://www.shepfarm.com/multicast/glop.html |
Multicast Addressing
|
|
|
|
|
SSM - draft-ietf-ssm-arch-*.txt |
|
232/8 – IANA assigned |
|
One-to-many ONLY (no shared trees) |
|
Guaranties ONE source on any delivery
tree |
|
Content security (no ‘Captain
Midnight’) |
|
Reduced protocol dependance – more
later.. |
|
Solves address allocation issues for
interdomain one-to many |
|
~tree address is 64 bits – S,G |
|
Host must learn of source address
out-of-band (web page) |
|
Requires host-to-router source AND
group request |
|
IGMPv3 include-source list |
|
Hard-coded behavior in 232/8 in most
router implementations |
|
draft-ietf-mboned-ssm232-*.txt |
|
Configurable to expand range |
Multicast Addresses -
Layer 2
|
|
|
|
RFC 1700 - ethernet |
|
|
|
224. 10. 8. 5 <-- Class D IP address |
|
0000 0001 0000 0000 0101 1110 0xxx xxxx xxxx xxxx
xxxx xxxx <-- IANA’s reserved block 01-00-5E |
|
|
| |
|
Multicast Bit 0 =
Internet Multicast |
|
1 = IANA
reserved |
|
0000 0001 0000 0000 0101 1110 0000 1010 0000 1000
0000 0101 <-- MAC address 01-00-5E-0A-08-05 |
|
224.10.8.5 multicast stream maps to
01-00-5E-0A-08-05 ethernet layer 2 address. |
|
rfc 1469 TR |
|
rfc 1390 FDDI |
|
rfc 2226 & 2022 - ATM |
|
rfc 1209 SMDS (broadcast) |
|
|
|
|
Ethernet Multicast
Addressing
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
Internet Group Membership(management)
Protocol (IGMP)
|
|
|
|
|
How hosts tell routers about group
membership |
|
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, newer Windows releases, and most UNIX systems |
|
IGMP version 3 is specified in IETF
draft |
|
RFC3376 |
|
provides source include-list capabilities
(SSM!) |
|
Support? |
|
FreeBSD patch, Linux patch, Window XP |
|
http://videolab.uoregon.edu |
|
|
IGMP Details
|
|
|
|
|
Router: |
|
sends Membership Query messages to All
Hosts (224.0.0.1) |
|
query-interval = 125 secs default |
|
router with lowest IP address is
Querier (rest non-queriers) |
|
If lower-IP address query heard,
backoff to non-querier state |
|
Other Querier Present Interval default:
(robust-count x query-interval) + (0.5 x query-response-interval) = 255 secs |
|
listens for reports (whether querier or
not) and adds group to membership list for that interface |
|
query-response-interval = 10 secs
default |
|
timeout (Group member interval)
default: |
|
(robust-count x query-interval) + (1 x
query-response-interval) = 260 sec |
|
robust-count - provides fine-tuning to
allow for expected packet loss on a subnet. Default = 2 (tunable from 2-10) |
|
|
|
|
|
|
IGMP Details
|
|
|
|
|
Host: |
|
sends Membership Report messages, if
joined |
|
waits 0-10 sec (def). |
|
Hosts listen to other host reports |
|
Only 1 host responds |
|
Join messages (unsolicited Membership
Report) to group address (e.g. 224.10.8.5) |
|
Leave messages to All Routers
(224.0.0.2) |
|
IGMPv1/2 reports group membership ONLY
– No sources |
|
|
IGMP Protocol Flow - Join
a Group
|
|
|
Router triggers group membership
request to PIM. |
|
Hosts can send unsolicited join membership
messages – called reports in the RFC (usually more than 1) |
|
Or hosts can join by responding to
periodic query from router |
|
|
IGMP Protocol Flow -
Querier
|
|
|
|
|
Hosts respond to query to indicate (new
or continued) interest in group(s) |
|
only 1 host should respond per group |
|
Hosts fall into idle-member state when
same-group report heard. |
|
After 260 sec with no response, router
times out group |
IGMP Protocol Flow -
Leave a Group
|
|
|
|
Hosts that support IGMP v2 send leave
messages to all routers group indicating group they’re leaving. |
|
Router follows up with 2 group-specific
queries messages |
|
IGMP v1 hosts leave by not responding
to queries (260 sec timeout) |
IGMPv3
|
|
|
H1 wants to receive from S = 1.1.1.1
but not from S = 2.2.2.2 |
|
With IGMPv3, specific sources can be
pruned back - S = 2.2.2.2 in this case |
IGMP Enhancements
|
|
|
|
|
IGMP Version 2 |
|
multicast router with lowest IP address
is elected querier |
|
IGMPv1 was mcast protocol specific and
potentially conflicted. |
|
Group-Specific Query message is
defined. Enables router to transmit query to specific multicast address
rather than to the "all-hosts" address of 224.0.0.1 |
|
Leave Group message is defined. Last
host in group wishes to leave, it sends Leave Group message to the
"all-routers" address of 224.0.0.2. Router then transmits
Group-Specific query and if no reports come in, then the router removes that
group from the list of group memberships for that interface |
|
IGMP Version 3 |
|
Group-Source Report message is defined.
Enables hosts to specify which senders it can receive or not receive data
from. |
|
Group-Source Leave message is defined.
Enables host to specify the specific IP addresses of a (source,group) that it
wishes to leave. |
|
|
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
PIM-SM
|
|
|
|
|
Protocol Independent Multicast - sparse
mode |
|
draft-ietf-pim-sm-v2-new-xx |
|
Obsoletes RFC 2362 |
|
BSR removed from PIM spec. |
|
explicit join: assumes everyone does
not want the data |
|
uses unicast routing table for RPF checking |
|
data and joins are forwarded to RP for
initial rendezvous |
|
all routers in a PIM domain must have
RP mapping |
|
when load exceeds threshold forwarding
swaps to shortest path tree (default is first packet) |
|
state increases (not everywhere) as
number of sources and number of groups increase |
|
source-tree state is refreshed when
data is forwarded and with Join/Prune control messages |
|
|
PIM-SM Operation
Designated Router (DR)
|
|
|
|
Neighboring PIM-SM routers multicast
periodic “Hello” messages to each other - default 30 secs. |
|
Hello-interval tunable for faster
convergence |
|
On receipt of a Hello message |
|
a router stores the IP address and priority
for that neighbor |
|
Router with highest IP address is
selected as the DR, if the priorities match |
|
When DR goes down: |
|
new one selected by scanning all
neighbors on the interface and choosing the one with the highest IP address |
|
DR sends |
|
“Join/Prune” messages toward the RP
from receiver network |
|
“Register” messages toward the RP from
source network |
|
|
PIM Sparse-Mode :RP
|
|
|
|
Allows Source Trees or Shared Trees |
|
Rendezvous Point (RP) |
|
Matches senders with receivers |
|
Provides network source discovery |
|
Root of shared tree |
|
Typically use shared tree to bootstrap
source tree |
|
RP’s can be learned via: |
|
Static configuration – RECOMMENDED |
|
Auto-RP |
|
Bootstrap Router |
PIM-SM Shared Tree Join
PIM-SM Sender
Registration
PIM-SM Sender
Registration
PIM-SM Sender
Registration
PIM-SM SPT Cutover
PIM-SM SPT Cutover
PIM-SM SPT Cutover
PIM-SM SPT Cutover
PIM-SM SPT Cutover
PIM-SM Configuration
|
|
|
RP Configuration (static) on ALL
routers in PIM domain |
PIM-SM Configuration
|
|
|
For all routers with externally-facing
interfaces |
PIM-SM Configuration
|
|
|
For all routers when NOT using BSR or
Auto-RP |
PIM-SM Configuration
|
|
|
|
|
RP Mapping options |
|
Static RP |
|
Recommended |
|
Easy transition to Anycast-RP |
|
Allows for a hierarchy of RPs |
|
Auto-RP |
|
Fixed convergence timers (slow) |
|
Must flood RP mapping traffic |
|
BSR |
|
No longer in the PIM spec. |
|
Fixed convergence timers (slow) |
|
Allows for a hierarchy of RPs |
|
|
PIM-SSM
|
|
|
|
No shared trees |
|
No register packets |
|
No RP mapping required (no RP
required!) |
|
No RP-to-RP source discovery (MSDP) |
|
Requires IGMP include-source list –
IGMPv3 |
|
User-definable range |
|
IANA specifies 232/8 for global SSM |
PIM-SSM
PIM-SSM
LAB #1 – PIM-SM
LAB #1 – PIM-SM
LAB #1 – PIM-SM
LAB #1 – PIM-SM
LAB #1 – PIM-SM
LAB #1 – PIM-SM
LAB #1 – PIM-SM
LAB #1 – PIM RP state on
the RP
Lab #1 RP Register State
for an active source
|
|
|
RtrA# show ip pim route |
|
(198.58.3.242/32, 233.15.108.1/32),
expires 00:02:32, register |
|
Incoming interface: Ethernet0/0/2, RPF nbr 198.58.3.238, metric
[110/11112] |
|
Oif-list: (0) 00000000,
timeout-list: (0) 00000000 |
|
Immediate-list: (0) 00000000, timeout-list: (0) 00000000 |
|
Timeout-interval: 1, JP-holdtime round-up: 3 |
|
|
Lab #1 Shared-tree state
on DR
|
|
|
RtrB# show ip mroute |
|
(*, 224.2.127.254/32), uptime: 1d17h,
igmp ip pim |
|
Incoming interface: Ethernet0/0/2 (iod: 2), RPF nbr: 198.58.3.220 |
|
Outgoing interface list: (count: 1) |
|
Ethernet0/0/1 (iod 5), uptime: 1d17h, igmp |
|
|
Lab #1 Source Tree State
|
|
|
RtrB# show ip mroute |
|
... |
|
(63.105.122.14/32, 224.2.127.254/32),
uptime: 00:02:43, mrib ip pim |
|
Incoming interface: Ethernet0/0/3 (iod: 3), RPF nbr: 198.58.3.238 |
|
Outgoing interface list: (count: 1) |
|
Ethernet0/0/1 (iod 5), uptime: 00:00:11, mrib |
|
|
|
|
Lab #1 Show active
multicast state/traffic
|
|
|
RtrB# show ip mroute sum |
|
IP Multicast Routing Table for Context
"default" |
|
|
|
Total number of routes: 2 |
|
Total number of (*,G) routes: 1 |
|
Total number of (S,G) routes: 1 |
|
Group count: 1, average sources per
group: 1.0 |
|
|
|
Group: 224.2.127.254/32, Source count:
51 |
|
Source packets bytes aps pps
bit-rate |
|
(*,G) 423 439788 1039 0
0 bps |
|
80.76.128.66 170 109447 643 0
87 bps |
|
|
|
|
LAB #1b – PIM-SM –
Optional
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
MSDP
|
|
|
|
Multicast Source Discovery Protocol |
|
draft-ietf-msdp-spec-xx |
|
Allows each domain to control its own
RP(s) |
|
Interconnect RPs between domains with
TCP connections to pass source active messages (SAs) |
|
Can also be used within a domain to
provide RP redundancy (Anycast-RP) |
|
RPs send SA messages for internal
sources to MSDP peers |
|
SAs are Peer-RPF checked before
accepting or forwarding |
|
RPs learn about external sources via SA
messages and may trigger (S,G)joins on behalf of local receivers |
|
MSDP connections typically parallel
MBGP connections |
MSDP Operation
|
|
|
|
|
MSDP peers (inter or intra domain) |
|
(TCP port 639 w/ higher IP addr
LISTENS) |
|
“FLOOD & join” |
|
SA (source active) packets periodically
sent to MSDP peers indicating: |
|
source address of active streams |
|
group address of active streams |
|
IP address of RP originating the SA |
|
only originate SA’s for your sources
w/in your domain |
|
“flood & JOIN” |
|
interested parties can send PIM JOIN’s
towards source (creates inter-domain source trees) |
|
|
MSDP Source Active Msgs
|
|
|
|
Initial SA message sent when source
first registers |
|
May optionally encapsulate first data
packet |
|
Subsequent SA messages periodically
refreshed every 60 seconds as long as source still active by originating RP |
|
Other MSDP peers don’t originate this
SA but only forward it if received |
|
SA messages cached on router for new
group members that may join |
|
Reduced join latency |
|
Prevent SA storm propagation |
|
|
MSDP Overview
MSDP Overview
MSDP Overview
MSDP Overview
MSDP Overview
MSDP 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 mBGP! |
|
May be an MBGP peer, a BGP peer or both |
|
Required for peer-RPF checking of the
RP address in the SA to prevent SA looping |
|
Exception: BGP is unnecessary when
peering with only a single MSDP peer (default-peer) |
|
|
|
|
Receiving SA Messages
|
|
|
|
|
|
Skip RPF Check and accept SA if: |
|
Sending MSDP peer is default-peer |
|
Sending MSDP peer = Mesh-Group peer |
|
RPF Check the received SA message |
|
If the MSDP peer IS THE originating RP
– then accept. |
|
Lookup best MBGP path to RP in SA
message |
|
Search mbest |
|
If path to RP not found, RPF Check
Fails; ignore SA message |
|
Is the sending MSDP Peer also an MBGP
peer? |
|
Yes: Is best path to RP via this MBGP
peer? |
|
If yes, RPF Check Succeeds; process SA
message |
|
No: Is the first AS in the best path to
RP = the first AS in the best path to MSDP peer? |
|
If yes, RPF Check Succeeds; process SA
message |
|
|
Receiving SA Messages
|
|
|
|
|
RPF Check rule example cases |
|
Case 1: Sending MSDP Peer = iMBGP peer |
|
Is best path to RP via this MBGP peer? |
|
Case 2: Sending MSDP Peer = eMBGP peer |
|
Is best path to RP via this MBGP peer? |
|
Case 3: Sending MSDP Peer != BGP peer |
|
Is the next AS in best path to RP = AS
of the sending MSDP peer? |
RPF Check Example
RPF Check Example
RPF Check Example
RPF Check Example
RPF Check Example
RPF Check Example
MSDP Configuration
MSDP wrt SSM –
Unnecessary!
MSDP wrt SSM –
Unnecessary!
MSDP Application:
Anycast-RP
|
|
|
|
draft-ietf-mboned-anycast-rp-xx.txt |
|
Within a domain, deploy more than one
RP for the same group range |
|
Sources from one RP are known to other
RPs using MSDP |
|
Give each RP the same /32 IP address |
|
Sources and receivers use closest RP,
as determined by the IGP |
|
Used intra-domain to provide redundancy
and RP load sharing, when an RP goes down, sources and receivers are taken to
new RP via unicast routing |
|
Fast convergence! |
Anycast-RP
Anycast-RP
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
MBGP—Multiprotocol BGP
|
|
|
MBGP overview |
|
MBGP capability negotiation |
|
MBGP NLRI exchange |
|
Configuration guidelines |
|
|
MBGP
|
|
|
|
|
Multiprotocol Extensions to BGP (RFC
2283). |
|
Tag unicast prefixes as multicast
source prefixes for intra-domain mcast routing protocols to do RPF checks. |
|
WHY?
Allows for interdomain RPF checking where unicast and multicast paths
are non-congruent. |
|
DO I REALLY NEED IT? |
|
YES, if: |
|
ISP to ISP peering |
|
Multiple-homed networks |
|
NO, if: |
|
You are single-homed |
|
|
MBGP Overview
|
|
|
|
|
MBGP: Multiprotocol BGP
(aka multicast BGP in multicast networks) |
|
Defined in RFC 2283 (extensions to BGP) |
|
Can carry different route types for
different purposes |
|
Unicast |
|
Multicast |
|
Both route types carried in same BGP
session |
|
Does not propagate multicast state
information |
|
Same path selection and validation
rules |
|
AS-Path, LocalPref, MED, … |
|
|
MBGP 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) |
|
Allows for different policies between
multicast and unicast |
|
|
MBGP—Capability
Negotiation
|
|
|
|
|
BGP routers establish BGP sessions
through the OPEN message |
|
OPEN message contains optional parameters |
|
BGP session is terminated if OPEN
parameters are not recognised |
|
New parameter: CAPABILITIES |
|
Multiprotocol extension |
|
Multiple routes for same destination |
|
Configures router to negotiate either
or both NLRI |
|
If neighbor configures both or subset,
common NRLI is used in both directions |
|
If there is no match, notification is
sent and peering doesn’t come up |
|
If neighbor doesn’t include the
capability parameters in open, session backs off and reopens with no
capability parameters |
|
Peering comes up in unicast-only mode |
|
|
MBGP—Summary
|
|
|
|
Solves part of inter-domain problem |
|
Can exchange unicast prefixes for
multicast RPF checks |
|
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 |
Multicast 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 |
|
|
LAB #2 – Interdomain
MBGP configuration
|
|
|
router bgp 1 |
|
address-family ipv4 unicast |
|
network 198.58.3.0/24 |
|
address-family ipv4 multicast |
|
network 198.58.3.0/24 |
|
neighbor 198.32.165.2 remote-as 2 |
|
description LabPeer1 |
|
update-source Ethernet0/0/1 |
|
address-family ipv4 unicast |
|
address-family ipv4 multicast |
LAB #2 – Interdomain
Lab #2 – MSDP sessions
|
|
|
RtrA# show ip msdp summary |
|
MSDP Peer Status Summary, local ASN: 1 |
|
|
|
Number of configured peers: 1 |
|
Number of established peers: 1 |
|
Number of shutdown peers: 0 |
|
|
|
Peer Peer Connection Uptime/ Last msg
(S,G)s |
|
Address ASN State Downtime Received
Received |
|
198.58.3.252 2
Established 00:01:13 00:00:10
1 |
Lab #2 – MSDP SAs
|
|
|
RtrA# show ip msdp count |
|
SA State per ASN - 1 total entries |
|
<asn>: <(S,G) count>/<group count> |
|
2: 1/1 |
|
|
|
RtrA# show ip msdp sa-cache |
|
MSDP SA Route Cache - 1 entries |
|
Source Group RP ASN Uptime
Expires |
|
129.241.110.78 224.0.1.1 128.39.0.86 2
02:38:16 00:03:22 |
|
|
Lab #2 – MBGP peering
session
|
|
|
RtrA# show ip mbgp summary |
|
BGP router identifier 198.58.3.249,
local AS number 1 |
|
BGP table version is 844399, IPv4
Multicast config peers 1, capable peers 1 |
|
4654 network entries and 4654 paths
using 521248 bytes of memory |
|
BGP attribute entries [22297/1427008],
BGP AS path entries [19571/193760] |
|
BGP community entries [56/628], BGP
clusterlist entries [0/0] |
|
|
|
Neighbor V
AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd |
|
198.58.3.238 4
2 184934 15559
844399 0 0 00:32:34 4653 |
Lab #2 – MBGP received
prefixes
|
|
|
proUO# show ip mbgp |
|
BGP table version is 845065, local
router ID is 198.58.3.249 |
|
Status: s-suppressed, x-deleted,
d-dampened, h-history, *-valid, >-best |
|
Path type: i-internal, e-external,
c-confed, l-local, a-aggregate, r-redist |
|
Origin codes: i - IGP, e - EGP, ? -
incomplete |
|
|
|
Network Next Hop Metric LocPrf Weight Path |
|
*>i1.0.0.0/8 198.32.177.14 100 2 I |
LAB #2b – Interdomain –
Optional
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
|
|
|
The Soup
|
|
|
IGMP - Internet Group Management
Protocol is used by hosts and routers to tell each other about group
membership. |
|
PIM-SM - Protocol Independent
Multicast-Sparse Mode is used to propagate forwarding state between routers. |
|
SSM - Source Specific Multicast
utilizes a subset of PIM’s functionality to guaranty source-only trees in the
232/8 range. |
|
MBGP - Multiprotocol Border Gateway
Protocol is used to exchange routing information for interdomain RPF
checking. |
|
MSDP - Multicast Source Discovery
Protocol is used to exchange ASM active source information between RPs. |
|
|
Agenda
|
|
|
Introduction |
|
Multicast addressing |
|
Group Membership Protocol |
|
PIM-SM / SSM |
|
MSDP |
|
MBGP |
|
Summary |
|
Who, why, how, why not? |
|
|
|
|
Who uses Multicast?
|
|
|
|
|
Financial Networks |
|
Security Exchanges |
|
NASDAQ, NYSE, AMSE, HKSE, etc.. |
|
Securities Trading Enterprises |
|
Enterprises |
|
Service Providers |
|
IP core |
|
MPLS core |
|
VPN Providers |
|
MIX |
|
|
How?
Security Exchanges
|
|
|
End-to-end in control (mostly…) |
How?
Security Trading Enterprises
How?
Enterprises
How?
Service Providers (IP)
How?
Service Providers (MPLS)
How?
VPN Providers – Rosen opt2 (2547)
How?
MIX – a brief history
|
|
|
|
Central DVMRP global architecture |
|
MBONE – a flat world |
|
MBGP/PIM transit – preMSDP |
|
MSDP/MBGP/PIM-SM |
|
|
How?
MBONE
How?
MBGP/PIM transit – preMSDP
How?
MSDP/MBGP/PIM-SM – Today!
What’s Right?
What’s Right?
What’s Wrong?
What’s Wrong?
What’s Wrong?
What’s Wrong?
What’s Wrong?
What’s Wrong?
|
|
|
|
|
Multicast in the Internet is an
all-or-nothing solution |
|
Even Mcast-aware content owners must
provide unicast streams to gain audience size |
|
Unicast will never scale |
|
Splitters/Caches just distribute the
problem |
|
Still has a cost-per-user |
|
As receiver BW increases, problem gets
worse. |
|
Creates a non-functional business model |
|
Will never bring ~real content to IP. |
|
Must provide a multicast-only solution
for content owners; but how?? |
|
|
Thank you!
|
|
|
shep@procket.com |
|
http://www.procket.com |
|
http://www.shepfarm.com/multicast |