







                      F R E E W A R E


                 B O O T P  Server NLM for

                    Novell Netware 3.11


                  Copyright 1992, by HellSoft


          Comments a bugs to "meloun@vision.felk.cvut.cs"
        New versions "/pub/nw311/bootpd:novell.felk.cvut.cs"


             Written at Czech Technical University,
                   Prague, Czechoslovakia
                        E U R O P E























  Introduction and Features

This allows BOOTP feature on Novell Netware 3.11 server.
It is written according to RFC951 and RFC1048 specification.


Features: - Supports multiple interfaces on server
          - Static IP address assignments
          - Pseudo-dynamic IP address assignments
          - Dynamic IP address assigments
          - Almost automated creation of hosts file


System requirements
 BOOTPD NLM requires Novell Netware Server v3.11 and RESOLV.NLM.
 (RESOLV.NLM avaliable at "novell.felk.cvut.cs" in directory 
 "/pub/nw311/resolv"). RESOLV.NLM does the name translation, but if
 you have no name server you must run RESOLV.NLM anyway, with no
 parameters.

Loading of the BOOTPD server:

 load  [path]BOOTPD use [file] 


  use [file]
    Specifies configuration file name.
    Default: sys:system/bootpd.cfg

      load bootpd use sys:system/bootpd/config.cfg



BOOTPD Command line:
 BOOTPD show {[file]}

   bootpd show
     Show all pseudo-dynamically assignments of IP addresses.

   bootpd show [file]
     Save all pseudo-dynamically assignments of IP addresses to file in
     the format used for hosts file.
     


Configuration file

 All empty lines and characters right to the '#' are ignored.
 All IP addresses must be in numeric format.

 Command
  HostsFile [file name]
  
  Determines name of the hosts file. This file contains assignments of
  IP addresses to hardware addresses.

 Command
  Board [IP Address]

   This command sets properties of the particular interface and
   enables processing of the BOOTP packet by this interface. This
   command is required.

   Subcommands of the Board command

    Subcommand Gateway [IP address]

      Determines "default gateway" returned to host. Optional.

      Gateway	    147.32.14.4
     or
      Gateway	    ?	           # Default gateway is set to same value
				   # as used in "Board" command.
      

    Subcommand DynStart [IP address]
    Subcommand DynRange [num]
      These subcommands set dynamic assignment of IP addresses
      for given interface. The assignment begins with DynStart
      address and generates maximum of DynRange addresses.
      

      Motivation: I don't like long numbers like Ethernet hardware
                  addresses. So first I enable the dynamic assignment
                  and after some time I save the created database by
                  Show [file] command. Then I only add the host names
                  and I have a hosts file for future use.

      Acknowledgement: Thanks to Phil Karn and his KA9Q for inspiration.

      DynStart	147.32.15.128			# IP addresses from 
      DynRange	126                             # 147.32.15.128 to
      		                		# 147.32.15.254 will 
						# be assigned
                                                # dynamically


    Subcommand DynMask	[IP address mask]
    Subcommand DynName  [C format string]
      These subcommands have effect only if the host name cannot be
      resolved from the IP address by the name server.
      They determine the name for dynamically assigned hosts. The name 
      is created as follows: the IP address of the host is masked (ANDed)
      with DynMask. The result is used as the argument for a C-like 
      sprintf function with a format string DynName.

      In "C" conventions:
      sprintf(HostName, DynName, HostIPAddress & DynMask);


      DynMask	0.0.0.255		# Only the last octet
      DynName	MyPC-%3.3d-Dyn		# Generate Names "MyPC-001-Dyn"
                                        #                "MyPC-012-Dyn"
                                        #                "MyPC-128-Dyn"
					

      DynMask	0.0.0.255		# Only the last octet
      DynName	MyPC-%d			# Generate Names "MyPC-1"
                                        #                "MyPC-12"
                                        #                "MyPC-128"


   Subcommand LiveTime  [min]
     Determine "LiveTime" of dynamic assignemnts. If is zero, the 
     assignets is pseudo-static.
    

     LiveTime	60			# Live Time is one hour 
     
     
Hosts File
  Determines static assignments  IP address <-> Hardware address.
  See sample file HOSTS.CFG.

  Format:
   [Host Name] [Hardware type] [Hardware address] [IP Address]

   Host Name       - Host name, up to 40 characters. If host name is
		     "?" the BOOTPD resolves host name from Domain Name
		     Server.
		     
   Hardware Type   - Ethernet  
			Hardware address has 6 byte, format "01:23:45:67:89"
			Numbers in hex
		   - Pronet
			Hardware address has 1 byte, format 10 (decimal) or
			0x10 (hex)
		   - IEEE802
			All networks via standard IEEE 802			
			Hardware address has 6 byte, format "01:23:45:67:89"
			Numbers in hex
		   - Arcnet
			Hardware address has 1 byte, format 10 (decimal) or
			0x10 (hex)


P.S.: I'd appreciate any bug reports, but especially those from Pronet, IEEE802 
      and Arcnet users. This has been tested on Ethernet only.

P.P.S.:
If anybody finds this manual too short and unsatisfactory, I will be only
pleased if he will write a better one. My English is not good enough
and I'll appreciate any help.
