RFC1801 - MHS use of the X.500 Directory to support MHS Rout(2)

时间:2005-02-15 来源: 作者: 点击:
o Routing on the basis of an O/R Address component type o Routing on the basis of a substring match of an O/R address component. This might be used to route X121 addressed faxes to an appropriate MTA
  
o Routing on the basis of an O/R Address component type

o Routing on the basis of a substring match of an O/R address
component. This might be used to route X121 addressed faxes to
an appropriate MTA.

When present, the procedures of analysing the routing filters shall
be followed before other actions. The routing filter overrides
mTAInfo and accessMD attributes, which means that the routing filter
must be considered first. Only in the event that no routing filters
match shall the mTAInfo and accessMD attributes be considered. The
components of the routingFilter attribute are:

---------------------------------------------------------------------

attribute-type This gives the attribute type to be matched, and is
selected from the attribute types which have not been matched to
identify the routing entry. The filter applies to this attribute
type. If there is no regular expression present (as defined
below), the filter is true if the attribute is present. The
value is the object identifier of the X.500 attribute type
(e.g., at-prmd-name).

weight This gives the weight of the filter, which is encoded as a
Route Weight, with lower values indicating higher priority. If
multiple filters match, the weight of each matched filter is used
to select between them. If the weight is the same, then a random
choice shall be made.

dda-key If the attribute is domain defined, then this parameter may
be used to identify the key.

accessMD ATTRIBUTE ::= {
SUBTYPE OF distinguishedName
ID at-access-md}

Figure 4: Indirect Access

---------------------------------------------------------------------

regex-match This string is used to give a regular expression match on
the attribute value. The syntax for regular expressions is
defined in Appendix E.

node This distinguished name specifies the entry which holds routing
information for the filter. It shall be an entry with object
class routingInformation, which can be used to determine the MTA
or MTA choice. All of the attributes from this entry should be
used, as if they had been directly returned from the current entry
(i.e., the procedure recurses). The current entry does not set
defaults.

An example of use of routing filters is now given, showing how to
route on X121 address to a fax gateway in Germany. Consider the
routing point.

PRMD=ABC, ADMD=XYZMail, C=GB

The entry associated would have two routing filters:

1. One with type x121 and no regular expression, to route a default
fax gateway.

2. One with type x121 and a regular expression ^9262 to route all
German faxes to a fax gateway located in Germany with which there
is a bilateral agreement. This would have a lower weight, so that
it would be selected over the default fax gateway.

10.4 Indirect Connectivity

In some cases a part of the O/R Address space will be accessed
indirectly. For example, an ADMD without access from the open
community might have an agreement with another MD to provide this
access. This is achieved by use of the accessMD attribute defined in
Figure 4. If this attribute is found, the routing algorithm shall
read the entry pointed to by this distinguished name. It shall be an

entry with object class routingInformation, which can be used to
determine the MTA or MTA choice and route according to the
information retrieve to this access MD. All of the attributes from
this entry should be used, as if they had been directly returned from
the current entry (i.e., the procedure recurses). The current entry
does not set defaults.

The attribute is called an MD, as this is descriptive of its normal
use. It might point to a more closely defined part of the O/R
Address space.

It is possible for both access MD and MTAs to be specified. This
might be done if the MTAs only support access over a restricted set
of transport stacks. In this case, the access MD shall only be
routed to if it is not possible to route to any of the MTAs.

This structure can also be used as an optimisation, where a set of
MTAs provides access to several parts of the O/R Address space.
Rather than repeat the MTA information (list of MTAs) in each
reference to the MD, a single access MD is used as a means of
grouping the MTAs. The value of the Distinguished Name of the access
MD will probably not be meaningful in this case (e.g., it might be
the name "Access MTA List", within the organisation.)

If the MTA routing is unable to access the information in the Access
MD due to directory security restrictions, the routing algorithm
shall continue as if no MTA information was located in the routing
entry.

11. Local Addresses (UAs)

Local addresses (UAs) are a special case for routing: the endpoint.
The definition of the routedUA object class is given in Figure 5.
This identifies a User Agent in a routing tree. This is needed for
several reasons:

---------------------------------------------------------------------

routedUA OBJECT-CLASS ::= {
SUBCLASS OF {routingInformation}
KIND auxiliary
MAY CONTAIN {
-- from X.402
mhs-deliverable-content-length|
mhs-deliverable-content-types|
mhs-deliverable-eits|
mhs-message-store| 10
mhs-preferred-delivery-methods|

-- defined here
supportedExtensions|
redirect|
supportingMTA|
userName|
nonDeliveryInfo}
ID oc-routed-ua}

supportedExtensions ATTRIBUTE ::= { 20
SUBTYPE OF objectIdentifier
ID at-supported-extensions}

supportingMTA ATTRIBUTE ::= {
SUBTYPE OF mTAInfo
ID at-supporting-mta}

userName ATTRIBUTE ::= {
SUBTYPE OF distinguishedName
ID at-user-name} 30

Figure 5: UA Attributes

---------------------------------------------------------------------

1. To allow UAs to be defined without having an entry in another part
of the DIT.

2. To identify which (leaf and non-leaf) nodes in a routing tree are
User Agents. In a pure X.400 environment, a UA (as distinct from
a connecting part of the O/R address space) is simply identified
by object class. Thus an organisation entry can itself be a UA. A
UA need not be a leaf, and can thus have children in the tree.

3. To allow UA parameters as defined in X.402 (e.g., the
mhs-deliverable-eits) to be determined efficiently from the
routing tree, without having to go to the user's entry.

4. To provide access to other information associated with the UA, as
defined below.

The following attributes are defined associated with the UA.

supportedExtensions MTS extensions supported by the MTA, which affect
delivery.

supportingMTA The MTAs which support a UA directly are noted in the
supportingMTA attribute, which may be multi-valued. In the X.400
model, only one MTA is associated with a UA. In practice, it is

possible and useful for several MTAs to be able to deliver to a
single UA. This attribute is a subtype of mTAInfo, and it defines
access information for an MTA which is able to deliver to the UA.
There may also be an mTAInfo attribute in the entry.
Components of the supportingMTA attribute are interpreted in the
same manner as mtaInfo is for routing, with one exception. The
values of the Route Weight are interpreted in the following
manner:

o 0. A preferred MTA for delivery.

o 5. A backup MTA.

o 10. A backup MTA, which is not presferred.

The supportingMTA attribute shall be present, unless the address
is being non-delivered or redirected, in which case it may be
omitted.

redirect The redirect attribute controls redirects, as described in
Section 22.1.

userName The attribute userName points to the distinguished Name of
the user, as defined by the mhs-user in X.402. The pointer from
the user to the O/R Address is achieved by the mhs-or-addresses
attribute. This makes the UA/User linkage symmetrical.

nonDeliveryInfo The attribute nonDeliveryInfo mandates non-delivery
to this address, as described in Section 22.3.

When routing to a UA, an MTA will read the supportingMTA attribute.
If it finds its own name present, it will know that the UA is local,
and invoke appropriate procedures for local delivery (e.g., co-
resident or P3 access information). The cost of holding these
attributes for each UA at a site will often be reduced by use of
shared attributes (as defined in X.500(93)).

Misconfiguration of the supportingMTA attribute could have serious
operational and possibly security problems, although for the most
part no worse than general routing configuration problems. An MTA
using this attribute may choose to perform certain sanity checks,
which might be to verify the routing tree or subtree that the entry
resides in.

The linkage between the UA and User entries was noted above. It is
also possible to use a single entry for both User and UA, as there is
no conflict between the attributes in each of the objects. In this
case, the entries shall be in one part of the DIT, with aliases from

the other. Because the UA and User are named with different
attributes, the aliases shall be at the leaf level.

11.1 Searching for Local Users

The approach defined in this specification performs all routing by
use of reads. This is done for performance reasons, as it is a
reasonable expectation that all DSA implementations will support a
high performance read operation. For local routing only, an MTA in
cooperation with the provider of the local routing tree may choose to
use a search operation to perform routing. The major benefit of this
is that there will not be a need to store aliases for alternate
names, and so the directory storage requirement and alias management
will be reduced. The difficulty with this approach is that it is
hard to define search criteria that would be effective in all
situations and well supported by all DUAs. There are also issues
about determining the validity of a route on the basis of partial
matches.

12. Direct Lookup

Where an O/R address is registered in the open community and has one
or more "open" MTAs which support it, this will be optimised by
storing MTA information in the O/R address entry. In general, the
Directory will support this by use of attribute inheritance or an
implementation will optimise the storage or repeated information, and
so there will not be a large storage overhead implied. This is a
function of the basic routing approach. As a further optimisation of
this case, the User's distinguished name entry may contain the
mTAInfo attribute. This can be looked up from the distinguished
name, and thus routing on submission can be achieved by use of a
single read.

Note: This performance optimisation has a management overhead, and
further experience is needed to determine if the effort
justifies the performance improvement.

13. Alternate Routes

13.1 Finding Alternate Routes

The routing algorithm selects a single MTA to be routed to. It could
be extended to find alternate routes to a single MTA with possibly
different weights. How far this is done is a local configuration
choice. Provision of backup routing is desirable, and leads to
robust service, but excessive use of alternate routing is not usually
beneficial. It will often force messages onto convoluted paths, when
there was only a short outage on the preferred path. It is important

to note that this strategy will lead to picking the first acceptable
route. It is important to configure the routing trees so that the
first route identified will also be the best route.

13.2 Sharing routing information

So far, only single addresses have been considered. Improving
routing choice for multiple addresses is analogous to dealing with
multiple routes. This section defines an optional improvement. When
multiple addresses are present, and alternate routes are available,
the preferred routes may be chosen so as to maximise the number of
recipients sent with each message.

Specification of routing trees can facilitate this optimisation.
Suppose there is a set of addresses (e.g., in an organisation) which
have different MTAs, but have access to an MTA which will do local
switching. If each address is registered with the optimal MTA as
preferred, but has the "hub" MTA registered with a higher route
weight, then optimisation may occur when a message is sent to
multiple addresses in the group.

14. Looking up Information in the Directory

The description so far has been abstract about lookup of information.
This section considers how information is looked up in the Directory.
Consider that an O/R Address is presented for lookup, and there is a
sequence of routing trees. At any point in the lookup sequence,
there is one of a set of actions that can take place:

Entry Found Information from the entry (node) is returned and shall
be examined. The routing process continues or terminates, based
on this information.

Entry Not Found Return information on the length of best possible
match to the routing algorithm.

Temporary Reject The MTA shall stop the calculation, and repeat the
request later. Repeated temporary rejects should be handled in a
similar manner to the way the local MTA would handle the failure
to connect to a remote MTA.

Permanent Reject Administrative error on the directory which may be
fixed in future, but which currently prevents routing. The
routing calculation should be stopped and the message
non-delivered.

The algorithm proceeds by a series of directory read operations. If
the read operation is successful, the Entry Found procedure should be

followed. Errors from the lookup (directory read) shall be handled
in terms of the above procedures as follows. The following handling
is used when following a routing tree:

AttributeError This leads to a Permanent Reject.

NameError Entry Not Found is used. The matched parameter is used to
determine the number of components of the name that have matched
(possibly zero). The read may then repeated with this name.
This is the normal case, and allows the "best" entry in the
routingn tree to be located with two reads.

Referral The referral shall be followed, and then the procedure
recurses.

SecurityError Entry Not Found is used. Return a match length of one
less than the name provided.

ServiceError This leads to a Temporary Reject.

There will be cases where the algorithm moves to a name outside of
the routing tree being followed (Following an accessMD attribute, or
a redirect or a matched routing filter). The handling will be the
same as above, except:

NameError This leads to a Permanent Reject.

SecurityError This leads to a Permanent Reject.

When reading objects which of not of object class routingInformation,
the following error handling is used:

AttributeError This leads to a Permanent Reject.

NameError This leads to a Permanent Reject.

Referral The referral shall be followed, and then the procedure
recurses.

SecurityError In the case of an MTA, treat as if it is not possible
to route to this MTA. In other cases, this leads to a Permanent
Reject.

ServiceError This leads to a Temporary Reject.

The algorithm specifies the object class of entries which are read.
If an object class does not match what is expected, this shall lead
to a permanent reject.

15. Naming MTAs

MTAs need to be named in the DIT, but the name does not have routing
significance. The MTA name is simply a unique key. Attributes
associated with naming MTAs are given in Figure 6. This figure also
gives a list of attributes, which may be present in the MTA entry.
The use of most of these is explained in subsequent sections. The
mTAName and globalDomainID attributes are needed to define the
information that an MTA places in trace information. As noted
previously, an MTA is represented as an Application Process, with one
or more Application Entities.

---------------------------------------------------------------------

mTAName ATTRIBUTE ::= {
SUBTYPE OF name
WITH SYNTAX DirectoryString{ub-mta-name-length}
SINGLE VALUE
ID at-mta-name}
-- used for naming when
-- MTA is named in O=R Address Hierarchy

globalDomainID ATTRIBUTE ::= { 10
WITH SYNTAX GlobalDomainIdentifier
SINGLE VALUE
ID at-global-domain-id}
-- both attributes present when MTA
-- is named outside O=R Address Hierarchy
-- to enable trace to be written

mTAApplicationProcess OBJECT-CLASS ::= {
SUBCLASS OF {application-process}
KIND auxiliary 20
MAY CONTAIN {
mTAWillRoute|
globalDomainID|
routingTreeList|
localAccessUnit|
accessUnitsUsed
}
ID oc-mta-application-process}

mTA OBJECT CLASS ::= { -- Application Entity 30
SUBCLASS OF {mhs-message-transfer-agent}
KIND structural
MAY CONTAIN {
mTAName|
globalDomainID| -- per AE variant

responderAuthenticationRequirements|
initiatorAuthenticationRequirements|
responderPullingAuthenticationRequirements|
initiatorPullingAuthenticationRequirements|
initiatorP1Mode| 40
responderP1Mode|
polledMTAs|
protocolInformation|
respondingRTSCredentials|
initiatingRTSCredentials|
callingPresentationAddress|
callingSelectorValidity|
bilateralTable|
mTAWillRoute|
mhs-deliverable-content-length| 50
routingTreeList|
supportedMTSExtensions|
mTAsAllowedToPoll
}
ID oc-mta}

Figure 6: MTA Definitions

---------------------------------------------------------------------

In X.400 (1984), MTAs are named by MD and a single string. This
style of naming is supported, with MTAs named in the O/R Address tree
relative to the root of the DIT (or possibly in a different routing
tree). The mTAName attribute is used to name MTAs in this case. For
X.400(88) the Distinguished Name shall be passed as an AE Title.
MTAs may be named with any other DN, which can be in the O/R Address
or Organisational DIT hierarchy. There are several reasons why MTAs
might be named differently.

o The flat naming space is inadequate to support large MDs. MTA
name assignment using the directory would be awkward.

o An MD does not wish to register its MTAs in this way (essentially,
it prefers to give them private names in the directory).

o An organisation has a policy for naming application processes,
which does not fit this approach.

In this case, the MTA entry shall contain the correct information to
be inserted in trace. The mTAName and globalDomainID attributes are
used to do this. They are single value. For an MTA which inserts
different trace in different circumstances, a more complex approach
would be needed.

An MD may choose to name its MTAs outside of the O/R address
hierarchy, and then link some or all of them with aliases. A pointer
from this space may help in resolving information based on MTA Trace.
The situation considered so far is where an MTA supports one
application context (protocol). The MTA is represented in the
directory by a single directory entry, having no subordinate
applicationEntity entries. This name is considered to be the name of
the MTA and its Application Process Title. The MTA has no
Application Entity Qualifier, and so this is also the Application
Entity Title. In the case where an MTA supports more than one
application context, the Application Process Title is exactly the
same as above, but it also has one or more subordinate
applicationEntity entries. Each of these subordinate entries is
associated with a single application context. The relative
distinguished name of the subordinate applicationEntity entry is the
Application Entity Qualifier of the Application Entity Title. The
Application Entity Title is the distinguished name of the
applicationEntity. The term MTA Name is used to refer to the
Application Process Title.

15.1 Naming 1984 MTAs

Some simplifications are necessary for 1984 MTAs, and only one naming
approach may be used. This is because Directory Names are not
carried in the protocol, and so it must be possible to derive the
name algorithmically from parameters carried. In X.400, MTAs are
named by MD and a single string. This style of naming is supported,
with MTAs named in the O/R Address tree relative to the root of the
DIT (or possibly in a different routing tree). The MTAName attribute
is used to name MTAs in this case.

16. Attributes Associated with the MTA

This section lists the attributes which may be associated with an MTA
as defined in Figure 6, and gives pointers to the sections that
describe them.

mTAName Section 15.

globalDomainID Section 15.

protocolInformation Section 18.1.

applicationContext Section 18.2.

mhs-deliverable-content-length Section 18.3.

responderAuthenticationRequirements Section 20.2.

initiatorAuthenticationRequirements Section 20.2.

responderPullingAuthenticationRequirements Section 20.2.

initiatorPullingAuthenticationRequirements Section 20.2.

initiatorP1Mode Section 19.

responderP1Mode Section 19.

polledMTAs Section 19.

mTAsAllowedToPoll Section 19.

respondingRTSCredentials Section 20.3.

initiatingRTSCredentials Section 20.3.

callingPresentationAddress Section 20.3.

callingSelectorValidity Section 20.3.

bilateralTable Section 17.

mTAWillRoute Section 21.

routingTreeList Section 9.

supportedMTSExtensions Section 18.3.

---------------------------------------------------------------------

mTABilateralTableEntry OBJECT-CLASS ::=
SUBCLASS OF {mTA| distinguishedNameTableEntry}
ID oc-mta-bilateral-table-entry}

Figure 7: MTA Bilateral Table Entry

---------------------------------------------------------------------

17. Bilateral Agreements

Each MTA has an entry in the DIT. This will be information which is
globally valid, and will be useful for handling general information
about the MTA and for information common to all connections. In many
cases, this will be all that is needed. This global information may
be restricted by access control, and so need not be globally
available. In some cases, MTAs will maintain bilateral and

multilateral agreements, which hold authentication and related
information which is not globally valid. This section describes a
mechanism for grouping such information into tables, which enables an
MTA to have bilateral information or for a group of MTAs to share
multilateral information. The description is for bilateral
information, but is equally applicable to multilateral agreements.

For the purpose of a bilateral agreement, the MTA is considered to be
an application entity. This means that when this is distinct from
the application process, that the agreements are protocol specific.

A bilateral agreement is represented by one entry associated with
each MTA participating in the bilateral agreement. For one end of
the bilateral agreement, the agreement information will be keyed by
the name of the MTA at the other end. Each party to the agreement
will set up the entry which represents its half of the agreed policy.
The fact that these correspond is controlled by the external
agreement. In many cases, only one half of the agreement will be in
the directory. The other half might be in an ADMD MTA configuration
file.

MTA bilateral information is stored in a table, as defined in [15].
An MTA has access to a sequence of such tables, each of which
controls agreements in both directions for a given MTA. Where an MTA
is represented in multiple tables, the first agreement shall be used.
This allows an MTA to participate in multilateral agreements, and to
have private agreements which override these. The definition of
entries in this table are defined in Figure 7. This table will
usually be access controlled so that only a single MTA or selected
MTAs which appear externally as one MTA can access it.

---------------------------------------------------------------------

bilateralTable ATTRIBUTE ::= {
WITH SYNTAX SEQUENCE OF DistinguishedName
SINGLE VALUE
ID at-bilateral-table}

Figure 8: Bilateral Table Attribute

---------------------------------------------------------------------

Each entry in the table is of the object class
distinguishedNameTableEntry, which is used to name the entry by the
distinguished name of the MTA. In some cases discussed in Section
20.1, there will also be aliases of type textTableEntry. The MTA
attributes needed as a part of the bilateral agreement (typically MTA
Name/Password pairs), as described in Section 20.3, will always be

present. Other MTA attributes (e.g., presentation address) may be
present for one of two reasons:

1. As a performance optimisation

2. Because the MTA does not have a global entry

Every MTA with bilateral agreements will define a bilateral MTA
table. When a connection from a remote MTA is received, its
Distinguished Name is used to generate the name of the table entry.
For 1984, the MTA Name exchanged at the RTS level is used as a key
into the table. The location of the bilateral tables used by the MTA
and the order in which they are used are defined by the
bilateralTable attribute in the MTA entry, which is defined in Figure
8.

All of the MTA information described in Section 16 may be used in the
bilateral table entries. This will allow bilateral control of a wide
range of parameters.

Note: For some bilateral connections there is a need control various
other functions, such as trace stripping and originator address
manipulation. For now, this is left to implementation specific
extensions. This is expected to be reviewed in light of
implementation experience.

18. MTA Selection

18.1 Dealing with protocol mismatches

MTAs may operate over different stacks. This means that some MTAs
cannot talk directly to each other. Even where the protocols are the
same, there may be reasons why a direct connection is not possible.
An environment where there is full connectivity over a single stack
is known as a transport community [9]. The set of transport
communities supported by an MTA is specified by use of the
protocolInformation attribute defined in X.500(93). This is
represented as a separate attribute for the convenience of making
routing decisions.

---------------------------------------------------------------------

supportedMTSExtensions ATTRIBUTE ::= {
SUBTYPE OF objectIdentifier
ID at-supported-mts-extensions}

Figure 9: Supported MTS Extensions

---------------------------------------------------------------------

A community is identified by an object identifier, and so the
mechanism supports both well known and private communities. A list
of object identifiers corresponding to well known communities is
given in Appendix B.

18.2 Supported Protocols

It is important to know the protocol capabilities of an MTA. This is
done by the application context. There are standard definitions for
the following 1988 protocols.

o P3 (with and without RTS, both user and MTS initiated)

o P7 (with and without RTS).

o P1 (various modes). Strictly, this is the only one that matters
for routing.

In order to support P1(1984) and P1(1988) in X.410 mode, application
contexts which define these protocols are given in Appendix C. This
context is for use in the directory only, and would never be
exchanged over the network.

For routing purposes, a message store which is not co-resident with
an MTA is represented as if it had a co-resident MTA and configured
with a single link to its supporting MTA.

In cases where the UA is involved in exchanges, the UA will be of
object class mhs-user-agent, and this will allow for appropriate
communication information to be registered.

18.3 MTA Capability Restrictions

In addition to policy restrictions, described in Section 21, an MTA
may have capability restrictions. The maximum size of MPDU is
defined by the standard attribute mhs-deliverable-content-length.
The supported MTS extensions are defined by a new attribute specified
in Figure 9.

---------------------------------------------------------------------

restrictedSubtree OBJECT-CLASS ::= {
SUBCLASS OF {top}
KIND auxiliary
MAY CONTAIN {
subtreeDeliverableContentLength|
subtreeDeliverableContentTypes|
subtreeDeliverableEITs}
ID oc-restricted-subtree}
10
subtreeDeliverableContentLength ATTRIBUTE ::= {
SUBTYPE OF mhs-deliverable-content-length
ID at-subtree-deliverable-content-length}

subtreeDeliverableContentTypes ATTRIBUTE ::= {
SUBTYPE OF mhs-deliverable-content-types
ID at-subtree-deliverable-content-types}

subtreeDeliverableEITs ATTRIBUTE ::= {
SUBTYPE OF mhs-deliverable-eits 20
ID at-subtree-deliverable-eits}

Figure 10: Subtree Capability Restriction

---------------------------------------------------------------------

It may be useful to define other capability restrictions, for example
to enable routing of messages around MTAs with specific deficiencies.
It has been suggested using MTA capabilities as an optimised means of
expressing capabilities of all users associated with the MTA. This is
felt to be undesirable.

18.4 Subtree Capability Restrictions

In many cases, users of a subtree will share the same capabilities.
It is possible to specify this by use of attributes, as defined in
Figure 10. This will allow for restrictions to be determined in
cases where there is no entry for the user or O/R Address. This will
be a useful optimisation in cases where the UA capability information
is not available from the directory, either for policy reasons or
because it is not there. This information may also be present in the
domain tree (RFC822).

This shall be implemented as a collective attribute, so that it is
available to all entries in the subtree below the entry. This can
also be used for setting defaults in the subtree.

---------------------------------------------------------------------

initiatorP1Mode ATTRIBUTE ::= {
WITH SYNTAX P1Mode
SINGLE VALUE
ID at-initiator-p1-mode}

responderP1Mode ATTRIBUTE ::= {
WITH SYNTAX P1Mode
SINGLE VALUE
ID at-responder-p1-mode} 10

P1Mode ::= ENUMERATED {
push-only(0),
pull-only(1),
twa(2) }

polledMTAs ATTRIBUTE ::= {
WITH SYNTAX PolledMTAs
ID at-polled-mtas}
20
PolledMTAs ::= SEQUENCE {
mta DistinguishedName,
poll-frequency INTEGER OPTIONAL --frequency in minutes
}

mTAsAllowedToPoll ATTRIBUTE ::= {
SUBTYPE OF distinguishedName
ID at-mtas-allowed-to-poll}

Figure 11: Pulling Messages

---------------------------------------------------------------------

19. MTA Pulling Messages

Pulling messages between MTAs, typically by use of two way alternate,
is for bilateral agreement. It is not the common case. There are
two circumstances in which it can arise.

1. Making use of a connection that was opened to push messages.

2. Explicitly polling in order to pull messages

Attributes to support this are defined in Figure 11. These
attributes indicate the capabilities of an MTA to pull messages, and
allows a list of polled MTAs to be specified. If omitted, the normal
case of push-only is specified. In the MTA Entry, the polledMTAs

attribute indicates MTAs which are to be polled and the
mTAsAllowedToPoll attribute indicates MTAs that may poll the current
MTA.

20. Security and Policy

20.1 Finding the Name of the Calling MTA

A key issue for authentication is for the called MTA to find the name
of the calling MTA. This is needed for it to be able to look up
information on a bilateral agreement.

Where X.400(88) is used, the name is available as a distinguished
name from the AE-Title derived from the AP-Title and AE-Qualifier in
the A-Associate. For X.400(84), it will not be possible to derive a
global name from the bind. The MTA Name exchanged in the RTS Bind
will provide a key into the private bilateral agreement table (or
tables), where the connection information can be verified. Thus for
X.400(1984) it will only be possible to have bilateral inbound links
or no authentication of the calling MTA.

Note: CDC use a search here, as a mechanism to use a single table and
an 88/84 independent access. This may be considered for general
adoption. It appears to make the data model cleaner, possibly
at the expense of some performance. This will be considered in
the light of implementation experience.

20.2 Authentication

The levels of authentication required by an MTA will have an impact
on routing. For example, if an MTA requires strong authentication,
not all MTAs will be able to route to it. The attributes which
define the authentication requirements are defined in Figure 12.

The attributes specify authentication levels for the following cases:

Responder These are the checks that the responder will make on the
initiator's credentials.

Initiator These are the checks that the initiator will make on the
responders credentials. Very often, no checks are needed ---
establishing the connection is sufficient.

Responder Pulling These are responder checks when messages are
pulled. These will often be stronger than for pushing.

Initiator Pulling For completeness.

If an attribute is omitted, no checks are required. If multiple
checks are required, then each of the relevant bits shall be set.
The attribute is single value, which implies that the MTA must set a
single authentication policy.

---------------------------------------------------------------------

responderAuthenticationRequirements ATTRIBUTE ::= {
WITH SYNTAX AuthenticationRequirements
SINGLE VALUE
ID at-responder-authentication-requirements}

initiatorAuthenticationRequirements ATTRIBUTE ::= {
WITH SYNTAX AuthenticationRequirements
SINGLE VALUE
ID at-initiator-authentication-requirements} 10

responderPullingAuthenticationRequirements ATTRIBUTE ::= {
WITH SYNTAX AuthenticationRequirements
SINGLE VALUE
ID at-responder-pulling-authentication-requirements}

initiatorPullingAuthenticationRequirements ATTRIBUTE ::= {
WITH SYNTAX AuthenticationRequirements
SINGLE VALUE
ID at-initiator-pulling-authentication-requirements} 20

AuthenticationRequirements ::= BITSTRING {
mta-name-present(0),
aet-present(1),
aet-valid(2),
network-address(3),
simple-authentication(4),
strong-authentication(5),
bilateral-agreement-needed(6)}

Figure 12: Authentication Requirements

---------------------------------------------------------------------

The values of the authentication requirements mean:

mta-name-present That an RTS level MTA parameter shall be present for
logging purposes.

aet-present That a distinguished name application entity title shall
be provided at the ACSE level.

aet-valid As for aet-present, and that the AET be registered in the
directory. This may be looked up as a part of the validation
process. If mta-name-present is set, the RTS value of mta and
password shall correspond to those registered in the directory.

network-address This can only be used for the responder. The AET
shall be looked up in the directory, and the
callingPresentationAddress attribute matched against the calling
address. This shall match exactly at the network level. The
validity of selectors will be matched according to the
callingSelectorValidity attribute.

simple-authentication All MTA and password parameters needed for
simple authentication shall be used. This will usually be in
conjunction with a bilateral agreement.

strong-authentication Use of strong authentication.

bilateral-agreement-needed This means that this MTA will only accept
connections in conjunction with a bilateral or multilateral
agreements. This link cannot be used unless such an agreement
exists.

These attributes may also be used to specify UA/MTA authentication
policy. They may be resident in the UA entry in environments where
this information cannot be modified by the user. Otherwise, it will
be present in an MTA table (represented in the directory).

An MTA could choose to have different authentication levels related
to different policies (Section 21). This is seen as too complex, and
so they are kept independent. The equivalent function can always be
achieved by using multiple Application Entities with the application
process.

20.3 Authentication Information

This section specifies connection information needed by P1. This is
essentially RTS parameterisation needed for authentication. This is
defined in Figure 13. Confidential bilateral information is implied
by these attributes, and this will be held in the bilateral
information agreement. This shall have appropriate access control
applied. Note that in some cases, MTA information will be split
across a private and public entry.

---------------------------------------------------------------------

respondingRTSCredentials ATTRIBUTE ::= {
WITH SYNTAX RTSCredentials
SINGLE VALUE
ID at-responding-rts-credentials}

initiatingRTSCredentials ATTRIBUTE ::= {
WITH SYNTAX RTSCredentials
SINGLE VALUE 10
ID at-initiating-rts-credentials}

RTSCredentials ::= SEQUENCE {
request [0] MTAandPassword OPTIONAL,
response [1] MTAandPassword OPTIONAL }

MTAandPassword ::= SEQUENCE {
MTAName, 20
Password } -- MTAName and Password
-- from X.411

callingPresentationAddress ATTRIBUTE ::= {
SUBTYPE OF presentationAddress
MULTI VALUE
ID at-calling-presentation-address}

callingSelectorValidity ATTRIBUTE ::= { 30
WITH SYNTAX CallingSelectorValidity
SINGLE VALUE
ID at-calling-selector-validity}

CallingSelectorValidity ::= ENUMERATED {
all-selectors-fixed(0),
tsel-may-vary(1),
all-selectors-may-vary(2) }

Figure 13: MTA Authentication Parameters

---------------------------------------------------------------------

---------------------------------------------------------------------

mTAWillRoute ATTRIBUTE ::= {
WITH SYNTAX MTAWillRoute
ID at-mta-will-route}

MTAWillRoute ::= SEQUENCE {
from [0] SET OF ORAddressPrefix OPTIONAL,
to [1] SET OF ORAddressPrefix OPTIONAL,
from-excludes [2] SET OF ORAddressPrefix OPTIONAL,
to-excludes [3] SET OF ORAddressPrefix OPTIONAL } 10

ORAddressPrefix ::= DistinguishedName

Figure 14: Simple MTA Policy Specification

---------------------------------------------------------------------

The parameters are:

Initiating Credentials The credentials to be used when the local MTA
initiates the association. It gives the credentials to insert
into the request, and those expected in the response.

Responding Credentials The credentials to be used when the remote MTA
initiates the association. It gives the credential expected in
the request, and those to be inserted into the response.

Remote Presentation Address Valid presentation addresses, which the
remote MTA may connect from.

If an MTA/Password pair is omitted, the MTA shall default to the
local MTA Name, and the password shall default to a zero-length OCTET
STRING.

Note: Future versions of this specification may add more information
here relating to parameters required for strong authentication.

21. Policy and Authorisation

21.1 Simple MTA Policy

The routing trees will generally be configured in order to identify
MTAs which will route to the destination. A simple means is
identified to specify an MTA's policy. This is defined in Figure 14.
If this attribute is omitted, the MTA shall route all traffic to the
implied destinations from the context of the routing tree for any
MTAs that have valid access to the routing tree.

The multi-valued attribute gives a set of policies which the MTA will
route. O/R Addresses are represented by a prefix, which identifies a
subtree. A distinguished name encoding of O/R Address is used.
There are three components:

from This gives a set of O/R addresses which are granted permission
by this attribute value. If omitted, "all" is implied.

to This gives the set of acceptable destinations. If omitted,
"all" is implied.

from-excludes This defines (by prefix) subtrees of the O/R address
tree which are explicitly excluded from the "from" definition.
If omitted, there are no exclusions.

to-excludes This defines (by prefix) subtrees of the O/R address tree
which are explicitly excluded from the "to" definition. If
omitted, there are no exclusions.

This simple policy will suffice for most cases. In particular, it
gives sufficient information for most real situations where a policy
choice is forced, and the application of this policy would prevent a
message being routed.

This simple prefixing approach does not deal explicitly with alias
dereferencing. The prefixes refer to O/R addresses where aliases
have been dereferenced. To match against these prefixes, O/R
addresses being matched need to be "normalised by being looked up in
the directory to resolve alias values. If the lookup fails, it shall
be assumed that the provided address is already normalised. This
means that policy may be misinterpreted for parts of the DIT not
referenced in the directory.

The originator refers to the MTS originator, and the recipient to the
MTS recipient, following any list expansion or redirect. This simple
policy does not apply to delivery reports. Any advertised route
shall work for delivery reports, and it does not makes sense to
regulate this on the basis of the sender.

21.2 Complex MTA Policy

MTAs will generally have a much more complex policy mechanism, such
as that provided by PP MTA [10]. Representing this as a part of the
routing decision is not done here, but may be addressed in future
versions. Some of the issues which need to be tackled are:

o Use of charging and non-charging nets

o Policy dependent on message size

o Different policy for delivery reports.

o Policy dependent on attributes of the originator or
recipient (e.g., mail from students)

o Content type and encoded information types

o The path which the message has traversed to reach the MTA

o MTA bilateral agreements

o Pulling messages

o Costs. This sort of policy information may also be for
information only.

MTAs may apply more complex routing policies. However, this shall
not lead to the rejection of messages which might otherwise be
correctly routed on the published policy information. Policies
relating to submission do not need to be public. They can be private
to the MTA.

---------------------------------------------------------------------

redirect ATTRIBUTE ::= {
WITH SYNTAX Redirect
SINGLE VALUE
ID at-redirect}

Redirect ::= SEQUENCE OF SEQUENCE {
or-name ORName,
reason RedirectionReason, -- from X.411
filter CHOICE { 10
min-size [1] INTEGER,
max-size [2] INTEGER,
content [3] ContentType,
eit [4] ExternalEncodedInformationType } OPTIONAL
}

Figure 15: Redirect Definition

---------------------------------------------------------------------

22. Delivery

22.1 Redirects

There is a need to specify redirects in the Directory. This will be
useful for alternate names where an equivalent name (synonym) defined
by an alias is not natural. An example where this might be
appropriate is to redirect mail to a new O/R address where a user had
changed organisation. A mechanism is given to allow conditional
(filtered) redirects for different types of messages. This allow
small messages, large messages, or messages containing specific EITs
or content to be redirected. The definitions are given in Figure 15.

Redirection is specified by the redirect attribute. If present, this
attribute shall be processed before supportingMTA and
nonDeliveryInfo. These two attributes shall only be considered if it
is determined that no redirection applies. The redirect attribute is
a sequence of elements which are considered in the order specified.
Each element is examined in turn. The first element which applies is
used, and no further elements are examined. Use of an element for
redirection, shall follow the X.400 procedures for redirection, and
an element shall not be used if prevented by a service control. If
the redirect attribute is processed and no redirection is generated,
processing shall continue irrespective of service controls. If non-
delivery is intended in this event, this shall be achieved by use of
the nonDeliveryInfo attribute.

The components have the following interpretations:

or-name This X.400 O/R Name is for use in the redirection. This O/R
Name will contain an optional directory name and optional O/R
address. One or both of the must be present. If the O/R Address
element is present, the Directory Name, if present, is for
information only. and is to be placed in the X.400 redirection.
If the O/R address element is absent, the Directory Name shall be
present and shall be looked up to determine the O/R address of the
redirected recipient. The O/R Address of the intended recipient
will either be present or derived by lookup. Routing shall be
done on the basis of this O/R Address.

reason This is the reason information to be placed in the X.400
redirect, and it shall take one of the following values of
RedirectReason defined in X.411:

recipient-assigned-alternate-recipient;
recipient-MD-assigned-alternate-recipient; or alias. It shall not
have the value originator-requested-alternate-recipient.

filter If filter is absent, the redirect is mandoatory and shall be
followed. If the filter is present, use of the redirect under
consideration depends on the type of filter as follows:

min-size Follow redirect if the message (MT content) is larger
than min-size (measured in kBytes).

max-size Follow redirect if the message (MT content) is smaller
than max-size (measured in kBytes).

content Follow redirect if message content is of type content.

eit Follow redirect if the encoded information types registered
in the envelope contain eit.

When a delivery report is sent to an address which would be
redirected, X.400 would ignore the redirect. This means that every
O/R address would need to have a valid means of delivery. This would
seem to be awkward to manage. Therefore, the redirect shall be
followed, and the delivery report delivered to the redirected
address.

These redirects are handled directly by the MTA. Redirects can also
be initiated by the UA, for example in the context of a P7
interaction.

---------------------------------------------------------------------

nonDeliveryInfo ATTRIBUTE ::= {
WITH SYNTAX NonDeliveryReason
SINGLE VALUE
ID at-non-delivery-info}

NonDeliveryReason ::= SEQUENCE {
reason INTEGER (0..ub-reason-codes),
diagnostic INTEGER (0..ub-diagnostic-codes) OPTIONAL,
supplementaryInfo PrintableString OPTIONAL } 10

Figure 16: Non Delivery Information

---------------------------------------------------------------------

22.2 Underspecified O/R Addresses

X.400 requires that some underspecified O/R Addresses are handled in
a given way (e.g., if a surname is given without initials or given
name). Where an underspecified O/R Address is to be treated as if it
were another O/R Address, an alias shall be used. If the O/R Address

is to be rejected as ambiguous, an entry shall be created in the DIT,
and forced non-delivery specified for this reason.

Note: It is also possible to handle this situation by searching. An
MTA conforming to this specification may handle underspecified
addresses in this manner. The choice of mechanism will be
reviewed after operational experience with both approaches.

22.3 Non Delivery

It is possible for a manager to define an address to non-deliver with
specified reason and diagnostic codes. This might be used for a
range of management purposes. The attribute to do this is defined in
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容