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