Internet DRAFT - draft-dunbar-trill-scheme-for-directory-assist
draft-dunbar-trill-scheme-for-directory-assist
INTERNET-DRAFT Linda Dunbar
Intended status: Proposed Standard Donald Eastlake
Updates: ESADI Huawei
Radia Perlman
Intel
Igor Gashinsky
Yahoo
Yizhou Li
Huawei
Expires: April 20, 2014 October 21, 2013
TRILL: Edge Directory Assistance Mechanisms
<draft-dunbar-trill-scheme-for-directory-assist-06.txt>
Abstract
This document describes mechanisms for using directory server(s) to
assist TRILL (Transparent Interconnection of Lots of Links) edge
switches in reducing multi-destination traffic, particularly ARP/ND
and unknown unicast flooding.
Status of This Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Distribution of this document is unlimited. Comments should be sent
to the TRILL working group mailing list.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html. The list of Internet-Draft
Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
L. Dunbar, et al [Page 1]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
Table of Contents
1. Introduction............................................3
1.1 Terminology............................................3
2. Push Model Directory Assistance Mechanisms..............5
2.1 Requesting Push Service................................5
2.2 Push Directory Servers.................................5
2.3 Push Directory Server State Machine....................6
2.3.1 Push Directory States................................6
2.3.2 Push Directory Events and Conditions.................7
2.3.3 State Transition Diagram and Table...................8
2.4 Additional Push Details...............................10
2.5 Primary to Secondary Server Push Service..............11
3. Pull Model Directory Assistance Mechanisms.............12
3.1 Pull Directory Request Format.........................12
3.2 Pull Directory Response Format........................15
3.3 Pull Directory Hosted on an End Station...............18
3.4 Pull Directory Request Errors.........................19
3.5 Cache Consistency.....................................20
3.6 Additional Pull Details...............................22
4. Events That May Cause Directory Use....................23
4.1 Forged Native Frame Ingress...........................23
4.2 Unknown Destination MAC...............................23
4.3 Address Resolution Protocol (ARP).....................24
4.4 IPv6 Neighbor Discovery (ND)..........................25
4.5 Reverse Address Resolution Protocol (RARP)............25
5. Layer 3 Address Learning...............................26
6. Directory Use Strategies and Push-Pull Hybrids.........27
6.1 Strategy Configuration................................27
7. Security Considerations................................30
8. IANA Considerations....................................31
8.1 ESADI-Parameter Data..................................31
8.2 RBridge Channel Protocol Number.......................32
8.3 The Pull Directory and No Data Bits...................32
Acknowledgments...........................................33
Normative References......................................33
Informational References..................................34
Authors' Addresses........................................35
L. Dunbar, et al [Page 2]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
1. Introduction
[DirectoryFramework] describes a high-level framework for using
directory servers to assist TRILL [RFC6325] edge nodes to reduce
multi-destination ARP/ND and unknown unicast flooding traffic and to
potentially improve security against address spoofing within a TRILL
campus. Because multi-destination traffic becomes an increasing
burden as a network scales, reducing ARP/ND and unknown unicast
flooding improves TRILL network scalability. This document describes
specific mechanisms for directory servers to assist TRILL edge nodes.
These mechanisms are optional to implement.
The information held by the Directory(s) is address mapping and
reachability information. Most commonly, what MAC address
[RFC5342bis] corresponds to an IP address within a Data Label (VLAN
or FGL (Fine Grained Label [RFCfgl])) and from what egress TRILL
switch (RBridge) (and optionally what specific TRILL switch port)
that MAC address is reachable. But it could be what IP address
corresponds to a MAC address or possibly other address mappings or
reachability. In the data center environment, it is common for
orchestration software to know and control where all the IP
addresses, MAC addresses, and VLANs/tenants are in a data center.
Thus such orchestration software is appropriate for providing the
directory function or for supplying the Directory(s) with directory
information.
Directory services can be offered in a Push or Pull mode. Push mode,
in which a directory server pushes information to TRILL switches
indicating interest, is specified in Section 2. Pull mode, in which a
TRILL switch queries a server for the information it wants, is
specified in Section 3. Modes of operation, including hybrid
Push/Pull, are discussed in Section 4.
The mechanisms used to initially populate directory data in primary
servers is beyond the scope of this document. The Push Directory
service can be used by a primary server to provide Directory data to
secondary servers as described in Section 2.
1.1 Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [RFC2119].
The terminology and acronyms of [RFC6325] are used herein along with
the following additions:
CP: Complete Push flag bit. See Sections 2 and 6.1 below.
L. Dunbar, et al [Page 3]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
CSNP Time: Complete Sequence Number PDU Time. See [ESADI] and Section
6.1 below.
Data Label: VLAN or FGL.
FGL: Fine Grained Label [RFCfgl].
Host: Application running on a physical server or a virtual machine.
A host must have a MAC address and usually has at least one IP
address.
IP: Internet Protocol. In this document, IP includes both IPv4 and
IPv6.
PD: Push Directory flag bit. See Sections 2 and 6.1 below.
primary server: A Directory server that obtains the information it is
serving up by a reliable mechanism outside the scope of this
document but designed to assure the freshness of that
information. (See secondary server.)
RBridge: An alternative name for a TRILL switch.
secondary server: A Directory server that obtains the information it
is serving up from one or more primary servers.
tenant: Sometimes used as a synonym for FGL.
TRILL switch: A device that implements the TRILL protocol.
L. Dunbar, et al [Page 4]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
2. Push Model Directory Assistance Mechanisms
In the Push Model [DirectoryFramework], one or more Push Directory
servers push down the address mapping information for the various
addresses associated with end station interface and the TRILL
switches from which those interfaces are reachable [IA]. This service
is scoped by Data Label (VLAN or FGL [RFCfgl]). A Push Directory
also advertises whether or not it believes it has pushed complete
mapping information for a Data Label. It might be pushing mapping
information for only a subset of the ports in a Data Label. The Push
Model uses the [ESADI] protocol as its distribution mechanism.
With the Push Model, if complete address mapping information for a
Data Label being pushed is available, a TRILL switch (RBridge) which
has that complete pushed information can simply drop a native frame
if the destination unicast MAC address can't be found in the mapping
information available, instead of flooding it (see Section 2.1). This
will minimize flooding of packets due to errors or inconsistencies
but is not practical if directories have incomplete information.
2.1 Requesting Push Service
In the Push Model, it is necessary to have a way for an RBridge to
request information from the directory server(s). RBridges simply
use the ESADI protocol mechanism to announce, in their core IS-IS
LSPs, the Data Labels for which they are participating in [ESADI] by
using the Interested VLANs and/or Interested Labels sub-TLVs
[RFC6326bis]. This will cause them to be pushed the Directory
information for all such Data Labels that are being served by one or
more Push Directory servers.
2.2 Push Directory Servers
Push Directory servers advertise their availability to push the
mapping information for a particular Data Label to each other and to
ESADI participants for that Data Label by turning on a flag bit in
their ESADI Parameter APPsub-TLV [ESADI] for that ESADI instance (see
Section 8.1). Each Push Directory server MUST participate in ESADI
for the Data Labels for which it will push mappings and set the PD
(Push Directory) bit in their ESADI-Parameters APPsub-TLV for that
Data Label.
For robustness, it is useful to have more than one copy of the data
being pushed. Each RBridge that is a Push Directory server is
configured with a number in the range 1 to 8, which defaults to 2,
for each Data Label for which it can push directory information. If
L. Dunbar, et al [Page 5]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
the Push Directories for a Data Label are configured the same in this
regard and enough such servers are available, this is the number of
copies of the directory that will be pushed.
Each Push Directory server also has an 8-bit priority to be Active
(see Section 8.1 of this document). This priority is treated as an
unsigned integer where larger magnitude means higher priority and is
in its ESADI Parameter APPsub-TLV. In cases of equal priority, the
6-byte IS-IS System ID is used as a tie breaker and treated as an
unsigned integer where larger magnitude means higher priority.
For each Data Label it can serve, each Push Directory server orders,
by priority, the Push Directory servers that it can see in the ESADI
link state database for that Data Label that are data reachable
[RFCclear] and determines its position in that order. If a Push
Directory server is configured to believe that N copies of the
mappings for a Data Label should be pushed and finds that it is
number K in the priority ordering (where number 1 is highest priority
and number K is lowest), then if K is less than or equal to N the
Push Directory server is Active. If K is greater than N it is
Passive. Active and Passive behavior are specified below.
2.3 Push Directory Server State Machine
The subsections below describe the states, events, and corresponding
actions for Push Directory servers.
2.3.1 Push Directory States
A Push Directory Server is in one of six states, as listed below, for
each Data Label it can serve. In addition, it has an internal State-
Transition-Time variable for each such Data Label which it set at
each state transition and which enables it to determine how long it
has been in its current state.
Down: A completely shut down virtual state defined for convenience in
specifying state diagrams. A Push Directory Server in this state
does not advertise any Push Directory data. It may be
participating in [ESADI] with the PD bit zero in its ESADI-
Parameters or might be not participating in [ESADI] at all. (All
states other than the Down state are considered to be Up states.)
Passive: No Push Directory data is advertised. Any outstanding EASDI-
LSP fragments containing directory data are updated to remove that
data and if the result is an empty fragment (contains nothing
except possibly an Authentication TLV), the fragment is purged.
L. Dunbar, et al [Page 6]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
The Push Directory participates in [ESADI] and its [ESADI]
fragment zero includes an ESADI-Parameters APPsub-TLV with the PD
bit set to one and CP (Complete Push) bit zero.
Active: If a Push Directory server is Active, it advertises its
directory data through [ESADI] in its ESADI-LSPs using the
Interface Addresses [IA] APPsub-TLV and updates that information
as it changes. The PD bit is set to one in the ESADI-Parameters
and the CP bit must be zero.
Completing: Same behavior as the Active state but responds
differently to events.
Complete: The same behavior as Completing except that the CP bit in
the ESADI-Parameters APPsub-TLV is set to one and the server
responds differently to events.
Reducing: The same behavior as Complete but responds differently to
events. The PD bit remains a one but the CP bit is cleared to zero
in the ESADI-Parameters APPsub-TLV. Directory updates continue to
be advertised.
2.3.2 Push Directory Events and Conditions
Three auxiliary conditions referenced later in this section are
defined as follows for convenience:
The Activate Condition: The server determines that there are K data
reachable Push Directory servers, the server is configured that
there should be N copies pushed, and K is less than or equal to N.
The Pacify Condition: The server determines that there are K data
reachable Push Directory servers, the server is configured that
there should be N copies pushed, and K is greater than N.
The Time Condition: The server has been in its current state for an
amount of time equal to or larger than its CSNP time (see Section
8.1).)
The events and conditions listed below cause state transitions in
Push Directory servers.
1. Push Directory server or TRILL switch was configured to be down
but the TRILL switch on which it resides is up and the server is
configured to be up.
2. The Push Directory server or the TRILL switch on which it is
resident is being shut down.
L. Dunbar, et al [Page 7]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
3. The Activate Condition is met and the server is not configured to
believe it has complete data.
4. The server determines that the Pacify Condition is met.
5. The server is configured to believe it has complete data and the
Activate Condition is met.
6. The server is configured to believe it does not have complete
data.
7. The Time Condition is met.
2.3.3 State Transition Diagram and Table
The state transition diagram is as follows.
L. Dunbar, et al [Page 8]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
+-----------+
| Down |<---------+
+-----------+ |
|1 ^ | 3,4,5,6,7 |
| | +------------+
V |2
+-----------+
| Passive |<-----------------------
+-----------+ ^ ^ ^
|5 |3 |1,4,6,7 | | |
| | +---------+ | |
| V |2,4 |
| +---------------------+ |
| | Active |<--+ |
| +---------------------+ | |
| |5 ^ |1,3,6,7 ^ | |
| | | | | | |
| | | +---------+ | |
| | | | |
V V |3,6 | |
+--------------+ | |
| Completing |-------------------+
+--------------+ 2,4 |
|7 |1,5 ^ |
| | | |
| +-----+ |
V |7
+-------------+ +----------------+
| Complete |--------->| Reducing |<--+
+-------------+ 2,3,4,6 +----------------+ |
|1,5,7 ^ ^ |5 |1,2,3,4,6 |
| | | | | |
+------+ +--------------+ +--------------+
Figure 1. Push Server State Diagram
This state diagram is equivalent to the following transition table:
Event || Down |Passive |Active |Completing|Complete|Reducing|
------++-------+----------+--------+----------+--------+--------+
1 ||Passive|Passive |Active |Completing|Complete|Reducing|
2 || Down | Down |Passive |Passive |Reducing|Reducing|
3 || Down |Active |Active |Active |Reducing|Reducing|
4 || Down |Passive |Passive |Passive |Reducing|Reducing|
5 || Down |Completing|Complete|Completing|Complete|Complete|
6 || Down |Passive |Active |Active |Reducing|Reducing|
7 || Down |Passive |Active |Complete |Complete|Active |
L. Dunbar, et al [Page 9]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
2.4 Additional Push Details
Push Directory mappings can be distinguished for any other data
distributed through ESADI because mappings are distributed only with
the Interface Addresses APPsub-TLV [IA] and are flagged as being Push
Directory data.
RBridges, whether or not they are a Push Directory server, MAY
continue to advertise any locally learned MAC attachment information
in [ESADI] using the Reachable MAC Addresses TLV [RFC6165] . However,
if a Data Label is being served by complete Push Directory servers,
advertising such locally learned MAC attachment should generally not
be done as it would not add anything and would just waste bandwidth
and ESADI link state space. An exception would be when an RBridge
learns local MAC connectivity and that information appears to be
missing from the directory mapping.
Because a Push Directory server may need to advertise interest in
Data Labels even if it does not want to receive end station data in
those Data Labels, the No Data flag bit is provided as discussed in
Section 6.3.
If an RBridge notices that a Push Directory server is no longer data
reachable [RFCclear], it MUST ignore any Push Directory data from
that server because it is no longer being updated and may be stale.
The nature of dynamic distributed asynchronous systems is such that
it is impractical for an RBridge receiving Push Directory information
to ever be absolutely certain that it has complete information.
However, it can obtain a reasonable assurance of complete information
by requiring two conditions to be met:
1. The PD and CP bits are on in the ESADI zero fragment from the
server for the relevant Data Label.
2. A client RBridge might be just coming up and receive an EASDI
LSP meeting the requirement in point 1 above but have not yet
received all of the ESADI LSP fragment from the Push Directory
server. Thus, it should not believe that information to be
complete unless it has also had data connectivity to the server
for the larger of the client's and the server's CSNP times.
There may be transient conflicts between mapping information from
different Push Directory servers or conflicts between locally learned
information and information received from a Push Directory server. In
case of such conflicts, information with a higher confidence value is
preferred over information with a lower confidence. In case of equal
confidence, Push Directory information is preferred to locally
learned information and if information from Push Directory servers
conflicts, the information from the higher priority Push Directory
server is preferred.
L. Dunbar, et al [Page 10]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
2.5 Primary to Secondary Server Push Service
A secondary Push or Pull Directory server is one that obtains its
data from a primary directory server. Other techniques MAY be used
but, by default, this data transfer occurs through the primary server
acting as a Push Directory server for the Data Labels involved while
the secondary Push Directory server takes the pushed data it receives
from the highest priority Push Directory server and re-originates it.
L. Dunbar, et al [Page 11]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
3. Pull Model Directory Assistance Mechanisms
In the Pull Model, a TRILL switch (RBridge) pulls directory
information from an appropriate Directory Server when needed.
Pull Directory servers for a particular Data Label X are located by
looking in the core TRILL IS-IS link state database for RBridges that
advertise themselves by having the Pull Directory flag on in their
Interested VLANs or Interested Labels sub-TLV [RFC6326bis] for X. If
multiple RBridges indicate that they are Pull Directory Servers for a
particular Data Label, pull requests can be sent to any one or more
of them that are data reachable but it is RECOMMENDED that pull
requests be preferentially sent to the server or servers that are
lower cost from the requesting RBridge.
Pull Directory requests are sent by enclosing them in an RBridge
Channel [Channel] message using the Pull Directory channel protocol
number (see Section 8.2). Responses are returned in an RBridge
Channel message using the same channel protocol number.
The requests to Pull Directory Servers are typically derived from
normal ARP [RFC826], ND [RFC4861], RARP [RFC903] messages or data
frames with unknown unicast destination MAC addresses intercepted by
the RBridge as described in Section 4.
Pull Directory responses include an amount of time for which the
response should be considered valid. This includes negative responses
that indicate no data is available. Thus both positive responses with
data and negative responses can be cached and used for immediate
response to ARP, ND, RARP, or unknown destination MAC frames, until
they expire. If information previously pulled is about to expire, an
RBridge MAY try to refresh it by issued a new pull request but, to
avoid unnecessary requests, SHOULD NOT do so if it has not been
recently used.
3.1 Pull Directory Request Format
A Pull Directory request is sent as the Channel Protocol specific
content of an inter-RBridge Channel message [Channel] TRILL Data
packet. The Data Label in the packet is the Data Label in which the
query is being made. The priority of the channel message is a mapping
of the priority of the frame being ingressed that caused the request
with the default mapping depending, per Data Label, on the strategy
(see Section 6). The Channel Protocol specific data is formatted as
follows:
L. Dunbar, et al [Page 12]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| V | T | RESV | Count | RESV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| QUERY 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| QUERY 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| QUERY K
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
V: Version of the Pull Directory protocol as an unsigned integer.
Version zero is specified in this document.
T: Type. 0 => Response, 1=> Query, 2=> Unsolicited Update, 3=>
Reserved. An unsolicited update is formatted as a response
except there is no corresponding query. Messages received with
type = 3 are discarded. Queries received by an RBridge that is
not a Pull Directory are discarded. Responses that do not match
an outstanding Query are discarded.
RESV: Reserved bits. MUST be sent as zero and ignored on receipt.
Count: Number of queries present.
Sequence Number: A 32-bit quantity set by the sending RBridge,
returned in any responses, and used to match up responses with
queries. It is opaque except that the value zero is reserved
for Unsolicited Update response messages. A Request received
with Sequence Number zero is discarded.
QUERY: Each Query record within a Pull Directory request message
is formatted as follows:
L. Dunbar, et al [Page 13]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| SIZE | RESV | TYPE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
If TYPE = 1
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| AFN |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Query address ...
+--+--+--+--+--+--+--+--+--+--+--...
If TYPE = 2, 3, 4, or 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Query frame ...
+--+--+--+--+--+--+--+--+--+--+--...
SIZE: Size of the query data in bytes as an unsigned byte
starting with and including the SIZE field itself. Thus the
minimum legal value is 2. A value of SIZE less than 2
indicates a malformed message. The "QUERY" with the illegal
SIZE value and all subsequent QUERYs MUST be ignored and the
entire query message MAY be ignored.
RESV: A block of reserved bits. MUST be sent as zero and
ignored on receipt.
TYPE: There are two types of queries currently defined, (1) a
query that provides an explicit address and asks for other
addresses for the interface specified by the query address
and (2) a query that includes a frame. The fields of each
are specified below. Values of TYPE are as follows
TYPE Description
---- -----------
0 reserved
1 query address
2 ARP query frame
3 ND query frame
4 RARP query frame
5 Unknown unicast MAC query frame
6-14 assignable by IETF Review
15 reserved
AFN: Address Family Number of the query address.
Query Address: The query is asking for any other addresses,
and the RBridge from which they are reachable, that
correspond to the same interface, within the data label
of the query. Typically that would be either (1) a MAC
address with the querying RBridge primarily interested in
the RBridge by which that MAC address is reachable, or
L. Dunbar, et al [Page 14]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
(2) an IP address with the querying RBridge interested in
the corresponding MAC address and the RBridge by which
that MAC address is reachable. But it could be some other
address type.
Query Frame: Where a Pull Directory query is the result of
an ARP, ND, RARP, or unknown unicast MAC destination
address, the ingress RBridge MAY send the frame to a Pull
Directory Server if the frame is small enough to fit into
a query message.
A query count of zero is explicitly allowed, for the purpose of
pinging a Pull Directory server to see if it is responding to
requests. On receipt of such an empty query message, a response
message that also has a count of zero MUST be sent unless inhibited
by rate limiting.
If no response is received to a Pull Directory request within a
timeout configurable in milliseconds that defaults to 2,000, the
request should be re-transmitted with the same Sequence Number up to
a configurable number of times that defaults to three. If there are
multiple queries in a request, responses can be received to various
subsets of these queries by the timeout. In that case, the remaining
unanswered queries should be re-sent in a new query with a new
sequence number. If an RBridge is not capable of handling partial
responses to requests with multiple queries, it MUST NOT sent a
request with more than one query in it.
3.2 Pull Directory Response Format
Pull Directory responses are sent as the Channel Protocol specific
content of inter-RBridge Channel message TRILL Data packets.
Responses are sent with the same Data Label and priority as the
request to which they correspond except that the response priority is
limited to be not more than a configured value. This priority limit
is configurable at a per RBridge level and defaults to priority 6.
The Channel protocol specific data format is as follows:
L. Dunbar, et al [Page 15]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| V | T |F|P|N| RESV| Count | ERR | subERR |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RESPONSE 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| RESPONSE 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| RESPONSE K
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
V, T: Version and Type as specified in Section 3.1.
F: The Flood bit. If zero, the reply is to be unicast to the
provided Nickname. If T=2, F=1 is used to flood messages for
certain unsolicited update cache consistency maintenance
messages from an end station Pull Directory server as discussed
in Section 3.5. If T is not 2, F is ignored.
P, N: Flags used in connection with certain flooded unsolicited
cache consistency maintenance messages. Ignored if T is not 2.
If the P bit is a one, the solicited response message relates
to cached positive response information. If the N bit is a one,
the unsolicited message relates to cached negative information.
See Section 3.5.
RESV: Reserved bits. MUST be sent as zero and ignored on receipt.
Count: Count is the number of responses present in the particular
response message.
ERR, subERR: A two part error code. See Section 3.4.
Sequence Number: A 32-bit quantity set by the sending RBridge,
returned in any responses, and used to match up responses with
queries. It is opaque except that the value zero is reserved
for Unsolicited Update response messages.
RESPONSE: Each response record within a Pull Directory response
message is formatted as follows:
L. Dunbar, et al [Page 16]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| SIZE | RESV | Index |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Lifetime |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| Response Data ...
+--+--+--+--+--+--+--+--+--+--+--...
SIZE: Size of the response data in bytes starting with and
including the SIZE field itself. Thus the minimum value of
SIZE is 6. If SIZE is less than 6, that RESPONSE and all
subsequent RESPONSEs MUST be ignored.
RESV: Four reserved bits that MUST be sent as zero and ignored
on receipt.
Index: The relative index of the query in the request message
to which this response corresponds. The index will always be
one for request messages containing a single query. The
index will always be zero for unsolicited update "response"
messages.
Lifetime: The length of time for which the response should be
considered valid in seconds. If zero, the response can only
be used for the particular query from which it resulted. The
maximum time that can be expressed is just over 18.2 hours.
[Perhaps this should be in units of, say, 200 milliseconds?]
Response Data: There are two types of response data.
If the ERR field is non-zero, the response data is a copy of
the query data, that is, either an AFN followed by an
address or a query frame.
If the ERR field is zero, the response data is the contents
of an Interface Addresses APPsub-TLV (see Section 5)
without the usual TRILL GENINFO TLV type and length and
without the usual IA APPsub-TLV type and length before
it. The maximum size of such contents is 251 bytes in the
case when SIZE is 255.
Multiple response records can appear in a response message with the
same index if the answer to a query consists of multiple Interface
Address APPsub-TLV contents. This would be necessary if, for example,
a MAC address within a Data Label appears to be reachable by multiple
RBridges. However, all RESPONSE records to any particular QUERY
record MUST occur in the same response message. If a Pull Directory
holds more mappings for a queried address than will fit into one
response message, it selects which to include by some method outside
the scope of this document.
L. Dunbar, et al [Page 17]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
See Section 3.4 for a discussion of how errors are handled.
3.3 Pull Directory Hosted on an End Station
Optionally, a Pull Directory actually hosted on an end station MAY be
supported. In that case, when the RBridge advertising itself as a
Pull Directory server receives a query, it modifies the inter-RBridge
Channel message received into a native RBridge Channel message and
forwards it to that end station. Later, when it receives one or more
responses from that end station by native RBridge Channel messages,
it modifies them into inter-RBridge Channel messages and forwards
them to the source RBridge of the query.
The native Pull Directory RBridge Channel messages use the same
Channel protocol number as do the inter-RBridge Pull Directory
RBridge Channel messages. The native messages MUST be sent with an
Outer.VLAN tag which gives the priority of each message which is the
priority of the original inter-RBridge request packet. The Outer.VLAN
ID used is the Designated VLAN on the link.
The native RBridge Channel message protocol dependent data for a Pull
Directory query is formatted as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| V | T | RESV | Count | Nickname |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Label ... (4 or 8 bytes)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| QUERY 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| QUERY 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| QUERY K
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
Data Label: The Data Label of the original inter-RBridge Pull
Directory Channel protocol messages that was mapped to this
native channel message. The format is the same as it appears
right after the Inner.MacSA of the original Channel message.
Nickname: The nickname of the RBridge sending the original inter-
RBridge Pull Directory query.
L. Dunbar, et al [Page 18]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
All other fields, including the fields within the QUERY records
are as specified in Section 3.1.
The native RBridge Channel message protocol specific content for a
Pull Directory response is formatted as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| V | T |F|P|N| RESV| Count | ERR | subERR |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Nickname |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Label ... (4 or 8 bytes)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RESPONSE 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| RESPONSE 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
| RESPONSE K
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...
Nickname: If F=0, the nickname of the ultimate destination
RBridge. If F=1, ignored.
Data Label: The Data Label to which the response applies. The
format is the same as it appears right after the Inner.MacSA in
TRILL Data messages.
All other fields, including the fields within the RESPONSE
records, are as specified in Section 3.2.
3.4 Pull Directory Request Errors
An error response message is indicated by a non-zero ERR field.
If there is an error that applies to an entire request message or its
header, as indicated by the range of the value of the ERR field, then
the query records in the request are just echoed back in the response
records but expanded with a zero Lifetime and the insertion of the
Index field.
If errors occur at the query level, they MUST be reported in a
response message separate from the results of any successful queries.
L. Dunbar, et al [Page 19]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
If multiple queries in a request have different errors, they MUST be
reported in separate response messages. If multiple queries in a
request have the same error, this error response MAY be reported in
one response message.
In an error response message, the query or queries being responded to
appear, expanded by the Lifetime for which the server thinks the
error might persist and with their Index inserted, as the RESPONSE
record.
ERR values 1 through 127 are available for encoding request message
level errors. ERR values 128 through 254 are available for encoding
query level errors. the SubErr field is available for providing more
detail on errors. The meaning of a SubErr field value depends on the
value of the ERR field.
ERR Meaning
--- -------
0 (no error)
1 Unknown or reserved field value
2 Request data too short
3-127 (Available for allocation by IETF Review)
128 Unknown AFN
129 Address not found
130-254 (Available for allocation by IETF REview)
255 Reserved
The following sub-errors are specified under error code 1:
SubERR Field with Error
------ ----------------
0 Unspecified
1 Unknown V field value
2 Reserved T field value
3 Zero sequence number in request
4-254 (Available for allocation by IETF Review)
255 Reserved
More TBD
3.5 Cache Consistency
Pull Directories MUST take action to minimize the amount of time that
an RBridge will continue to use stale information from the Pull
Directory.
L. Dunbar, et al [Page 20]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
A Pull Directory server MUST maintain one of the following, in order
of increasing specificity. Retaining more specific records, such as
that given in item 3 below, minimizes spontaneous response messages
sent to update pull client RBridge caches. Retaining less specific
records, such as that given in item 1, will generally increase the
volume and overhead due to spontaneous response messages but still
maintain consistency.
1. An overall record per Data Label of when the last positive
response data will expire at a requester and when the last
negative response will expire.
2. For each unit of data (IA APPsub-TLV Address Set [IA]) held by
the server and each address about which a negative response was
sent, when the last expected response with that data or
negative response will expire at a requester.
3. For each unit of data held by the server and each address about
which a negative response was sent, a list of RBridges that
were sent that data as the response or sent a negative response
for the address, with the expected time to expiration at each
of them.
A Pull Directory server may have a limit as to how many RBridges it
can maintain expiry information for by method 3 above or how many
data units or addresses it can maintain expiry information for by
method 2. If such limits are exceeded, it MUST transition to a lower
numbered strategy but, in all cases, MUST support, at a minimum,
method 1.
When data at a Pull Directory changes or is deleted or data is added
and there may be unexpired stale information at a requesting RBridge,
the Pull Directory MUST send an unsolicited message as discussed
below.
If method 1, the most crude method, is being followed, then when any
Pull Directory information in a Data Label is changed or deleted and
there are outstanding cached positive data response(s), an all-
addresses flush positive message is flooded (multicast) within that
Data Label. And if data is added and there are outstanding cached
negative responses, an all-addresses flush negative message is
flooded. "All-addresses" is indicated by the Count in an unsolicited
response being zero. On receiving an all-addresses flooded flush
positive message from a Pull Directory server it has used, indicated
by the U, F, and P bits being one, an RBridge discards all cached
data responses it has for that Data Label. Similarly, on receiving an
all addresses flush negative message, indicated by the U, F, and N
bits being one, it discards all cached negative responses for that
Data Label. A combined flush positive and negative can be flooded by
having all of the U, F, P, and N bits set to one resulting in the
L. Dunbar, et al [Page 21]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
discard of all positive and negative cached information for the Data
Label.
If method 2 is being followed, then an RBridge floods address
specific unsolicited update positive responses when data which is
cached by a querying RBridge is changed or deleted and floods an
address specific unsolicited update negative response when such
information is added to. Such messages are similar to the method 1
flooded unsolicited flush messages. The U and F bits will be one and
the message will be multicast. However that Count field will be non-
zero and either the P or N bit, but not both, will be one. On
receiving such as address specific message, if it is positive the
addresses in the response records in the unsolicited response are
compared to the addresses about which the recipient RBridge is
holding cached positive or negative information and, if they match,
the cached information is updated or the negative information
replaced with the new positive information. On receiving an address
specific unsolicited update negative response, the addresses in the
response records in the unsolicited response are compared to the
addresses about which the recipient RBridge is holding cached
positive or negative information and, if they match, the any cached
positive information is discarded.
If method 3 is being followed, the same sort of unsolicited update
messages are sent as with method 2 except they are not normally
flooded but unicast only to the specific RBridges the server believes
may be holding the cached positive or negative information that may
need updating. However, the Pull Directory server MAY flood the
unsolicited update, for example if it determines that a sufficiently
large fraction of its requesters need to be updated.
3.6 Additional Pull Details
If an RBridge notices that a Pull Directory server is no longer data
reachable [RFCclear], it MUST discard all pull responses it is
retaining from that server as the RBridge can no longer receive cache
consistency messages from the server.
Because a Pull Directory server may need to advertise interest in
Data Labels even though it does not want to received end station data
in those Data Labels, the No Data flag bit is provided as specified
in Section 8.3.
L. Dunbar, et al [Page 22]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
4. Events That May Cause Directory Use
An RBridge can consult Directory information whenever it wants, by
(1) searching through information that has been retained after being
pushed to it or pulled by it or (2) by requesting information from a
Pull Directory. However, the following are expected to be the most
common circumstances leading to directory information use. All of
these are cases of ingressing (or originating) a native frame.
Support for each of the uses below is separately optional.
4.1 Forged Native Frame Ingress
End stations can forge the source MAC and/or IP address in a native
frame that an edge TRILL switch receives for ingress in some
particular Data Label. If there is complete Directory information as
to what end stations should be reachable by an egress TRILL switch or
a port on such a TRILL switch, frames with forged source addresses
SHOULD be discarded. If such frames are discarded, then none of the
special processing in the remaining subsection of this Section 2
occur and MAC address learning (see [RFC6325] Section 4.8) SHOULD NOT
occur. ("SHOULD NOT" is chosen because it is harmless in cases where
it has no effect. For example, if complete directory information is
available and such directory information is treated as having a
higher confidence that MAC addresses learned from the data plane.)
4.2 Unknown Destination MAC
Ingressing a native frame with an unknown unicast destination MAC:
The mapping from the destination MAC and Data Label to the egress
TRILL switch from which it is reachable is needed to ingress the
frame as unicast. If the egress RBridge is unknown, the frame must
be either dropped or ingressed as a multi-destination frame which
is flooded to all edge RBridges for its Data Label resulting in
increased link utilization compared with unicast routing.
Depending on the configuration of the TRILL switch ingressing the
native frame (see Section 6), directory information can be used
for the { destination MAC, Data Label } to egress TRILL switch
nickname mapping and destination MACs for which such direction
information is not available MAY be discarded.
L. Dunbar, et al [Page 23]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
4.3 Address Resolution Protocol (ARP)
Ingressing an ARP [RFC826]:
ARP is a flexible protocol. It is commonly used on a link to query
for the MAC address corresponding to an IPv4 address, test if an
IPv4 address is in use, or to announce a change in any of IPv4
address, MAC address, and/or point of attachment.
The logically important elements in an ARP are (1) the
specification of a "protocol" and a "hardware" address type, (2)
an operation code that can be Request or Reply, and (3) fields for
the protocol and hardware address of the sender and the target
(destination) node.
Examining the three types of ARP use:
1. General ARP Request / Response
This is a request for the destination "hardware" address
corresponding to the destination "protocol" address; however, if
the source and destination protocol addresses are equal, it should
be handled as in type 2 below. A general ARP is handled by doing a
directory lookup on the destination "protocol" address provided in
hops of finding a mapping to the desired "hardware" address. If
such information is obtain from a directory, a response can be
synthesized.
2. Gratuitous ARP
A request used by a host to announce a new IPv4 address, new MAC
address, and/or new point of network attachment. Identifiable
because the sender and destination "protocol" address fields have
the same value. Thus, under normal circumstances, there really
isn't any separate destination host to generate a response. If
complete Push Directory information is being used with the Notify
flag set in the IA APPsub-TLVs being pushed [IA] by all the
RBridge in the Data Label, then gratuitous ARPs SHOULD be
discarded rather the ingressed. Otherwise, they are either
ingressed and flooded or discarded depending on local policy.
3. Address Probe ARP Query
An address probe ARP is used to determine if an IPv4 address is in
use [RFC5227]. It can be identified by the source "protocol"
(IPv4) address field being zero. The destination "protocol"
address field is the IPv4 address being tested. If some host
believes it has that destination IPv4 address, it would respond to
the ARP query, which indicates that the address is in use.
Address probe ARPs can be handled the same as General ARP queries.
L. Dunbar, et al [Page 24]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
4.4 IPv6 Neighbor Discovery (ND)
Ingressing an IPv6 ND [RFC4861]:
TBD
Secure Neighbor Discovery messages [RFC3971] will, in general,
have to be sent to the neighbor intended so that neighbor can sign
the answer; however, directory information can be used to unicast
a Secure Neighbor Discovery packet rather than multicasting it.
4.5 Reverse Address Resolution Protocol (RARP)
Ingressing a RARP [RFC903]:
RARP uses the same packet format as ARP but different Ethertype
and opcode values. Its use is similar to the General ARP
Request/Response as described above. The difference is that it is
intended to query for the destination "protocol" address
corresponding to the destination "hardware" address provided. It
is handled by doing a directory lookup on the destination
"hardware" address provided in hops of finding a mapping to the
desired "protocol" address. For example, looking up a MAC address
to find the corresponding IP address.
L. Dunbar, et al [Page 25]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
5. Layer 3 Address Learning
TRILL switches MAY learn IP addresses in a manner similar to that in
which they learn MAC addresses. On ingress of a native IP frame, they
can learn the { IP address, MAC address, Data Label, input port } set
and on the egress of a native IP frame, they can learn the { IP
address, MAC address, Data Label, remote RBridge } information plus
the nickname of the RBridge that ingressed the frame.
This locally learned information is retained and times out in a
similar manner to MAC address learning specified in [RFC6325]. By
default, it has the same Confidence as locally learned MAC
reachability information.
Such learned Layer 3 address information MAY be disseminated with
[ESADI] using the IA APPsub-TLV [IA]. It can also be used as, in
effect, local directory information to assist in locally responding
to ARP/ND packets as discussed in Section 4.
L. Dunbar, et al [Page 26]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
6. Directory Use Strategies and Push-Pull Hybrids
For some edge nodes which have a great number of Data Labels enabled,
managing the MAC and Data Label <-> EdgeRBridge mapping for hosts
under all those Data Labels can be a challenge. This is especially
true for Data Center gateway nodes, which need to communicate with a
majority of Data Labels if not all.
For those RBridge Edge nodes, a hybrid model should be considered.
That is the Push Model is used for some Data Labels, and the Pull
Model is used for other Data Labels. It is the network operator's
decision by configuration as to which Data Labels' mapping entries
are pushed down from directories and which Data Labels' mapping
entries are pulled.
For example, assume a data center when hosts in specific Data Labels,
say VLANs 1 through 100, communicate regularly with external peers,
the mapping entries for those 100 VLANs should be pushed down to the
data center gateway routers. For hosts in other Data Labels which
only communicate with external peers occasionally for management
interface, the mapping entries for those VLANs should be pulled down
from directory when the need comes up.
The mechanisms described above for Push and Pull Directory services
make it easy to use Push for some Data Labels and Pull for others. In
fact, different RBridges can even be configured so that some use Push
Directory services and some use Pull Directory services for the same
Data Label if both Push and Pull Directory services are available for
that Data Label. And there can be Data Labels for which directory
services are not used at all.
For Data Labels in which a hybrid push/pull approach is being taken,
it would make sense to use push for address information of hosts that
frequently communicate with many other hosts in the Data Label, such
as a file or DNS server. Pull could then be used for hosts that
communicate with few other hosts, perhaps such as hosts being used as
compute engines.
6.1 Strategy Configuration
Each RBridge that has the ability to use directory assistance has,
for each Data Label X in which it is might ingress native frames, one
of four major modes:
0. No directory use. The RBridge does not subscribe to Push
Directory data or make Pull Directory requests for Data Label X
and directory data is not consulted on ingressed frames in Data
Label X that might have used directory data. This includes ARP,
L. Dunbar, et al [Page 27]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
ND, RARP, and unknown MAC destination addresses, which are
flooded.
1. Use Push only. The RBridge subscribes to Push Directory data
for Data Label X.
2. Use Pull only. When the RBridge ingresses a frame in Data Label
X that can use Directory information, if it has cached
information for the address it uses it. If it does not have
either cached positive or negative information for the address,
it sends a Pull Directory query.
3. Use Push and Pull. The RBridge subscribes to Push Directory
data for Data Label X. When it ingresses a frame in Data Label
X that can use Directory information and it does not find that
information in its link state database of Push Directory
information, it makes a Pull Directory query.
The above major Directory use mode is per Data Label. In addition,
there is a per Data Label per priority minor mode as listed below
that indicates what should be done if Directory Data is not available
for the ingressed frame. In all cases, if you are holding Push
Directory or Pull Directory information to handle the frame given the
major mode, the directory information is simply used and, in that
instance, the minor modes does not matter.
A. Flood immediate. Flood the frame immediately (even if you are
also sending a Pull Directory) request.
B. Flood. Flood the frame immediately unless you are going to do a
Pull Directory request, in which case you wait for the response
or for the request to time out after retries and flood the
frame if the request times out.
C. Discard if complete or Flood immediate. If you have complete
Push Directory information and the address is not in that
information, discard the frame. If you do not have complete
Push Directory information, the same as A above.
D. Discard if complete or Flood. If you have complete Push
Directory information and the address is not in that
information, discard the frame. If you do not have complete
Push Directory information, the same as B above.
In addition, the query message priority for Pull Directory requests
sent can be configured on a per Data Label, per ingressed frame
priority basis. The default mappings are as follows where Ingress
Priority is the priority of the native frame that provoked the Pull
Directory query:
L. Dunbar, et al [Page 28]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
Ingress If Flood If Flood
Priority Immediate Delayed
-------- --------- --------
7 5 6
6 5 6
5 4 5
4 3 4
3 2 3
2 0 2
0 1 0
1 1 1
Priority 7 is normally only used for urgent messages critical to
adjacency and so is avoided by default for directory traffic.
L. Dunbar, et al [Page 29]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
7. Security Considerations
Push Directory data is distributed through ESADI-LSPs [ESADI] which
can be authenticated with the same mechanisms as IS-IS LSPs. See
[RFC5304] [RFC5310] and the Security Considerations section of
[ESADI].
Pull Directory queries and responses are transmitted as RBridge-to-
RBridge or native RBridge Channel messages. Such messages can be
secured as specified in [ChannelTunnel].
For general TRILL security considerations, see [RFC6325].
L. Dunbar, et al [Page 30]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
8. IANA Considerations
This section give IANA allocation and registry considerations.
8.1 ESADI-Parameter Data
IANA is request to allocate two ESADI-Parameter TRILL APPsub-TLV flag
bits for "Push Directory" (PD) and "Complete Push" (CP) and to create
a sub-registry in the TRILL Parameters Registry as follows:
Sub-Registry: ESADI-Parameter APPsub-TLV Flag Bits
Registration Procedures: Expert Review
References: [ESADI], This document
Bit Mnemonic Description Reference
--- -------- ----------- ---------
0 UN Supports Unicast ESADI [ESADI]
1 PD Push Directory Server This document
2 CP Complete Push This document
3-7 - available for allocation
The CP bit is ignored if the PD bit is zero.
In addition, the ESADI-Parameter APPsub-TLV is optionally extended,
as provided in its original specification in [ESADI], by one byte as
show below:
+-+-+-+-+-+-+-+-+
| Type | (1 byte)
+-+-+-+-+-+-+-+-+
| Length | (1 byte)
+-+-+-+-+-+-+-+-+
|R| Priority | (1 byte)
+-+-+-+-+-+-+-+-+
| CSNP Time | (1 byte)
+-+-+-+-+-+-+-+-+
| Flags | (1 byte)
+---------------+
|PushDirPriority| (optional, 1 byte)
+---------------+
| Reserved for expansion (variable)
+-+-+-+-...
The meanings of all the fields are as specified in [ESADI] except
that the added PushDirPriority is the priority of the advertising
ESADI instance to be a Push Directory as described in Section 2.3. If
L. Dunbar, et al [Page 31]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
the PushDirPriority field is not present (Length = 3) it is treated
as if it were 0x40. 0x40 is also the value used and placed here by an
RBridge priority to be a Push Directory has not been configured.
8.2 RBridge Channel Protocol Number
IANA is requested to allocate a new RBridge Channel protocol number
for "Pull Directory Services" from the range allocable by Standards
Action and update the table of such protocol number in the TRILL
Parameters Registry referencing this document.
8.3 The Pull Directory and No Data Bits
IANA is requested to allocate two currently reserved bits in the
Interested VLANs field of the Interested VLANs sub-TLV (suggested
bits 18 and 19) and the Interested Labels field of the Interested
Labels sub-TLV (suggested bits 6 and 7) [RFC6326bis] to indicate Pull
Directory server (PD) and No Data (ND) respectively. These bits are
to be added to the subregistry created by [ESADI] with this document
as reference.
In the TRILL base protocol [RFC6325] as extended for FGL [rfcFGL],
the mere presence of an Interested VLANs or Interested Labels sub-
TLVs in the LSP of an RBridge indicates connection to end stations in
the VLANs or FGLs listed and thus a desire to receive multi-
destination traffic in those Data Labels. But, with Push and Pull
Directories, advertising that you are a directory server requires
using these sub-TLVs for the Data Label you are serving. If such a
directory server does not wish to received multi-destination TRILL
Data packets for the Data Labels it lists in one of these sub-TLVs,
it sets the "No Data" (ND) bit to one. This means that data on a
distribution tree may be pruned so as not to reach the "No Data"
RBridge as long as there are no RBridges interested in the Data who
are beyond the "No Data" RBridge. This bit is backwards compatible
as RBridges ignorant of it will simply not prune when they could,
which is safe although it may cause increased link utilization.
An example of as RBridge serving as a directory that would not want
multi-destination traffic in some Data Labels might be an RBridge
that does not officer end station service for any of the Data Labels
for which it is serving as a directory and is either (1) a Pull
Directory or (2) a Push Directory for which all of the ESADI traffic
can be handled by unicast [ESADI].
L. Dunbar, et al [Page 32]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
Acknowledgments
The contributions of the following persons are gratefully
acknowledged:
TBD
The document was prepared in raw nroff. All macros used were defined
within the source file.
Normative References
[RFC826] - Plummer, D., "An Ethernet Address Resolution Protocol",
RFC 826, November 1982.
[RFC903] - Finlayson, R., Mann, T., Mogul, J., and M. Theimer, "A
Reverse Address Resolution Protocol", STD 38, RFC 903, June
1984
[RFC2119] - Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997
[RFC3971] - Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
"SEcure Neighbor Discovery (SEND)", RFC 3971, March 2005.
[RFC4861] - Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
September 2007.
[RFC5304] Li, T. and R. Atkinson, "IS-IS Cryptographic
Authentication", RFC 5304, October 2008.
[RFC5310] - Bhatia, M., Manral, V., Li, T., Atkinson, R., White, R.,
and M. Fanto, "IS-IS Generic Cryptographic Authentication", RFC
5310, February 2009.
[RFC6165] - Banerjee, A. and D. Ward, "Extensions to IS-IS for
Layer-2 Systems", RFC 6165, April 2011.
[RFC6325] - Perlman, R., Eastlake 3rd, D., Dutt, D., Gai, S., and A.
Ghanwani, "Routing Bridges (RBridges): Base Protocol
Specification", RFC 6325, July 2011.
[RFC5342bis] - Eastlake 3rd, D., "IANA Considerations and IETF
Protocol Usage for IEEE 802 Parameters", BCP 141, RFC 5342,
September 2008.
[RFC6326bis] - Eastlake, D., Banerjee, A., Dutt, D., Perlman, R., and
L. Dunbar, et al [Page 33]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
A. Ghanwani, "TRILL Use of IS-IS", draft-ietf-isis-rfc6326bis,
work in progress.
[RFCclear] - Eastlake, D., M. Zhang, A. Ghanwani, V. Manral, A.
Banerjee, draft-ietf-trill-clear-correct-06.txt, in RFC
Editor's queue.
[Channel] - D. Eastlake, V. Manral, Y. Li, S. Aldrin, D. Ward,
"TRILL: RBridge Channel Support", draft-ietf-trill-rbridge-
channel-08.txt, in RFC Editor's queue.
[RFCfgl] - D. Eastlake, M. Zhang, P. Agarwal, R. Perlman, D. Dutt,
"TRILL: Fine-Grained Labeling", draft-ietf-trill-fine-
labeling-07.txt, in RFC Editor's queue.
[ESADI] - Zhai, H., F. Hu, R. Perlman, D. Eastlake, O. Stokes, "TRILL
(Transparent Interconnection of Lots of Links): The ESADI (End
Station Address Distribution Information) Protocol",
draft-ietf-trill-esadi, work in progress.
[IA] - Eastlake, D., L. Yizhou, R. Perlman, "TRILL: Interface
Addresses APPsub-TLV", draft-eastlake-trill-ia-appsubtlv, work
in progress.
Informational References
[RFC5227] - Cheshire, S., "IPv4 Address Conflict Detection", RFC
5227, July 2008.
[DirectoryFramework] - Dunbar, L., D. Eastlake, R. Perlman, I.
Gashinsky, "TRILL Edge Directory Assistance Framework",
draft-ietf-trill-directory-framework, in RFC Editor's queue.
[ChannelTunnel] - D. Eastlake, Y. Li, "TRILL: RBridge Channel Tunnel
Protocol", draft-eastlake-trill-channel-tunnel, work in
progress.
[ARP reduction] - Shah, et. al., "ARP Broadcast Reduction for Large
Data Centers", Oct 2010.
L. Dunbar, et al [Page 34]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
Authors' Addresses
Linda Dunbar
Huawei Technologies
5430 Legacy Drive, Suite #175
Plano, TX 75024, USA
Phone: (469) 277 5840
Email: ldunbar@huawei.com
Donald Eastlake
Huawei Technologies
155 Beaver Street
Milford, MA 01757 USA
Phone: 1-508-333-2270
Email: d3e3e3@gmail.com
Radia Perlman
Intel Labs
2200 Mission College Blvd.
Santa Clara, CA 95054-1549 USA
Phone: +1-408-765-8080
Email: Radia@alum.mit.edu
Igor Gashinsky
Yahoo
45 West 18th Street 6th floor
New York, NY 10011
Email: igor@yahoo-inc.com
Yizhou Li
Huawei Technologies
101 Software Avenue,
Nanjing 210012 China
Phone: +86-25-56622310
Email: liyizhou@huawei.com
L. Dunbar, et al [Page 35]
INTERNET-DRAFT TRILL: Directory Assist Mechanisms
Copyright, Disclaimer, and Additional IPR Provisions
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. The definitive version of
an IETF Document is that published by, or under the auspices of, the
IETF. Versions of IETF Documents that are published by third parties,
including those that are translated into other languages, should not
be considered to be definitive versions of IETF Documents. The
definitive version of these Legal Provisions is that published by, or
under the auspices of, the IETF. Versions of these Legal Provisions
that are published by third parties, including those that are
translated into other languages, should not be considered to be
definitive versions of these Legal Provisions. For the avoidance of
doubt, each Contributor to the IETF Standards Process licenses each
Contribution that he or she makes as part of the IETF Standards
Process to the IETF Trust pursuant to the provisions of RFC 5378. No
language to the contrary, or terms, conditions or rights that differ
from or are inconsistent with the rights and licenses granted under
RFC 5378, shall have any effect and shall be null and void, whether
published or posted by such Contributor, or included with or in such
Contribution.
L. Dunbar, et al [Page 36]