KSP-HOST (tm) An Inbound Telnet Server for MS/DOS Bulletin Board Systems Version 1.2 Copyright (C) 1995-96 All Rights Reserved by KEY SOFTWARE PRODUCTS 440 Ninth Avenue Menlo Park, California 94025-1802 BBS/FAX: 415-364-9847 KSP-HOST, KSP-SRVR, KSP-CALL, and KSP-NODE are trademarks of Key Software Products. WATTCP is a trademark of Erick Engelke. Power C and Multi-C are trademarks of Mix Software. Lantastic is a trademark of Artisoft, Inc. Novell is a trademark of Novell Corp. Banyan Vines is a trademark of Banyan Inc. DESQview is a trademark of Quarterdeck Office Systems. TABLE OF CONTENTS CHAPTER 1 - INTRODUCTION ........................... 1 1.1 Other KSP Software ........................... 2 1.1.1 KSP Telnet ............................. 2 1.1.2 KSP FTP ................................ 3 1.1.3 KSP SLIP ............................... 3 1.1.4 KSP Mail ............................... 3 1.1.5 So Many CD's ............................ 3 CHAPTER 2 - INSTALLING THE NETWORK CONNECTION FIRST .... 4 2.1 Packet Driver Shim for Novell .................. 4 2.2 Packet Driver Shim for Novell w/Token-Ring SNAP .. 5 2.3 Packet Driver Shim for Lantastic ............... 5 2.3.1 Changes to CONFIG.SYS ................... 5 2.3.2 Changes to PROTOCOL.INI ................. 6 2.4 Packet Driver Shim for Banyan Vines ............. 7 CHAPTER 3 - THE WATTCP CONFIGURATION FILE ............. 8 3.1 Network Parameters .......................... 9 3.1.1 The PC's Host Name ....................... 9 3.1.2 The PC's Domain Name ..................... 9 3.1.3 The PC's IP Address ...................... 9 3.1.4 The Name Server's IP Address .............. 10 3.1.5 The Router's IP Address .................. 10 3.1.6 The PC's Network Mask .................... 10 3.2 TCP/IP Parameters (optional) ................. 11 3.2.1 Timeouts .............................. 11 3.2.2 Maximum Segment Size (MSS) ............... 11 3.3 Parameters Specific to KSP Host ................ 11 3.3.1 The Log File Directory ................... 11 3.3.2 Retrieving Hostname of Remote Client ...... 12 3.3.3 Specifying the Fossil Ports .............. 12 3.3.4 Specifying the Buffer Size ............... 13 3.3.5 Maximum Number of Rings .................. 13 3.3.6 Sending a "CONNECT" string to the BBS ....... 13 3.3.7 Specifying Modem Delay .................. 14 3.3.8 Disabling Automatic Load High ............ 14 CHAPTER 4 - Programs in the KSP Host Package ............ 15 4.1 KSP-NODE (Installed on each BBS Machine) ........ 15 4.1.1 Command Line Parameters ................. 15 4.2 KSP-CALL (Used to Test KSP-NODE) ............... 16 4.2.1 Command Line Parameters ................. 16 4.3 KSP-SRVR (The Inbound Telnet Server) ........... 16 4.3.1 Command Line Parameters ................. 16 CHAPTER 5 - SPECIAL CONFIGURATION CONSIDERATIONS ..... 18 5.1 PCBoard .................................... 18 5.2 DESQview ................................... 18 TABLE OF CONTENTS 5.3 Novell ..................................... 18 APPENDIX 1 - HOW TO REACH US .......................... 20 APPENDIX 2 - GETTING UPDATES VIA THE INTERNET .......... 21 APPENDIX 3 - LEGAL STUFF ............................ 22 Feb 09, 1996 KSP-HOST (tm) v1.2 1 CHAPTER 1 - INTRODUCTION KSP-HOST allows MS/DOS Bulletin Board Systems to accept inbound Telnet connections. In addition to being able to contact your BBS by modem, users can now connect to your BBS over the Internet using Telnet. The name "KSP-HOST" actualy refers to a pair of programs: A program called KSP-SRVR handles reception of inbound Telnet sessions and communicates with another program called KSP-NODE running on each of your BBS nodes: ÉÍÍÍÍÍÍÍÍÍÍ» ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ KSP-SRVR º ³ ÄĶ º ³ (NetBios) ÄĶ ºÄÄÄÄÄ Internet ³ º Telnet º (TCP/IP) ³ ÚÄÄÄÄÄÄÄÄÄĶ Host º ÉÍÍÍÍÍÏÍÍÍÍ» ÉÍÍÍÍÍÏÍÍÍÍ» ÈÍÍÍÍÍÍÍÍÍͼ º KSP-NODE º ... º KSP-NODE º ÈÍÍÍÍÍÑÍÍÍͼ ÈÍÍÍÍÍÑÍÍÍͼ ÚÄÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄ¿ ³ BBS Prog ³ ... ³ BBS Prog ³ ³ (Node 1) ³ ³ (Node N) ³ ÀÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÙ This arrangement allows Telnet users to use a single Internet IP address or hostname (that of the machine running KSP-SRVR) to contact your BBS. KSP-SRVR then determines which BBS nodes are available, and routes the session to one of those nodes. As implied, KSP-SRVR can handle multiple telnet connections at the same time. The above diagram illustrates how things are organized logically; the actual physical organization is somewhat different: Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 2 Local Ethernet (Novell, Artisoft, etc.) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄ ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÁÄÄÄÄ¿ ³ BBS Prog ³ ³ ³ BBS Prog ³ ³ ³ Packet ³ ³ Router ³ ³ (Node 1) ³ ³ ³ (Node N) ³ ³ ³ Driver ³ ³ E.g., ³ ÀÄÄÄÄÄÂÄÄÄÄÙ ³ ÀÄÄÄÄÄÂÄÄÄÄÙ ³ ÀÄÄÄÄÄÂÄÄÄÄÙ ³ KA9Q NET³ ³ ³ ³ ³ ³ ÀÄÄÄÄÂÄÄÄÄÙ ÉÍÍÍÍÍÏÍÍÍÍ» ³ ÉÍÍÍÍÍÏÍÍÍÍ» ³ ³ ³ º KSP-NODE ÇÄÄÙ º KSP-NODE ÇÄÄÙ ÉÍÍÍÍÍÏÍÍÍÍ» ³ ÈÍÍÍÍÍÑÍÍÍͼ ÈÍÍÍÍÍÑÍÍÍͼ º KSP-SRVR º ³ ³ ³ º Telnet º Internet ÚÄÄÄÄÄÁÄÄÄÄ¿ ÚÄÄÄÄÄÁÄÄÄÄ¿ º Host º Connection ³ Fossil ³ ... ³ Fossil ³ ÈÍÍÍÍÍÍÍÍÍͼ (TCP/IP) ³ Driver ³ ... ³ Driver ³ ÀÄÄÄÄÄÂÄÄÄÄÙ ÀÄÄÄÄÄÂÄÄÄÄÙ ³ ³ Modem Modem As indicated, the small TSR program KSP-NODE, acts as a switch so that each BBS node can accept either Telnet calls or regular modem calls. This requires every BBS node to use a Fossil driver as shown. Communication between KSP-SRVR and KSP-NODE uses NetBios. I.e., KSP-SRVR is a protocol converter that translates Internet TCP/IP packets into NetBios packets, and vice-versa. NetBios is commonly supported by most local area network software such as Lantastic or Novell. The packet driver (or packet driver shim) is explained in the next chapter; detailed information regarding the installation and configuration of KSP-SRVR and KSP-NODE appears in subsequent chapters. The router shown above connects your local network to the Internet; a shareware program called KA9Q NET can serve this purpose. 1.1 Other KSP Software Key Software Products offers a number of other products for BBS's: Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 3 1.1.1 KSP Telnet A door program that allows callers to connect to remote computers anywhere on the Internet via your BBS. Available now on our BBS. 1.1.2 KSP FTP A door program that allows callers to transfer files to/from remote computers anywhere on the Internet via your BBS. 1.1.3 KSP SLIP A door program that allows callers to run any TCP/IP software from home, including using Mosaic to browse the World Wide Web. Available now on our BBS. 1.1.4 KSP Mail A Multi-Threaded Server for SMTP Mail and NNTP Usenet news. Replaces UUCP, its monthly fees, and slow transfer rates! No more unwanted newsgroups! Instant mail without waiting for scheduled events! Works with any BBS software that presently uses UUCP. Requires a 24hr TCP/IP Internet connection. Can now receive NNTP news feeds! 1.1.5 So Many CD's A PCBoard PPE to handle off-line CD-Roms. Seamlessly integrated into PCBoard. Users post requests for off-line files and have then returned as attachments to messages. Configurable message pack-out dates automatically keep your hard disk from getting cluttered. Available now on our BBS. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 4 CHAPTER 2 - INSTALLING THE NETWORK CONNECTION FIRST Before installing KSP-SRVR, you must first install: 1. The network interface hardware. 2. A corresponding packet driver. 3. A packet driver shim (if needed). Detailed directions for these preliminary steps are available in separate documentation that comes with the corresponding hardware or software. It's most common that multi-node BBS's are interconnected with Ethernet and either Lantastic or Novell. Unfortunately, these two network operating systems were designed using their own proprietary protocols rather than the TCP/IP protocol and their own proprietary software rather than packet drivers to talk to their Ethernet interface cards. However, a piece of software called a packet driver "shim" can be used to let both TCP/IP and their proprietary protocol coexist. 2.1 Packet Driver Shim for Novell Novell's network software is installed in layers as TSRs in the order shown below. These commands are usually found either in the AUTOEXEC.BAT file or in another batch file in a directory typically called C:\NWCLIENT. LSL NE2000 }-- specific to your interface card IPXODI VLM The packet driver shim (ODIPKT) logically sits on top of IPXODI, providing a packet driver interface for software such as KSP-SRVR: LSL NE2000 +--- Frame Type (0-3) IPXODI | ODIPKT 2 97 }--- The packet driver shim VLM | +----- Packet Vector Interrupt (96-127) (See comment below about hex vs. decimal) The ODIPKT command line parameters may vary according to which version of the software you have and how your hardware is Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 5 configured. The "Frame Type" parameter should correspond to the position of ETHERNET_II among the frame types specified in NET.CFG; zero (0) selects the first frame type, one (1) the second, and so on. The "Packet Vector Interrupt" number should correspond to an unused interrupt vector. Note that older versions of ODIPKT insist that this number be given in decimal (96-127) rather than in hex (0x60-0x7F). The necessary packet driver shim can be downloaded from the Key Software Products BBS as file ODI-SHIM.ZIP. 2.2 Packet Driver Shim for Novell w/Token-Ring SNAP Another shim called ODITRPKT exists for Novell that should be used if the underlying network is Token-Ring_SNAP. Installation is similar to ODIPKT as described above, except that the first command line parameter must correspond to the Token-Ring_SNAP frame type in NET.CFG, and starts at "1" rather than "0". This shim can be downloaded from the Key Software Products BBS as file TKN-SHIM.ZIP. 2.3 Packet Driver Shim for Lantastic Using a packet driver shim with Lantastic requires that Lantastic be installed using NDIS (Network Driver Interface Specification) Support. The necessary packet driver shim can be downloaded from the Key Software Products BBS as file DIS-SHIM.ZIP. NDIS allows you to stack multiple protocols on a single adapter. This lets you use multiple protocol drivers (such as LANtastic and TCP/IP) on the same adapter. You can also use NDIS to include third-party adapters that have NDIS drivers in your LANtastic network. Supported adapter types include Ethernet, Token-Ring and ARCNET (R) adapters. The software and documentation necessary to add NDIS support to an existing Lantastic network is available free of charge from Artisoft. Once you have NDIS installed and working with Lantastic, adding the shim is a simple matter of editing PROTOCOL.INI (part of the NDIS support) and CONFIG.SYS. 2.3.1 Changes to CONFIG.SYS With NDIS installed, there will be two device driver lines in your CONFIG.SYS file that look something like the following: Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 6 DEVICE=C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI DEVICE=C:\LANTASTI\AEXNDIS.DOS The file listed in the second line may differ if you are not using Artisoft's interface card; in that case, this file would typically be replaced by a NDIS driver supplied by the card manufacturer. The packet driver shim itself is installed as a third device driver after the first two, as in: DEVICE=C:\LANTASTI\PROTMAN.DOS /I:C:\LANTASTI DEVICE=C:\LANTASTI\AEXNDIS.DOS DEVICE=C:\DRIVERS\DIS_PKT.DOS }--- The packet driver shim 2.3.2 Changes to PROTOCOL.INI The PROTOCOL.INI file is a text file created (usually in the C:\LANTASTI directory) as part of the NDIS installation. Before adding the packet driver shim, it typically looks like the following, but with the "iobase" and "interrupt" parameters changed according to your hardware, or with the entire "[AEXNDIS_NIF]" section replaced if you are not using an Artisoft interface card. [PROTMAN] DRIVERNAME = PROTMAN$ DYNAMIC = YES [AEXNDIS_NIF] DRIVERNAME = AEXNDS$ IOBASE = 0x300 INTERRUPT = 15 Adding the packet driver shim requires adding another section to the PROTOCOL.INI file: [PROTMAN] DRIVERNAME = PROTMAN$ DYNAMIC = YES [AEXNDIS_NIF] <---+ DRIVERNAME = AEXNDS$ | IOBASE = 0x300 | INTERRUPT = 15 | These names must match! | Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 7 [PKTDRV] | DRIVERNAME = PKTDRV$ | BINDINGS = AEXNDIS_NIF <---+ INTVEC = 0x61 CHAINVEC = 0x66 NOVELL = Y Note that the name "AEXNDIS_NIF" must exactly match the spelling used as the title of the previous section, "[AEXNDIS_NIF]"; if you are not using Artisoft interface cards, then both occurences will use some other identifier. The "INTVEC" parameter may be anything from 0x60 to 0x80; you may have to experiment to find an unused interrupt number. 2.4 Packet Driver Shim for Banyan Vines Although Key Software Products has never used it, and thus cannot offer help on its installation, a packet driver shim does exist for Banyan Vines and can be downloaded from the Key Software Products BBS as file BAN-SHIM.ZIP. Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 8 CHAPTER 3 - THE WATTCP CONFIGURATION FILE In order to run, KSP-SRVR and KSP-NODE need to know some information about your network and BBS configuration, and tries to find this in a configuration file called WATTCP.CFG. KSP-SRVR and KSP-NODE look in three directories to locate this file. First, they check for an environment variable called WATTCP.CFG that specifies the directory. Second, they look in the current (default) directory. Third, if still not found, they look in the directory that contains the executable (KSP-SRVR.EXE or KSP-NODE.EXE). The following example may be helpful for those using the environment variable approach: If you place WATTCP.CFG in your PCB directory, then your AUTOEXEC.BAT file should contain the following command: set WATTCP.CFG=C:\PCB Note that there is no trailing "\" after the directory name! If KSP-SRVR or KSP-NODE still can't find the configuration file, they will attempt to automatically configure by looking for a "BOOTP" server on your network. Most BBSs will not have a BOOTP server, so we do not recommend this approach. We only mention it here because it explains why you'll get a message saying "Configuring through BOOTP" if it can't find your configuration file. The WATTCP.CFG configuration file is a normal text file containing one entry per line. A sample configuration file is included in this distribution, but the values MUST be modified to suit your particular environment or else KSP-SRVR and KSP-NODE will not work! The syntax of every entry follows the following format: [ directive = [ "data" | data ] ] [ # comment | ; comment ] I.e., if a directive is not followed by data, the directive is ignored. Similary, lines without directives are ignored. The directive is NOT case sensitive; the data IS case sensitive. e.g., netmask=255.255.252.0 domainslist=ksp.com ; Our domain Whitespace is normally removed from data; data containing blanks must be surrounded by quotes. An unquoted '#' or ';' marks the Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 9 beginning of a comment. 3.1 Network Parameters The following parameters control how KSP-SRVR communicates with the rest of the TCP/IP network. 3.1.1 The PC's Host Name This is the network name of the PC that runs KSP-SRVR. Example: hostname=bbs Note that the host name does not include the domain name suffix. For example, the hostname of machine '"bbs.ksp.com" is simply "bbs". 3.1.2 The PC's Domain Name This is the network name of the subnet to which your PC (and possibly others) are connected. Example: domainslist=ksp.com Note that the domain name does not include the host name prefix. For example, the domain name of machine '"bbs.ksp.com" is "ksp.com". 3.1.3 The PC's IP Address This is the unique IP address assigned to your KSP-SRVR machine. It is the one Telnet users will use when trying to connect to your BBS through the Internet. (They may also use the hostname.domainname format if supported by your nameserver.) Example: my_ip=100.2.37.4 Note: As an alternative, you may also set the IP address using an environment variable, as in: set ksp-ip=100.2.37.4 NOTE: An "IP address" is a logical addressing scheme used on TCP/IP networks such as the Internet. Each computer connected to the Internet is assigned a unique IP address. Your local Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 10 network "guru" or access provider should be able to provide you with the IP addresses you need. IMPORTANT: The IP addresses given in this document are only examples. Do NOT attempt to use them - they will NOT work and your network administrator will probably get VERY upset! 3.1.4 The Name Server's IP Address This is the unique IP address assigned to a network name nerver. You may specify more than on nameserver by using more than one "nameserver" line. Example: nameserver=111.21.108.110 Your local network "guru" or access provider should be able to provide you with the proper IP addresses of appropriate network name servers. 3.1.5 The Router's IP Address This is the unique IP address assigned to the network router. Syntax: gateway = ipaddr [ , subnet [ , subnet_mask ] ] Examples: gateway=129.97.176.1 gateway=129.97.176.2,129.97.0.0 gateway=129.97.176.2,129.97.0.0,255.255.0.0 Usually the (destination) subnet and subnet mask need not be specified, and is used to create a "default". The other forms are used to specify one or more other gateways for particular subnets. Your local network "guru" or access provider should be able to provide you with the proper IP address of the network router. 3.1.6 The PC's Network Mask Network masks are used to distinguish destination IP addresses that are on the local subnet from those that are not. This option may not be required, depending on your network topology. Example: netmask=255.255.254.0 Your local network "guru" or access provider should be able to Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 11 provide you with the proper netmask if needed. 3.2 TCP/IP Parameters (optional) KSP-SRVR will work without using the following parameters, but they are provided if you wish to change them. 3.2.1 Timeouts Most network operations (such as establishing a connection to a remote host) have a maximum time before a timeout error occurs. The default value is 30 seconds; a smaller value is unwise, but larger values may be necessary for particularly bad connections. Example: sockdelay=40 3.2.2 Maximum Segment Size (MSS) The default value of MSS is 1400. If you know what maximum segment size means and know what size you want, you can change it: Example: mss=512 Note: Some Internet access providers configure their dial-up slip and ppp accounts with a very small segment size. You may need to set mss as low as 212 if your Internet connection is through such a connection. 3.3 Parameters Specific to KSP Host Two parameters in the WATTCP.CFG configuration file are specific to the operation of KSP-SRVR. Each follows the syntax: ksp-srvr.= 3.3.1 The Log File Directory Syntax: ksp-srvr.log_directory= Example: ksp-srvr.log_directory=c:\ksp Purpose: Specifies the directory where the file KSP-SRVR.LOG is Copyright (C) 1995-96, Key Software Products. All Rights Reserved Feb 09, 1996 KSP-HOST (tm) v1.2 12 stored. Each entry is made using the following format: ,