# @(#)03 1.6 src/tcpip/etc/dhcpsd.cnf, dhcp, tcpip720 7/23/96 13:07:32 # IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # tcpip720 src/tcpip/etc/dhcpsd.cnf 1.6 # # Licensed Materials - Property of IBM # # Restricted Materials of IBM # # COPYRIGHT International Business Machines Corp. 1995,1996 # All Rights Reserved # # US Government Users Restricted Rights - Use, duplication or # disclosure restricted by GSA ADP Schedule Contract with IBM Corp. # # IBM_PROLOG_END_TAG # # dhcpsd.cnf -- DHCP Server Configuration File # # # This file contains directives that can be specified by the # server's administrator to configure the server and enforce # policies. # # Do not put any long line without white space in this file. # # A line starting with a '#' character is a comment and is ignored. # A '#' on a line which is not part of a quoted string indicates # that anything to the right of this character is a comment and should # be ignored. # # A continuation character of '\' is supported. It must be # the last non-whitespace character on the line prior to # any comments. # # The directives are specified in the form of # ... . # # Here is a list of all the keywords whose value can be specified # in this file: # # Keyword Effect # ------------- --------------------------------------------------- # # numLogFiles The number of log files desired. # logFileSize The Size of log files in K bytes. # logFileName The name of the most recent log file. # logItem One item to be logged. # # network Address of one network managed by this server. # subnet Address of one subnet within a network. # option One option to enabled and its value specified. # # leaseTimeDefault # The default duration of leases issued by this server. # # leaseExpireInterval # The time interval at which the expiration condition # of the leases currently running is examined. # # supportBOOTP Whether or not to support BOOTP clients. # supportUnlisted Clients Whether or not to support clients that are # not listed specifically with individual # client statements. (see "client" below.) # updateDNS String defining command to use to update the DNS PTR # IP address to name mappings for IP addresses assigned # by this server. # removeDNS String defining command to use to remove the DNS PTR # IP address to name mappings for IP addresses assigned # by this server. Called when DHCPrelease is received. # class Definition of a set of options for a specific class of clients. # client Definition of a set of options for a specific client or # or a definition of a client not to be serviced # or a definition of an address not to be used. # # # The scope of a keyword is limited by a pair of curly brackets ({, }) # within which the keyword is located. If a keyword is located outside # of any pair of curly brackets, its scope is applicable to all the # entities served by this process. # # The presence and values of these parameters are picked up by the # server that is started or restarted. # # # Log files. This set of parameters specifies the log files that will be # maintained by this server. Each parameter is identified by a keyword # and followed by its value. # # Keyword Value Definition # -------- ------------ ------------------------------------------ # numLogFiles 0 to n number of log files. If 0 is specified, # no log file will be maintained and no log # message is display anywhere. n is the # maximum number of log files maintained as # the size of the most recent log file # reaches its maximum size and a new log file # is created. # # logFileSize in K bytes maximum size of a log file. When the size # of the most recent log file reaches this # value, it is renamed and a new log file is # created. # # logFileName file path name of the most recent log file. Less # recent log files have the number 1 to # (n - 1) appended to their names; the larger # the number, the less recent the file. # # logItem One item that will be logged. # SYSERR System error, at the interface to the platform. # OBJERR Object error, in between objects in the process. # PROTERR Protocol error, between client and server. # WARNING Warning, worth of attention from the user. # EVENT Event occurred to the process. # ACTION Action taken by the process. # INFO Information that might be useful. # ACNTING Who was served when. # TRACE Code flow, for debugging. # # numLogFiles 4 logFileSize 100 logFileName /usr/tmp/dhcpsd.log logItem SYSERR logItem OBJERR #logItem PROTERR #logItem WARNING #logItem EVENT #logItem ACTION #logItem INFO #logItem ACNTING #logItem TRACE # # Networks and subnets. This set of parameters specifies the networks and # the subnets within the networks, as well as other parameters associated # with each network or subnet. # # Here is a list of the parameters in this set and their definitions: # # Keyword Value Definition # -------- --------------- ------------------------------------------ # # network [|] # # network statement. It specifies one # network administered by this server. # # Network address is the address of this # network. This address is specified in the # dotted notation (e.g., 9.0.0.0, 128.81.0.0, # or, 192.81.20.0). Full four-byte value # should be specified (i.e., 9, 128.81, or # 192.81.20 is not legal). # # Network address may optionally be followed # by the subnet mask, a range, or nothing. # # If a subnet mask is specified, one or more # subnet statements should appear in the # succeeding lines within a pair of curly # brackets. The subnet mask may be specified # either in the dotted notation (e.g., # 255.255.255.128) or as a number indicating # the number of 1 bits in the mask (e.g., 25, # which is equivalent to 255.255.255.128). # # If a range is specified, it determines, # within the network, the range of hosts that # are administered by this server, and it # implies that there is no subnetting. A range # is specified by the host addresses, in the # dotted notation, at the lower end and the # higher end of the range, respectively, # separated by a hyphen with no interleaving # space (e.g., 192.81.20.1-129.81.20.128). # # If nothing is specified after Network # address, all hosts in that network are # administered by this server. # # A network statement may be immediately followed # by a pair of curly brackets, in which parameters # (e.g., options) particular to this network can # be specified. # # subnet [] # # subnet statement. One or more subnet # statements are enclosed by a pair of curly # brackets that immediately follows a network # statement with subnet mask. A subnet # statement specifies one subnet within that # network. # # Subnet address is the address of this subnet. # This address is specified in the dotted # notation (e.g., 9.17.32.0 or 128.81.22.0). # # Subnet address may be followed by a range or # nothing. # # If a range is specified, it determines, # within the subnet, the range of hosts that # are administered by this server. A range # is specified by the host addresses, in the # dotted notation, at the lower end and the # higher end of the range, respectively, # separated by a hyphen with no interleaving # space. A range must encompass all addresses # to be administered since multiple subnet # statements to define the same subnet are # not allowed. Use the "client" statement to # exclude any addresses in the range which the # server should not administer. # # If nothing is specified after Subnet address, # all hosts in that subnet are administered # by this server. # # The ranges in two servers administering the # the same subnet can not overlap. Otherwise, # two hosts may be assigned the same address. # # # A subnet statement may be immediately followed # by a pair of curly brackets, in which parameters # (e.g., options) particular to this subnet can # be specified. # # # class [] # Definition of a class. The class name is a # simple ascii string. A class's scope is # determine by the curly brackets in which it # is enclosed. If it is outside all curly # brackets, then its scope is the entire file. # # A class name may be followed by a range or # nothing. If a range of Ip Addresses is # specified, then only addresses in that range # will be assigned to clients who request this # class. Note that clients who request this # class, for which the subnet does not match # the range will not be processes. Bad # addresses will not be given out by the server. # If an address range is not specified, then # addresses will be given to clients using # the usual rules of assignment. # # The class statement may be immediately followed # by a pair of curly brackets, in which # the options particular to this class can be # specified. A class may be defined within # the curly brackets of a subnet, but a subnet # may not be defined within the curly brackets # of a class. # # Options set up in the network or subnet # containing a class definition will also # apply to the class. # # client
# Definition of client/address processing. # # is 0 for a string otherwise it # is one of the hardware types defined in # RFC 1340 (i.e. 6 for IEEE 802 networks.) # # is a character string for =0. # Typically, this would be a domain name. # For a non-zero , the is a # hexadecimal string representing # the hardware address of the client. # # Note, an of 0 and an of # '0' indicates that the
specified # should not be distributed by this server. # # The
can be the string "none" to indicate # that the client with and should # should not be serviced by this server. # The
can be the string "any" to # indicate that the server should choose # an appropriate address for this client. # The
can be an internet address # in dotted notation (eg. 9.2.15.82). This # will be the Ip address given to the # particular client specified by # and . As mentioned above, an # of 0 and an of '0' # indicates that the
specified # should not be distributed by this server. # # Note: If a client is configured in this way on the server, # then any class information requested by the client # will be ignored. No class specific information # will be processed for these clients. # # The client statement may be immediately followed # by a pair of curly brackets, in which the options # particular to this client can be specified. # # A client statement with an address specified that is not # part of the address pool specified in a network/subnet # elsewhere in this file must contain the subnet mask option(1) # For all other clients, the server will compute the subnet mask # option to send the client based on the network/subnet definitions. # # Note: All clients inherit all globally defined options. # A client defined in a network scope will inherit # options defined for that network. # A client defined in a subnet scope, will inherit # options defined for that subnet and emcompassing network. # # A class definition inside a client scope is not allowed. # # The client statement may be used to configure bootp clients. # To do this, specify all the bootp options using the option # syntax defined below. In addition, specify an infinite # lease time in the client scope with "option 51 0xffffffff". # DHCP options will not be served to the bootp client. # # # Option. This parameter specifies the value of an option defined in # "DHCP Options and BOOTP Vendor Extensions" (RFC 1533) and supported by # this server. # # An option is specified by the "option" keyword followed by the option code # of this option and its data field, in a single line. One or more of this # parameter may be specified. # # The scope within which an option applies is delimited by a pair of curly # brackets ({, }) surrounding this parameter. # # Two or more options with the same option code may be specified. Their data # fields are concatenated in a single option in a packet generated by the server # if the options have the same scope or one's scope includes that of another. # # Some of the defined options do not need to be specified by this parameter. # These options are either mandated by the protocol or this implementation # to be present in proper packets, or only generated by a client. These # options are (option code and name): # # 0 Pad Option # 255 End Option # 1 Subnet Mask # 50 Request IP Address # 51 IP Address Lease Time # 52 Option Overload # 53 DHCP Message Type # 54 Server Identifier # 55 Parameter Request List # 57 Maximum DHCP Message Size # 58 Renewal (T1) Time Value # 59 Rebinding (T2) Time Value # 60 Class-identifier of client # 61 Client-identifier. # # The other options may be specified by this parameter. # # When specifying an option, its data field takes one of the following # formats: # # IP Address : a single IP address. # IP Addresses : One or more IP addresses separated by white # space(s). # IP Address Pair : two IP addresses separated by a single colon. # IP Address Pairs : One or more IP address pairs separated by # white space(s). # Boolean : [0, 1] # Byte : [-128, 127] # Unsigned Byte : [0, 255] # Unsigned Bytes : space delimited list of values in range [0, 255] # Short : [-32768, 32767] # Unsigned Short : [0, 65535] # Unsigned Shorts : space delimited list of values in range [0, 65535] # Long : [-2147483648, 2147483647] # Unsigned Long : [0, 4294967295] # String : string of characters enclosed between two # double quotes. # # Note: All IP addresses are specified in dotted-decimal form. # # # Each of the defined options is listed below by its code and name, followed # by the format of its data field. # # Code Name Data field format/Notes # ---- ----------------------- ------------------------------------ # # RFC 1497 Vendor Extensions # # 0 Pad Option No need to specify # 255 End Option No need to specify # 1 Subnet Mask Unsigned Long # Only used in client scope. # 2 Time Offset Long # 3 Router Option IP Addresses # 4 Timer Server Option IP Addresses # 5 Name Server Option IP Addresses # 6 Domain Name Server Option IP Addresses # 7 Log Server Option IP Addresses # 8 Cookie Server Option IP Addresses # 9 LPR Server Option IP Addresses # 10 Impress Server Option IP Addresses # 11 Resource Location Server Option IP Addresses # 12 Host Name Option String # 13 Boot File Size Option Unsigned Short # 14 Merit Dump File String # 15 Domain Name String # 16 Swap Server IP Address # 17 Root Path String # 18 Extensions Path String # # IP Layer Parameters per Host # # 19 IP Forwarding Enable/Disable # Option Boolean, or client class profile file # 20 Non-local Source Routing # Enable/Disable Option Boolean, or client class profile file # 21 Policy Filter Option IP Address Pairs # 22 Maximum Datagram Reassembly Size # Unsigned Short, or client class profile file # 23 Default IP Time-to-live Unsigned Byte, or client class profile file # 24 Path MTU Aging Timeout Option Unsigned Long # 25 Path MTU Plateau Table One or more Unsigned Short separated by # white space(s) # # IP Layer Parameters per Interface # # 26 Interface MTU Option Unsigned Short # 27 All Subnets are Local Option Boolean # 28 Broadcast Address Option IP address # 29 Perform Mask Discovery Option Boolean # 30 Mask Supplier Option Boolean # 31 Perform Router Discovery Option Boolean # 32 Router Solicitation Address # Option IP Address # 33 Static Route Option IP Address Pairs # # Link Layer Parameters per Interface # # 34 Trailer Encapsulation Option Boolean # 35 ARP Cache Timeout Option Unsigned Long # 36 Ethernet Encapsulation Option Boolean # # TCP Parameters # # 37 TCP Default TTL Option Unsigned Byte # 38 TCP Keepalive Interval Option Unsigned Long # 39 TCP Keepalive Garbage Option Boolean # # Application and Service Parameters # # 40 NIS Domain Option String # 41 NIS Option IP Addresses # 42 Network Time Protocol Servers # Option IP Addresses # 43 Vendor Specific Information Unsigned Bytes # 44 NetBIOS over TCP/IP Name Server # Option IP Addresses # 45 NetBIOS over TCP/IP Datagram # Distribution Server IP Addresses # 46 NetBIOS over TCP/IP Node # Type Option Unsigned Byte # 47 NetBIOS over TCP/IP Scope # Option Unsigned Bytes # 48 X Window System Font Server # Option IP Addresses # 49 X Window System Display # Manager Option IP Addresses # # DHCP Extensions # # 50 Request IP Address No need to specify # 51 IP Address Lease Time Unsigned Long # May be specified in a network, subnet, class of client definition # to indicate the lease time to be be used in that scope. # Use 0xffffffff to indicate an infinite/permanent lease. # 52 Option Overload No need to specify # 53 DHCP Message Type No need to specify # 54 Server Identifier No need to specify # 55 Parameter Request List No need to specify # 56 Message String # 57 Maximum DHCP Message Size No need to specify # 58 Renewal (T1) Time Value No need to specify # 59 Rebinding (T2) Time Value No need to specify # 60 Class-identifier of client Generated by client # 61 Client-identifier Generated by client # # BOOTP Specific Options # # These options are only valid on BOOTP requests. Instead of an option # number these have a character sequence. # # sa server address for the bootp client to use # bf bootfile for the bootp client to use # hd home directory for the bootp client to look in for the bootfile. # # sa is type Ip Address. bf and hd are type String. # # Example: # option sa 1.1.2.2 # option hd "/vikings/native" # option bf "bootfile.asdg" # # # Other option numbers may be specifed up to 255. The options not list above # will need to be specified with the unsigned bytes type. # # Example: # option 178 01 34 53 # Means place tag 178 with value 0x013553. # # # Default Lease Time. This parameter specifies the default lease # duration for the leases issued by this server. In the absence # of any more specific lease duration (e.g., lease duration for # specific client(s) or class of clients,) the lease duration # specified by this parameter takes effect. The keyword for this # parameter and its values are as follows: # # Keyword Value # ----------- ----------------------- # leaseTimeDefault [] # # The amount is specified by a decimal number. The unit is one # of the following (plural is accepted): # # year # month # week # day # hour # minute (default if unit is absent) # second # # There is at lease one white space in between the amount and unit. # Only the first amount following the keyword has effect. # # If this parameter is not specified, the default lease duration is # one (1) hour. # # This parameter should appear outside of any pair of curly brackets, # i.e., it applies to all leases issued by this server. # # NOTE this keyword only applies to the default for all addresses. # To specify a specific lease time for a subnet, network, class or # client, use the usual "option 51 value" to specify that lease time # (in seconds). # # Lease Expiration Time Interval. This parameter specifies the time # interval at which the lease expiration condition is examined, and # if a running lease meets such condition, it is expired. The value # of this parameter applies to all leases administered by this server. # The keyword for this parameter and its values are as follows: # # Keyword Value # ----------- ----------------------- # leaseExpireInterval [] # # The amount is specified by a decimal number. The unit is one # of the following (plural is accepted): # # year # month # week # day # hour # minute (default if unit is absent) # second # # There is at lease one white space in between the amount and unit. # Only the first amount following the keyword has effect. # # If this parameter is not specified, the default interval is # one (1) minute. # # This parameter should appear outside of any pair of curly brackets, # i.e., it applies to all leases issued by this server. # # The value of this parameter SHOULD be in proportion with that of # parameter leaseTimeDefault so that the expirations of leases are # recognized in time. # # # # BOOTP Support. This parameter indicates to the server whether or # not to support requests from BOOTP clients. The keyword for this # parameter and its values are as follows: # # Keyword Value Definition # ------------- ---------- ------------------------------ # supportBOOTP [yes | no] # If an "yes" is specified, the # server will support BOOTP # clients. # # If the value field is not an # "yes", or the keyword is omitted, # the server will not support # BOOTP clients. # # The scope of this parameter covers all the networks and subnets # administered by this server. # # If the server previously supported BOOTP clients and has been # reconfigured not to support BOOTP clients, the address binding # for a BOOTP client established before the reconfiguration, if any, # will still be maintained until the time when that BOOTP client sends # a request again (when it is rebooting.) At that time, the server # will not respond, and the binding will be removed. # # # # Support for unlisted clients. This parameter indicates to the server whether # or not to support requests from clients that are not specifically configured # with their own individual client statements in the server. The keyword for # this parameter and its values are as follows: # # Keyword Value Definition # ------------- ---------- ------------------------------ # supportunlistedClients [yes | no] # If "yes" is specified, the # server will support unlisted # clients. # # If the value field is anything other # than "yes", the server will not support # unlisted clients. # # If this keyword is not found in the file, the server WILL support # clients not specifically configured with a client statement. # # Keyword Value Definition # ------------- ---------- ------------------------------ # updateDNS string A string enclosed in quites to indicate a # program to execute to update the DNS server # with the new inverse mapping for the IP address # and names served by dhcp. # This string should include four %s's to # indicate the placement of the following # information from the dhcp client: # # hostname - This is the value of option 12. # The value returned by the dhcp server, is used # if one is supplied. Else, if the client specified # a value (in THIS file) the client requested value # is used. If neither the client specified a # requested hostname nor the server supplied one, # this exec string will not be executed. # # domainname - This is the value of option 15. # The value returned by the dhcp server, is used # if one is supplied. Else, if the client specified # a value (in THIS file) the client requested value # is used. If neither the client specified a # requested hostname nor the server supplied one, # A null string ("") will be supplied by dhcp. Thus, # this value is deemed optional. # # Ip Address - This is the IP address leased to this client # by the server. The string is supplied in dotted # notation, ie 9.2.23.43. # # leasetime - This is the lease time granted by the server. # This string is a decimal number representing the # number of seconds of the lease. # # These values are output by dhcp in this order: # hostname domainname Ip Address leasetime # # A script /usr/sbin/dhcpaction has been provided with this functionality # as well as actions to help NIM interact with DHCP clients. # # /usr/sbin/dhcpaction hostname domainnaim ipaddress leasetime REC NIM # # The first four parameters are what will be used to update the DNS # server. The fifth parameter tells dhcpaction to update the A record, # the PTR record, or Both, or None. The options are A, PTR, BOTH, NONE. # The sixth parameter is used to tell servers that NIM is being used # and processing needs to be done when a client changes address. The # options for this are NIM and NONIM. # # removeDNS string A string enclosed in quites to indicate a # program to execute to update the DNS server # when the removal of the PTR or A records # associated with the ip address. # This string should include a %s to # indicate the placement of the following # information from the dhcp client: # # Ip Address - This is the IP address leased to this client # by the server. The string is supplied in dotted # notation, ie 9.2.23.43. # # A script /usr/sbin/dhcpremove has been provided with this functionality # as well as actions to help NIM interact with DHCP clients. # # /usr/sbin/dhcpremove ipaddress REC NIM # # The first parameter is what will be used to update the DNS server. # It will be used to determine what the hostname is and if the removal # of the record should occurs. The second parameter tells dhcpremove to # update the A record, the PTR record, or Both, or None. The options are # A, PTR, BOTH, NONE. The third parameter is used to tell servers that # NIM is being used and processing needs to be done when a client # changes addresses. The options for this are NIM and NONIM. # # # Example One. # # leaseTimeDefault 30 minutes # leaseExpireInterval 3 minutes # supportBOOTP yes # supportUnlistedClients yes # # option 9 10.11.12.13 # printer for all # option 15 dreampark # domain name # # network 9.0.0.0 24 # { # subnet 9.2.218.0 9.2.218.1-9.2.218.128 # subnet 9.67.112.0 9.67.112.1-9.67.112.64 # { # option 28 9.67.112.127 # broadcast address # option 9 9.67.112.1 # printer 1 # option 9 9.67.112.2 # printer 2 # option 15 sandbox. # domain name # class netbios_host # { # option 44 9.67.112.125 # Netbios over tcp/ip name server # option 46 2 # Netbios over tcp/ip node type # } # } # # option 15 toyland. # domain name # option 9 9.68.111.128 # printer 3 # option 33 1.2.3.4:9.8.7.1 # route to the moon # option 33 5.6.7.8:9.8.7.2 # route to the mars # option 3 11.22.33.44 55.66.77.88 # routes to black holes # # } # # # # Named resources are stored: "Name" "definition" ## "Fred" "option 15 "greg.com"" ## "watson.ibm.com" "option 15 "watson.ibm.com"" ### "DHCP Server Greg" "logItem SYSERR" ### "DHCP Server Greg" "numlogfiles 6" ### "DHCP Server Greg" "logfilesize 100" ### "DHCP Server Greg" "logfilename /usr/tmp/dhcpsd.log" ### "DHCP Server Greg" "network 9.0.0.0 25" ### "DHCP Server Greg" "{" ### "DHCP Server Greg" " option 15 "bizarro.austin.ibm.com"" ### "DHCP Server Greg" " option 15 "superman.austin.ibm.com"" ### "DHCP Server Greg" "}" #updateDNS "/usr/sbin/dhcpaction '%s' '%s' '%s' '%s' PTR NONIM >>/tmp/updns.out 2>&1 " #removeDNS "/usr/sbin/dhcpremove '%s' PTR NONIM >>/tmp/rmdns.out 2>&1 "