* TCP/IP NETWORK SETUP This section assumes knowledge of TCP/IP. See "Using MS-DOS Kermit" for additional explanatory material, or Douglas Comer's book "Internetworking with TCP/IP" (Prentice-Hall), or show this material to your network manager. Also consult the networks section of MSKERM.BWR (KERMIT.BWR) for additional detail. To use Kermit's built-in TCP/IP support, you need a network adapter, an Ethernet-class packet driver (not device driver) for the adapter, a SLIP-class packet driver, or a Novell ODI driver for Ethernet, Token Ring, Arcnet, or PCnet, and a connection to a TCP/IP network, or a "shim" that simulates one of these. For example, NDIS drivers can be used by using protocol shim program DIS_PKT on the top of NDIS to form a Packet Driver; the latest version is named DIS_PKT9 from Joe Doupnik at Utah State University. Install either an Ethernet-style packet driver or an ODI driver for your PC's network interface, or a SLIP (Serial Line IP) packet driver for your PC's serial port. For Token Rings, install the IBMTOKEN.COM driver on top of the Token Ring board drivers or use ODI. For NDIS (LAN Manager) environments, install the DIS_PKT "shim" on top of the NDIS drivers. IBMTOKEN and DIS_PKT are available from Columbia as part of the packet driver collection (see below). To use Kermit's TCP/IP support under Windows 3.x, your network interface must be controlled by a packet driver, not an ODI driver. The built-in ODI support does not work under Windows. However, you can still run a "shim" such as ODIPKT over your ODI driver to provide the required packet-driver interface. If you plan to make Kermit TCP/IP connections under Microsoft Windows, you must either: (a) Configure Windows to "Lock Application Memory" in your KERMIT.PIF file. This box is NOT checked in the KERMIT.PIF file as distributed. or: (b) Run the WINPKT "shim" in addition to (and after) your packet driver (including any shims such as ODIPKT). WINPKT should be given a lower software interrupt number than your packet driver, for example (using a Western Digital Ethernet board): WD8003E 0x61 0x7 0x280 0xca00 WINPKT 0x60 0x61 IPX NETX The order is important: start the packet driver first at interrupt 0x61 (or higher). Then start WINPKT, telling it to use interrupt 0x60 to talk to application software, and 0x61 to talk to the actual packet driver. After loading WINPKT, you can optionally load Novell or other packet-driver-compatible network software. NOTE: Do not include the "-w" (Windows) option when starting the packet driver. Only one copy of MS-DOS Kermit can make a network connection at one time under Windows. If your network interface vendor did not supply you with a packet driver, they are available via anonymous FTP from Columbia University, host watsun.cc.columbia.edu [128.59.39.2], cd packet-drivers, get the READ.ME file, read it, and take it from there. These files, now called the Crynwr packet driver collection, are also available from Columbia University via mail order. WINPKT is included on the MS-DOS Kermit distribution diskette. Before Kermit can use the TCP/IP network, you must use SET TCP/IP commands to supply Kermit with the necessary details about it. Check with your network manager to find out the correct values for these commands, and then put them in your MSCUSTOM.INI file. Don't make them up! Automatic downloading of your TCP/IP network configuration via BOOTP is recommended. You can view your TCP/IP settings with the SHOW COMMUNICATIONS command. SET TCP/IP ADDRESS { , BOOTP, RARP } Tell Kermit your PC's IP address (required). If your local network has a BOOTP or RARP server, you can SET TCP/IP ADDRESS BOOTP or RARP to have the server download your IP address automatically. Examples: SET TCP/IP ADDRESS 128.59.77.23 ; My IP address, fully specified SET TCP/IP ADDRESS BOOTP ; Get my address from a BOOTP server SET TCP/IP ADDRESS RARP ; Get my address from a RARP server SET TCP/IP SUBNETMASK Tell Kermit which portion of an IP address corresponds to your physical network. The default is 255.255.255.0. A correct value is essential; it is used by Kermit to tell whether an IP address is on your physical network or must be accessed through a gateway. Incorrect values prevent successful communication. The subnetmask can be downloaded by BOOTP. SET TCP/IP BROADCAST Tell Kermit the IP address to use when sending IP broadcast messages, for example to the BOOTP server, and to recognize incoming ones. The default is 255.255.255.255, meaning "my own physical network". Change this parameter if your BOOTP server is on a different subnet of your local network, or if your local network uses the old 4.2 Berkeley UNIX convention of 0's rather than 1's for IP broadcast addresses. An incorrect value can prevent successful communication, or worse. This parameter can NOT be downloaded from a BOOTP server -- you can't reach the BOOTP server in the first place unless you already have the correct broadcast address. SET TCP/IP PRIMARY-NAMESERVER The IP address of your network's primary nameserver, which translates hostnames into IP addresses. Required if you want to use host names rather than numeric IP addresses in your SET PORT TCP/IP commands. Example: SET TCP/IP PRIMARY-NAMESERVER 128.59.77.1 Can also be downloaded automatically by BOOTP. SET TCP/IP SECONDARY-NAMESERVER The IP address of your network's secondary nameserver, used by Kermit if the primary nameserver is unavailable. If no nameserver is reachable, use IP host numbers rather than names in your SET PORT TCP/IP commands. Nameserver addresses can also be downloaded automatically by BOOTP. SET TCP/IP GATEWAY The IP address of the gateway between your local area network and the rest of the Internet. Required if you want to communicate outside of your immediate local network. Can also be downloaded automatically by BOOTP. SET TCP/IP HOST { , } The default host for SET PORT TCP/IP commands. SET PORT TCP/IP sets this too, so the next SET PORT TCP/IP command remembers it if you omit the host. This allows you to switch back and forth between serial and TCP/IP connections. SET TCP/IP DOMAIN IP domain name for your organization or department, for example columbia.edu for Columbia University, cc.columbia.edu for the Computer Center at Columbia University. This lets you refer to hosts on your local network with nicknames, for example watsun rather than watsun.cc.columbia.edu. When a hostname given in your SET PORT TCP/IP command can't be found, Kermit appends the domain and tries again. If it still can't be found, Kermit trims the leftmost field from the domain and tries again, and so on until the host is found or the domain name is used up: SET TCP/IP DOMAIN cc.columbia.edu SET PORT TCP/IP oofa.cs Kermit tries (in this order): oofa.cs, oofa.cs.cc.columbia.edu, oofa.cs.columbia.edu, oofa.cs.edu. Version 3.13 of MS-DOS Kermit can get the domain name from a BOOTP server that has been upgraded to RFC1395 level. SET TCP/IP PACKET-DRIVER-INTERRUPT { , ODI } MS-DOS Kermit normally searches for the packet driver beginning at interrupt \x60 and going up the \x80. You can use this command to disable MS-DOS Kermit's automatic search and specify a particular interrupt number, for example, SET TCP PACKET-DRIVER \x63. If you specify "ODI" instead of an interrupt number, Kermit uses ODI rather than packet-driver conventions for communicating with the network board driver. SET TCP/IP TELNET-TERM-TYPE Normally MS-DOS Kermit sends the name of terminal it is currently emulating, for example, "VT320", in response to a terminal-type request from the remote TELNET server. Use this command to supply any terminal-type name you want. SET TCP/IP NEWLINE-MODE {OFF, ON} During terminal emulation on a TCP/IP connection, MS-DOS Kermit follows the TELNET specification and transmits carriage and line feed (CRLF) whenever you type carriage return (the Enter key). If the remote TELNET server is confused by this (i.e. it does not follow the TELNET specification), use SET TCP/IP NEWLINE-MODE OFF to make Kermit omit the line feed. SET TCP/IP DEBUG-OPTIONS { ON, OFF } Whether to display TELNET options negotiation on the screen. Default is OFF, don't display them. When ON, you can view the negotiations on the screen, and you can capture them in screen dump or session log files, or print them, just like any other CONNECT-mode screen text. DEBUG-OPTIONS is useful for debugging misbehaving TELNET sessions. Refer to the TELNET RFCs, or a TCP/IP book, for an explanation of what they mean. Sample TCP-related commands for MSCUSTOM.INI (substitute your own correct values for the ones shown here!): SET TCP/IP ADDRESS 128.59.77.23 ; Your PC's IP address SET TCP/IP SUBNETMASK 255.255.255.0 ; Your local net's subnet mask SET TCP/IP GATEWAY 128.59.77.1 ; The gateway on your local net SET TCP/IP PRIMARY-NAMESERVER 128.59.77.19 ; Nameserver on your local net SET TCP/IP SECONDARY-NAMESERVER 128.59.78.12 ; Fallback nameserver SET TCP/IP DOMAIN bar.baz.edu ; Your local IP domain name Then, to make a TCP/IP connection: SET PORT TCP/IP foo ; Connect to foo.bar.baz.edu CONNECT The TCP/IP connection is not actually established until the CONNECT (or INPUT, OUTPUT, PAUSE, or similar) command is given, at which time some progress messages are displayed on your screen. If connection is immediate, you won't see these messages, but if the connection fails, they will remain visible so you'll know why it failed. Logging out from the remote host will normally terminate your session and pop you back to the MS-Kermit> prompt. The HANGUP command, or Ctrl-]H during terminal emulation, should do the same thing. If your network has a BOOTP server, Kermit can learn its own IP address, as well as the nameserver addresses, gateway address, subnet mask, and other information from the server if the BOOTP server's database has an entry for your PC that contains these items. The BOOTP server knows it's your PC making the request because it has your network interface board's hardware address in its database, and BOOTP requests contain the network board's hardware address. To enter your PC in the BOOTP database, use the PKTADDR program (which comes with the Crynwr packet-driver collection) to find out the hardware address, for example: C:\PKTDRV\PKTADDR 0x60 My Ethernet address is 00:00:1E:0C:AA:1F Give this address to your network administrator, along with the adapter type (Ethernet, Token Ring, etc), your PC's IP host name and address (if you know it, or ask your network administrator to assign these to you -- DON'T MAKE THEM UP!). Then, the only commands you need to set up your TCP connection are: SET TCP/IP SUBNETMASK 255.255.254.0 ; Only needed if different from default SET TCP/IP BROADCAST 0.0.0.0 ; Only needed if different from default SET TCP/IP DOMAIN bar.baz.edu ; (3.12 and earlier, or pre-RFC1395) SET TCP/IP ADDRESS BOOTP ; Get my TCP/IP configuration from BOOTP SET PORT TCP/IP ; Establish a connection CONNECT Notes: . The SET TCP/IP BROADCAST command is not needed unless you have a nonstandard network that uses all-zeroes for IP broadcasts, rather than all ones. . The SET TCP/IP SUBNETMASK command is necessary only if your subnetwork uses a different mask than Kermit's default, which is 255.255.255.0. These commands should go in your MSCUSTOM.INI file. . The SET TCP/IP DOMAIN command is not needed if you have MS-DOS Kermit 3.13, the BOOTP server is at RFC1395 level (January 1993), and its BOOTP database contains your PC's domain name. Thus, in many cases, your TCP/IP setup can be as simple as this: SET TCP/IP ADDRESS BOOTP Kermit sends an IP broadcast message to find the BOOTP server. If you also have given SET TCP/IP ADDRESS, SUBNETMASK, PRIMARY-NAMESERVER, SECONDARY-NAMESERVER, and GATEWAY commands, their values will be superseded by any values sent by the BOOTP server. BOOTP service has the great advantage that PC network configurations need be maintained in only one central file, rather than on many individual PCs. If the BOOTP server is unavailable, users can still enter the required information with SET TCP/IP commands. An RFC-1395 compliant BOOTP server for Berkeley UNIX (and SunOS 4.x, etc) is available via anonymous FTP from kermit.cc.columbia.edu [128.59.39.2] in the bootp directory. If your network has a RARP server, Kermit can learn its own IP address from the server, if the RARP server's database contains an entry for your PC. The RARP server can't tell you the subnetmask, nameserver addresses, or gateway address, so you will still need these items in your MSCUSTOM.INI file. However, everybody on the same physical network can use the same TCP/IP network parameters in their MSCUSTOM.INI files because the SET TCP/IP parameters other than ADDRESS are all the same. HINT: To avoid typing long SET PORT TCP/IP commands, define a macro for each host you commonly connect to: DEFINE OOFA SET PORT TCP/IP OOFA.XYZ.COM, PAUSE 0, IF SUCCESS CONNECT Put these definitions in your MSCUSTOM.INI file. Then just type "OOFA" to connect to TCP/IP host OOFA.XYZ.COM. The standard sample MSCUSTOM.INI file already defines a TELNET macro for you: ; TELNET macro, and macros for telnetting to particular hosts ; using appropriate terminal type. ; \%1 = IP host name or address ; \%2 = TCP port (optional, default is 23) ; \%3 = terminal type (optional) ; define telnet - set flow none,- set port tcp \%1 \%2,- if def \%3 set term type \%3,- pause 0, if fail end 1, connect You can use this to easily make a connection to a particular host: TELNET FOO and you can optionally specify a nonstandard (i.e. other than 23) TCP port: TELNET FOO 2000 and you can also (optionally) specify a terminal type to use: TELNET FOO 23 HEATH-19 For information about multiple sessions, see KERMIT.UPD. .