< draft-ietf-msdp-spec-06.txt   draft-ietf-msdp-spec-07.txt >
Network Working Group Dino Farinacci
INTERNET DRAFT Procket Networks Network Working Group David Meyer (Editor)
Yakov Rekhter INTERNET DRAFT
David Meyer
Cisco Systems
Peter Lothberg
Sprint
Hank Kilmer
Jeremy Hall
UUnet
Category Standards Track Category Standards Track
July, 2000 March, 2001
Multicast Source Discovery Protocol (MSDP) Multicast Source Discovery Protocol (MSDP)
<draft-ietf-msdp-spec-06.txt> <draft-ietf-msdp-spec-07.txt>
1. Status of this Memo 1. Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. all provisions of Section 10 of RFC 2026.
Internet Drafts are working documents of the Internet Engineering Internet Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts. groups may also distribute working documents as Internet-Drafts.
skipping to change at page 2, line 32 skipping to change at page 2, line 25
o No Third-party resource dependencies on RP o No Third-party resource dependencies on RP
PIM-SM domains can rely on their own RPs only. PIM-SM domains can rely on their own RPs only.
o Receiver only Domains o Receiver only Domains
Domains with only receivers get data without globally Domains with only receivers get data without globally
advertising group membership. advertising group membership.
o Global Source State
Global source state is not required, since a router need not
cache Source Active (SA) messages (see below). MSDP is a
periodic protocol.
The keywords MUST, MUST NOT, MAY, OPTIONAL, REQUIRED, RECOMMENDED, The keywords MUST, MUST NOT, MAY, OPTIONAL, REQUIRED, RECOMMENDED,
SHALL, SHALL NOT, SHOULD, SHOULD NOT are to be interpreted as defined SHALL, SHALL NOT, SHOULD, SHOULD NOT are to be interpreted as defined
in RFC 2119 [RFC2119]. in RFC 2119 [RFC2119].
5. Overview 5. Overview
MSDP-speaking routers in a PIM-SM [RFC2362] domain will have a MSDP MSDP-speaking routers in a PIM-SM [RFC2362] domain will have a MSDP
peering relationship with MSDP peers in another domain. The peering peering relationship with MSDP peers in another domain. The peering
relationship will be made up of a TCP connection in which control relationship will be made up of a TCP connection in which control
information is exchanged. Each domain will have one or more information is exchanged. Each domain will have one or more
skipping to change at page 4, line 23 skipping to change at page 3, line 51
in the group which the SA message describes. That is, the RP checks in the group which the SA message describes. That is, the RP checks
for a (*,G) entry with a non-empty outgoing interface list; this for a (*,G) entry with a non-empty outgoing interface list; this
implies that the domain is interested in the group. In this case, the implies that the domain is interested in the group. In this case, the
RP triggers a (S,G) join event towards the data source as if a RP triggers a (S,G) join event towards the data source as if a
Join/Prune message was received addressed to the RP itself. This sets Join/Prune message was received addressed to the RP itself. This sets
up a branch of the source-tree to this domain. Subsequent data up a branch of the source-tree to this domain. Subsequent data
packets arrive at the RP which are forwarded down the shared-tree packets arrive at the RP which are forwarded down the shared-tree
inside the domain. If leaf routers choose to join the source-tree inside the domain. If leaf routers choose to join the source-tree
they have the option to do so according to existing PIM-SM they have the option to do so according to existing PIM-SM
conventions. Finally, if an RP in a domain receives a PIM Join conventions. Finally, if an RP in a domain receives a PIM Join
message for a new group G, and it is caching SAs, then the RP should message for a new group G, the RP SHOULD trigger a (S,G) join event
trigger a (S,G) join event for each SA for that group in its cache. for each SA for that group in its cache.
This procedure has been affectionately named flood-and-join because This procedure has been affectionately named flood-and-join because
if any RP is not interested in the group, they can ignore the SA if any RP is not interested in the group, they can ignore the SA
message. Otherwise, they join a distribution tree. message. Otherwise, they join a distribution tree.
7. Controlling State 7. Caching
While RPs which receive SA messages are not required to keep MSDP A MSDP speaker MUST cache SA messages. Caching allows pacing of MSDP
(S,G) state, an RP SHOULD cache SA messages by default. One of the messages as well as reducing join latency for new receivers of a
main advantages of caching is that since the RP has MSDP (S,G) state, group G at an orginating RP which has existing MSDP (S,G) state. In
join latency is greatly reduced for new receivers of G. In addition, addition, caching greatly aids in diagnosis and debugging of various
caching greatly aids in diagnosis and debugging of various problems. problems.
8. Timers 8. Timers
The main timers for MSDP are: SA-Advertisement-Timer, SA-Hold-Down- The main timers for MSDP are: SA-Advertisement-Timer, SA-Hold-Down-
Timer, SA Cache Entry timer, KeepAlive timer, and ConnectRetry and Timer, SA Cache Entry timer, KeepAlive timer, and ConnectRetry and
Peer Hold Timer. Each is considered below. Peer Hold Timer. Each is considered below.
8.1. SA-Advertisement-Timer 8.1. SA-Advertisement-Timer
RPs which originate SA messages do it periodically as long as there RPs which originate SA messages do it periodically as long as there
is data being sent by the source. There is one SA-Advertisement-Timer is data being sent by the source. There is one SA-Advertisement-Timer
covering the sources that an RP may advertise. [SA-Advertisement- covering the sources that an RP may advertise. [SA-Advertisement-
Period] MUST be 60 seconds. An RP MUST not send more than one Period] MUST be 60 seconds. An RP MUST not send more than one
periodic SA message for a given (S,G) within an SA Advertisement periodic SA message for a given (S,G) within an SA Advertisement
interval. Originating periodic SA messages is important so that new interval. Originating periodic SA messages is important so that new
receivers who join after a source has been active can get data receivers who join after a source has been active can get data
quickly via the receiver's own RP when it is not caching SA state. quickly via the receiver's own RP. Finally, an originating RP SHOULD
Finally, an originating RP SHOULD trigger the transmission of an SA trigger the transmission of an SA message as soon as it receives data
message as soon as it receives data from an internal source for the from an internal source for the first time.
first time.
8.2. SA-Advertisement-Timer Processing 8.2. SA-Advertisement-Timer Processing
An RP MUST spread the generation of periodic SA messages over its An RP MUST spread the generation of periodic SA messages over its
reporting interval (i.e. SA-Advertisement-Period). An RP starts the reporting interval (i.e. SA-Advertisement-Period). An RP starts the
SA-Advertisement-Timer when the MSDP process is configured. When the SA-Advertisement-Timer when the MSDP process is configured. When the
timer expires, an RP resets the timer to [SA-Advertisement-Period] timer expires, an RP resets the timer to [SA-Advertisement-Period]
seconds, and begins the advertisement of its active sources. Active seconds, and begins the advertisement of its active sources. Active
sources are advertised in the following manner: An RP packs its sources are advertised in the following manner: An RP packs its
active sources into an SA message until the largest MSDP packet that active sources into an SA message until the largest MSDP packet that
can be sent is built or there are no more sources, and then sends the can be sent is built or there are no more sources, and then sends the
message. This process is repeated periodically within the SA- message. This process is repeated periodically within the SA-
Advertisement-Period in such a way that all of the RP's sources are Advertisement-Period in such a way that all of the RP's sources are
advertised. Note that the largest MSDP packet that can be sent has advertised. Note that the largest MSDP packet that can be sent has
size that is the minimum of MTU of outgoing link minus size of TCP size that is the minimum of MTU of outgoing link minus size of TCP
and IP headers, and 1400 (largest MSDP packet). Finally, the timer is and IP headers, and 1400 (largest MSDP packet). Finally, the timer is
deleted when the MSDP process is deconfigured. Note that a caching deleted when the MSDP process is deconfigured.
implementation may also wish to check the SA-Cache on this timer
event.
8.3. SA Cache Timeout (SA-State-Timer) 8.3. SA Cache Timeout (SA-State-Timer)
Each entry in an SA Cache has an associated SA-State-Timer. A Each entry in an SA Cache has an associated SA-State-Timer. A
(S,G)-SA-State-Timer is started when an (S,G)-SA message is initially (S,G)-SA-State-Timer is started when an (S,G)-SA message is initially
received by a caching MSDP peer. The timer is reset to [SA-State- received by a MSDP peer. The timer is reset to [SA-State-Period] if
Period] if another (S,G)-SA message is received before the (S,G)-SA- another (S,G)-SA message is received before the (S,G)-SA-State-Timer
State-Timer expires. [SA-State-Period] MUST NOT be less than 90 expires. [SA-State-Period] MUST NOT be less than 90 seconds.
seconds.
8.4. SA-Hold-Down-Timer 8.4. SA-Hold-Down-Timer
The per-(S,G) timer is set to [SA-Hold-Down-Period] when forwarding The per-(S,G) timer is set to [SA-Hold-Down-Period] when forwarding
an SA message, and a SA message MUST only be forwarded when it's an SA message, and a SA message MUST only be forwarded when it's
associated timer is not running. [SA-Hold-Down-Period] SHOULD be set associated timer is not running. [SA-Hold-Down-Period] SHOULD be set
to 30 seconds. A caching MSDP peer MUST NOT forward a (S,G)-SA to 30 seconds. A MSDP peer MUST NOT forward a (S,G)-SA message it has
message it has received in during the previous [SA-Hold-Down-Period] received in during the previous [SA-Hold-Down-Period] seconds.
seconds. Finally, the timer is deleted when the SA cache entry is Finally, the timer is deleted when the SA cache entry is deleted.
deleted.
8.5. KeepAlive Timer 8.5. KeepAlive Timer
The KeepAlive timer contols when to send MSDP KeepAlive messages. In The KeepAlive timer contols when to send MSDP KeepAlive messages. In
particular, the KeepAlive timer is used to reset the TCP connection particular, the KeepAlive timer is used to reset the TCP connection
when the passive-connect side of the connection goes down. The when the passive-connect side of the connection goes down. The
KeepAlive timer is set to [KeepAlive-Period] when the passive-connect KeepAlive timer is set to [KeepAlive-Period] when the passive-connect
peer comes up. [KeepAlive-Period] SHOULD NOT be less that 75 seconds. peer comes up. [KeepAlive-Period] SHOULD NOT be less that 75 seconds.
The timer is reset to [KeepAlive-Period] upon receipt of an MSDP The timer is reset to [KeepAlive-Period] upon receipt of an MSDP
message from peer, and deleted when the timer expires or the message from peer, and deleted when the timer expires or the
skipping to change at page 7, line 30 skipping to change at page 7, line 7
Internet (i.e., SA filtering by transit domains can cause undesired Internet (i.e., SA filtering by transit domains can cause undesired
lack of connectivity). In general, policy should be expressed using lack of connectivity). In general, policy should be expressed using
MBGP [RFC2283]. This will cause MSDP messages to flow in the desired MBGP [RFC2283]. This will cause MSDP messages to flow in the desired
direction and peer-RPF fail otherwise. An exception occurs at an direction and peer-RPF fail otherwise. An exception occurs at an
administrative scope [RFC2365] boundary. In particular, a SA message administrative scope [RFC2365] boundary. In particular, a SA message
for a (S,G) MUST NOT be sent to peers which are on the other side of for a (S,G) MUST NOT be sent to peers which are on the other side of
an administrative scope boundary for G. an administrative scope boundary for G.
11. SA Requests 11. SA Requests
If an MSDP peer decides to cache SA state, it MAY accept SA-Requests A MSDP speaker MAY accept SA-Requests from other MSDP peers. When an
from other MSDP peers. When an MSDP peer receives an SA-Request for a MSDP speaker receives an SA-Request for a group range, it will
group range, it will respond to the peer with a set of SA entries, in respond to the peer with a set of SA entries, in an SA-Response
an SA-Response message, for all active sources sending to the group message, for all active sources sending to the group range requested
range requested in the SA-Request message. The peer that sends the in the SA-Request message. The peer that sends the request will not
request will not flood the responding SA-Response message to other flood the responding SA-Response message to other peers. See section
peers. See section 17 for discussion of error handling relating to SA 17 for discussion of error handling relating to SA requests and
requests and responses. responses.
12. Encapsulated Data Packets 12. Encapsulated Data Packets
For bursty sources, the RP may encapsulate multicast data from the For bursty sources, the RP may encapsulate multicast data from the
source. An interested RP may decapsulate the packet, which SHOULD be source. An interested RP may decapsulate the packet, which SHOULD be
forwarded as if a PIM register encapsulated packet was received. That forwarded as if a PIM register encapsulated packet was received. That
is, if packets are already arriving over the interface toward the is, if packets are already arriving over the interface toward the
source, then the packet is dropped. Otherwise, if the outgoing source, then the packet is dropped. Otherwise, if the outgoing
interface list is non-null, the packet is forwarded appropriately. interface list is non-null, the packet is forwarded appropriately.
Note that when doing data encapsulation, an implementation MUST bound Note that when doing data encapsulation, an implementation MUST bound
skipping to change at page 8, line 38 skipping to change at page 8, line 14
14. MSDP Peer-RPF Forwarding 14. MSDP Peer-RPF Forwarding
The MSDP Peer-RPF Forwarding rules are used for forwarding SA The MSDP Peer-RPF Forwarding rules are used for forwarding SA
messages throughout an MSDP enabled internet. Unlike the RPF check messages throughout an MSDP enabled internet. Unlike the RPF check
used when forwarding data packets, the Peer-RPF check is against the used when forwarding data packets, the Peer-RPF check is against the
RP address carried in the SA message. RP address carried in the SA message.
14.1. Peer-RPF Forwarding Rules 14.1. Peer-RPF Forwarding Rules
An SA message originated by an MSDP originator R and received by a An SA message originated by R and received by X
MSDP router from MSDP peer N is accepted if N is the appropriate RPF from N is accepted if N is the peer-RPF neighbor for R, and is
neighbor for originator R (the RP in the SA message), and discarded discarded otherwise.
otherwise.
The RPF neighbor is chosen using the first of the following rules MP(R,N) MP(N,X)
that matches: R ---------....-------> N ------------------> X
SA(S,G,R) SA(S,G,R)
(i). R is the RPF neighbor if we have an MSDP peering with R, Where MP(A,B) is an MSDP peering path (one or more
and R is the next hop towards the prefix covering the RP MSDP peers) between A and B, and SA(S,G,R) is an
in the SA message. SA message for source S on group G orignated by
an RP R.
(ii). The external MBGP neighbor towards which we are The peer-RPF neighbor is chosen deterministically,
poison-reversing the MBGP route towards R is the RPF neighbor using the first of the following rules that matches.
if we have an MSDP peering with it.
(iii). If we have any MSDP peerings with neighbors in the first X accepts the SA from R forwarded by N if :
AS along the AS_PATH (the AS from which we learned this
route), but no external MBGP peerings with them,
the neighbor with the highest IP address is the RPF neighbor.
(iv). The internal MBGP advertiser of the router towards R is (i). R is the RPF neighbor if we have an MSDP peering
the RPF neighbor if we have an MSDP peering with it. with R (e.g. N == R).
(v). If none of the above match, and we have an MSDP (ii). N is the RPF neighbor of X if N is a MSDP peer of
default-peer configured, the MSDP default-peer is X and N is the next hop toward R.
the RPF neighbor.
(iii). N is the RPF neighbor of X if X has an MSDP
peering(s) with the neighboring AS (the AS
with that AS, then the MSDP neighbor with the
highest IP address in the first AS toward R is
the RPF peer.
(iv). N is the RPF neighbor of X if (intra-domain case):
(a). N == R (i.e. N originated the SA), or
(b). X and N are part of a MSDP Mesh Group. Note that in
this case every member of mesh group is an peer-RPF
neighbor of X.
(v). If none of the above match, and we have an
MSDP default-peer configured, the MSDP
default-peer is the RPF neighbor.
14.2. MSDP default-peer semantics 14.2. MSDP default-peer semantics
An MSDP default-peer is much like a default route. It is intended to An MSDP default-peer is much like a default route. It is intended to
be used in those cases where a stub network isn't running BGP. An be used in those cases where a stub network isn't running BGP. An
MSDP peer configured with a default-peer accepts all SA messages from MSDP peer configured with a default-peer accepts all SA messages from
the default-peer. Note that a router running BGP SHOULD NOT allow the default-peer. Note that a router running BGP SHOULD NOT allow
configuration of default peers, since this allows the possibility for configuration of default peers, since this allows the possibility for
SA looping or black-holes to occur. SA looping or black-holes to occur.
skipping to change at page 14, line 24 skipping to change at page 14, line 24
Source Address Source Address
The IP address of the active source. The IP address of the active source.
Multiple SA TLVs MAY appear in the same message and can be batched Multiple SA TLVs MAY appear in the same message and can be batched
for efficiency at the expense of data latency. This would typically for efficiency at the expense of data latency. This would typically
occur on intermediate forwarding of SA messages. occur on intermediate forwarding of SA messages.
16.2.2. IPv4 Source-Active Request TLV 16.2.2. IPv4 Source-Active Request TLV
The Source-Active Request is used to request SA-state from a caching The Source-Active Request is used to request SA-state from a MSDP
MSDP peer. If an RP in a domain receives a PIM Join message for a peer. If an RP in a domain receives a PIM Join message for a group,
group, creates (*,G) state and wants to know all active sources for creates (*,G) state and wants to know all active sources for group G,
group G, and it has been configured to peer with an SA-state caching it may send an SA-Request message for the group.
peer, it may send an SA-Request message for the group.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 | 8 | Reserved | | 2 | 8 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address Prefix | | Group Address Prefix |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Type
IPv4 Source-Active Request TLV is type 2. IPv4 Source-Active Request TLV is type 2.
skipping to change at page 17, line 9 skipping to change at page 17, line 9
Message Header Error subcodes: Message Header Error subcodes:
0 - Unspecific (MC) 0 - Unspecific (MC)
2 - Bad Message Length (MC) 2 - Bad Message Length (MC)
3 - Bad Message Type (CC) 3 - Bad Message Type (CC)
SA-Request Error subcodes: SA-Request Error subcodes:
0 - Unspecific (MC) 0 - Unspecific (MC)
1 - Does not cache SA (MC) 1 - Invalid Group (MC)
2 - Invalid Group (MC)
SA-Message/SA-Response Error subcodes SA-Message/SA-Response Error subcodes
0 - Unspecific (MC) 0 - Unspecific (MC)
1 - Invalid Entry Count (CC) 1 - Invalid Entry Count (CC)
2 - Invalid RP Address (MC) 2 - Invalid RP Address (MC)
3 - Invalid Group Address (MC) 3 - Invalid Group Address (MC)
4 - Invalid Source Address (MC) 4 - Invalid Source Address (MC)
5 - Invalid Sprefix Length (MC) 5 - Invalid Sprefix Length (MC)
6 - Looping SA (Self is RP) (MC) 6 - Looping SA (Self is RP) (MC)
skipping to change at page 18, line 39 skipping to change at page 18, line 39
If the Length field of the message header is less than 4 or greater If the Length field of the message header is less than 4 or greater
than 1400, or the length of a KeepAlive message is not equal to 3, than 1400, or the length of a KeepAlive message is not equal to 3,
then the Error Subcode is set to Bad Message Length. then the Error Subcode is set to Bad Message Length.
If the Type field of the message header is not recognized, then the If the Type field of the message header is not recognized, then the
Error Subcode is set to Bad Message Type. Error Subcode is set to Bad Message Type.
17.2. SA-Request Error Handling 17.2. SA-Request Error Handling
The SA-Request Error code is used to signal the receipt of a SA The SA-Request Error code is used to signal the receipt of a SA
request at a non-caching MSDP peer, or at a caching MSDP peer when an request at a MSDP peer when an invalid group address requested.
invalid group address requested.
When a non-caching MSDP peer receives an SA-Request, it returns the
following notification:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 5 | 16 |O| 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 | Reserved | Gprefix Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gprefix |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
If a caching MSDP peer receives a request for an invalid group, it When a MSDP peer receives a request for an invalid group, it returns
returns the following notification: the following notification:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 5 | 16 |O| 2 | | 5 | 16 |O| 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 | Reserved | Gprefix Len | | 2 | Reserved | Gprefix Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gprefix | | Gprefix |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Invalid Group Address | | Invalid Group Address |
skipping to change at page 24, line 42 skipping to change at page 23, line 42
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C| Reserved0 | Ver | [MSDP-GRE-ProtocolType] |\ |C| Reserved0 | Ver | [MSDP-GRE-ProtocolType] |\
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ GRE Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ GRE Header
| Checksum (optional) | Reserved1 |/ | Checksum (optional) | Reserved1 |/
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originating RP IPv4 Address |\ | Originating RP IPv4 Address |\
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Payload +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Payload
| (S,G) Data Packet .... / | (S,G) Data Packet .... /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
MSDP-GRE-ProtocolType is set to 0x876C, pending IANA approval
[ETYPES,RFC1700].
18.2.1. Encapsulation and Path MTU Discovery [RFC1191] 18.2.1. Encapsulation and Path MTU Discovery [RFC1191]
Existing implementations of GRE, when using IPv4 as the Delivery Existing implementations of GRE, when using IPv4 as the Delivery
Header, do not implement Path MTU discovery and do not set the Don't Header, do not implement Path MTU discovery and do not set the Don't
Fragment bit in the Delivery Header. This can cause large packets to Fragment bit in the Delivery Header. This can cause large packets to
become fragmented within the tunnel and reassembled at the tunnel become fragmented within the tunnel and reassembled at the tunnel
exit (independent of whether the payload packet is using PMTU). If a exit (independent of whether the payload packet is using PMTU). If a
tunnel entry point were to use Path MTU discovery, however, that tunnel entry point were to use Path MTU discovery, however, that
tunnel entry point would also need to relay ICMP unreachable error tunnel entry point would also need to relay ICMP unreachable error
messages (in particular the "fragmentation needed and DF set" code) messages (in particular the "fragmentation needed and DF set" code)
skipping to change at page 25, line 28 skipping to change at page 24, line 21
the originator sets the don't fragment bit, the packet gets dropped the originator sets the don't fragment bit, the packet gets dropped
within the tunnel, but since the originator doesn't receive proper within the tunnel, but since the originator doesn't receive proper
feedback, it retransmits with the same PMTU, causing subsequently feedback, it retransmits with the same PMTU, causing subsequently
transmitted packets to be dropped. transmitted packets to be dropped.
18.3. TCP Data Encapsulation 18.3. TCP Data Encapsulation
As discussed earlier, encapsulation of data in SA messages MAY be As discussed earlier, encapsulation of data in SA messages MAY be
supported for backwards compatibility with legacy MSDP peers. supported for backwards compatibility with legacy MSDP peers.
19. Security Considerations 19. IANA Considerations
The IANA should assigne 0x0009 from the IANA SNAP Protocol IDs [IANA]
to MSDP-GRE-ProtocolType.
20. Security Considerations
An MSDP implementation MAY use IPsec [RFC1825] or keyed MD5 [RFC1828] An MSDP implementation MAY use IPsec [RFC1825] or keyed MD5 [RFC1828]
to secure control messages. When encapsulating SA data in GRE, to secure control messages. When encapsulating SA data in GRE,
security should be relatively similar to security in a normal IPv4 security should be relatively similar to security in a normal IPv4
network, as routing using GRE follows the same routing that IPv4 uses network, as routing using GRE follows the same routing that IPv4 uses
natively. Route filtering will remain unchanged. However packet natively. Route filtering will remain unchanged. However packet
filtering at a firewall requires either that a firewall look inside filtering at a firewall requires either that a firewall look inside
the GRE packet or that the filtering is done on the GRE tunnel the GRE packet or that the filtering is done on the GRE tunnel
endpoints. In those environments in which this is considered to be a endpoints. In those environments in which this is considered to be a
security issue it may be desirable to terminate the tunnel at the security issue it may be desirable to terminate the tunnel at the
firewall. firewall.
20. Acknowledgments 21. Acknowledgments
The authors would like to thank Bill Nickless, John Meylor, Liming
Wei, Manoj Leelanivas, Mark Turner, John Zwiebel, Cristina
Radulescu-Banu and IJsbrand Wijnands for their design feedback and
comments. In addition to many other contributions, Tom Pusateri
helped to clarify the connection state machine, Dave Thaler helped to
clarify the Notification message types, and Bill Fenner helped to
clarify the Peer-RPF rules.
21. Author's Address:
Dino Farinacci
Procket Networks
3850 No. First St., Ste. C
San Jose, CA 95134
Email: dino@procket.com
Yakov Rehkter
Cisco Systems, Inc.
170 Tasman Drive
San Jose, CA, 95134
Email: yakov@cisco.com
Peter Lothberg
Sprint
VARESA0104
12502 Sunrise Valley Drive
Reston VA, 20196
Email: roll@sprint.net
Hank Kilmer The editor would like to thank the original authors, Dino Farinacci,
Email: hank@rem.com Yakov Rehkter, Peter Lothberg, Hank Kilmer, and Jermey Hall for their
orginal contribution to the MSDP specification. In addition, Bill
Nickless, John Meylor, Liming Wei, Manoj Leelanivas, Mark Turner,
John Zwiebel, Cristina Radulescu-Banu and IJsbrand Wijnands provided
useful and productive design feedback and comments. In addition to
many other contributions, Tom Pusateri helped to clarify the
connection state machine, Dave Thaler helped to clarify the
Notification message types, and Bill Fenner helped to clarify the
Peer-RPF rules.
Jeremy Hall 22. Editor's Address:
UUnet Technologies
3060 Williams Drive
Fairfax, VA 22031
Email: jhall@uu.net
David Meyer David Meyer
Cisco Systems, Inc. Cisco Systems, Inc.
170 Tasman Drive 170 Tasman Drive
San Jose, CA, 95134 San Jose, CA, 95134
Email: dmm@cisco.com Email: dmm@cisco.com
22. REFERENCES 23. REFERENCES
[ETYPES] ftp://ftp.isi.edu/in-notes/iana/assignments/ethernet-numbers [IANA] ftp://www.iana.org
[RFC1700] J. Reynolds and J. Postel, "Assigned Numbers", RFC 1700, [RFC1700] J. Reynolds and J. Postel, "Assigned Numbers", RFC 1700,
October, 1994. October, 1994.
[RFC2784] Farinacci, D., et al., "Generic Routing Encapsulation [RFC2784] Farinacci, D., et al., "Generic Routing Encapsulation
(GRE)", RFC 2784, March 2000. (GRE)", RFC 2784, March 2000.
[RFC768] Postel, J. "User Datagram Protocol", RFC 768, August, [RFC768] Postel, J. "User Datagram Protocol", RFC 768, August,
1980. 1980.
 End of changes. 30 change blocks. 
138 lines changed or deleted 94 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/