diff options
Diffstat (limited to 'doc/rfc/rfc2443.txt')
-rw-r--r-- | doc/rfc/rfc2443.txt | 1011 |
1 files changed, 1011 insertions, 0 deletions
diff --git a/doc/rfc/rfc2443.txt b/doc/rfc/rfc2443.txt new file mode 100644 index 0000000..da0934d --- /dev/null +++ b/doc/rfc/rfc2443.txt @@ -0,0 +1,1011 @@ + + + + + + +Network Working Group J. Luciani +Request for Comments: 2443 Bay Networks +Category: Experimental A. Gallo + IBM + November 1998 + + + A Distributed MARS Service Using SCSP + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1998). All Rights Reserved. + +Abstract + + This document describes a method for distributing a MARS service + within a LIS[1]. This method uses the Server Cache Synchronization + Protocol (SCSP)[2] to synchronize the MARS Server databases within a + LIS. When SCSP is used to synchronize the caches of MARS Servers in + a LIS, the LIS defines the boundary of an SCSP Server Group (SG). + +1. Introduction + + The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, + SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this + document, are to be interpreted as described in [5]. + + The MARS is an extended analog of the ATMARP Server introduced in + [4]. It provides the necessary connection and addressing services + required by layer 3 multicast services over ATM. There are three + basic elements to the MARS model. First, the MARS Server which + manages and distributes layer 3 group membership information to the + LIS. Second, MARS Clients which register with and query a single MARS + Server for layer 3 multicast information. Third, MCS Clients which + register with a single MARS Server and provide layer 3 multicast + forwarding services for a LIS. + + Both MARS Clients and MCS Clients explicitly register with the MARS + Server before exchanging layer 3 multicast information. During the + registration process MARS Clients are place on the Cluster Control VC + + + +Luciani & Gallo Experimental [Page 1] + +RFC 2443 MARS Service Using SCSP November 1998 + + + (CCVC) and MCS Clients are placed on the Server Control VC (SCVC). + Both the CCVC and SCVC are then used to propagate layer 3 multicast + updates to the clients which make up a LIS. During the registration + process MARS Clients are also assigned a unique Cluster Member ID + (CMI) which is used to identify reflected packets in the presence of + MCS Clients. + + In the Distributed MARS Model there MAY be multiple MARS Servers in a + given LIS, and since any MARS Server within the LIS MUST be able to + provide layer 3 multicast information about any multicast group + within the LIS, there MUST be a method by which to synchronize + multicast information across all MARS Servers within the LIS. + + The Server Cache Synchronization Protocol (SCSP) solves the + generalized server synchronization/cache-replication problem for + distributed databases, and thus SCSP MAY be applied to the MARS + Server database synchronization problem within a LIS. When SCSP is + used to synchronize the caches of MARS Servers in a LIS, the LIS + defines the boundary of and SCSP Server Group (SG). + + SCSP is defined in two parts: the protocol independent part and the + client/server protocol specific part. The protocol independent part + is specified in [2] whereas this document will specify the + client/server protocol specific part where the MARS Server is the + client/server protocol. + +2. Overview + + All MARS Servers belonging to a LIS are said to belong to a Server + Group (SG). A SG is identified by, not surprisingly, its SGID which + is contained in a field in all SCSP packets. All SCSP packets contain + a Protocol ID (PID) field as well. This PID field is set to 0x0003 to + signify that SCSP is synchronizing MARS Server databases as opposed + to synchronizing some other protocol's databases. (see Section + B.2.0.1 of [2] for more details). In general, PIDs for SCSP will be + assigned by IANA upon request given that a client/server protocol + specific specification has been written. In the case of MARS Servers, + the client/server protocol specific specification was written at the + same time as SCSP, and thus a PID=0x0003 was assigned in [2]. + + SCSP places no topological requirements upon a MARS Server SG. + Obviously, however, the resultant graph of MARS Servers must span the + set of MARS Servers being synchronized. For more information about + the client/server protocol independent part of SCSP, the reader is + encouraged to see [2]. + + + + + + +Luciani & Gallo Experimental [Page 2] + +RFC 2443 MARS Service Using SCSP November 1998 + + + When a SG is using SCSP for synchronization, a MARS Client or MCS + Client will register with only one MARS Server although it is allowed + to choose any MARS Server in the SG for this registration. At + registration time the MARS Client or MCS Client will be added to that + MARS Servers respective CCVC or SCVC. Also, MARS Clients will be + issued a unique CMI for the entire LIS. This document assumes at a + minimum each MARS Server in the SG will be configured with a unique + range of CMIs to assign to clients registering with that MARS Server. + Use of some external means for allocating CMIs to MARS Servers in a + SG is possible but beyond the scope of this document. + + When a MARS Client or MCS Client successfully registers with a MARS + Server in the SG that MARS Server will propagate the registration + information to its peer MARS Servers. The same propagation will occur + for any subsequent group membership information learned from the + clients. The peer MARS Server will then update its group membership + database and propagate the information out its own CCVC or SCVC if + needed. + + In the case of a MARS Server failure all peer MARS Servers in the SG + MUST flush the client/group membership information learned from the + failed MARS Server. The clients belonging to the failed MARS Servers + CCVC and SCVC will migrate to the next available MARS Server as + specified in Section 5.3 of [1]. When a client detects a failure of + its MARS, it steps to the next backup MARS Server and attempts to + register with the server. If the registration is successful the + client will re-join all of its previous group membership information. + If the registration fails, the process repeats until a functional + MARS Server is found. + + Determining the operational state of a MARS Servers in a SG requires + that each MARS Server send out an "alive" or "heartbeat" message + similar to the MARS Redirect message sent out on the CCVC or SCVC for + MARS Clients. However, this message will only be sent to MARS Servers + in the SG and is from here on defined as the MARS Server Redirect + Entry. + + In order to detect that a MARS Server failure has occurred each + server MUST update it's MARS Server Redirect Entry state at least + every 2 minutes, it is RECOMMENDED that it is updated every 1 minute. + Failure to receive two consecutive MARS Server Redirect Entry updates + from a given MARS Server in the SG will cause all membership + information learned from this server to be flushed. The MARS Server + Redirect Entry state is also used to create the MARS_REDIRECT_MAP + messages sent out on CCVC for each MARS Server in the SG. The + ordering of each server learned will be based on the MARS Servers + SCSP Sender ID. The ordering of the MARS_REDIRECT_MAP will first + + + + +Luciani & Gallo Experimental [Page 3] + +RFC 2443 MARS Service Using SCSP November 1998 + + + contain the list of MARS Servers learned via MARS Server Redirect + Entry updates in ascending order based on the SCSP Sender ID, + followed by any externally configured or learned backup MARS Servers. + + In the case of a MARS Client or MCS Client failure where the client + is unexpectedly removed from the CCVC or SCVC the MARS Server MUST + notify its peer SG members via a proxy deregister for that client. + Upon receiving a proxy deregister request from a peer SG member all + membership information for the deregistering client MUST be removed. + Any Clients sending multicast data to the failed client should also + receive an unexpected removal of this client which will intern cause + the sending client to revalidate the multicast groups current + membership as outlined in Section 5.1.5.1 of [1]. + +3. Format of the CSA Record MARS Specific Part + + CSA Records in SCSP contain a "Client/Server Protocol Specific Part" + which contains the non-protocol independent information for a given + server's cache entry. + + 0 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Hardware Type | Protocol Type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | Unused | Version | State | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Cluster Member ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Addr Len | Group Addr Len| ATM Addr T/L |ATM SubAddr T/L| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source Protocol Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM SubAddress (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Minimum Multicast Group Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Maximum Multicast Group Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Hardware Type + Defines the type of "link layer" addresses being carried. This + value is the ATM Forum 'address family number' specified in [3] as + 15 decimal (0x000F). This is the mar$afn field defined in [1]. + + + +Luciani & Gallo Experimental [Page 4] + +RFC 2443 MARS Service Using SCSP November 1998 + + + Protocol Type + This field is the protocol type number for the protocol using MARS + from [3]. (IPv4 is 0x0800). This is the mar$pro.type field from + [1]. + + Protocol SNAP + This field is the optional protocol SNAP extension to protocol + type. This is the mar$pro.snap field from [1]. + + Version Number + 0 MARS Specific part of the CSA record. + 0x01 Reserved for NHRP. + 0x02 - 0xEF Reserved for future use by the IETF. + 0xF0 - 0xFE Allocated for use by the ATM Forum. + 0xFF Experimental/Local use. + Version Number for this document MUST be set to 0x00. + + State + 1 MARS Server Redirect Entry. + 2 MCS Serve/Register request. + 3 MARS Client Join/Register request. + 4 MARS Client Leave/Deregister request. + 5 MCS Unserve/Deregister request. + + All other State values should cause the CSA to be discarded. + + Flags + The flags field is used to contain several flags and is similar to + the mar$flags field from [1]. + mar$flags + Bit 15 - mar$flags.layer3grp + Bit 13 - mar$flags.register + Bit 0-7 - mar$flags.sequence + + All remaining bits are reserved and MUST be zero. The + mars$flags.sequence field is of local significance only to the + Local Server (LS). + + Cluster Member CMI + This field contains the CMI which uniquely identifies each endpoint + within a LIS. This is the mar$cmi field from [1]. + + Src Addr Len + This field contains the length of the Source Protocol Address + field. For IPv4, the value is 4 if an address is specified. A null + (non-existent) address MUST be coded as zero length, and no space + allocated for it in the message body. This is the mar$spln field + from [1]. + + + +Luciani & Gallo Experimental [Page 5] + +RFC 2443 MARS Service Using SCSP November 1998 + + + Group Addr Len + This field contains the length of the Group Protocol Address field. + For IPv4, the value is 4 if an address is specified. A null (non- + existent) address MUST be coded as zero length, and no space + allocated for it in the message body. This is the mar$tpln field + from [1]. + + ATM Addr T/L + This field contains the type and length of the Source ATM Address + field. The type and length encoding is described in Section 5.1.2 + of [1]. + + ATM SubAddr T/L + This field contains the type and length of the Source ATM + SubAddress field. The type and length encoding is described in + Section 5.1.2 of [1]. + + Source Protocol Address + This is the internetwork address for the source of an address + binding in a MARS server cache entry. If null, no storage will be + allocated. This is the mar$spa field from [1]. + + Source ATM Address + This is the Source's ATM address of an address binding in a MARS + server cache entry. The address, if specified, is E.164 or ATM + Forum NSAPA. This is the mar$sha field from [1]. + + Source ATM SubAddress + This is the Source's ATM subaddress of an address binding in a MARS + server cache entry. The subaddress, if specified, is an ATM Forum + NSAPA. If null, no storage will be allocated. This is the mar$ssa + field from [1]. + + Minimum Multicast Group Address + This is the internetwork address of the lower bound on the range of + multicast group addresses for the address binding in a MARS server + cache entry. If null, no storage will be allocated. This is the + mar$min.N field from [1]. + + Maximum Multicast Group Address + This is the internetwork address of the upper bound on the range of + multicast group addresses for the address binding in a MARS server + cache entry. If null, no storage will be allocated. This is the + mar$max.N field from [1]. + + + + + + + +Luciani & Gallo Experimental [Page 6] + +RFC 2443 MARS Service Using SCSP November 1998 + + +4. Values for SCSP Protocol Independent Part + + The following sections give values for fields of the SCSP Protocol + Independent Part of the various SCSP messages. + +4.1 Values for the SCSP "Mandatory Common Part" + + Protocol ID = 0x0003 + Sender ID Len = 0x04 + Recvr ID Len = 0x04 + + See Section B.2.0.1 of [2] for a detailed description of these + fields. + +4.2 Values for the SCSP "CSAS Record" + + Cache Key Len = 0x04 + Orig ID Len = 0x04 + + See Section B.2.0.2 of [2] for a detailed description of these + fields. + +5. Detailed State Descriptions + +5.1 MARS Server Redirect Entry. + + The MARS Server Redirect Entry is used to determine the operational + state of a MARS Server in the SG. Each server MUST update it's MARS + Server Redirect Entry state at least every 2 minutes, it is + RECOMMENDED that it is updated every 1 minute. + + 0 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Hardware Type | Protocol Type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | Unused | Version | State | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Cluster Member ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Addr Len | Group Addr Len| ATM Addr T/L |ATM SubAddr T/L| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM SubAddress (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + +Luciani & Gallo Experimental [Page 7] + +RFC 2443 MARS Service Using SCSP November 1998 + + + Hardware Type + This value is the ATM Forum 'address family number' specified in + [3] as 15 decimal (0x000F). + + Protocol Type + This field is the protocol type number for the protocol using MARS + from [3]. (IPv4 is 0x0800). + + Protocol SNAP + This field is the optional protocol SNAP extension to protocol + type. This is the mar$pro.snap field from [1]. + + Version Number + Version Number for this document MUST be set to 0x00. + + State + State value is coded as 1 decimal for a MARS Server Redirect Entry. + + The Flags, Cluster Member ID, Src Addr Len, and Group Addr Len fields + are unused and set to zero. + + The ATM Addr T/L, ATM SubAddr T/L, Source ATM Address, and Source ATM + SubAddress fields define the ATM address for the source of the MARS + Server Redirect Entry in the SG. The coding for these fields are the + same as described in Section 3 of this document. + + Failure to receive two consecutive MARS Server Redirect Entry updates + from a given MARS Server in the SG will cause all membership + information learned from this server to be flushed. When a valid MARS + Server Redirect Entry update is received the source of this update + will be placed into the table of backup MARS Servers sent in the + MARS_REDIRECT_MAP message. The ordering of servers in the + MARS_REDIRECT_MAP will first contain the list of MARS Servers learned + via MARS Server Redirect Entry updates in ascending order based on + the SCSP Sender ID, followed by any externally configured or learned + backup MARS Servers. The format of the MARS_REDIRECT_MAP can be found + in Section 5.4.3 of [1]. + +5.2 MCS Serve/Register request. + + The MCS Serve/Register request is used to propagate the registering + or servicing of specific groups by an MCS Client within the SG + domain. It is similar to an MARS_MSERV request defined in Section + 6.2.2 and 6.2.3 of [1]. When a MARS Server in the SG successfully + adds a new MCS Client to it's SCVC or adds MCS support for a specific + group it MUST send a MCS Serve/Register request to the SG. An MCS + Client can only register with one MARS Server in the SG. + + + + +Luciani & Gallo Experimental [Page 8] + +RFC 2443 MARS Service Using SCSP November 1998 + + + 0 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Hardware Type | Protocol Type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | Unused | Version | State | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Cluster Member ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Addr Len | Group Addr Len| ATM Addr T/L |ATM SubAddr T/L| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source Protocol Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM SubAddress (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Minimum Multicast Group Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Maximum Multicast Group Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Hardware Type + This value is the ATM Forum 'address family number' specified in + [3] as 15 decimal (0x000F). + + Protocol Type + This field is the protocol type number for the protocol using MARS + from [3]. (IPv4 is 0x0800). + + Protocol SNAP + This field is the optional protocol SNAP extension to protocol + type. This is the mar$pro.snap field from [1]. + + Version Number + Version Number for this document MUST be set to 0x00. + + State + State value is coded as 2 decimal for a MCS Serve/Register request. + + Flags + The flags field is used to contain several flags: + + + + + + + +Luciani & Gallo Experimental [Page 9] + +RFC 2443 MARS Service Using SCSP November 1998 + + + mar$flags + Bit 15 - mar$flags.layer3grp + Bit 13 - mar$flags.register + Bit 0-7 - mar$flags.sequence + + The mar$flags.register bit MUST be set the same as in the + originating MARS_MSERV request. The mar$flags.layer3grp bit MUST be + zero and the mar$flags.sequence bits are of local significance only + to the LS. + + Cluster Member CMI + This field contains the CMI assigned by the MARS Server which + processed the MARS_MSERV request and uniquely identifies the MCS + Client in the MARS server cache. + + Src Addr Len + This field contains the length of the Source Protocol Address + field. For IPv4, the value is 4 if an address is specified. A null + (non-existent) address MUST be coded as zero length, and no space + allocated for it in the message body. + + Group Addr Len + This field contains the length of the Group Protocol Address field. + If the register bit in the flags field is set to 1 in the request + this field MUST be zero. If the register bit is zero in the flags + field the value of this field for IPv4 is 4. + + ATM Addr T/L + This field contains the type and length of the Source ATM Address + field for the MCS Client that originated the MARS_MSERV request. + The type and length encoding is described in Section 3. + + ATM SubAddr T/L + This field contains the type and length of the Source ATM + SubAddress field for the MCS Client that originated the MARS_MSERV + request. The type and length encoding is described in Section 3. + + Source Protocol Address + This is the internetwork address for the source of an address + binding in a MARS server cache entry. If Src Addr Len is set to + zero no storage will be allocated. + + Source ATM Address + This is the MCS Client's ATM address of an address binding in a + MARS server cache entry. The address is E.164 or ATM Forum NSAPA. + + + + + + +Luciani & Gallo Experimental [Page 10] + +RFC 2443 MARS Service Using SCSP November 1998 + + + Source ATM SubAddress + This is the MCS Client's ATM subaddress of an address binding in a + MARS server cache entry. The subaddress, if specified, is an ATM + Forum NSAPA. If null, no storage will be allocated. + + Minimum Multicast Group Address + This is the internetwork address of the lower bound on the range of + multicast group addresses for the address binding in a MARS server + cache entry. If Group Addr Len is set to zero no storage will be + allocated. + + Maximum Multicast Group Address + This is the internetwork address of the upper bound on the range of + multicast group addresses for the address binding in a MARS server + cache entry. If Group Addr Len is set to zero no storage will be + allocated. + + An MCS Client can only register with one MARS Server in the SG and is + only placed on the SCVC for the MARS Server for which it is + registered with. + + When a MCS Client Serve/Register request specifying a group address + is received by a MARS Server it MUST create a cache entry associated + with this client. In addition to adding the cache entry it MUST send + out a MARS_MIGRATE message on it's CCVC. This is needed so that + clients using a mesh topology can migrate to a server based topology. + Details regarding the MARS_MIGRATE message can be found in Section + 5.1.6 of [1]. + +5.3 MARS Client Join/Register request. + + The MARS Client Join/Register request is used to propagate the + registering or joining of specific group ranges by MARS Clients + within the SG domain. It is similar to the MARS_JOIN request defined + in Sections 5.2.1 to 5.2.3 of [1]. When a MARS Server in the SG + successfully registers a new MARS Client or a registered client joins + a specific group address range the MARS Server MUST send a MARS + Client Join/Register request to the SG. A MARS Client can only + register with one MARS Server in the SG and is placed only on that + servers CCVC. + + + + + + + + + + + +Luciani & Gallo Experimental [Page 11] + +RFC 2443 MARS Service Using SCSP November 1998 + + + 0 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Hardware Type | Protocol Type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SNAP | Unused | Version | State | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Flags | Cluster Member ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Src Addr Len | Group Addr Len| ATM Addr T/L |ATM SubAddr T/L| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source Protocol Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Source ATM SubAddress (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Minimum Multicast Group Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Maximum Multicast Group Address (variable length) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Hardware Type + This value is the ATM Forum 'address family number' specified in + [3] as 15 decimal (0x000F). + + Protocol Type + This field is the protocol type number for the protocol using MARS + from [3]. (IPv4 is 0x0800). + + Protocol SNAP + This field is the optional protocol SNAP extension to protocol + type. This is the mar$pro.snap field from [1]. + + Version Number + Version Number for this document MUST be set to 0x00. + + State + State value is coded as 3 decimal for a MARS Client Join/Register + request. + + + + + + + + + +Luciani & Gallo Experimental [Page 12] + +RFC 2443 MARS Service Using SCSP November 1998 + + + Flags + The flags field is used to contain several flags: + + mar$flags + Bit 15 - mar$flags.layer3grp + Bit 13 - mar$flags.register + Bit 0-7 - mar$flags.sequence + + The mars$flags.layer3grp and mar$flags.register bits MUST be set + the same as in the originating MARS_JOIN request. The + mar$flags.sequence bits are of local significance only to the LS. + + Cluster Member CMI + This field contains the CMI assigned by the MARS Server which + processed the MARS_JOIN request and uniquely identifies the MARS + Client in the MARS server cache. + + Src Addr Len + This field contains the length of the Source Protocol Address + field. For IPv4, the value is 4 if an address is specified. A null + (non-existent) address MUST be coded as zero length, and no space + allocated for it in the message body. + + Group Addr Len + This field contains the length of the Group Protocol Address field. + If the register bit in the flags field is set to 1 in the request + this field MUST be zero. If the register bit is zero in the flags + field the value of this field for IPv4 is 4. + + ATM Addr T/L + This field contains the type and length of the Source ATM Address + field for the MARS Client that originated the MARS_JOIN request. + The type and length encoding is described in Section 3. + + ATM SubAddr T/L + This field contains the type and length of the Source ATM + SubAddress field for the MARS Client that originated the MARS_JOIN + request. The type and length encoding is described in Section 3. + + Source Protocol Address + This is the internetwork address for the source of an address + binding in a MARS server cache entry. If Src Addr Len is set to + zero no storage will be allocated. + + Source ATM Address + This is the MARS Client's ATM address of an address binding in a + MARS server cache entry. The address is E.164 or ATM Forum NSAPA. + + + + +Luciani & Gallo Experimental [Page 13] + +RFC 2443 MARS Service Using SCSP November 1998 + + + Source ATM SubAddress + This is the MARS Client's ATM subaddress of an address binding in a + MARS server cache entry. The subaddress, if specified, is an ATM + Forum NSAPA. If null, no storage will be allocated. + + Minimum Multicast Group Address + This is the internetwork address of the lower bound on the range of + multicast group addresses for the address binding in a MARS server + cache entry. If Group Addr Len is set to zero no storage will be + allocated. + + Maximum Multicast Group Address + This is the internetwork address of the upper bound on the range of + multicast group addresses for the address binding in a MARS server + cache entry. If Group Addr Len is set to zero no storage will be + allocated. + + An MARS Client can only register with one MARS Server in the SG and + is only placed on the CCVC for the MARS Server for which it is + registered with. If the mar$flags.layer3grp is set to 1 than the + Minimum and Maximum Multicast Group Addresses MUST be equal for IPv4. + + When a MARS Client Join/Register request is sent with the + mar$flags.register bit set to 1 all of the servers in the SG will + create a cache entry for this client using the information in the + request. + + When a registered MARS Client issues a MARS_JOIN for a specific group + address range a MARS Client Join/Register request MUST be sent to the + servers in the SG. The actions taken by each server in the SG depend + on previous group membership actions and MCS supported groups. + + Each MARS Server MUST perform the necessary redistribution and hole + punching algorithms before propagating this request to the CCVC and + SCVC on each server. The redistribution and hole punching algorithms + used for propagating join requests to the CCVC are the same as + defined in Sections 6.1.2 and 6.2.4 of [1]. If the originating + MARS_JOIN request is a duplicate of a previously joined range or + contains no group address range than a MARS Client Join/Register MUST + NOT be sent to the SG. + + The redistribution and hole punching algorithms used for propagating + join requests as MARS_SJOIN request on a SCVC is the same as Section + 6.2.4 except for the following. Only the MARS Servers which contain + the registered MCS Clients for the target group ranges should + propagate this information to their SCVCs. + + + + + +Luciani & Gallo Experimental [Page 14] + +RFC 2443 MARS Service Using SCSP November 1998 + + +5.4 MARS Client Leave/Deregister request. + + The MARS Client Leave/Deregister request is used to propagate the + deregistering or leaving of specific group ranges by registered MARS + Clients within the SG domain. It is similar to the MARS_LEAVE request + defined in Sections 5.2.1 to 5.2.3 of [1]. When a MARS Server in the + SG successfully deregisters a registered MARS Client or a registered + client leaves a specific group address range for which it had joined + the MARS Server MUST send a MARS Client Leave/Deregister request to + the SG. If a registered MARS Client is unexpectedly removed from the + CCVC the MARS Server MUST act as a proxy and send a MARS Client + Leave/Deregister request to the SG. + + The format and meanings of the fields in a MARS Client + Leave/Deregister request are the same as in Section 5.3 except the + State is coded as 4 decimal for a MARS Client Leave/Deregister + request. + + When a MARS Client Leave/Deregister request is sent with the + mar$flags.register bit set to 1 all of the servers in the SG + receiving this update MUST purge all cache entries for this client. + + When a registered MARS Client issues a MARS_LEAVE for a specific + group address range a MARS Client LEAVE/Deregister request MUST be + sent to the servers in the SG. The actions taken by each server in + the SG depend on previous group membership actions and MCS supported + groups. + + Each MARS Server MUST perform the necessary redistribution and hole + punching algorithms before propagating this request to the CCVC and + SCVC on each server. The redistribution and hole punching algorithms + used for propagating leave requests to the CCVC are the same as + defined in Sections 6.1.2 and 6.2.4 of [1]. If the originating + MARS_LEAVE request does not correspond to a previously joined range + or contains no group address range than a MARS Client + Leave/Deregister MUST NOT be sent to the SG. + + The redistribution and hole punching algorithms used for propagating + leave requests as MARS_SLEAVE requests on a SCVC is the same as + Section 6.2.4 except for the following. Only the MARS Servers which + contain the registered MCS Clients for the target group ranges should + propagate this information to their SCVCs. + +5.5 MCS Unserve/Deregister request. + + The MCS Unserve/Deregister request is used to propagate the + deregistering or unservicing of specific groups by a registered MCS + Client within the SG domain. It is similar to an MARS_MUNSERV request + + + +Luciani & Gallo Experimental [Page 15] + +RFC 2443 MARS Service Using SCSP November 1998 + + + defined in Section 6.2.2 and 6.2.3 of [1]. When a MARS Server in the + SG successfully deregisters a registered MCS Client or registered MCS + Client stops serving a specific group address range for which it had + serviced the MARS Server MUST send a MCS Unserve/Deregister request + to the SG. If a registered MCS Client is unexpectedly removed from + the SCVC the MARS Server owning the SCVC MUST act as a proxy and send + a MCS Unserve/Deregister request to the SG. + + The format and meanings of the fields in a MCS Unserve/Deregister + request are the same as in Section 5.2 except the State is coded as 5 + decimal for a MCS Unserve/Deregister request. + + When a MCS Client Unserve/Deregister request is sent with the + mar$flags.register bit set to 1 all of the servers in the SG + receiving this update MUST purge all cache entries for this client. + + When a registered MCS Client issues a MARS_MUNSERV for a specific + group address range being served a MCS Client Unserve/Deregister + request MUST be sent to the servers in the SG. The members of the SG + that receive this update must then clear the cache entry associated + with this MCS Client. + + In addition to clearing one or more cache entries associated with + receiving a MCS Client Unserve/Deregister request each MARS Server + in the SG MUST send out a MARS_LEAVE message on it's CCVC in order + for clients to change back to a mesh topology. + +6. Security Considerations + + There is no mechanism to encrypt the CSA Record MARS Specific Part of + the message exchanged between servers. However, there are base SCSP + security features in the SCSP Protocol Independent part [2] which can + be used to protect against attacks. + + Any SCSP MARS is susceptible to Denial of Service (DOS) attacks. A + rouge MARS Client can inundate its Server with MARS packets. This is + a base MARS problem as currently defined by [1]. A rouge host can + also inundate its neighboring SCSP MARS with SCSP packets. However, + if the authentication option is used, the SCSP MARS databases will + not become corrupted, as the bogus packets will be discarded when the + authentication check fails. + + Due to the pair wise authentication model of SCSP MARS, the + information received from any properly authenticated server is + trusted and propagated throughout the server group. Consequently, if + security of any SCSP MARS server is compromised, the entire database + becomes vulnerable to corruption originating from the compromised + server. + + + +Luciani & Gallo Experimental [Page 16] + +RFC 2443 MARS Service Using SCSP November 1998 + + +References + + [1] Armitage, G., "Support for Multicast over UNI 3.0/3.1 based ATM + Networks", RFC 2022, November 1996. + + [2] Luciani, J., Armitage, G., Halpern, J. and N. Doraswamy, "Server + Cache Synchronization Protocol", RFC 2334, April 1998. + + [3] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700, + October 1994. See also: http://www.iana.org/numbers.html + + [4] Laubach, M., "Classic IP and ARP over ATM", RFC 1577, January + 1994. + + [5] Bradner, S., "Key Words for use in RFCs to Indicate Requirement + Levels," BCP 14, RFC 2119, March 1997. + +Acknowledgments + + The authors would like to thank Grenville Armitage for his previous + distributed MARS work and also the members of the ION working group + of the IETF, whose review and discussion of this document has been + invaluable. + +Authors' Addresses + + James V. Luciani + Bay Networks, Inc. + 3 Federal Street, BL3-04 + Billerica, MA 01821 + + Phone: +1-508-916-4734 + EMail: luciani@baynetworks.com + + + Anthony M. Gallo + IBM, Networking Hardware Division + Dept. M6LA/B664 + P.O. Box 12195 + Research Triangle Park, NC 27709 + + Phone: +1-919-254-9889 + EMail: gallo@raleigh.ibm.com + + + + + + + + +Luciani & Gallo Experimental [Page 17] + +RFC 2443 MARS Service Using SCSP November 1998 + + +Full Copyright Statement + + Copyright (C) The Internet Society (1998). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + + + + + + + + + + + + + + + + + + + + + + + +Luciani & Gallo Experimental [Page 18] + |