Distributed MajorBBS Architecture V2.2 preliminary Docs
=======================================================

Intro
=====

DMA2.2 allows you to move modules from your main BBS onto a DMA Server, and
make these changes tranparent to your users. DMA2.2 takes care of automatic
account create, login, logout, echo control and module page selection for you.

DMA2.2 is a secure environment, as long as you set it up properly. Be careful.

Definitions
===========

MasterBBS :  BBS from where your callers first connect
DMA Server:  BBS where the actual module they want to run is.

Compatibility
=============

DMA1.0 is still supported in the code, but no longer supported as a product.
Once you have converted your DMA1.0 DMA Server over, you should set level 4 option
of tcplibm.msg on the DMA Server DMAPH1 to NO.

DMA2.2 MasterBBS can be running MajorBBS 6.25 or WorldGroup. It must be
running MajorTCP/IP v1.78 or above. The outgoing-only or the combo version
of MajorTCP/IP is required on the MasterBBSes.

We have a DMA2.2 client for ICO that is in pre-release format.

DMA2.2 DMA Server can be running MajorBBS 6.25 or WorldGroup. It must be
running DMA2.2 Server software.

Multiple-Multiple Relationships
===============================

DMA2.2 supports multiple MasterBBSes having pages that point to multiple
DMA Servers. User-ID collision is prevented by using a "suffix" that is
added to the userid of your users when using accounts on the DMA Server.
These suffixes are controlled by the MasterBBSes. Suffix 0 is no-suffix.

To prevent User-ID collision, you must limit the size of your User-IDs on
the MasterBBSes to 25 characters.

LICENSING
=========

Your DMA Server 2.2 License includes the right to copy your MajorBBS/Worldgroup
system onto ONE DMA Server. Note that you can only run DMA Channels and ONE
Lan channel on the DMA Servers. You are specifically prohibited from connecting
modems onto a DMA Server.

You must purchase appropriate copies of DMA Server for EACH computer that
is used as a DMA Server in a DMA2.2 system.

If you use DMA to run multiple copies of a module, then you are probably
violating the license that was allocated to you by the author of the
module. There might be exceptions, please contact the author of the
respective software for more information.

Security
========

Security is handled on 7 levels:

    1) Any DMA Server will automatically refuse any telnet and rlogin calls.
    2) You set BANMODE (level 4 configuration option) on the DMA Server to YES
       and list the IP addresses of the MasterBBSes you'll allow to use
       your DMA Server in the file tcpsites.ban. (one entry per line).
    3) A MasterBBS that is calling using DMA2.2 must know the DMA Password
       (level 3 configuration option, tcplibm.msg on the DMA Server) in order
       for the call to be processed properly. Change this from the default.
    4) On the MasterBBS, you must enter the DMA Password on the RLogin module
       command string (in the menu) for the call to get through. Users that
       somehow find their way into the rlogin module won't be able to get
       through. BUT YOU SHOULD NEVER LET YOUR USERS ENTER THE RLOGIN MODULE
       WITHOUT USING A PAGE THAT HAS THE RLOGIN QUESTIONS FILLED-IN FOR THEM
       IN THE MENU COMMAND STRING.

    5) Option DMAMAST (level 3, tcplibm, on DMA Server) will decide if
       the DMA Server should give the Master Key, if the connecting
       account has the Master Key on his own BBS. If you allow this,
       be _very_ cautious.

    6) * Experimental * If you put the word DMAIPLOK in one of the tcplibm,
      level 1 Special Configuration Options (CFGTXT00 to CFGTXT09) (on the
      DMA Server), an account will be allowed to log only if the account's
      address 3 field (can be edited in the user account editor) contains
      an IP address that matches the IP address of the caller. If the address
      3 field doesn't match the IP address, the user will see "failed DMA
      login" and a message will be printed in the audit trail on the DMA
      Server. If the address 3 field does not contain an IP address, or
      the DMAIPLOK is not enabled, then this is ignored. Note that starting
      with DMA2.0, the DMA server automatically puts the IP address of the
      caller when creating the account in the address 3 field.

    7) * Experimental * If you put the word DMAOLDRM in one of the tcplibm,
      level 1 Special Configuration Options (CFGTXT00 to CFGTXT09) (on the
      DMA Server), the DMA Server will automatically flag an account for
      deletion, (and print a message in the audit trail), if the creation
      date of the account on the MasterBBS is newer by more than 2 days
      than the creation date of the account on the DMA Server. Note that
      accounts that are exempt from deletion are exempted there too.

Message Files Changes on the DMA Server
=======================================

1) Make sure that you can create new accounts on your DMA Server, and
   that they end up in a class that will give them access to all public
   features of the DMA Server. You should set accounts to be deleted after
   a certain period of no-usage.

2) Configuration Options Changes:
    ASKBDY  : NO (bbssup.msg, level 4)
    SUBBBS  : YES (tcplibm, level 4)
    DMASEQ  : (tcplibm, level 4), leave at default of 01 for your
              first DMA Server under that registration number. Set to 02
              for your second, .... You'll need different activation codes
              for different sequence numbers.
    DMACODE : Enter your 8 character DMA2.2 Server Activation code
              (tcplibm, level 3).

    --- MajorBBS 6.25 ---
    DFTPR2  : NOTIFY (galms.msg, level 4)
    SUPU2S  : NO (galms.msg, level 4)
    SUPE2U  : NO (galms.msg, level 4)

    --- WorldGroup ---
    DFLONP  : NEVER (galme.msg, level 4)
    SUPU2S  : NO (galme.msg, level 4)
    SUPE2U  : NO (galme.msg, level 4)
    CLISRV  : NO (bbsmajor.msg, level 4)


NOTE: You should disable all MajorTCP/IP modules that you are not using
      on the DMA Server. A minimal configuration would be to have only
      TCPLIB enabled. That's the only module required on the DMA Server.

Message Files Changes on the MasterBBSes
========================================

1) If you are sending more than one MasterBBS into the same DMA Server
   change SGNUSZ on the MasterBBSes to 27. (bbssup.msg, level 4).

2) Change MAXCAT (bbsmajor.msg, level 4) to be at least 20.

Installing/Moving a Module to a DMA Server
==========================================

1) Just copy/install the module files over to the DMA Server. You
   may have to call the authors of the software to have the
   module transfered to the new MajorBBS registration number
   of the DMA Server. No Specific configuration changes are required
   for DMA Server operation. If the module has a configuration option
   for DMA or SubBBS, set that to NO. That was used with DMA 1.0.

2) Create a Module page in the menu tree of that DMA Server that will
   point to the proper module. On WorldGroup systems, make sure you
   create this page in the "Terminal Mode" menus. This page
   must be accessible to users that are created on the DMA Server. This
   page can be an orphan page or can be attached to the menu tree.

3) Start the DMA Server, log from the console, and make sure the module
   is working fine. Try it by logging into one of your test users that
   does have sysop privileges.

Setting up the link on the MasterBBS
====================================

Create an RLOGIN module page in an appropriate place in your menu tree, in
both the Terminal and C/S mode if you are running WorldGroup. Protect
it with the key your users must have to enter this module. Put the name
of the module that you'll be using on the DMA Server as the name or description
of that page to help users know what this page do.

The Display Page header prompt doesn't matter as far as we know.

Enter a Command String in the page, using the following format:

d dmapassword suffix ipaddress luser ruser autolof autospc echo mode gopage #desc

d:              Indicates DMA2.2
dmapassword:    Value of DMAPWD on the destination DMA Server
Suffix:         Suffix of your BBS for mutliple MasterBBS->DMA Server
                relationships. Set to 0 for no suffix. Valid suffixes
                are a-z (except x) and 1 to 127.
ipaddress:      IP (numeric) address of DMA Server
luser:          Not used. Set to "." (just a period).
ruser:          Username the user should log into on the remote system.
                Usually set to %u
autolof:        If user should be automatically logged off from the DMA Server
                and brought back to the main BBS when he exits the module
                he was sent into. Usually set to Y
Autospc:        Automatically turn the RLogin extended special commands
                off upon entering the module on the DMA Server. Usually set to Y
echo:           Determine the way the echo will be processed on this connection.
                If set to Y, echo is generated by the DMA Server. Usually set
                when mode = Binary or permanent binary.
                If set to O, echo is generated by the MasterBBS. Usually set
                when mode = Ascii.
                If set to N, the DMA Server will use whatever default echo is
                set for the DMA Server.
mode:           A   : Ascii. Used for line-based module, modules that always
                      wait until you hit enter before processing the command.
                      Example: Most RPG games like TeleArena, CrossRoads.
                      This mode has the advantage of fast echos and also
                      any globals the user type is executed on the MasterBBS.
                      So they can still page and be paged from the MasterBBS.
                B   : Modules that process keys one at a time, like the
                      full screen editor, chatting, ... All commands typed
                      are processed by the DMA Server. Pages, globals, ... every
                      thing takes place on the DMA Server. User is set to BUSY
                      mode on the main BBS.
                P   : Same as B, but permanent, 8 bit clean. Used for file
                      transfers and modules like TW2002. Echo should usually
                      be set to O or N for this mode.
gopage:         Page that will be executed on the DMA Server. This must be
                a module page. (no menu or file pages). User must have
                access to this page.
#desc:          Description that will appear in the online users listing
                on your MasterBBS if you use the TCP_RL_MOD or TCP_RL_MOD2
                text variables in your global handlers on the MasterBBS.

Example of Setup:

TeleArena
d dmapassword 0 111.111.111.111 . %u y y o a TA #TA_5.6
TradeWars
d dmapassword 0 111.111.111.111 . %u y y y p TW2002 #TW2002
FileLibrary
d dmapassword 0 111.111.111.111 . %u y y y p LIB #Library


That's it.

Sylvain Durocher
Vircom Inc.
July 12th/95
Rev Oct 13th/95
Rev Mar 11th/96