A Distributed NHRP Service Using SCSP
Extracted elements (19)
A cache entry time-out does not cause a CSA Record to be sent because, if everything is working properly, all NHSs have the cache entry timing out at the same time, so individual NHSs take appropriate action without synchronization.
NHRP Servers (NHSs) within a LIS must synchronize their client databases so that any NHC can query any NHS about any NHC in the LIS. SCSP is chosen to solve this generalized server synchronization/cache-replication problem.
This document is separate from the SCSP specification (RFC 2334) to allow the NHRP-specific client/server protocol part to progress independently from the protocol-independent SCSP specification.
In the case of method 1 for NHC departure, the NHC MUST send an NHRP Purge Request for itself requesting a reply and MUST wait for an NHRP Purge Reply before leaving.
When a SG uses SCSP, an NHC registers with only one NHS but MAY use any NHS in the SG.
When an NHC wishes to leave a SG, it MUST do one of: (1) send an NHRP Purge Request for itself and wait for an NHRP Purge Reply, (2) keep its last Request ID in non-volatile RAM and use a larger Request ID on re-registration, or (3) not re-register for a time equal to the Holding Time from the previous registration.
All NHSs in a LIS belong to a Server Group (SG) identified by an SGID. SCSP packets carry a Protocol ID (PID) field set to 0x0002 to indicate NHS database synchronization.
The Address Family Number field in the CSA Record NHRP Specific Part defines the type of link-layer addresses being carried, taken from the IANA address family number list, corresponding to the ar$afn field in an NHRP packet.
The Flags field contains two defined bits: U (Uniqueness bit) and A (set when the cache entry was created due to ATMARP client interaction with the NHS).
The Holding Time field specifies the number of seconds remaining for which the Next Hop NBMA information in the CIE of the NHRP Registration Request is considered valid by the NHS initiating the synchronization event.
The NHRP Protocol Type field corresponds to ar$pro.type in an NHRP packet and identifies the network-layer protocol being mapped.
The NHRP Vers Num field indicates the NHRP protocol version; value 0x01 represents NHRP protocol version 1, corresponding to ar$op.version in an NHRP packet.
The Preference field in the CSA Record specifies the preference value for use of the next hop NBMA information, allowing selection among multiple paths.
The Request ID field contains the Request ID placed in the NHS cache entry as a result of an NHRP Registration Request, identifying the NHS causing the synchronization event.
The SCSP CSAS Record for NHRP sets Cache Key Len = 0x04 and Orig ID Len = 0x04.
The SCSP Mandatory Common Part for NHRP sets Protocol ID = 0x0002, Sender ID Len = 0x04, and Recvr ID Len = 0x04.
Security considerations for this protocol are documented in the NHRP specification (RFC 2332) and the SCSP specification (RFC 2334); this document defers entirely to those references.
The State field encodes the NHC cache entry state: 0 = registered and available, 1 = re-registered, 2 = purged, 3 = no such client data in server cache. A cache entry time-out does not trigger a CSA Record because all NHSs time out the entry simultaneously.
The CSA Record NHRP Specific Part is a variable-length structure beginning with fixed fields: Address Family Number (16 bits), NHRP Protocol Type (16 bits), Snap (40 bits), NHRP Vers Num (8 bits), Flags (16 bits), Request ID (32 bits), State (8 bits), Prefix Length (8 bits), unused (16 bits), MTU (16 bits), Holding Time (16 bits), Cli Addr T/L (8 bits), Cli SAddr T/L (8 bits), Cli Proto Len (8 bits), Preference (8 bits), followed by variable-length Client Subnetwork Address, Client Subnetwork Subaddress, and Client Protocol Address.