dhcp_bootp(1M)                                                  dhcp_bootp(1M)


NAME
     dhcp_bootp - proclaim server for Dynamic Host Configuration Protocol

SYNOPSIS
     /usr/etc/dhcp_bootp [ -fd ] [ -o dhcp_options_file ]

DESCRIPTION
     dhcp_bootp is the server that communicates with other DHCP and
     proclaim(1M) clients to provide configuration parameters, including at
     least an IP address.  The format of DHCP messages is based on bootp
     messages (see RFC 951).  A detailed protocol specification for DHCP is
     contained in RFC 2131, available from the Network Information Center.

     The DHCP protocol uses UDP/IP as its transport mechanism.  The DHCP
     server receives service requests at the UDP port indicated in the bootp
     service description contained in the file /etc/services (see
     services(4)).  The proclaim server can be used together with one or more
     proclaim relay-agents (see dhcp_relay(1M)) to enable clients to obtain
     address-leases across networks.  The dhcp_bootp server responds to
     multiple interfaces on a multihomed gateway machine, for dynamic IP
     addresses.

     dhcp_bootp replaces the standard bootp(1M) server application and serves
     both bootp and DHCP clients. If the client sends a non-DHCP request, then
     this bootp request is processed as described in the bootp(1M) man page
     and the /etc/bootptab configuration file is used to determine the
     response to the client.


COMMAND LINE OPTIONS
     -f   This enables cross network forwarding if the client is requesting
          for service from a dhcp server which is reachable via this server
          and on a different wire.

     -d   This enables the dhcp_server into a debug mode in which it logs
          messages to /var/adm/SYSLOG.

     -o   The path of the dhcp_options_file can be mentioned using this
          option. The default location is /etc/config/dhcp_bootp.options.

CONFIGURATION
     dhcp_bootp execution can be controlled through the following steps.

     1)  Specify the additional DHCP-related options in the
         /etc/config/dhcp_bootp.options file as follows:

         -y   If you are using NIS to propagate the hosts and ethers map, this
              system is required to be the NIS master server for proclaim to
              work correctly.


         -w hosts_map
              Specifies the optional location of the hosts map.  The default
              is /etc/hosts.

         -e ethers_map
              Specifies the optional location of the ethers map.  The default
              is /etc/ethers.

         -u sysname
              Specifies the name for an optional sysname file.  The default is
              /unix.

         -c proclaim_config_dir
              Specifies the optional proclaim server configuration directory.
              The default directory is /var/dhcp/config.

         -t seconds
              A timeout period for the dhcp_bootp server can be set else the
              default period will be used.If a timeout period of 0 seconds is
              used then the dhcp_bootp server will become a persistent daemon.

         -x   This option is used in conjunction with a Domain Name Server
              that provides the IP address to hostname mapping for the initial
              assignment of IP addresses to hosts by the DHCP server. The
              option has been found to be particularly useful in an Internet
              Service Provider type of setup where the IP address to hostname
              mapping may be required to remain fixed. Once an IP address is
              assigned it is written to the etherToIP.pag file.  When this
              option is in effect, etherToIP.pag is the only file consulted to
              determine whether a particular IP address or hostname is already
              assigned.

         -n   Specifies that the server should return a netmask with its reply
              regardless of whether a client requested it or not.

         -m options
              Specifies additional options to be sent by the server to clients
              irrespective of whether the client requests them or not. The
              additional options are specified as a comma or colon separated
              list with no spaces.

         -r script_file_path
              Specifies an optional script file to execute when the server
              changes the etherToIP database. The complete path to the script
              must be specified as an a argument. The server calls the script
              with several command-line arguments: -c client_identifier -m
              physical_address -i ip_address -h hostname -l lease -o operation
              -t dhcp_message_type. The script is executed in the background.
              The value of the operation argument is 0 if it was a record
              creation, 1 if it was a deletion, and 2 if the lease was
              updated. The dhcp_message_type is the same as defined message
              types in the DHCP literature. If a message is sent to the client


              that message type is passed as an argument, otherwise the
              message type received from the client is passed. This script may
              be used to perform other functions such as dynamic DNS updates.

         -W   Specifies that the the hosts map file or /etc/hosts file should
              not be updated when leases are added or removed.

         -E   Specifies that the ethers map file or/etc/ethers file should not
              be updated when leases are added or removed.

         -pn  Specifies that a ping be sent before an address is leased to
              check if a host is using the IP address. If a reply is received
              then a message is logged in the SYSLOG indicating that "Address
              <addr> appears to be STOLEN" and a record is added into the
              database with a lease time of -2 for this IP address. The DHCP
              administrator should investigate the occurrence and remove the
              entry in the database with the dhcpdb command once it has been
              resolved. The DHCP server tries to give out another address to
              the requesting client. The server attempts to recycle stolen
              addresses when it runs out of addresses and at a frequency
              specified by the lease time in the configuration files.


         -pt ping_timeout
              Specifies the timeout for the ping. If a reply to a ping is not
              received in ping_timeout seconds the address is considered to be
              not taken. The default value for the timeout is 1 second. Note
              that the server processes requests from other DHCP clients while
              waiting for the timeout to expire. The server does not block
              waiting for a reply to a ping request. If blocking pings are
              required for some reason use the -pb option instead of the -pn
              option.

         -pl number_of_outstanding_pings
              This is the maximum number of pings outstanding. Once this value
              is reached the server automatically stops sending ping to check
              if an IP address is taken. The server begins to send ping
              request once the number of outstanding ping requests falls below
              this value. It is set to 16 by default.

         -pd This option is available for backward compatibility
              with earlier versions. In prior versions (if -x was not
              specified) while assigning a new address the server would make a
              gethostbyaddr(3N) call to check if it could assign an IP address
              to a client for which it had no prior binding. If a binding was
              found in DNS maps then the particular address was not assigned.
              In the new version of the server to obtain this older behavior
              it is necessary to specify the -pd option. If this is not
              specified the server will not perform a gethostbyaddr(3N) call
              to check if an IP address is available.


     2)  Create one or more network configuration files based on the network
         numbers this server is responsible for.  A default configuration file
         is provided: /var/dhcp/config/config.Default.  The new file(s) should
         be named config.<netnumber> in the same directory.  For example, if
         this server is serving clients on the 192.26.61 network, the
         configuration file should be named config.192.26.61.0.  See below for
         a list of configuration parameters.

     3)  The DHCP server also provides MAC address based filtering. The
         filters are specified in the /var/dhcp/config/dhcpmtab file. MAC
         addresses can be specified as either complete addresses or as a
         regular expression to specify a set of addresses. The regular
         expression syntax is described in the man pages for regcmp(3G).

         If a DHCP packet from a client with a matching mac address is
         received then the corresponding actions are taken. Regular expression
         matching is attempted only if a complete match is not found. The
         length and hardware type must also match for non-regular expression
         entries. The length may not match for entries that have regular
         expressions. Once a match is found the remaining entries are not
         searched. An example of the configuration file is as follows


          # dhcpmtab - mac address based filtering for DHCP
          #len htype     mac            action
          6    1    01:02:03:8a:8b:8c   K
          0    1    01:02:*             L|K


     The actions can be specified as a combination of L and K. Each of the
     actions L=log request, and K=drop request, is acted upon in that order.
     The system log is updated if the L action is requested. If the K action
     is specified and an L is not specified then the packet is silently
     dropped.


     4)  The DHCP server can be configured to send specific user defined
         options based on the value of the vendor class option sent by the
         DHCP client. To define new options for this purpose use the
         /var/dhcp/config/dhcp_option_types file. The format of this file is
         described as comments within this file. Each line consists of a user
         selected name, an option number, and the type of the option. The
         value to be returned by the DHCP server can be specified in the
         /var/dhcp/config/vendor_options file. See the file for the format.
         The vendor class and the network number to which option values apply
         can be specified within the file.


     4)  Enable the proclaim server by giving the command:
         chkconfig proclaim_server on


     5)  Replace the "bootp" entry in /usr/etc/inetd.conf with this line:
         bootp dgram udp wait root /usr/etc/dhcp_bootp dhcp_bootp -o \
              /etc/config/dhcp_bootp.options

     6)  Issue this command, to restart inetd with /etc/killall -HUP inetd:
         /etc/killall bootp

   Configuration Parameters
     These parameters can be supplied in the configuration file for each
     network.  All of the address fields can either be in standard IP address
     dot notation, or as a hex number prefixed with a 0x.  Most of the fields
     can be left blank to render them non-applicable.

     pro_address_counter
          This integer field specifies the host number for the next IP
          address.  The next address is constructed using the counter and
          checked through the range of the assignable addresses.  The first
          available address in the range is assigned.

     pro_host_pfx_counter
          This integer field specifies the starting number appended to the
          pro_host_prefix to generate a new hostname.  This counter is
          incremented and a new hostname generated until a unique unused name
          is found.

     pro_netmask
          This field takes a netmask in address form.  For more information on
          netmasks, see the IRIX Admin: Networking and Mail guide.  This field
          specifies the subnetmask used by the client systems.

     pro_lease
          This unsigned integer field specifies the client address lease time
          in seconds.  This implementation of the DHCP server assigns 3 year
          leases by default, and the leases are expired only when explicitly
          surrendered by the client.

     pro_host_prefix
          This string field specifies the default text prefix for generating
          client hostnames.  For example, the prefix iris directs proclaim to
          generate hostnames of the form iris1, iris2, iris3, and so on.

     pro_choose_name
          This boolean (true or false) flag specifies whether the client
          systems are allowed to choose their own hostname or whether they
          must be assigned the name given to them by the server.  A value of 1
          (true) in this field brings up a dialog box on the client system
          giving the user the option of either taking the name offered by the
          server or entering a hostname of the user's choice.  If the user
          selects a name, the server allows this name if it passes basic tests
          for syntax and uniqueness, otherwise the server/client dialogue
          continues until a mutually acceptable name is submitted.  A value of
          0 (false) in this field indicates that the user on the client system


          must accept the name provided by the server. This option can be used
          with SGI DHCP clients and servers only. The client and server
          exchange DHCPREQUEST and DHCPOFFER packets until a mutually
          acceptable name is chosen. This option is being deprecated; use the
          -H host-name option with SGI clients to specify host names.

     pro_ipaddress_range
          This field takes an entry of integers using standard numeric range
          rules.  The entry defines the range of host number addresses
          assignable by this server.  For example, if the value is: 1-3, 5-7,
          9.  The server issues IP addresses with the base address specified
          in the configuration filename (such as config.192.26.61.0).

          Each client is issued an IP address matching the name of the
          configuration file, suffixed with the numbers 1 through 3, and 5
          through 7, and 9, but not 4 or 8.  This option can be to restrict
          the IP addresses offered by a given server.  This is very useful if
          the administrator wants to assign only certain block(s) of addresses
          using proclaim, or in the absence of a server to server protocol,
          wishes to have multiple servers serve clients on the same subnet.

     pro_router_addr
          This field of comma-separated IP addresses specifies a list of
          addresses for network routers on the client's subnet.  Routers
          should be listed in the order of preference for their use.

     pro_bootfile_size
          Specifies length in 512-octet blocks of the default boot image for
          the client.

     pro_time_offset
          Specifies offset of the client's subnet from Coordinated Universal
          Time (UTC) in seconds.

     pro_meritdump_pathname
          Specifies a file for dumping a core image in case the client
          crashes.

     pro_root_pathname
          Specifies the directory that contains the client's root disk
          partition.

     pro_extensions_pathname
          Specifies a TFTP file containing vendor extensions for bootp.  On
          SGI systems the this file has the same format as the
          config.netnumber file.

     pro_TFTPserver_name
          Specifies a TFTP server for the client.


     pro_bootfile_name
          Specifies the pathname of the default boot image for the client.

     pro_dns_domain
          This text field specifies the domain name that client should use
          when resolving hostnames using DNS.

     pro_dnsserver_addr
          This field of comma-separated IP addresses specifies a list of
          addresses for Domain Name System servers available to the client.
          Servers should be listed in the order of preference for their use.

     pro_nextserver_addr
          This IP address specifies the address of the tftp boot server that
          serves clients on this subnet.  This address is returned to the
          client in the siaddr field.

     pro_propel_server
          This IP address specifies the address of the propel server that
          serves the clients on this subnet.  Additional information about
          propel can be found in Chapter 2, "Software Distribution, User, and
          Host Management With propel," of the IRIXpro Administrator's Guide.

     pro_timeserver_addr
          This field of comma-separated IP addresses specifies a list of
          addresses for time servers available to the client.  Addresses
          should be listed in the order of preference for their use.

     pro_logserver_addr
          Specifies a list of UDP log servers available to the client.

     pro_cookieserver_addr
          Specifies a list of RFC 865 cookie servers available to the client.

     pro_LPRserver_addr
          Specifies a list of RFC 1179 line printer servers available to the
          client.

     pro_resourceserver_addr
          Specifies a list of RFC 887 resource location servers available to
          the client.

     pro_swapserver_addr
          Specifies the IP address of the client's swap server.

     pro_nis_domain
          This text field specifies the name of the client's NIS domain.

     pro_nisserver_addr
          This field of comma-separated IP addresses specifies a list of
          addresses indicating NIS servers available to the client.  Servers
          should be listed in the order of preference for their use.


     pro_mtu
          This unsigned short integer field specifies the MTU (maximum
          transmission unit) to use on the network interface configured in
          this file.  The minimum legal value for the MTU is 68.

     pro_allnets_local
          This boolean (true/false) field specifies whether or not the client
          can assume that all other subnets of the IP network to which the
          client is connected use the same MTU as the subnet to which the
          client is directly connected.  A value of 1 (true) indicates that
          all subnets share the same MTU.  A value of 0 (false) means that the
          client should assume that some other subnets can have smaller MTUs.

     pro_broadcast
          This IP address field specifies the broadcast address in use on the
          client's subnet.

     pro_domask_disc
          This boolean (true/false) Perform Mask Discovery field specifies
          whether or not the client should perform subnet mask discovery using
          ICMP.  A value of 1 (true) means that the client should perform mask
          discovery, while a value of 0 (false) indicates that the client
          should not perform mask discovery.

     pro_resp_mask_req
          This boolean (true/false) Mask Supplier field specifies whether or
          not the client should respond to subnet mask requests using ICMP.  A
          value of 1 (true) means that the client should respond.  A value of
          0 (false) in this field means that the client should not respond.

     pro_static_routes
          This field takes a comma-separated list of routes in the following
          form:
          dest_address - router_address, dest_address2 - router_address2.
          The static route field specifies a list of static routes that the
          client should install in its routing cache.  If multiple routes to
          the same destination are specified, they should be listed in
          descending order of priority.  The routes consist of a list of IP
          address pairs.  The first address is the destination address; its
          counterpart address, separated by a dash (-), is the address of the
          router to the destination.  The default route (0.0.0.0) is an
          illegal destination for a static route.

     Serve_This_Network
          Toggle DHCP serving of this subnet.

     Other Options
          The Proclaim server also handles other options listed in RFC 1533.
          To set values for these options use of the ProclaimServerMgr(1M)
          graphical user interface is recommended.  You can view the standard
          config.Default file in the /var/dhcp/config directory to see all the
          supported options.


     The following are the active lines only from a working config.netnumber
     configuration file:

          Serve_This_Network: 1
          pro_address_counter: 1
          pro_host_pfx_counter: 1
          pro_netmask: 255.255.255.0
          pro_lease: 604800
          pro_host_prefix: n6634
          pro_choose_name: 1
          pro_ipaddress_range: 1-254
          pro_dns_domain: engr.sgi.com
          pro_nis_domain: engr.sgi.com
          pro_mtu: 1500
          pro_allnets_local: 1
          pro_domask_disc: 0
          pro_resp_mask_req: 0


NOTES
     Debugging may be enabled by sending a SIGUSR1 signal to the server and
     may be disabled by sending SIGUSR2. To increase the level of debugging
     send multiple SIGUSR1 signals, for example, killall -USR1 dhcp_bootp.
     Sending a SIGHUP signal to the server will cause the server to reload its
     configuration files.

     The dhcp_bootp server database is maintained in ndbm files with (.dir)
     and (.pag) extensions. The dhcpdb(1M) utility may be used to manage the
     DHCP database. This utility also allows leases to be imported or exported
     from/to text files.

     The /usr/sbin/dbmToEthIP utility can be used to view the contents of the
     database. It converts the ndbm format to the text format and outputs the
     text onto the standard output.In case of situations where it is needed to
     generate the ndbm files the /usr/etc/ethIPToDbm utility may be used to
     convert a etherToIP file (in text format) to ndbm formatted files.
     dbmToEthIP and ethIPToDbm may be discontinued in the future. Use dhcpdb
     instead.

     To use the bootp server with DHCP style options, specify the options in
     the /etc/config/bootp-rfc1533.options file. See this file to check what
     options are supported.

     To add/replace/delete static IP addresses with dhcp_bootp, see STATIC
     leases in the the dhcpdb manpage, dhcpdb(1M).

FILES
     /etc/config/dhcp_bootp.options
     /etc/config/bootp-rfc1533.options
     /etc/hosts
     /etc/ethers
     /etc/bootptab


     /etc/inetd.conf
     /var/dhcp/etherToIP
     /var/dhcp/etherToIP.pag
     /var/dhcp/etherToIP.dir
     /var/dhcp/config/config.Default
     /var/dhcp/config/dhcpmtab
     /var/dhcp/config/dhcp_option_types
     /var/dhcp/config/vendor_options
     /var/dhcp/config/dhcp_ldap.conf
     /var/dhcp/config/dhcp_ddns.conf


SEE ALSO
     proclaim(1M), ProclaimServerMgr(1M), syslogd(1M), ethers(4), hosts(4).

     IETF RFCs 1534, 1535, 2131, 2132.


                                                                       Page 10