Chapter 3. Dynamic Network Configuration With proclaim

This chapter describes the proclaim dynamic network configuration software package. The following topics are covered:

The proclaim Dynamic Network Configuration System

The purpose of proclaim is to allow the site administrator to set up one or more server systems that dynamically distribute network IP addresses and site configuration parameters to new and requesting client systems. In this way, a site with only a few available addresses can serve a large number of hosts that connect to the network only occasionally, or a very large site can manage the permanent assignment of addresses with a minimum of human attention. The proclaim application is based on the Dynamic Host Configuration Protocol described in IETF RFC 1541.

The proclaim application consists of a daemon that runs on the server or servers, a set of configuration files for each server. The client process is distributed with the standard IRIX operating system and can be set up to be run through the bootup process or it can be run by hand. For more information, see the proclaim(1) reference page.

Installing proclaim

The following sections provide information on the installation of proclaim on servers and clients.

Installing proclaim on a Server

Like all of IRIXpro, proclaim is installed using inst(1). When you install proclaim, you are installing the server daemon and the initialized configuration files. (There is template information in the configuration file.) Files are also added to the /etc/init.d directory and an option is added to your chkconfig list.

The following list shows each file installed on your server:

/etc/config/dhcp_bootp.options 


The configuration file described in “The dhcp_bootp.options File”.

/etc/config/proclaim_server 


The chkconfig(1M) file for proclaim.

/usr/IRIXpro/proclaim/config/config.Default 


The default configuration file for proclaim, described in “The Standard Configuration File” and in the section titled “Sample Configuration File”.

/usr/etc/dhcp_bootp 


The special bootp program used by proclaim. This program replaces the standard bootp and serves both the standard bootp and dhcp clients.

After installing the proclaim subsystem of the IRIXpro product, you need to perform the following steps in order:

  1. Enter this command:

    chkconfig proclaim_server on 
    

  2. Next, you must modify the /etc/inetd.conf file to use dhcp_bootp rather than the standard bootp protocols. Place a hashmark (#) at the beginning of the bootp entry to make that line a comment, and open a new line below that entry. Enter the following text all on one line:

    bootp dgram udp wait root /usr/etc/dhcp_bootp 
    dhcp_bootp -P -o /etc/config/dhcp_bootp.options 
    

    In the above example, the -P option signifies that this is a dhcp bootp server. The -o option is used to specify a dhcp_bootp configuration file for specifying any additional proclaim specific options.

    Save and exit the inetd.conf file when you have made this entry.

  3. Reboot your system for these changes to take effect.

Files Modified by proclaim

The proclaim server may modify the following files on your system:

  • /etc/hosts

  • /etc/ethers

  • /usr/IRIXpro/proclaim/etherToIP

Starting proclaim

To start the proclaim daemon at any time on a server, log in as root and enter this command

chkconfig proclaim_server on 

Then reboot your system for the change to take effect.

Stopping proclaim

To stop the proclaim daemon on the server, log in as root and enter this command

chkconfig proclaim_server off 

Then reboot your system for the change to take effect.

Installing proclaim on a Client

The proclaim client software is included in the standard distribution of IRIX versions 5.3 and later. Administrators of heterogeneous networks can find the source code to the client daemon in /usr/people/4Dgifts/dhcp and must port and compile the code as needed for other brands of computers.

Configuring proclaim

The following sections provide information on configuring proclaim on servers, and on the various configuration files, and limitations of this implementation of DHCP. If you are not comfortable with the basic concepts of networking, IP addresses, and netmasks, read Chapters 15 through 18 of the IRIX Advanced Site and Server Administration Guide before you continue reading this section.

Configuring proclaim on the Server

The proclaim server implementation uses three levels of configuration parameters based upon the subnet number of the originating client request. The configuration files are all placed in the directory /usr/IRIXpro/proclaim/config and are named in the form config.netnumbers. For example, the configuration files for configuring clients on the 192.26.61 network are named config.192.26.61.0. If the configuration file for a client request originating on a particular subnet is not found, then the next level of configuration is supplied in the file config.Default in the same directory. If the default configuration file is not present or is unreadable, all clients are supplied the same configuration as the proclaim server itself.

The Standard Configuration File

The following configuration parameters can be supplied in the standard configuration file for each network, or the default configuration file. Host address specification can either be in standard IP address dot notation or as a hex number prefixed with a 0x. Most of the fields may 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 will be constructed using the counter and checked through the range of the assignable addresses. The first available address in the range will be assigned.

pro_host_pfx_counter 


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

pro_netmask 

This field takes a netmask in address form (xx.xx.xx.xx). For more information on netmasks, see the IRIX Advanced Site and Server Administration Guide. This field specifies the subnetmask that will be used by the client systems.

pro_lease 

This unsigned integer field specifies the client address lease time in seconds. This implementation of the DHCP software assigns only infinite leases, and thus the leases expire only when explicitly surrendered by the client.

pro_propel_server 


This field takes an IP address in address form (xxx.xxx.xxx.xxx) and specifies the IP address of the propel server that will be serving the clients on this subnet. Additional information about propel can be found in Chapter 2, “Software Distribution, User and Host Management With propel.”

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 will allow this name if it passes basic tests for syntax and uniqueness, otherwise the server/client dialogue will continue 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.

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, the form is:

1-3, 5-7, 9

In the above example, the server would issue 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 is used to restrict the IP addresses offered by a given server. This option 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 subnetwork.

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_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_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_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_dns_domain 


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

pro_nis_domain 


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

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 may 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 may 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_route 


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.

Sample Configuration File

The following are the contents of a sample config.150.166.61.0 configuration file.

pro_address_counter: 25
pro_host_pfx_counter: 5
pro_netmask: 255.255.255.0
pro_lease: 100000
pro_propel_server: 150.166.75.20
pro_host_prefix: irixpro
pro_choose_name: 0
pro_ipaddress_range: 3, 9-11, 40-75, 200-254
pro_router_addr: 150.166.61.19
pro_timeserver_addr: 150.166.61.27
pro_dnsserver_addr: 192.26.61.24
pro_nisserver_addr: 192.48.150.150
pro_dns_domain: sgi.com
pro_nis_domain: engr.sgi.com
pro_mtu: 1600
pro_allnets_local: 1
pro_broadcast: 150.166.61.255
pro_domask_disc: 0
pro_resp_mask_req: 0
pro_static_routes: 192.26.80.118 - 192.26.80.10, 192.26.80.118 - 150.166.61.33

The dhcp_bootp.options File

The /etc/config/dhcp_bootp.options file may specify the following additional options. The options may be specified on individual lines or on the same line separated by white spaces.

-s propel_database 


Directs the proclaim server to use the specified propel database for hostname, IP address, and network hardware address resolution. For more information on propel, see Chapter 2, “Software Distribution, User and Host Management With propel.”

-y 

The proclaim server uses the existing NIS maps for hostname, IP address, and network hardware address resolution. This host is required to be the NIS Master.

-h hostname 

Specifies the name of the host where the propel lock manager is running if it is not running on this system.

-w hosts_map 

Specifies the optional location of the hosts map. Not valid with the -s option. The default is /etc/hosts.

-e ethers_map 

Specifies the optional location of the ethers map. Not valid with the -s option. The default is /etc/ethers.

-u sysname  

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

-c proclaim config dir 


This flag specifies an optional proclaim server configuration directory. The default directory is /usr/IRIXpro/proclaim/config.

Limitations and Restrictions of This Release

The following restrictions and limitations are present in proclaim in this release:

  • The server must be the NIS Master if it is using NIS for hostname, IP address, or network hardware address validation and mapping. Note that NIS is an optional software product, and not all systems and networks use it.

  • This release of the server software assigns only infinite (meaning roughly 10-year) address leases. A client requesting a shorter lease must actually surrender the lease in order for the lease to be considered expired.

  • The server will not serve proclaim and standard bootp clients in the same request packet.

  • Clients requesting additional configuration parameters that are part of RFC1533 but are not supported in this release are not served by the proclaim server.