PIM Dense Mode GateD Implementation Kurt Windisch Dave Meyer
Download
Report
Transcript PIM Dense Mode GateD Implementation Kurt Windisch Dave Meyer
PIM Dense Mode
GateD Implementation
Kurt Windisch
Dave Meyer
Advanced Network Technology Center
University of Oregon
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
1
Outline
PIM-DM Overview
GateD Implementation
Issues
Status
http://www.antc.uoregon.edu/GATED/
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
2
PIM-DM Overview
Key Features
Uses existing unicast routing protocols
Data-driven flood-and-prune strategy
Efficient when membership is dense
Builds optimal source-based trees
Soft state
draft-ietf-idmr-pim-dm-06.txt, S. Deering, D. Estrin,
D. Farinacci, V. Jacobson, D. Meyer, L. Wei
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
3
Broadcast and Prune
Broadcast and prune behavior
Assume everyone wants the data
A router broadcasts data until downstream
router says “I don’t want this data”
Send prune messages upstream to stop data flow
– Prune state must be maintained, even if not “on-tree”
Builds source based distribution trees
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
4
PIM-DM Overview
Reverse Path
Forwarding (RPF)
Tree maintenance
via Prune and Graft
State space:
O(S x G)
sender
R1
R2
R3
R4
receiver
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
5
Reverse Path Forwarding (RPF)
RPF check: In order to forward a
multicast datagram, a router checks if
the packet is received on the interface it
would use to forward a unicast packet
back to the source
If
the RPF check succeeds, the router
forwards the packet
If the RPF check fails, the packet silently
discarded
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
6
RPF In PIMDM
RPF builds spanning tree
Dalal & Metcalfe, ACM
21(12), 1978
Fully distributed
sender
data
data
prune
Reverse Path Multicast:
RPF + Prune on RPF failure
stops unnecessary traffic in
addition to breaking loops.
receiver
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
7
Prune
Prune
for a given (S,G) send Prune to
upstream neighbor when
outgoing interface list becomes
empty
upstream receiver prunes the
receiving interface if no other
routers or members are
receiving (S,G).
sender
R1
R2
R3
R4
receiver
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
8
Graft
sender
Graft
for
given (S,G), send Graft to
upstream neighbor when the
outgoing interface list
becomes nonempty
upstream receiver adds
receiving interface to
outgoing interface list and
begins forwarding (S,G)
R1
R2
R3
R4
receiver
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
9
Multiaccess LAN
Delayed prune and join
When a downstream
router on a LAN sends a
Prune, other
downstream routers
must override with a Join
if they are forwarding
Therefore, handling of
prunes is delayed while
all routers listen for and
send Joins to cancel the
Prune.
Kurt Windisch -- University of Oregon
sender
R1
R2
R3
receiver
IETF GATED -- December 7, 1997
10
Multiaccess LAN
Assert
sender
handles parallel paths from
a source to a LAN
election of single forwarder
routers send Assert if they
receive (S,G) data on an
outgoing interface.
Assert message contain
metric to source
all routers listen to
determine winner
Kurt Windisch -- University of Oregon
R2
R1
R3
R4
receiver
IETF GATED -- December 7, 1997
11
Dense Mode Tradeoffs
Advantages
Source
trees fully distributed
Optimal reverse paths/low delay
Disadvantages
O(S
x G) state requirement
May carry (S,G) for every S in the internet
(S,G) prune state even though not “ontree”
Data driven forwarding state construction
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
12
Implementation Details
Compliant with PIM v2 specification
Based on GateD PIM-Sparse
implementation by George Eddy (ISI)
Shared PIM code (SM/DM)
Requires PIM Kernel Patches
yet
to be standardized between PIM
implementations
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
13
Implementation Details
Utilizes GateD v5 abstractions and
protocols:
Multicast
Border Router (MBR) layer
Multicast Routing Table (MRT) layer
IGMP
Unicast routing protocols
PIM-DM is a good fit for this
architecture
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
14
MBR Interactions
Creating routing state
sg_creation_recv:
creates (S,G) entry with
forwarding state (implements flooding)
Outgoing interface changes
sg_join_recv:
PIM-DM sends (S,G)-Graft
upstream
sg_prune_recv: PIM-DM sends (S,G)-Prune
upstream
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
15
MBR Interactions
RPF check
wrongif_recv:
PIM-DM sends (S,G)-Assert
or Prune on receiving interface
Group membership changes
igmp_add
igmp_delete
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
16
MRT Interactions
Multicast routing tables store PIM
per (S,G) state
incoming
interface
outgoing interfaces
hooks to PIM-DM data structures for prune
and assert state
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
17
Unicast Interactions
PIM relies on underlying GateD unicast
protocols
RPF
checks
flashing unicast route changes
Tested successfully with:
RIP
v2
OSPF v2
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
18
Issues
Scalability
State
space
PIM-DM per (S,G) timers:
O(S x G x n) timers that must be managed
with fine granularity
Integration with PIM Sparse Mode
Need for tunneling (GRE)
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
19
Status Report
Basic implementation and testing done
To Do:
known
bugs
larger scale testing
performance/scalability studies
interoperability testing
Further implementation: GRE tunneling,
IPv6, stand-alone PIM-DM
Prune Refresh extensions
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
20
Final Remarks
Call for test sites
Further Info:
http://www.antc.uoregon.edu/GATED/
Kurt Windisch -- University of Oregon
IETF GATED -- December 7, 1997
21