📄 rfc1801.txt
字号:
WITH SYNTAX SubtreeInfo SINGLE VALUEKille Experimental [Page 17]RFC 1801 X.400-MHS Routing using X.500 Directory June 1995 ID at-subtree-information} SubtreeInfo ::= ENUMERATED { all-children-present(0), not-all-children-present(1) } routingFilter ATTRIBUTE ::= { 30 WITH SYNTAX RoutingFilter ID at-routing-filter} RoutingFilter ::= SEQUENCE{ attribute-type OBJECT-IDENTIFIER, weight RouteWeight, dda-key String OPTIONAL, regex-match IA5String OPTIONAL, node DistinguishedName } 40 String ::= CHOICE {PrintableString, TeletexString} routingFailureAction ATTRIBUTE ::= { WITH SYNTAX RoutingFailureAction SINGLE VALUE ID at-routing-failure-action} RoutingFailureAction ::= ENUMERATED { next-level(0), 50 next-tree-only(1), next-tree-first(2), stop(3) } mTAInfo ATTRIBUTE ::= { WITH SYNTAX MTAInfo ID at-mta-info} MTAInfo ::= SEQUENCE { 60 name DistinguishedName, weight [1] RouteWeight DEFAULT preferred-access, mta-attributes [2] SET OF Attribute OPTIONAL, ae-info SEQUENCE OF SEQUENCE { aEQualifier PrintableString, ae-weight RouteWeight DEFAULT preferred-access, ae-attributes SET OF Attribute OPTIONAL} OPTIONAL } RouteWeight ::= INTEGER {endpoint(0), 70Kille Experimental [Page 18]RFC 1801 X.400-MHS Routing using X.500 Directory June 1995 preferred-access(5), backup(10)} (0..20) Figure 3: Routing Information at a Node --------------------------------------------------------------------- For example, information might be associated with the (PRMD) node: PRMD=ABC, ADMD=XYZMail, C=GB If this node was in the open community routing tree, then the information represents information published by the owner of the PRMD relating to public access to that PRMD. If this node was present in another routing tree, it would represent information published by the owner of the routing tree about access information to the referenced PRMD. The attributes associated with a routingInformation node provide the following information: Implicit That the node corresponds to a partial or entire valid O/R address. This is implicit in the existence of the entry. Object Class If the node is a UA. This will be true if the node is of object class routedUA. This is described further in Section 11. If it is not of this object class, it is an intermediate node in the O/R Address hierarchy. routingFilter A set of routing filters, defined by the routingFilter attribute. This attribute provides for routing on information in the unmatched part of the O/R Address. This is described in Section 10.3. subtreeInformation Whether or not the node is authoritative for the level below is specified by the subtreeInformation attribute. If it is authoritative, indicated by the value all-children-present, this will give the basis for (permanently) rejecting invalid O/R Addresses. The attribute is encoded as enumerated, as it may be later possible to add partial authority (e.g., for certain attribute types). If this attribute is missing, the node is assumed to be non-authoritative (not-all-children-present). The value all-children-present simply means that all of the child entries are present, and that this can be used to determine invalid addresses. There are no implications about the presence of routing information. Thus it is possible to verify an entire address, but only to route on one of the higher level components. For example, consider the node:Kille Experimental [Page 19]RFC 1801 X.400-MHS Routing using X.500 Directory June 1995 MHS-O=Zydeco, PRMD=ABC, ADMD=XYZMail, C=GB An organisation which has a bilateral agreement with this organisation has this entry in its routing tree, with no children entries. This is marked as non-authoritative. There is a second routing tree maintained by Zydeco, which contains all of the children of this node, and is marked as authoritative. When considering an O/R Address MHS-G=Random + MHS-S=Unknown, MHS-O=Zydeco, PRMD=ABC, ADMD=XYZMail, C=GB only the second, authoritative, routing tree can be used to determine that this address is invalid. In practice, the manager configuring the non-authoritative tree, will be able to select whether an MTA using this tree will proceed to full verification, or route based on the partially verified information. mTAInfo A list of MTAs and associated information defined by the mTAInfo attribute. This information is discussed further in Sections 15 and 18. This information is the key information associated with the node. When a node is matched in a lookup, it indicates the validity of the route, and a set of MTAs to connect to. Selection of MTAs is discussed in Sections 18 and Section 10.2. routingFailureAction An action to be taken if none of the MTAs can be used directly (or if there are no MTAs present) is defined by the routingFailureAction attribute. Use of this attribute and multiple routing trees is described in Section 10.1. accessMD The accessMD attribute is discussed in Section 10.4. This attribute is used to indicate MDs which provide indirect access to the part of the tree that is being routed to. badAddressSearchPoint/badAddressSearchAttributes The badAddressSearchPoint and badAddressSearchAttributes are discussed in Section 17. This attribute is for when an address has been rejected, and allows information on alternative addresses to be found.10.1 Multiple routing trees A routing decision will usually be made on the basis of information contained within multiple routing trees. This section describes the algorithms relating to use of multiple routing trees. Issues relating to the use of X.500 and handling of errors is discussed in Section 14. The routing decision works by examining a series ofKille Experimental [Page 20]RFC 1801 X.400-MHS Routing using X.500 Directory June 1995 entries (nodes) in one or more routing trees. This information is summarised in Figure 3. Each entry may contain information on possible next-hop MTAs. When an entry is found which enables the message to be routed, one of the routing options determined at this point is selected, and a routing decision is made. It is possible that further entries may be examined, in order to determine other routing options. This sort of heuristic is not discussed here. When a single routing tree is used, the longest possible match based on the O/R address to be routed to is found. This entry, and then each of its parents in turn is considered, ending with the routing tree root node (except in the case of the open routing tree, which does not have such a node). When multiple routing trees are considered, the basic approach is to treat them in a defined order. This is supplemented by a mechanism whereby if a matched node cannot be used directly, the routing algorithm will have the choice to move up a level in the current routing tree, or to move on to the next routing tree with an option to move back to the first tree later. This option to move back is to allow for the common case where a tree is used to specify two things: 1. Routing information private to the MTA (e.g., local UAs or routing info for bilateral links). 2. Default routing information for the case where other routing has failed. The actions allow for a tree to be followed, for the private information, then for other trees to be used, and finally to fall back to the default situation. For very complex configurations it might be necessary to split this into two trees. The options defined by routingFailureAction, to be used when the information in the entry does not enable a direct route, are: next-level Move up a level in the current routing tree. This is the action implied if the attribute is omitted. This will usually be the best action in the open community routing tree. next-tree-only Move to the next tree, and do no further processing on the current tree. This will be useful optimisation for a routing tree where it is known that there is no useful additional routing information higher in the routing tree. next-tree-first Move to the next tree, and then default back to the next level in this tree when all processing is completed on subsequent trees. This will be useful for an MTA to operate in the sequence:Kille Experimental [Page 21]RFC 1801 X.400-MHS Routing using X.500 Directory June 1995 1. Check for optimised private routes 2. Try other available information 3. Fall back to a local default route stop This address is unroutable. No processing shall be done in any trees. For the root entry of a routing tree, the default action and next- level are interpreted as next-tree-only.10.2 MTA Choice This section considers how the choice between alternate MTAs is made. First, it is useful to consider the conditions why an MTA is entered into a node of the routing tree: o The manager for the node of the tree shall place it there. This is a formality, but critical in terms of overall authority. o The MTA manager shall agree to it being placed there. For a well operated MTA, the access policy of the MTA will be set to enforce this. o The MTA will in general (for some class of message) be prepared to route to any valid O/R address in the subtree implied by the address. The only exception to this is where the MTA will route to a subset of the tree which cannot easily be expressed by making entries at the level below. An example might be an MTA prepared to route to all of the subtree, with certain explicit exceptions. Information on each MTA is stored in an mTAInfo attribute, which is defined in Figure 3. This attribute contains: name The Distinguished Name of the MTA (Application Process) weight A weighting factor (Route Weight) which gives a basis to choose between different MTAs. This is described in Section 10.2. mta-attributes Attributes from the MTA's entry. Information on the MTA will always be stored in the MTA's entry. The MTA is represented here as a structure, which enables some of this entry information to be represented in the routing node. This is effectively a maintained cache, and can lead to considerable performance optimisation. For example if ten MTAs were represented at a node, another MTA making a routing decision mightKille Experimental [Page 22]RFC 1801 X.400-MHS Routing using X.500 Directory June 1995 need to make ten directory reads in order to obtain the information needed. If any attributes are present here, all of the attributes needed to make a routing decision shall be included, and also all attributes at the Application Entity level. ae-info Where an MTA supports a single protocol only, or the protocols it supports have address information that can be represented in non-conflicting attributes, then the MTA may be represented as an application process only. In this case, the ae-info structure which gives information on associated application entities may be omitted, as the MTA is represented by a single application entity which has the same name as the application process. In other cases, the names of all application entities shall be included. A weight is associated with each application entity to allow the MTA to indicate a preference between its application entities. The structure of information within ae-info is as follows: ae-qualifier A printable string (e.g., "x400-88"), which is the value of the common name of the relative distinguished name of the application entity. This can be used with the application process name to derive the application entity title. ae-weight A weighting factor (Route Weight) which gives a basis to choose between different Application Entities (not between
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -