home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1429.txt < prev    next >
Text File  |  1996-05-07  |  18KB  |  230 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          E. Thomas Request for Comments: 1429                    Swedish University Network                                                            February 1993 
  8.  
  9.                        Listserv Distribute Protocol 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo provides information for the Internet community.  It does    not specify an Internet standard.  Distribution of this memo is    unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    This memo specifies a subset of the distribution protocol used by the    BITNET LISTSERV to deliver mail messages to large amounts of    recipients.  This protocol, known as DISTRIBUTE, optimizes the    distribution by sending a single copy of the message over heavily    loaded links, insofar as topological information is available to    guide such decisions, and reduces the average turnaround time for    large mailing lists to 5-15 minutes on the average. This memo    describes a simple interface allowing non-BITNET mailing list    exploders (or other bulk-delivery scripts) to take advantage of this    service by letting the BITNET distribution network take care of the    delivery. 
  18.  
  19. Introduction 
  20.  
  21.    Running a mailing list of 1,000 subscribers or more with plain    "sendmail" while keeping turnaround time to a reasonable level is no    easy task. Due mostly to its limited bandwidth in the mid-80's,    BITNET has developed an efficient bulk delivery protocol for its    mailing lists. Originally introduced in 1986, this protocol was    refined little by little and now carries 2-6 million mail messages a    day. In fact, this distribution mechanism implements a general-    purpose delivery service which can be used by any user of BITNET or    the Internet. Thus, a simple solution to the "sendmail" turnaround    problem is to wrap the message and recipient list in a DISTRIBUTE    envelope and pass it to a BITNET server for delivery.  This may not    be the best possible solution, but it has the advantage of being easy    to implement. 
  22.  
  23.    In this document we will use the term "production" to refer to the    normal operation of the mailing list (or bulk delivery application)    you want to pipe through the DISTRIBUTE service. That is, the    "production" options are those you should specify once everything is    tested and you are confident that the setup is working to your 
  24.  
  25.  
  26.  
  27. Thomas                                                          [Page 1] 
  28.  RFC 1429              Listserv Distribute Protocol         February 1993 
  29.  
  30.     satisfaction. In contrast, "test" and "debug" options can be used to    experiment with the protocol but should not be used for normal    operation because of the additional bandwidth and CPU time required    to generate the various informational reports. 
  31.  
  32.    Finally, it should be noted that the DISTRIBUTE protocol was    developed to address a number of issues, some of them relevant only    to BITNET, and has evolved since 1986 while keeping a compatible    syntax. For the sake of brevity, this RFC describes only a small    subset of the available options and syntax. This is why the syntax    may appear unnecessarily complicated or even illogical. 
  33.  
  34. 1. Selecting an entry point into the DISTRIBUTE backbone 
  35.  
  36.    The first thing you have to do is to find a suitable site to submit    your distributions to. For testing, and for testing ONLY, you can    use: 
  37.  
  38.                          LISTSERV@SEARN.SUNET.SE 
  39.  
  40.    For production use, however, you should select a DISTRIBUTE site in    your topological vicinity: it would make no sense to pass your    distributions from California to a server in Sweden if most of your    recipients are in the US. If your organization is connected to BITNET    and your BITNET system is part of the DISTRIBUTE backbone, this ought    to be your best bet. Otherwise you will want to contact someone    knowledgeable about BITNET (or the author of this RFC if you have no    BITNET users). Make sure to run through the following checklist    before sending any production traffic to the site in question: 
  41.  
  42.     a. Do you have good connectivity to the host in question? Does the       host, in general, have decent BITNET connectivity? There are still       a few sites that insist on using 9.6k leased lines for BITNET in       spite of having T1 IP access. You will want to avoid them. 
  43.  
  44.    b. Send mail to the server with "show version" in the message body       (not in the subject field, which is ignored). Is the server running       version 1.7f or higher? If so, it should not have given you the       following warning, 
  45.  
  46.         >>> This server is configured to use PUNCH format for mail <<< 
  47.  
  48.       which means that messages with lines longer than 80 characters       cannot be handled properly. If the software version is less than       1.7f, the warning will not be present; instead, check the first       (bottom) "Received:" field. If it does not say "LMail", do not use       this server as it probably cannot handle messages with long lines. 
  49.  
  50.  
  51.  
  52. Thomas                                                          [Page 2] 
  53.  RFC 1429              Listserv Distribute Protocol         February 1993 
  54.  
  55.        Finally, make sure that the "Master nodes file" is not older       than 2 months: there are a handful of sites which never update       their tables due to staffing problems. They cannot be prevented       from running LISTSERV, but you will certainly want to avoid them. 
  56.  
  57.    c. How big is your workload? If you are planning to use the service       for more than 10,000 daily recipients, you should get permission       from the LISTSERV administrator, both as a matter of courtesy and       to hear about any restrictions or regularly scheduled downtime they       might have. For instance, some universities might not allow large       distributions during prime time, or they may have several       DISTRIBUTE machines and will want to make sure you use the "right"       one.  Send mail to "owner-listserv" at the host in question and       give an estimate of the amount of daily messages and recipients you       would like to submit. If your message bounces back with "No such       local user" or the like, it means the server did not pass the above       test (b) and you don't want to use it anyway. 
  58.  
  59.    An index of sites/hosts which have the required configuration, good    connectivity, keep their tables up to date and have generally agreed    to provide this service to anyone in their topological area will be    published separately in the future. 
  60.  
  61. 2. Physical delivery of the DISTRIBUTE request 
  62.  
  63.    The distribution request is delivered via SMTP to the e-mail address    obtained in step 1 (for instance, LISTSERV@SEARN.SUNET.SE). In fact,    as long as you can somehow get mail to the server's host, you can use    the service; SMTP is just the most convenient way of doing so. 
  64.  
  65. 2.1. Contents of MAIL FROM: field 
  66.  
  67.    You should set the MAIL FROM: field to the address of the person who    maintains your mailing list or, generally speaking, to the address of    a human being who can take action in case the message fails to reach    the DISTRIBUTE server's host. This is a very rare occurrence. 
  68.  
  69. 2.2. Contents of RCPT TO: field 
  70.  
  71.    The RCPT TO: field points to the server's address (for instance,    LISTSERV@SEARN.SUNET.SE). 
  72.  
  73. 2.3. Contents of the RFC822 header 
  74.  
  75.    After the DATA instruction, you must supply a valid RFC822 header    with a "From:" field pointing to the mailbox that should receive    notification of delivery problems, bounced mail, and so on. This can    be the same as the MAIL FROM: field, an address of the type "owner- 
  76.  
  77.  
  78.  
  79. Thomas                                                          [Page 3] 
  80.  RFC 1429              Listserv Distribute Protocol         February 1993 
  81.  
  82.     xxxx@yourhost", etc.  DO NOT PUT THE LIST SUBMISSION ADDRESS THERE,    or you will get mailing loops. 
  83.  
  84.    For testing, the "From:" field should point to your own mailbox, so    that you get the responses from the server. 
  85.  
  86.    As long as RFC822 syntax is respected, the only field that matters is    the "From:" field (or "Sender:", "Resent-From:", etc.). In practice    this means you can just pipe the distribution request into "mail    listserv@whatever" and let your mail program build all the headers. 
  87.  
  88. 3. Format of the DISTRIBUTE request 
  89.  
  90.    The body of the message delivered to LISTSERV defines the recipients    of the distribution and the text (header + body) of the RFC822    message you want to have delivered. The request starts with a "job    card", followed by a DISTRIBUTE command, a list of recipients, and    finally the message header and body. 
  91.  
  92. 3.1. Syntax of the JOB card 
  93.  
  94.    The purpose of the JOB card is to make sure that any spurious text    inserted by mail gateways or the like is flushed and not erroneously    interpreted as a command. It can optionally be used to associate a    "job name" with the request, in case you want to use tools to assist    you in processing the notifications you get from the DISTRIBUTE    servers when running in test mode. The syntax is as follows: 
  95.  
  96.    //jobname JOB ECHO=NO 
  97.  
  98.    "jobname" can be anything as long as it does not contain blanks, and    can be omitted. LISTSERV generally ignores case when parsing    commands, so you can use "job" or "Job" if you prefer. The ECHO=NO    keyword is required for production use, to suppress the "resource    usage summary" you would otherwise get upon completion of your    delivery. You may want to omit it when testing. 
  99.  
  100. 3.2. Syntax of the DISTRIBUTE command 
  101.  
  102.    Below the JOB card, you must supply the following line: 
  103.  
  104.    DISTRIBUTE MAIL 
  105.  
  106.    For production mode, do not specify anything else on that line. When    testing, you should add ACK=MAIL in order to get an acknowledgement    confirming the delivery. There are two other useful options:    DEBUG=YES, which instructs the server to produce a report showing how    the various recipients will be routed, but without actually 
  107.  
  108.  
  109.  
  110. Thomas                                                          [Page 4] 
  111.  RFC 1429              Listserv Distribute Protocol         February 1993 
  112.  
  113.     delivering the message; and TRACE=YES, which does the same but does    deliver the message. Before making a "live" test with your actual    recipients list, you should tack the DEBUG=YES option once to make    sure you got all the parameters and syntax right, and get a rough    idea of the efficiency of the distribution (see the section on    performance). 
  114.  
  115. 3.3. Giving the list of recipients 
  116.  
  117.    The list of recipients follows the DISTRIBUTE line and is specified    as follows: 
  118.  
  119.    //To DD *    user1@host1 BSMTP    user2@host2 BSMTP    /* 
  120.  
  121.    The two lines starting with a "/" have to be copied as-is. Each of    the lines in between contains the address of one of the recipients,    followed by a blank and by the word "BSMTP", which indicates that you    do not want the header rewritten. There are four restrictions: 
  122.  
  123.    a. The address must be a plain "local-part@hostname" - no name string,       no angle bracket, no source route, etc. Bear in mind that the       DISTRIBUTE server is not in the same domain as you: all the       addresses should be fully qualified. 
  124.  
  125.    b. If the local-part is quoted, it must be quoted from the first word       on.  Technically, RFC822 allows: Joe."Now@Home".Smith@xyz.edu, but       for performance reasons this form is not supported. Just quote the       first word to tell LISTSERV to run the address through the full       parser: you would write "Joe"."Now@Home".Smith@xyz.edu instead. 
  126.  
  127.    c. The local-part of the address may not start with an (unquoted)       asterisk.  You can bypass this restriction by quoting the local       part and using a %-hack through the server's host:       "***JACK***%jack-ws.xyz.edu"@server-host. 
  128.  
  129.    d. Blanks are not allowed anywhere in the address. 
  130.  
  131.    You can use the pseudo-domain ".BITNET" for BITNET recipients: it is    always supported within DISTRIBUTE requests. 
  132.  
  133. 3.4. Specifying the message text 
  134.  
  135.    After the last recipient and the closing "/*", add the following    line, 
  136.  
  137.  
  138.  
  139.  Thomas                                                          [Page 5] 
  140.  RFC 1429              Listserv Distribute Protocol         February 1993 
  141.  
  142.     //Data DD *,EOF 
  143.  
  144.    followed by the RFC822 message (header + body) that you want    delivered.  The EOF option indicates that the message header and body    will extend until the end of the message you are sending to the    DISTRIBUTE server.  If you are worried about extraneous data being    appended by a gateway, remove the EOF option, add a closing "/*" line    after the end of the message, followed by a "// EOJ" card to flush    any remaining text. This, however, will fail if the message itself    contains a "/*" line; you would have to insert a space before any    such line. 
  145.  
  146. 4. Examples 
  147.  
  148.    Here is an (intentionally short) example to clarify the syntax: 
  149.  
  150.    ----- cut here -----    //Test JOB    Distribute mail Ack=mail Debug=yes    //To DD *    joe@ws-4.xyz.edu BSMTP    jack@abc.com BSMTP    jim@tamvm1.bitnet BSMTP    jill@alpha.cc.buffalo.edu BSMTP    james@library.rice.edu BSMTP    /*    //Data DD *,EOF    Date:         Tue, 19 Jan 1993 10:57:29 -0500    From:         Robert H. Smith <RHS@eta.abc.com>    Subject:      Re: Problem with V5.41    To:           somelist@some.host.edu 
  151.  
  152.    I agree with Jack, V5.41 is not a stable release. I had to fall back    to V5.40 within 5 minutes of installation... 
  153.  
  154.                                            Bob Smith    ----- cut here ----- 
  155.  
  156.    Note: some of the hostnames are genuine, but the usernames are all    fictitious. 
  157.  
  158.    You would get the following reply: 
  159.  
  160.    --------------------------------------------------------------------    Job "Test" started on 20 Feb 1993 01:09:40 
  161.  
  162.    > Distribute mail ack=mail debug=yes    Debug trace information: 
  163.  
  164.  
  165.  
  166. Thomas                                                          [Page 6] 
  167.  RFC 1429              Listserv Distribute Protocol         February 1993 
  168.  
  169.     ABC.COM                   goes to SEARN    (213) - single recipient    ALPHA.CC.BUFFALO.EDU      goes to UBVM     (027) - single recipient    LIBRARY.RICE.EDU          goes to RICEVM1  (022) - single recipient    TAMVM1                    goes to TAIVM1   (247) - single recipient    WS-4.XYZ.EDU              goes to SEARN    (213) - single recipient 
  170.  
  171.    Path information: 
  172.  
  173.     TAIVM1  : UGA      RICEVM1  TAIVM1     UBVM    : UGA      UBVM     RICEVM1 : UGA      RICEVM1 
  174.  
  175.    (Debug) Mail forwarded to LISTSERV@UGA      for   3 recipients.    (Debug) Mail posted via BSMTP to jack@ABC.COM.    (Debug) Mail posted via BSMTP to joe@WS-4.XYZ.EDU. 
  176.  
  177.    Job "Test" ended   on 20 Feb 1993 01:09:40 
  178.  
  179.    Summary of resource utilization    -------------------------------     CPU time:        0.086 sec                Device I/O:     6     Overhead CPU:    0.045 sec                Paging I/O:     5     CPU model:        9221                    DASD model:  3380    -------------------------------------------------------------------- 
  180.  
  181.    To actually perform the distribution and get an acknowledgement, you    would change the first two lines as follows: 
  182.  
  183.    ----- cut here -----    //Test JOB Echo=NO    Distribute mail Ack=mail    -------------------- 
  184.  
  185.    And you would get the following reply: 
  186.  
  187.    --------------------------------------------------------------------    Mail forwarded to LISTSERV@UGA      for   3 recipients.    Mail posted via BSMTP to jack@ABC.COM.    Mail posted via BSMTP to joe@WS-4.XYZ.EDU.    -------------------------------------------------------------------- 
  188.  
  189.    Finally, by removing the "Ack=mail" keyword you would perform a    "silent" distribution without any acknowledgement, suitable for    production mode. 
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197. Thomas                                                          [Page 7] 
  198.  RFC 1429              Listserv Distribute Protocol         February 1993 
  199.  
  200.  5. Performance 
  201.  
  202.    The efficiency of the distribution depends mostly on the quality and    accuracy of the topological information available to the DISTRIBUTE    server (and, in some extreme cases, on system load). For BITNET    recipients, the typical turnaround time for reasonably well connected    systems is 5-15 minutes. Internet recipients fall in two categories:    those which can be routed to a machine within or close to the    recipient's organization (average turnaround time 5-20 minutes), and    those for which no topological information is available at all. In    that case the delivery can take much longer, but usually remains    faster than with a vanilla sendmail setup. At the time being,    topological information is available for most top-level domains    outside the US and for many sub-domains of EDU and GOV. 
  203.  
  204.    You can measure the efficiency of the distribution using the    DEBUG=YES option as explained above. Recipients which get forwarded    to another server usually get delivered within 5-20 minutes (except    to poorly connected sites or countries, for which not much can be    done). Recipients which are handled locally are passed to a local    SMTP agent whose efficiency depends very much on the amount of    "burst" queries the local name server can handle in quick succession. 
  205.  
  206.    A number of projects are currently underway to investigate the    feasibility of improving the quality of the topological information    available to the DISTRIBUTE servers for the Internet. 
  207.  
  208. Security Considerations 
  209.  
  210.    Security issues are not discussed in this memo. 
  211.  
  212. Author's Address 
  213.  
  214.    Eric Thomas    Swedish University Network    Dr.Kristinas vaeg 37B    100 44 Stockholm, Sweden 
  215.  
  216.    E-mail: ERIC@SEARN.SUNET.SE 
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  Thomas                                                          [Page 8] 
  229.  
  230.