| < draft-ietf-msdp-spec-00.txt | draft-ietf-msdp-spec-01.txt > | |||
|---|---|---|---|---|
| Network Working Group Dino Farinacci | Network Working Group Dino Farinacci | |||
| INTERNET DRAFT Procket Networks | INTERNET DRAFT Procket Networks | |||
| Yakov Rekhter | Yakov Rekhter | |||
| David Meyer | David Meyer | |||
| Cisco Systems | Cisco Systems | |||
| Peter Lothberg | Peter Lothberg | |||
| Sprint | Sprint | |||
| Hank Kilmer | Hank Kilmer | |||
| Jeremy Hall | Jeremy Hall | |||
| UUnet | UUnet | |||
| Category Standards Track | Category Standards Track | |||
| Decemeber, 1999 | December, 1999 | |||
| Multicast Source Discovery Protocol (MSDP) | Multicast Source Discovery Protocol (MSDP) | |||
| <draft-ietf-msdp-spec-00.txt> | <draft-ietf-msdp-spec-01.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 Internet-Drafts. | all provisions of Section 10 of RFC 2026. | |||
| 2026 are working documents of the Internet Engineering Task Force | Internet Drafts are working documents of the Internet Engineering | |||
| (IETF), its areas, and its working groups. Note that other groups | Task Force (IETF), its areas, and its working groups. Note that other | |||
| may also distribute working documents as Internet- Drafts. | groups may also distribute working documents as Internet-Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet- Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| Abstract | 2. Abstract | |||
| The Multicast Source Discovery Protocol, MSDP, describes a mechanism | The Multicast Source Discovery Protocol, MSDP, describes a mechanism | |||
| to connect multiple PIM-SM domains together. Each PIM-SM domain uses | to connect multiple PIM-SM domains together. Each PIM-SM domain uses | |||
| it's own independent RP(s) and do not have to depend on RPs in other | it's own independent RP(s) and does not have to depend on RPs in | |||
| domains. | other domains. | |||
| 2. Copyright Notice | 3. Copyright Notice | |||
| Copyright (C) The Internet Society (1999). All Rights Reserved. | Copyright (C) The Internet Society (1999). All Rights Reserved. | |||
| 3. Introduction | 4. Introduction | |||
| The Multicast Source Discovery Protocol, MSDP, describes a mechanism | The Multicast Source Discovery Protocol, MSDP, describes a mechanism | |||
| to connect multiple PIM-SM domains together. Each PIM-SM domain uses | to connect multiple PIM-SM domains together. Each PIM-SM domain uses | |||
| its own independent RP(s) and does not have to depend on RPs in other | its own independent RP(s) and does not have to depend on RPs in other | |||
| domains. | domains. Advantages of this approach include: | |||
| Advantages of this approach include: | o No Third-party resource dependencies on RP | |||
| 3.1. 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 | |||
| 3.2. Receiver only Domains | Domains with only receivers get data without globally | |||
| advertising group membership. | ||||
| Domains with only receivers get data without globally advertising | o Global Source State | |||
| group membership. | ||||
| 3.3. 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. | ||||
| Global source state is not required, since a router need not cache | The keywords MUST, MUST NOT, MAY, OPTIONAL, REQUIRED, RECOMMENDED, | |||
| Source Active (SA) messages (see below). MSDP is a periodic protocol. | SHALL, SHALL NOT, SHOULD, SHOULD NOT are to be interpreted as defined | |||
| in RFC 2119 [RFC2119]. | ||||
| 4. Overview | 5. Overview | |||
| An RP (or other MSDP SA originator) in a PIM-SM domain will have a | An RP (or other MSDP SA originator) in a PIM-SM [RFC2362] domain will | |||
| MSDP peering relationship with an RP in another domain. The peering | have a MSDP peering relationship with a MSDP speaker in another | |||
| relationship will be made up of a TCP connection in which control | domain. The peering relationship will be made up of a TCP connection | |||
| information is primarily exchanged. Each domain will have a | in which control information exchanged. Each domain will have one or | |||
| connection to this virtual topology. | more connections to this virtual topology. | |||
| The purpose of this topology is to have domains discover multicast | The purpose of this topology is to have domains discover multicast | |||
| sources from other domains. If the multicast sources are of interest | sources from other domains. If the multicast sources are of interest | |||
| to a domain which has receivers, the normal source-tree building | to a domain which has receivers, the normal source-tree building | |||
| mechanism in PIM-SM will be used to deliver multicast data over an | mechanism in PIM-SM will be used to deliver multicast data over an | |||
| inter-domain distribution tree. | inter-domain distribution tree. | |||
| We envision this virtual topology will essentially be congruent to | We envision this virtual topology will essentially be congruent to | |||
| the existing BGP topology used in the unicast-based Internet today. | the existing BGP topology used in the unicast-based Internet today. | |||
| That is the TCP connections between RPs can be realized by the | That is, the TCP connections between MSDP speakers can be realized by | |||
| underlying BGP routing system. | the underlying BGP routing system. | |||
| 5. Procedure | 6. Procedure | |||
| A source in a PIM-SM domain originates traffic to a multicast group. | A source in a PIM-SM domain originates traffic to a multicast group. | |||
| The PIM DR which is directly connected to the source sends the data | The PIM DR which is directly connected to the source sends the data | |||
| encapsulated in a PIM Register message to the RP in the domain. | encapsulated in a PIM Register message to the RP in the domain. | |||
| The RP will construct a "Source-Active" (SA) message and send it to | The RP will construct a "Source-Active" (SA) message and send it to | |||
| its MSDP peers. The SA message contains the following fields: | its MSDP peers. The SA message contains the following fields: | |||
| o Source address of the data source. | o Source address of the data source. | |||
| o Group address the data source sends to. | o Group address the data source sends to. | |||
| o IP address of the RP. | o IP address of the RP. | |||
| Each MSDP peer receives and forwards the message away from the RP | Each MSDP peer receives and forwards the message away from the RP | |||
| address in a "peer-RPF flooding" fashion. The notion of peer-RPF | address in a "peer-RPF flooding" fashion. The notion of peer-RPF | |||
| flooding is with respect to forwarding SA messages. The BGP routing | flooding is with respect to forwarding SA messages. The BGP routing | |||
| table is examined to determine which peer is the next hop towards the | table is examined to determine which peer is the NEXT_HOP towards the | |||
| originating RP of the SA message. Such a peer is called an "RPF | originating RP of the SA message. Such a peer is called an "RPF | |||
| peer". See the section on "MSDP Peer-RPF Forwarding" for more | peer". See section 10 below for the details of peer-RPF fowarding. | |||
| details. | ||||
| If the MSDP peer receives the SA from a non-RPF peer towards the | If the MSDP peer receives the SA from a non-RPF peer towards the | |||
| originating RP, it will drop the message. Otherwise, it forwards the | originating RP, it will drop the message. Otherwise, it forwards the | |||
| message to all it's MSDP peers. | message to all it's MSDP peers. | |||
| The flooding can be further constrained to children of the peer by | The flooding can be further constrained to children of the peer by | |||
| interrogating BGP reachability information. That is, if a BGP peer | interrogating BGP reachability information. That is, if a BGP peer | |||
| advertises a route (back to you) and you are the next to last AS in | advertises a route (back to you) and you are the next to last AS in | |||
| the AS-path, the peer is using you as the next-hop. In this case, an | the AS_PATH, the peer is using you as the NEXT_HOP. In this case, an | |||
| implementation SHOULD forward an SA message (which was originated | implementation SHOULD forward an SA message (which was originated | |||
| from the RP address covered by that route) to the peer. This is known | from the RP address covered by that route) to the peer. This is | |||
| in other circles as Split-Horizon with Poison Reverse. | known in other circles as Split-Horizon with Poison Reverse. | |||
| When an MSDP peer which is also an RP for its own domain receives an | When an MSDP peer which is also an RP for its own domain receives an | |||
| SA message, it determines if it has any group members interested in | SA message, it determines if it has any group members interested in | |||
| the group which the SA message describes. That is, the RP checks for | the group which the SA message describes. That is, the RP checks for | |||
| an (*,G) entry with a non-empty outgoing interface list; this implies | a (*,G) entry with a non-empty outgoing interface list; this implies | |||
| that the domain is interested in the group. In this case, the RP | that the domain is interested in the group. In this case, the RP | |||
| triggers an (S,G) join event towards the data source as if a | triggers a (S,G) join event towards the data source as if a | |||
| Join/Prune message was received addressed to the RP itself (See [1] | Join/Prune message was received addressed to the RP itself (See | |||
| Section 3.2.2). This sets up a branch of the source-tree to this | [RFC2362] Section 3.2.2). This sets up a branch of the source-tree to | |||
| domain. Subsequent data packets arrive at the RP which are forwarded | this domain. Subsequent data packets arrive at the RP which are | |||
| down the shared-tree inside the domain. If leaf routers choose to | forwarded down the shared-tree inside the domain. If leaf routers | |||
| join the source-tree they have the option to do so according to | choose to join the source-tree they have the option to do so | |||
| existing PIM-SM conventions. Finally, if an RP in a domain receives | according to existing PIM-SM conventions. Finally, if an RP in a | |||
| a PIM Join message for a new group G, and it is caching SA's, then | domain receives a PIM Join message for a new group G, and it is | |||
| the RP should trigger an (S,G) join event for each SA for that group | caching SAs, then the RP should trigger a (S,G) join event for each | |||
| in its cache. | 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. | |||
| 6. Controlling State | 7. Controlling State | |||
| While RPs which receive SA messages are not required to keep MSDP | While RPs which receive SA messages are not required to keep MSDP | |||
| (S,G) state, an RP SHOULD cache SA messages by default. The advantage | (S,G) state, an RP SHOULD cache SA messages by default. The advantage | |||
| of caching is that newly formed MSDP peers can get MSDP (S,G) state | of caching is that newly formed MSDP peers can get MSDP (S,G) state | |||
| sooner and therefore reduce join latency for new joiners. In | sooner and therefore reduce join latency for new joiners. In | |||
| addition, caching greatly aids in diagnosis and debugging of various | addition, caching greatly aids in diagnosis and debugging of various | |||
| problems. | problems. | |||
| 6.1. Timers | 7.1. Timers | |||
| The main timers for MSDP are: SA Advertisement period, SA Hold-down | The main timers for MSDP are: SA Advertisement period, SA Hold-down | |||
| period, the SA Cache timeout period, KeepAlive, HoldTimer, and | period, the SA Cache timeout period, KeepAlive, HoldTimer, and | |||
| ConnectRetry. Each is described below. | ConnectRetry. Each is described below. | |||
| 6.1.1. SA Advertisement Period | 7.1.1. SA Advertisement Period | |||
| 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. The SA Advertisement Period MUST be | is data being sent by the source. The SA Advertisement Period MUST be | |||
| 60 seconds. An RP will not send more than one SA message for a given | 60 seconds. An RP will not send more than one SA message for a given | |||
| (S,G) within an SA Advertisment period. Originating periodic SA | (S,G) within an SA Advertisement period. Originating periodic SA | |||
| messages is important so that new receivers who join after a source | messages is important so that new receivers who join after a source | |||
| has been active can get data quickly via the receiver's own RP when | has been active can get data quickly via the receiver's own RP when | |||
| it is not caching SA state. Finally, if an RP in a domain receives a | it is not caching SA state. Finally, if an RP in a domain receives a | |||
| PIM Join message for a new group G, and it is caching SAs, then the | PIM Join message for a new group G, and it is caching SAs, then the | |||
| RP should trigger an (S,G) join for each SA for that group in its | RP should trigger a (S,G) join for each SA for that group in its | |||
| cache. | cache. | |||
| 6.1.2. SA Hold-down Period | 7.1.2. SA Hold-down Period | |||
| A caching MSDP speaker SHOULD NOT forward a SA message it has | A caching MSDP speaker SHOULD NOT forward an SA message it has | |||
| received in the last SA-Hold-down period. The SA-Hold-down period | received in the last SA-Hold-down period. The SA-Hold-down period | |||
| SHOULD be set 30 seconds. | SHOULD be set to 30 seconds. | |||
| 6.1.3. SA Cache Timeout | 7.1.3. SA Cache Timeout | |||
| A caching MSDP speaker times out it's SA cache at SA-State-Timer. | A caching MSDP speaker times out it's SA cache at SA-State-Timer. | |||
| The SA-State-Timer MUST NOT be less than 90 seconds minutes. | The SA-State-Timer MUST NOT be less than 90 seconds. | |||
| 6.1.4. KeepAlive, HoldTimer, and ConnectRetry | 7.1.4. KeepAlive, HoldTimer, and ConnectRetry | |||
| The KeepAlive, HoldTimer, and ConnectRetry timers are defined in | The KeepAlive, HoldTimer, and ConnectRetry timers are defined in RFC | |||
| RFC1771 [3]. | 1771 [RFC1771]. | |||
| 6.2. Intermediate MSDP Speakers | 7.2. Intermediate MSDP Speakers | |||
| Intermediate RPs do not originate periodic SA messages on behalf of | Intermediate RPs do not originate periodic SA messages on behalf of | |||
| sources in other domains. In general, an RP MUST only originate an SA | sources in other domains. In general, an RP MUST only originate an SA | |||
| for its own sources. | for its own sources. | |||
| 6.3. SA Filtering | 7.3. SA Filtering and Policy | |||
| As the number of (S,G) pairs increases in the Internet, an RP may | As the number of (S,G) pairs increases in the Internet, an RP may | |||
| want to filter which sources it describes in SA messages. Also, | want to filter which sources it describes in SA messages. Also, | |||
| filtering may be used as a matter of policy which at the same time | filtering may be used as a matter of policy which at the same time | |||
| can reduce state. Only the RP colocated in the same domain as the | can reduce state. Only the RP co-located in the same domain as the | |||
| source can restrict SA messages. Other MSDP peers in transit domains | source can restrict SA messages. Note, hoever, that MSDP peers in | |||
| should not filter or the flood-and-join model does not guarantee that | transit domains should not filter SA messages or the flood-and-join | |||
| sources will be known throughout the Internet. An exception occurs at | model can not guarantee that sources will be known throughout the | |||
| an administrative scope [13] boundary. In particular, a SA message | Internet (i.e., SA filtering by transit domains can cause black | |||
| for an (S,G) MUST NOT be sent to peers which are on the other side of | holes). In general, policy should be expressed using MBGP [RFC2283]. | |||
| an administrative scope boundary for G. | This will cause MSDP messages will flow in the desired direction and | |||
| peer-RPF fail otherwise. An exception occurs at an 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 an | ||||
| administrative scope boundary for G. | ||||
| 6.4. Caching | 7.4. SA Requests | |||
| If an MSDP peer decides to cache SA state, it may accept SA-Requests | If an MSDP peer decides to cache SA state, it may accept SA-Requests | |||
| from other MSDP peers. When a MSDP peer receives an SA-Request for a | from other MSDP peers. When an MSDP peer receives an SA-Request for a | |||
| group range, it will respond to the peer with a set of SA entries, in | group range, it will respond to the peer with a set of SA entries, in | |||
| a SA-Response message, for all active sources sending to the group | an SA-Response message, for all active sources sending to the group | |||
| range requested in the SA-Request message. The peer that sends the | range requested in the SA-Request message. The peer that sends the | |||
| request will not flood the responding SA-Response message to other | request will not flood the responding SA-Response message to other | |||
| peers. | peers. | |||
| If an implementation receives an SA-Request message and is not | If an implementation receives an SA-Request message and is not | |||
| caching SA messages, it sends a notification with Error code 7 | caching SA messages, it sends a notification with Error code 7 | |||
| subcode 1, as defined in section 11.2.7. | subcode 1, as defined in section 12.2.7. | |||
| 7. Encapsulated Data Packets | 8. 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 | |||
| the number of packets from the source which are encapsulated. | the number of packets from the source which are encapsulated. | |||
| This allows for small bursts to be received before the multicast tree | This allows for small bursts to be received before the multicast tree | |||
| is built back toward the source's domain. For example, an | is built back toward the source's domain. For example, an | |||
| implementation SHOULD encapsulate at least the first packet to | implementation SHOULD encapsulate at least the first packet to | |||
| provide service to bursty sources. | provide service to bursty sources. | |||
| Finally, if an implementation supports an encapsulation of SA data | Finally, if an implementation supports an encapsulation of SA data | |||
| other than default TCP encapsulation, then it MUST support GRE | other than default TCP encapsulation, then it MUST support GRE | |||
| encapsulation. In addition, an implementation MUST learn about not | encapsulation. In addition, an implementation MUST learn about not | |||
| TCP encapsulations via capability advertisment (see section 11.2.5). | TCP encapsulations via capability advertisement (see section 11.2.5). | |||
| 8. Other Scenarios | 9. Other Scenarios | |||
| MSDP is not limited to deployment across different routing domains. | MSDP is not limited to deployment across different routing domains. | |||
| It can be used within a routing domain when it is desired to deploy | It can be used within a routing domain when it is desired to deploy | |||
| multiple RPs for different group ranges. As long as all RPs have a | multiple RPs for different group ranges. As long as all RPs have a | |||
| interconnected MSDP topology, each can learn about active sources as | interconnected MSDP topology, each can learn about active sources as | |||
| well as RPs in other domains. Another example is the Anycast RP | well as RPs in other domains. Another example is the Anycast RP | |||
| mechanism [8]. | mechanism [ANYCASTRP]. | |||
| 9. MSDP Peer-RPF Forwarding | 10. 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. An SA message | messages throughout an MSDP enabled internet. Unlike the RPF check | |||
| originated by a MSDP originator R and received by a MSDP router from | used when forwarding data packets, the Peer-RPF check is against the | |||
| MSDP peer N in AS A is accepted if any of the following are true: | RP address carried in the SA message. | |||
| (i). If N is R. | 10.1. Peer-RPF Forwarding Rules | |||
| (ii). If A is the first AS in the AS-Path of the BGP | An SA message originated by an MSDP originator R and received by a | |||
| route towards R. | MSDP router from MSDP peer N is accepted if N is the appropriate RPF | |||
| neighbor for originator R. The RPF neighbor is chosen using the first | ||||
| of the following rules that matches: | ||||
| (iii). If N is the iBGP advertiser of the BGP route | (i). R is the RPF neighbor if we have an MSDP peering with R. | |||
| towards R. | ||||
| (iv). If N is the MSDP default-peer. | (ii). The external MBGP neighbor towards which we are | |||
| poison-reversing the MBGP route towards R is the RPF neighbor | ||||
| if we have an MSDP peering with it. | ||||
| If none of the conditions above is met, the SA message is discarded. | (iii). If we have an MSDP peering with a neighbor in the first | |||
| This is the case where the SA message was received on a redundant | AS along the AS_PATH (the AS from which we learned this | |||
| MSDP peering path. | route), but no exeternal MBGP peering with that neighbor, | |||
| pick a neighbor via a deterministic rule if you have have | ||||
| several, and that is the RPF neighbor. | ||||
| Note that these rules are evaluated in the order shown here. This | (vi). The internal MBGP advertiser of the router towards R is | |||
| selects a "peer-RPF neighbor" for the SA message, and allows for the | the RPF neighbor if we have an MSDP peering with it. | |||
| construction of diagnostic tools such as MSDP-traceroute [7]. | ||||
| 9.1. MSDP default-peer semantics | (v). If none of the above match, and we have an MSDP | |||
| default-peer configured, the MSDP default-peer is | ||||
| the RPF neighbor. | ||||
| Once an RPF neighbor is chosen (as defined above), an SA message is | ||||
| accepted if it was received from the RPF neighbor, and discarded | ||||
| otherwise. | ||||
| 10.2. MSDP default-peer semantics | ||||
| A MSDP default-peer is much like a default route. It is intended to | A 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 or | be used in those cases where a stub network isn't running BGP or | |||
| MBGP. In this case, the MSDP speaker accepts all SA messages from the | MBGP. A MSDP speaker configured with a default-peer accepts all SA | |||
| default-peer. Of course, if multiple default peers are configured, | messages from the default-peer. Note that a router running BGP or | |||
| the possibility of looping exists, so care must be taken. Finally, a | MBGP SHOULD NOT allow configuration of default peers, since this | |||
| router running BGP or multiprotol BGP [4] SHOULD NOT allow | allows the possibility for SA looping to occur. | |||
| configuration of default peers. | ||||
| 10. MSDP Connection Establishment | 11. MSDP Connection Establishment | |||
| MSDP speakers establish peering sessions according to the following | MSDP speakers establish peering sessions according to the following | |||
| state machine: | state machine: | |||
| Deconfigured or | De-configured or | |||
| disabled | disabled | |||
| +-------------------------------------------+ | +-------------------------------------------+ | |||
| | | | | | | |||
| +-----|--------->+----------+ | | +-----|--------->+----------+ | | |||
| | | +->| INACTIVE |----------------+ | | | | +->| INACTIVE |----------------+ | | |||
| | | | +----------+ | | | | | | +----------+ | | | |||
| Deconf'ed | | | /|\ /|\ | Timer + Higher Address | Deconf'ed | | | /|\ /|\ | Timer + Higher Address | |||
| or | | | | | | | | or | | | | | | | | |||
| disabled | | | | | \|/ | | disabled | | | | | \|/ | | |||
| | | | | | | +-------------+ | | | | | | | +-------------+ | |||
| | | | | | +---------------| CONNNECTING | | | | | | | +---------------| CONNECTING | | |||
| | | | | | Timeout or +-------------+ | | | | | | Timeout or +-------------+ | |||
| | | | | | Router ID Change | | | | | | | Router ID Change | | |||
| \|/ \|/ | | | | | \|/ \|/ | | | | | |||
| +----------+ | | | | | +----------+ | | | | | |||
| | DISABLED | | | +---------------------+ | TCP Established | | DISABLED | | | +---------------------+ | TCP Established | |||
| +----------+ | | | | | +----------+ | | | | | |||
| /|\ /|\ | | Connection Timeout or | | | /|\ /|\ | | Connection Timeout or | | | |||
| | | | | Router ID change or | | | | | | | Router ID change or | | | |||
| | | | | Authorization Failure | | | | | | | Authorization Failure | | | |||
| | | | | | | | | | | | | | | |||
| | | | | | \|/ | | | | | | \|/ | |||
| | | | | +-------------+ | | | | | +-------------+ | |||
| | | Router ID | | Timer + | ESTABLISHED | | | | Router ID | | Timer + | ESTABLISHED | | |||
| | | Change | | Low Addresss +-------------+ | | | Change | | Low Address +-------------+ | |||
| | | | \|/ /|\ | | | | | \|/ /|\ | | |||
| | | | +--------+ | | | | | | +--------+ | | | |||
| | | +--| LISTEN |--------------------+ | | | | +--| LISTEN |--------------------+ | | |||
| | | +--------+ TCP Accept | | | | +--------+ TCP Accept | | |||
| | | | | | | | | | | |||
| | | | | | | | | | | |||
| | +---------------+ | | | +---------------+ | | |||
| | Deconfigured or | | | De-configured or | | |||
| | disabled | | | disabled | | |||
| | | | | | | |||
| +------------------------------------------------------+ | +------------------------------------------------------+ | |||
| Deconfigured or | De-configured or | |||
| disabled | disabled | |||
| 11. Packet Formats | 12. Packet Formats | |||
| MSDP messages will be encapsulated in a TCP connection using well- | MSDP messages will be encapsulated in a TCP connection using well- | |||
| known port 639. One side of the MSDP peering relationship will listen | known port 639. One side of the MSDP peering relationship will listen | |||
| on the well-known port and the other side will do an active connect | on the well-known port and the other side will do an active connect | |||
| on the well-known port. The side with the higher IP address will do | on the well-known port. The side with the higher peer IP address will | |||
| the listen. This connection establishment algorithm avoids call | do the listen. This connection establishment algorithm avoids call | |||
| collision. Therefore, there is no need for a call collision | collision. Therefore, there is no need for a call collision | |||
| procedure. It should be noted, however, that the disadvantage of this | procedure. It should be noted, however, that the disadvantage of this | |||
| approach is that it may result in longer startup times at the passive | approach is that it may result in longer startup times at the passive | |||
| end. | end. | |||
| Finally, if an implementation receives a TLV that has length that is | Finally, if an implementation receives a TLV that has length that is | |||
| longer than expected, the TLV SHOULD be accepted. Any additional data | longer than expected, the TLV SHOULD be accepted. Any additional data | |||
| SHOULD be ignored. | SHOULD be ignored. | |||
| 11.1. MSDP messages will be encoded in TLV format: | 12.1. MSDP messages will be encoded in TLV format: | |||
| 1 2 3 | 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Type | Length | Value .... | | |||
| | Type | Length | Value .... | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type (8 bits) | Type (8 bits) | |||
| Describes the format of the Value field. | Describes the format of the Value field. | |||
| Length (16 bits) | Length (16 bits) | |||
| Length of Type, Length, and Value fields in octets. Minimum | Length of Type, Length, and Value fields in octets. The | |||
| length required is 3 octets. | minimum length required is 3 octets. | |||
| Value (variable length) | Value (variable length) | |||
| Format is based on the Type value. See below. The length of | Format is based on the Type value. See below. The length of | |||
| the value field is Length field minus 3. | the value field is Length field minus 3. | |||
| 11.2. The following TLV Types are defined: | 12.2. The following TLV Types are defined: | |||
| Code Type | Code Type | |||
| ================================================================ | =========================================================== | |||
| 1 IPv4 Source-Active | 1 IPv4 Source-Active | |||
| 2 IPv4 Source-Active Request | 2 IPv4 Source-Active Request | |||
| 3 IPv4 Source-Active Response | 3 IPv4 Source-Active Response | |||
| 4 KeepAlive | 4 KeepAlive | |||
| 5 Encapsulation Capability Advertisement | 5 Encapsulation Capability Advertisement | |||
| 6 Encapsulation Capability Request | 6 Encapsulation Capability Request | |||
| 7 Notification | 7 Notification | |||
| 8 GRE Encapsulation | 8 GRE Encapsulation | |||
| Each TLV is described below. | Each TLV is described below. | |||
| 11.2.1. IPv4 Source-Active TLV | 12.2.1. IPv4 Source-Active TLV | |||
| The maximum size SA message that can be sent is 1400 bytes. If an | The maximum size SA message that can be sent is 1400 bytes. If an | |||
| MSDP peer needs to originate a message with information greater than | MSDP peer needs to originate a message with information greater than | |||
| 1400 bytes, it sends successive 1400-byte messages. The 1400 byte | 1400 bytes, it sends successive 1400-byte messages. The 1400 byte | |||
| size does not include the TCP, IP, layer-2 headers. | size does not include the TCP, IP, layer-2 headers. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 1 | x + y | Entry Count | | | 1 | x + y | Entry Count | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | RP Address | | | RP Address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved | Gprefix Len | Sprefix Len | \ | | Reserved | Gprefix Len | Sprefix Len | \ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ | |||
| | Group Address Prefix | ) z | | Group Address Prefix | ) z | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | |||
| | Source Address Prefix | / | | Source Address Prefix | / | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Type | |||
| IPv4 Source-Active TLV is type 1. | IPv4 Source-Active TLV is type 1. | |||
| Length x | Length x | |||
| Is the length of the control information in the message. x is | Is the length of the control information in the message. x is | |||
| 8 octets (for the first two 32-bit quantities) plus 12 times | 8 octets (for the first two 32-bit quantities) plus 12 times | |||
| Entry Count octets. | Entry Count octets. | |||
| Length y | Length y | |||
| If 0, then there is no data encapsulated. Otherwise an IPv4 | If 0, then there is no data encapsulated. Otherwise an IPv4 | |||
| packet follows and y is the length of the total length field | packet follows and y is the length of the total length field | |||
| of the IPv4 header encapsulated. If there are multiple SA TLVs | of the IPv4 header encapsulated. If there are multiple SA TLVs | |||
| in a message, and data is also included, y must be 0 in all SA | in a message, and data is also included, y must be 0 in all SA | |||
| TLVs except the last one. And the last SA TLV must reflect the | TLVs except the last one. And the last SA TLV must reflect the | |||
| source and destination addresses in the IP header of the | source and destination addresses in the IP header of the | |||
| encapsulated data. | encapsulated data. | |||
| Entry Count | Entry Count | |||
| Is the count of z entries (note above) which follow the RP | Is the count of z entries (note above) which follow the RP | |||
| address field. This is so multiple (S,G)s from the same domain | address field. This is so multiple (S,G)s from the same domain | |||
| can be encoded efficiently for the same RP address. | can be encoded efficiently for the same RP address. | |||
| RP Address | RP Address | |||
| The address of the RP in the domain the source has become | The address of the RP in the domain the source has become | |||
| active in. | active in. | |||
| Gprefix Len and Sprefix Len | Reserved | |||
| The route prefix length associated with the group address | The Reserved field MUST be transmitted as zeros and ignored | |||
| prefix and source address prefix, respectively. | by a receiver. | |||
| Group Address Prefix | Gprefix Len and Sprefix Len | |||
| The group address the active source has sent data to. | The route prefix length associated with the group address | |||
| prefix and source address prefix, respectively. | ||||
| Source Address Prefix | Group Address Prefix | |||
| The route prefix associated with the active source. | The group address the active source has sent data to. | |||
| Source Address Prefix | ||||
| The route prefix associated with 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. | |||
| 11.2.2. IPv4 Source-Active Request TLV | 12.2.2. IPv4 Source-Active Request TLV | |||
| Used to request SA-state from a caching MSDP peer. If an RP in a | The Source-Active Request is used to request SA-state from a caching | |||
| domain receives a PIM Join message for a group, creates (*,G) state | MSDP peer. If an RP in a domain receives a PIM Join message for a | |||
| and wants to know all active sources for group G, and it has been | group, creates (*,G) state and wants to know all active sources for | |||
| configured to peer with an SA-state caching peer, it may send an SA- | group G, and it has been configured to peer with an SA-state caching | |||
| 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 | Gprefix Len | | | 2 | 8 | Gprefix Len | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Group Address Prefix | | | Group Address Prefix | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Type | |||
| IPv4 Source-Active Request TLV is type 2. | IPv4 Source-Active Request TLV is type 2. | |||
| Gprefix Len | Gprefix Len | |||
| The route prefix length associated with the group address prefix. | The route prefix length associated with the group address prefix. | |||
| Group Address Prefix | Group Address Prefix | |||
| The group address prefix the MSDP peer is requesting. | The group address prefix the MSDP peer is requesting. | |||
| 11.2.3. IPv4 Source-Active Response TLV | 12.2.3. IPv4 Source-Active Response TLV | |||
| Sent in response to a Source-Active Request message. The Source- | The Source-Active Response is sent in response to a Source-Active | |||
| Active Response message has the same format as a Source-Active | Request message. The Source-Active Response message has the same | |||
| message but does not allow encapsulation of multicast data. | format as a Source-Active message but does not allow encapsulation of | |||
| multicast data. | ||||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 3 | x | .... | | | 3 | x | .... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Type | |||
| IPv4 Source-Active Response TLV is type 3. | IPv4 Source-Active Response TLV is type 3. | |||
| Length x | Length x | |||
| Is the length of the control information in the message. x is 8 | Is the length of the control information in the message. x is 8 | |||
| octets (for the first two 32-bit quantities) plus 12 times Entry | octets (for the first two 32-bit quantities) plus 12 times Entry | |||
| Count octets. | Count octets. | |||
| 11.2.4. KeepAlive TLV | 12.2.4. KeepAlive TLV | |||
| Sent to an MSDP peer if and only if there were no MSDP messages sent | A KeepAlive TLV is sent to an MSDP peer if and only if there were no | |||
| to the peer after a period of time. This message is necessary for the | MSDP messages sent to the peer after a period of time. This message | |||
| active connect side of the MSDP connection. The passive connect side | is necessary for the active connect side of the MSDP connection. The | |||
| of the connection knows that the connection will be reestablished | passive connect side of the connection knows that the connection will | |||
| when a TCP SYN packet is sent from the active connect side. However, | be reestablished when a TCP SYN packet is sent from the active | |||
| the active connect side will not know when the passive connect side | connect side. However, the active connect side will not know when the | |||
| goes down. Therefore, the KeepAlive timeout will be used to reset the | passive connect side goes down. Therefore, the KeepAlive timeout will | |||
| TCP connection. | be used to reset the TCP connection. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 4 | 3 | | | | 4 | 3 | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| The length of the message is 3 bytes which encompasses the 1-byte | The length of the message is 3 bytes which encompasses the 1-byte | |||
| Type field and the 2-byte Length field. | Type field and the 2-byte Length field. | |||
| 11.2.5. Encapsulation Capability Advertisement TLV | 12.2.5. Encapsulation Capability Advertisement TLV | |||
| This TLV implements encapsulation capability advertisement. This TLV | This TLV is sent by an MSDP speaker to advertise its ability to | |||
| is sent by an MSDP speaker to advertise its ability to receive data | receive data packets encapsulated as described by the TLV (in | |||
| packets encapsulated as described by the TLV (in addition to the | addition to the default TCP encapsulation). | |||
| default TCP encapsulation). | ||||
| A MSDP speaker receiving this TLV can choose to either default TCP | A MSDP speaker receiving this TLV can choose to either default TCP | |||
| encapsulation, or may send a IPv4 Encapsulation Request to change to | encapsulation, or may send a IPv4 Encapsulation Request to change to | |||
| the advertised encapsulation type. | the advertised encapsulation type. | |||
| 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 | 8 | ENCAP_TYPE | | | 5 | 8 | ENCAP_TYPE | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Source Port | Reserved | | | Source Port | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | ||||
| IPv4 Encapsulation Advertisement TLV is type 5. | ||||
| Length | Type | |||
| Length is a two byte field with value 8. | IPv4 Encapsulation Advertisement TLV is type 5. | |||
| ENCAP_TYPE | Length | |||
| The following data encapsulation types are defined for MSDP: | Length is a two byte field with value 8. | |||
| Value Meaning | ENCAP_TYPE | |||
| ------------------------------------- | The following data encapsulation types are defined for MSDP: | |||
| 0 TCP Encapsulation | ||||
| 1 UDP Encapsulation [10] | Value Meaning | |||
| --------------------------------------- | ||||
| 0 TCP Encapsulation | ||||
| 1 UDP Encapsulation [RFC768] | ||||
| 2 GRE Encapsulation [GRE] | ||||
| 2 GRE Encapsulation [9] | Source Port | |||
| Port for use by the requester. | ||||
| Soure Port | Reserved | |||
| Port for use by the requester. | The Reserved field MUST be transmitted as zeros and ignored | |||
| by a receiver. | ||||
| Note that since the TLV does not carry endpoint addresses for the GRE | Note that since the TLV does not carry endpoint addresses for the GRE | |||
| or UDP tunnels, an implementation using these encapsulations MUST use | or UDP tunnels, an implementation using these encapsulations MUST use | |||
| the endpoints that are used for the MSDP peering. | the endpoints that are used for the MSDP peering. | |||
| 11.2.6. Encapsulation Capability Request TLV | 12.2.6. Encapsulation Capability Request TLV | |||
| This TLV implements encapsulation capability request. This TLV should | ||||
| be sent in response to a capability advertisement. | ||||
| 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 | The Encapsulation Capability Request is sent to notify a peer that | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | has advertised an encapsulation capability that it will encapsulate | |||
| | 6 | 4 | ENCAP_TYPE | | SA data according to the advertised ENCAP_TYPE. | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | 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 | |||
| IPv4 Encapsulation Request TLV is type 6. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 6 | 4 | ENCAP_TYPE | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | ||||
| IPv4 Encapsulation Request TLV is type 6. | ||||
| Length | Length | |||
| Length is a two byte field with value 4. | Length is a two byte field with value 4. | |||
| ENCAP_TYPE | ENCAP_TYPE | |||
| ENCAP_TYPE is described above. | ENCAP_TYPE is described above. | |||
| A requester MAY also provide a source port, in which case | A requester MAY also provide a source port, in which case | |||
| the TLV has the following form: | the TLV has the following form: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 6 | 8 | ENCAP_TYPE | | | 6 | 8 | ENCAP_TYPE | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Source Port | Reserved | | | Source Port | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 11.2.7. NOTIFICATION TLV | 12.2.7. NOTIFICATION TLV | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 7 | x + 5 | Error Code | | | 7 | x + 5 | Error Code | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Error subcode | ... | | | Error subcode | ... | | |||
| +-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ | | |||
| | Data | | | Data | | |||
| | ... | | | ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Type | |||
| The Notification TLV is type 7. | The Notification TLV is type 7. | |||
| Length | Length | |||
| Length is a two byte field with value x + 5, where x is | Length is a two byte field with value x + 5, where x is | |||
| the length of the notification data field. | the length of the notification data field. | |||
| Error code | Error code | |||
| See [3]. In addition, Error code 7 indicates an | See [RFC1771]. In addition, Error code 7 indicates an | |||
| a SA-Request Error. | an SA-Request Error. | |||
| Error subcode | Error subcode | |||
| See [3]. In addition, Error code 7 subcode 1 indicates | See [RFC1771]. In addition, Error code 7 subcode 1 indicates | |||
| the receipt of a SA-Request message by a non-caching | the receipt of an SA-Request message by a non-caching | |||
| MSDP speaker. | MSDP speaker. | |||
| Data | Data | |||
| See [3]. In addition, for Error code 7 subcode 1 (receipt of | See [RFC1771]. In addition, for Error code 7 subcode 1 (receipt | |||
| a SA-Request message by a non-caching MSDP speaker), the TLV | of an SA-Request message by a non-caching MSDP speaker), the | |||
| has the follwing form: | TLV has the following form: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 7 | 20 | 7 | | | 7 | 20 | 7 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 1 | Reserved | Gprefix Len | Sprefix Len | | | 1 | Reserved | Gprefix Len | Sprefix Len | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Advertising RP Address | | | Advertising RP Address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Group Address Prefix | | | Group Address Prefix | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Source Address Prefix | | | Source Address Prefix | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| See [3] for NOTIFICATION error handling. | See [RFC1771] for NOTIFICATION error handling. | |||
| 11.2.8. Encapsulation Capability State Machine | 12.2.8. Encapsulation Capability State Machine | |||
| The active connect side of an MSDP peering SHALL begin in ADVERTISING | The active connect side of an MSDP peering SHALL begin in ADVERTISING | |||
| state, and the passive side of the TCP connection begins in DEFAULT | state, and the passive side of the TCP connection begins in DEFAULT | |||
| state. This will cause the state machine to behave deterministically. | state. This will cause the state machine to behave deterministically. | |||
| +-------+ | +-------+ | |||
| | | Receive TLV which isn't | | | Receive TLV which isn't | |||
| | | understood or | | | understood or | |||
| | | Receive Request (TLV 6) or | | | Receive Request (TLV 6) or | |||
| | | Receive Advertisement (TLV 5) | | | Receive Advertisement (TLV 5) | |||
| skipping to change at page 18, line 5 ¶ | skipping to change at page 18, line 5 ¶ | |||
| +------------>| AGREED |<------------------+ | +------------>| AGREED |<------------------+ | |||
| +--------+ | +--------+ | |||
| Note that if an advertiser transitions into the FAILED state, it | Note that if an advertiser transitions into the FAILED state, it | |||
| SHOULD assume that it has an old-style peer which can only support | SHOULD assume that it has an old-style peer which can only support | |||
| TCP encapsulation. If an implementation wishes to be backwardly | TCP encapsulation. If an implementation wishes to be backwardly | |||
| compatible, it SHOULD support TCP encapsulation. In addition, a | compatible, it SHOULD support TCP encapsulation. In addition, a | |||
| requester in any state other than AGREED MUST only encapsulate data | requester in any state other than AGREED MUST only encapsulate data | |||
| in the TCP stream. | in the TCP stream. | |||
| 11.2.9. UDP Data Encapsulation | 12.2.9. UDP Data Encapsulation | |||
| When using UDP encapsulation, the UDP psuedo-header has the following | When using UDP encapsulation, the UDP psuedo-header has the following | |||
| form: | form: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Source Port | Dest Port | | | Source Port | Dest Port | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Length | Checksum | | | Length | Checksum | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Origin RP Address | | | Origin RP Address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| o Source Port | ||||
| When using UDP encapsulation, a capability requester | ||||
| uses the advertiser's Source Port as its destination | ||||
| port. The advertiser MUST provide a Source Port. | ||||
| o Destination Port | Source Port | |||
| When using UDP encapsulation, a capability requester | ||||
| uses the advertiser's Source Port as its destination | ||||
| port. The advertiser MUST provide a Source Port. | ||||
| When using UDP encapsulation, a capability advertiser | Destination Port | |||
| uses the well known port 639 as the destination port. | When using UDP encapsulation, a capability advertiser | |||
| A capability requester MUST listen on this well-known | uses the well known port 639 as the destination port. | |||
| port. The requester MAY provide a Source Port in it's | A capability requester MUST listen on this well-known | |||
| reply to the advertiser. | port. The requester MAY provide a Source Port in it's | |||
| reply to the advertiser. | ||||
| o Length is the length in octets of this user datagram | Length | |||
| including this header and the data. The minimum value | Length is the length in octets of this user datagram | |||
| of the length is twelve. | including this header and the data. The minimum value | |||
| of the length is twelve. | ||||
| o Checksum is computed according to RFC768 [10]. | Checksum | |||
| The checksum is computed according to RFC 768 [RFC768]. | ||||
| o Originating RP Address is the address of the RP sending | Originating RP Address | |||
| the encapsulated data. | The Originating RP Address is the address of the RP sending | |||
| the encapsulated data. | ||||
| 11.2.10. GRE Encapsulation TLV | 12.2.10. GRE Encapsulation TLV | |||
| A TLV is defined to describe GRE encapsulated data packets. The TLV | A TLV is defined to describe GRE encapsulated data packets. The TLV | |||
| has the following form: | has the following form: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 8 | 8 + x | Reserved | | | 8 | 8 + x | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Originating RP IPv4 Address | | | Originating RP IPv4 Address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | (S,G) Data Packet .... | | (S,G) Data Packet .... | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Type | |||
| GRE encapsulated data packet TLV is type 8. | GRE encapsulated data packet TLV is type 8. | |||
| Length | Length | |||
| Length is a two byte field with value 8 + x, where | Length is a two byte field with value 8 + x, where | |||
| x is the length of the (S,G) Data packet. | x is the length of the (S,G) Data packet. | |||
| Reserved | ||||
| The Reserved field MUST be transmitted as zeros and ignored | ||||
| by a receiver. | ||||
| The entire GRE header, then, will have the following form: | The entire GRE header, then, will have the following form: | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Delivery Headers ..... | | | Delivery Headers ..... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |C| Reserved | Ver | Protocol Type |\ | |C| Reserved0 | Ver | Protocol Type |\ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ GRE Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ GRE Header | |||
| | Checksum (optional) | Reserved |/ | | Checksum (optional) | Reserved1 |/ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\ | |||
| | 8 | 8 + x | Reserved | \ | | 8 | 8 + x | Reserved | \ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Payload | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Payload | |||
| | Originating RP IPv4 Address | / | | Originating RP IPv4 Address | / | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . | |||
| | (S,G) Data Packet .... . | | (S,G) Data Packet .... . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| 11.3. MTU Exeeded | 12.2.10.1. Problems with MTU Exceeded by Encapsulation | |||
| If the outbound link MTU is execeeded by the newly encapsulated | Black holes can arise when PMTU [RFC1191] is used and the tunnel | |||
| packet, the packet SHOULD be dropped. | entry point does not relay MTU exceeded errors back to the originator | |||
| of the packet. A black hole can be realized by the following | ||||
| behavior: the originator sets the Don't Fragment bit in the Delivery | ||||
| Header, the packet gets dropped within the tunnel (MTU is exceeded), | ||||
| but since the originator doesn't receive feedback, it retransmits | ||||
| with the same PMTU, causing subsequently transmitted packets to be | ||||
| dropped. While GRE [GRE] does not require that such errors be relayed | ||||
| back to the originator, known implementations of GRE do not set the | ||||
| Don't Fragment bit in the Delivery Header. | ||||
| 12. Security Considerations | 13. Security Considerations | |||
| A MSDP implementation MAY use IPsec [11] or keyed MD5 [12] to secure | An MSDP implementation MAY use IPsec [RFC1825] or keyed MD5 [RFC1828] | |||
| control messages. Encapsulated data packets rely on the underlying | to secure control messages. When encapsulating SA data in GRE, | |||
| security model. | security should be relatively similar to security in a normal IPv4 | |||
| network, as routing using GRE follows the same routing that IPv4 uses | ||||
| natively. Route filtering will remain unchanged. However packet | ||||
| filtering at a firewall requires either that a firewall look inside | ||||
| 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 | ||||
| security issue it may be desirable to terminate the tunnel at the | ||||
| firewall. | ||||
| 13. Acknowledgments | 14. Acknowledgments | |||
| The authors would like to thank Dave Thaler, Bill Fenner, Bill | The authors would like to thank Dave Thaler, Bill Nickless, John | |||
| Nickless, John Meylor, Liming Wei, Manoj Leelanivas, Mark Turner, and | Meylor, Liming Wei, Manoj Leelanivas, Mark Turner, and John Zwiebel | |||
| John Zwiebel for their design feedback and comments. | for their design feedback and comments. Bill Fenner also made many | |||
| contributions, including clarification of the Peer-RPF rules. | ||||
| 14. Author's Address: | 15. Author's Address: | |||
| Dino Farinacci | Dino Farinacci | |||
| Procket Networks | Procket Networks | |||
| 3850 No. First St., Ste. C | ||||
| San Jose, CA 95134 | ||||
| Email: dino@procket.com | Email: dino@procket.com | |||
| Yakov Rehkter | Yakov Rehkter | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| 170 Tasman Drive | 170 Tasman Drive | |||
| San Jose, CA, 95134 | San Jose, CA, 95134 | |||
| Email: yakov@cisco.com | Email: yakov@cisco.com | |||
| David Meyer | ||||
| Cisco Systems, Inc. | ||||
| 170 Tasman Drive | ||||
| San Jose, CA, 95134 | ||||
| Email: dmm@cisco.com | ||||
| Peter Lothberg | Peter Lothberg | |||
| Sprint | Sprint | |||
| VARESA0104 | VARESA0104 | |||
| 12502 Sunrise Valley Drive | 12502 Sunrise Valley Drive | |||
| Reston VA, 20196 | Reston VA, 20196 | |||
| Email: roll@sprint.net | Email: roll@sprint.net | |||
| Hank Kilmer | Hank Kilmer | |||
| Email: hank@rem.com | Email: hank@rem.com | |||
| Jeremy Hall | Jeremy Hall | |||
| UUnet Technologies | UUnet Technologies | |||
| 3060 Williams Drive | 3060 Williams Drive | |||
| Fairfax, VA 22031 | Fairfax, VA 22031 | |||
| Email: jhall@uu.net | Email: jhall@uu.net | |||
| 15. REFERENCES | David Meyer | |||
| Cisco Systems, Inc. | ||||
| [1] Estrin D., et al., "Protocol Independent Multicast - Sparse Mode | 170 Tasman Drive | |||
| (PIM-SM): Protocol Specification", RFC 2362, June 1998. | San Jose, CA, 95134 | |||
| Email: dmm@cisco.com | ||||
| [2] Thaler, D., Estrin, D., Meyer, D., "Border Gateway Multicast Protocol | 16. REFERENCES | |||
| (BGMP): Protocol Specification", draft-ietf-idmr-gum-01.txt, | ||||
| October 30, 1997. | ||||
| [3] Rekhter, Y., and T. Li, "A Border Gateway Protocol 4 (BGP-4)", | [ANYCASTRP] Meyer, et. al, "Anycast RP mechanism using PIM and | |||
| RFC 1771, March 1995. | MSDP", draft-ietf-mboned-anycast-rp-04.txt, November, | |||
| 1999. Work in Progress. | ||||
| [4] Bates, T., Chandra, R., Katz, D., and Y. Rekhter., "Multiprotocol | [GRE] Farinacci, D., at el., "Generic Routing Encapsulation | |||
| Extensions for BGP-4", RFC 2283, February 1998. | (GRE)", draft-meyer-gre-update-01.txt, December, | |||
| 1999. Work in Progress. | ||||
| [5] Deering, S., "Multicast Routing in a Datagram Internetwork", PhD | [RFC768] Postel, J. "User Datagram Protocol", RFC 768, August, | |||
| thesis, Electric Engineering Dept., Stanford University, December | 1980. | |||
| 1991. | ||||
| [6] Pusateri, T., "Distance Vector Multicast Routing Protocol", | [RFC1191] Mogul, J., and S. Deering, "Path MTU Discovery", | |||
| draft-ietf-idmr-dvmrp-v3-09.txt, October 1997. | RFC 1191, November 1990. | |||
| [7] Meyer, et. al, "MSDP Traceroute", | [RFC1771] Rekhter, Y., and T. Li, "A Border Gateway Protocol 4 | |||
| draft-ietf-msdp-traceroute-00.txt, November, 1999. | (BGP-4)", RFC 1771, March 1995. | |||
| [8] Meyer, et. al, "Anycast RP mechanism using PIM and MSDP", | [RFC1825] Atkinson, R., "Security Architecture for the Internet | |||
| draft-ietf-mboned-anycast-rp-04.txt, November, 1999. | Protocol", RFC 1825, August, 1995. | |||
| [9] Farinacci, D., at el., "Generic Routing Encapsulation (GRE)", | [RFC1828] P. Metzger and W. Simpson, "IP Authentication using | |||
| draft-ietf-meyer-gre-update-01.txt, December, 1999. | Keyed MD5", RFC 1828, August, 1995. | |||
| [10] Postel, J. "User Datagram Protocol", RFC768, August, 1980. | [RFC2119] S. Bradner, "Key words for use in RFCs to Indicate | |||
| Requirement Levels", RFC 2119, March, 1997. | ||||
| [11] Atkinson, R., "Security architecture for the internet protocol", | [RFC2283] Bates, T., Chandra, R., Katz, D., and Y. Rekhter., | |||
| RFC1825, August, 1995. | "Multiprotocol Extensions for BGP-4", RFC 2283, | |||
| February 1998. | ||||
| [12] P. Metzger and W. Simpson, "IP Authentication using Keyed | [RFC2362] Estrin D., et al., "Protocol Independent Multicast - | |||
| MD5", RFC 1828, August, 1995. | Sparse Mode (PIM-SM): Protocol Specification", RFC | |||
| 2362, June 1998. | ||||
| [13] Meyer, D. "Administratively Scoped IP Multicast", RFC2365, | [RFC2365] Meyer, D. "Administratively Scoped IP Multicast", RFC | |||
| July, 1998. | 2365, July, 1998. | |||
| End of changes. 163 change blocks. | ||||
| 403 lines changed or deleted | 445 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/ | ||||