home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2645.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  16.4 KB  |  508 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        R. Gellens
  8. Request for Comments: 2645                                     Qualcomm
  9. Category: Standards Track                                   August 1999
  10.  
  11.  
  12.                       ON-DEMAND MAIL RELAY (ODMR)
  13.                     SMTP with Dynamic IP Addresses
  14.  
  15. Status of this Memo
  16.  
  17.    This document specifies an Internet standards track protocol for the
  18.    Internet community, and requests discussion and suggestions for
  19.    improvements.  Please refer to the current edition of the "Internet
  20.    Official Protocol Standards" (STD 1) for the standardization state
  21.    and status of this protocol.  Distribution of this memo is unlimited.
  22.  
  23. Copyright Notice
  24.  
  25.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  26.  
  27. Table of Contents
  28.  
  29.     1.  Abstract . . . . . . . . . . . . . . . . . . . . . . . . . .  1
  30.     2.  Conventions Used in this Document . . . . . . . . . . . . . . 2
  31.     3.  Comments . . . . . . . . . . . . . . . . . . . . . . . . . .  2
  32.     4.  Description . . . . . . . . . . . . . . . . . . . . . . . . . 2
  33.     5.  States . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
  34.       5.1.  Initial State . . . . . . . . . . . . . . . . . . . . . . 4
  35.         5.1.1.  EHLO . . . . . . . . . . . . . . . . . . . . . . . .  4
  36.         5.1.2.  AUTH  . . . . . . . . . . . . . . . . . . . . . . . . 4
  37.         5.1.3.  QUIT . . . . . . . . . . . . . . . . . . . . . . . .  4
  38.       5.2.  Authenticated State . . . . . . . . . . . . . . . . . . . 4
  39.         5.2.1.  ATRN (Authenticated TURN)  . . . . . . . . . . . . .  4
  40.       5.3.  Reversed State  . . . . . . . . . . . . . . . . . . . . . 5
  41.       5.4.  Other Commands . . . . . . . . . . . . . . . . . . . . .  6
  42.     6.  Example On-Demand Mail Relay Session: . . . . . . . . . . . . 6
  43.     7.  Response Codes . . . . . . . . . . . . . . . . . . . . . . .  6
  44.     8.  Security Considerations . . . . . . . . . . . . . . . . . . . 6
  45.     9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . .  7
  46.    10.  References  . . . . . . . . . . . . . . . . . . . . . . . . . 7
  47.    11.  Author's Address   . . . . . . . . . . . . . . . . . . . . .  8
  48.    12.  Full Copyright Statement  . . . . . . . . . . . . . . . . . . 9
  49.  
  50. 1.  Abstract
  51.  
  52.    With the spread of low-cost computer systems and Internet
  53.    connectivity, the demand for local mail servers has been rising.
  54.    Many people now want to operate a mail server on a system which has
  55.  
  56.  
  57.  
  58. Gellens                     Standards Track                     [Page 1]
  59.  
  60. RFC 2645                  On-Demand Mail Relay               August 1999
  61.  
  62.  
  63.    only an intermittent connection to a service provider.  If the system
  64.    has a static IP address, the ESMTP ETRN command [ETRN] can be used.
  65.    However, systems with dynamic IP addresses (which are very common
  66.    with low-cost connections) have no widely-deployed solution.
  67.  
  68.    This memo proposes a new service, On-Demand Mail Relay (ODMR), which
  69.    is a profile of SMTP [SMTP, ESMTP], providing for a secure,
  70.    extensible, easy to implement approach to the problem.
  71.  
  72. 2.  Conventions Used in this Document
  73.  
  74.    Because the client and server roles reverse during the session, to
  75.    avoid confusion, the terms "customer" and "provider" will be used in
  76.    place of "client" and "server", although of course this protocol may
  77.    be useful in cases other than commercial service providers and
  78.    customers.
  79.  
  80.    In examples, "P:" is used to indicate lines sent by the provider, and
  81.    "C:" indicates those sent by the customer.  Line breaks within a
  82.    command are for editorial purposes only.
  83.  
  84.    The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
  85.    in this document are to be interpreted as defined in [KEYWORDS].
  86.  
  87.    Examples use 'example.net' as the provider, and 'example.org' and '
  88.    example.com' as the customers.
  89.  
  90. 3.  Comments
  91.  
  92.    Private comments should be sent to the author.  Public comments may
  93.    be sent to the IETF Disconnected SMTP mailing list,
  94.    <ietf-disconn-smtp@imc.org>.  To subscribe, send a message to
  95.    <ietf-disconn-smtp-request@imc.org> containing the word SUBSCRIBE as
  96.    the body.
  97.  
  98. 4.  Description
  99.  
  100.    On-Demand Mail Relay is a restricted profile of SMTP [SMTP, ESMTP].
  101.    Port 366 is reserved for On-Demand Mail Relay.  The initial client
  102.    and server roles are short-lived, as the point is to allow the
  103.    intermittently-connected host to request mail held for it by a
  104.    service provider.
  105.  
  106.    The customer initiates a connection to the provider, authenticates,
  107.    and requests its mail.  The roles of client and server then reverse,
  108.    and normal SMTP [SMTP, ESMTP] proceeds.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Gellens                     Standards Track                     [Page 2]
  115.  
  116. RFC 2645                  On-Demand Mail Relay               August 1999
  117.  
  118.  
  119.    The provider has an On-Demand Mail Relay process listening for
  120.    connections on the ODMR port.  This process does not need to be a
  121.    full SMTP server.  It does need to be an SMTP client with access to
  122.    the outgoing mail queues, and as a server implement the EHLO, AUTH,
  123.    ATRN, and QUIT commands.
  124.  
  125.    An MTA normally has a mail client component which processes the
  126.    outgoing mail queues, attempting to send mail for particular domains,
  127.    based on time or event (such as new mail being placed in the queue,
  128.    or receipt of an ETRN command by the SMTP server component).  The
  129.    On-Demand Mail Relay service processes the outgoing queue not on a
  130.    timer or new mail creation, but on request.
  131.  
  132.    The provider side has normal SMTP server responsibilities [SMTP],
  133.    including generation of delivery failure notices, etc. as needed.
  134.  
  135. 5.  States
  136.  
  137.    The On-Demand Mail Relay service has three states: an initial state,
  138.    an authenticated state, and a reversed state.  The state progression
  139.    is illustrated in the following diagram:
  140.  
  141.    ---------------------------
  142.    !      initial state      !
  143.    ---------------------------
  144.      !             !
  145.    QUIT           AUTH
  146.      !             !
  147.      !             V
  148.      !      -----------------------
  149.      !      ! authenticated state !
  150.      !      -----------------------
  151.      !       !            !
  152.      !      QUIT         ATRN
  153.      !       !            !
  154.      !       !            V
  155.      !       !      ------------------
  156.      !       !      ! reversed state !
  157.      !       !      ------------------
  158.      !       !         !
  159.      !       !        QUIT
  160.      !       !         !
  161.      V       V         V
  162.      ---------------------
  163.      !    termination    !
  164.      ---------------------
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Gellens                     Standards Track                     [Page 3]
  171.  
  172. RFC 2645                  On-Demand Mail Relay               August 1999
  173.  
  174.  
  175.    (Note that in the reversed state, commands are sent by the provider,
  176.    not the customer.)
  177.  
  178. 5.1.  Initial State
  179.  
  180.    In the initial state, the provider is the server and the customer is
  181.    the client.  Three commands are valid:  EHLO, AUTH, and QUIT.
  182.  
  183. 5.1.1.  EHLO
  184.  
  185.    The EHLO command is the same as in [ESMTP].  The response MUST
  186.    include AUTH and ATRN.
  187.  
  188. 5.1.2.  AUTH
  189.  
  190.    The AUTH command is specified in [AUTH].  The AUTH command uses a
  191.    [SASL] mechanism to authenticate the session.  The session is not
  192.    considered authenticated until a success response to AUTH has been
  193.    sent.
  194.  
  195.    For interoperability, implementations MUST support the CRAM-MD5
  196.    mechanism [CRAM].  Other SASL mechanisms may be supported.  A site
  197.    MAY disable CRAM-MD5 support if it uses more secure methods.  The
  198.    EXTERNAL mechanism [SASL] might be useful in some cases, for example,
  199.    if the provider has already authenticated the client, such as during
  200.    a PPP connection.
  201.  
  202. 5.1.3.  QUIT
  203.  
  204.    The QUIT command is the same as in [SMTP].
  205.  
  206. 5.2.  Authenticated State
  207.  
  208.    The authenticated state is entered after a successful AUTH command.
  209.    Two commands are valid in the authenticated state:  ATRN and QUIT.
  210.  
  211. 5.2.1.  ATRN (Authenticated TURN)
  212.  
  213.    Unlike the TURN command in [SMTP], the ATRN command optionally takes
  214.    one or more domains as a parameter.  The ATRN command MUST be
  215.    rejected if the session has not been authenticated.  Response code
  216.    530 [AUTH] is used for this.
  217.  
  218.    The timeout for this command MUST be at least 10 minutes to allow the
  219.    provider time to process its mail queue.
  220.  
  221.    An ATRN command sent with no domains is equivalent to an ATRN command
  222.    specifying all domains to which the customer has access.
  223.  
  224.  
  225.  
  226. Gellens                     Standards Track                     [Page 4]
  227.  
  228. RFC 2645                  On-Demand Mail Relay               August 1999
  229.  
  230.  
  231.    If the authentication used by the customer does not provide access to
  232.    all of the domains specified in ATRN, the provider MUST NOT send mail
  233.    for any domains to the customer; the provider MUST reject the ATRN
  234.    command with a 450 code.
  235.  
  236.    If the customer does have access to all of the specified domains, but
  237.    none of them have any queued mail, the provider normally rejects the
  238.    ATRN command with response code 453.  The provider MAY instead issue
  239.    a 250 success code, and after the roles are reversed, send a QUIT
  240.    following the EHLO.
  241.  
  242.    The provider MAY also reject the ATRN command with a 450 response to
  243.    indicate refusal to accept multiple requests issued within a
  244.    particular time interval.
  245.  
  246.    If the customer has access to all of the specified domains and mail
  247.    exists in at least one of them, the provider issues a 250 success
  248.    code.
  249.  
  250.    If the server is unable to verify access to the requested domains
  251.    (for example, a mapping database is temporarily unavailable),
  252.    response code 451 is sent.
  253.  
  254.       [ABNF] for ATRN:
  255.  
  256.       atrn          = "ATRN" [SP domain *("," domain)]
  257.  
  258.       domain        = sub-domain 1*("." sub-domain)
  259.  
  260.       sub-domain    = (ALPHA / DIGIT) *(ldh-str)
  261.  
  262.       ldh-str       = *(ALPHA / DIGIT / "-") (ALPHA / DIGIT)
  263.  
  264. 5.3.  Reversed State
  265.  
  266.    After the provider has sent a success reply to the ATRN command, the
  267.    roles reverse, and the customer becomes the server, and the provider
  268.    becomes the client.
  269.  
  270.    After receiving the success response to ATRN, the customer sends a
  271.    standard SMTP initial greeting line.  At this point normal SMTP
  272.    [SMTP, ESMTP] commands are used.  Typically the provider sends EHLO
  273.    after seeing the customer's greeting, to be followed by MAIL FROM and
  274.    so on.
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Gellens                     Standards Track                     [Page 5]
  283.  
  284. RFC 2645                  On-Demand Mail Relay               August 1999
  285.  
  286.  
  287. 5.4.  Other Commands
  288.  
  289.    The provider MAY reject all commands other than EHLO, AUTH, ATRN, and
  290.    QUIT with response code 502.
  291.  
  292. 6.  Example On-Demand Mail Relay Session
  293.  
  294.       P:  220 EXAMPLE.NET on-demand mail relay server ready
  295.       C:  EHLO example.org
  296.       P:  250-EXAMPLE.NET
  297.       P:  250-AUTH CRAM-MD5 EXTERNAL
  298.       P:  250 ATRN
  299.       C:  AUTH CRAM-MD5
  300.       P:  334 MTg5Ni42OTcxNzA5NTJASVNQLkNPTQo=
  301.       C:  Zm9vYmFyLm5ldCBiOTEzYTYwMmM3ZWRhN2E0OTViNGU2ZTczMzRkMzg5MAo=
  302.       P:  235 now authenticated as example.org
  303.       C:  ATRN example.org,example.com
  304.       P:  250 OK now reversing the connection
  305.       C:  220 example.org ready to receive email
  306.       P:  EHLO EXAMPLE.NET
  307.       C:  250-example.org
  308.       C:  250 SIZE
  309.       P:  MAIL FROM: <Lester.Tester@dot.foo.bar>
  310.       C:  250 OK
  311.       P:  RCPT TO: <l.eva.msg@example.com>
  312.       C:  250 OK, recipient accepted
  313.       ...
  314.       P:  QUIT
  315.       C:  221 example.org closing connection
  316.  
  317. 7.  Response Codes
  318.  
  319.    The response codes used in this document are:
  320.  
  321.    250  Requested mail action okay, completed
  322.    450  ATRN request refused
  323.    451  Unable to process ATRN request now
  324.    453  You have no mail
  325.    502  Command not implemented
  326.    530  Authentication required [AUTH]
  327.  
  328. 8.  Security Considerations
  329.  
  330.    Because access to the On-Demand Mail Relay server is only useful with
  331.    a prior arrangement between the parties (so the provider is the
  332.    target of MX records for the customer's domains and thus has mail to
  333.    relay), it may be useful for the provider to restrict access to the
  334.    On-Demand Mail Relay port.  For example, the ODMR server could be
  335.  
  336.  
  337.  
  338. Gellens                     Standards Track                     [Page 6]
  339.  
  340. RFC 2645                  On-Demand Mail Relay               August 1999
  341.  
  342.  
  343.    configurable, or a TCP wrapper or firewall could be used, to block
  344.    access to port 366 except within the provider's network.  This might
  345.    be useful when the provider is the customer's ISP.  Use of such
  346.    mechanisms does not reduce the need for the AUTH command, however,
  347.    but can increase the security it provides.
  348.  
  349.    Use of SASL in the AUTH command allows for substitution of more
  350.    secure authentication mechanisms in the future.
  351.  
  352.    See sections 5.1.2 and 5.2.1 for additional security details.
  353.  
  354. 9.  Acknowledgments
  355.  
  356.    This memo has been developed in part based on comments and
  357.    discussions which took place on and off the IETF-disconn-smtp mailing
  358.    list.  Special thanks to Chris Newman and Ned Freed for their
  359.    comments.
  360.  
  361. 10.  References
  362.  
  363.    [ABNF]      Crocker, D. and P. Overell,  "Augmented BNF for Syntax
  364.                Specifications: ABNF", RFC 2234, November 1997.
  365.  
  366.    [AUTH]      Myers, J., "SMTP Service Extension for Authentication",
  367.                RFC 2554, March 1999.
  368.  
  369.    [CRAM]      Klensin, J., Catoe, R. and P. Krumviede, "IMAP/POP
  370.                AUTHorize Extension for Simple Challenge/Response", RFC
  371.                2195, September 1997.
  372.  
  373.    [ESMTP]     Klensin, J., Freed, N., Rose, M., Stefferud, E. and D.
  374.                Crocker, "SMTP Service Extensions", RFC 1869, November
  375.                1995.
  376.  
  377.    [ETRN]      De Winter, J., "SMTP Service Extension for Remote Message
  378.                Queue Starting", RFC 1985, August 1996.
  379.  
  380.    [KEYWORDS]  Bradner, S., "Key words for use in RFCs to Indicate
  381.                Requirement Levels", BCP 14, RFC 2119, March 1997.
  382.  
  383.    [SASL]      Myers, J., "Simple Authentication and Security Layer
  384.                (SASL)", RFC 2222, October 1997.
  385.  
  386.    [SMTP]      Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC
  387.                821, August 1982.
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Gellens                     Standards Track                     [Page 7]
  395.  
  396. RFC 2645                  On-Demand Mail Relay               August 1999
  397.  
  398.  
  399. 11.  Author's Address
  400.  
  401.    Randall Gellens
  402.    QUALCOMM Incorporated
  403.    5775 Morehouse Dr.
  404.    San Diego, CA  92121-2779
  405.    U.S.A.
  406.  
  407.    Phone: +1.619.651.5115
  408.    EMail: randy@qualcomm.com
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Gellens                     Standards Track                     [Page 8]
  451.  
  452. RFC 2645                  On-Demand Mail Relay               August 1999
  453.  
  454.  
  455. 12.  Full Copyright Statement
  456.  
  457.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  458.  
  459.    This document and translations of it may be copied and furnished to
  460.    others, and derivative works that comment on or otherwise explain it
  461.    or assist in its implementation may be prepared, copied, published
  462.    and distributed, in whole or in part, without restriction of any
  463.    kind, provided that the above copyright notice and this paragraph are
  464.    included on all such copies and derivative works.  However, this
  465.    document itself may not be modified in any way, such as by removing
  466.    the copyright notice or references to the Internet Society or other
  467.    Internet organizations, except as needed for the purpose of
  468.    developing Internet standards in which case the procedures for
  469.    copyrights defined in the Internet Standards process must be
  470.    followed, or as required to translate it into languages other than
  471.    English.
  472.  
  473.    The limited permissions granted above are perpetual and will not be
  474.    revoked by the Internet Society or its successors or assigns.
  475.  
  476.    This document and the information contained herein is provided on an
  477.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  478.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  479.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  480.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  481.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  482.  
  483. Acknowledgement
  484.  
  485.    Funding for the RFC Editor function is currently provided by the
  486.    Internet Society.
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Gellens                     Standards Track                     [Page 9]
  507.  
  508.