NAME | DESCRIPTION | EXAMPLES | FILES | SEE ALSO
The dhcptab macro table allows network administrators to organize groups of configuration parameters as macro definitions, which can then be further used in the definition of other useful macros. These macros can be configured such that the DHCP server will return their values to DHCP and BOOTP clients.
The preferred method of managing the dhcptab macro table is through the use of the dhtadm(1M) utility. The syntax described in the balance of this manual page is intended for informational purposes.
The syntax of the dhcptab table is as follows:
Comments begin with the cross-hatch (#) character in the first position on the line and end with a carriage return. Lines can be continued by escaping the carriage return character with a backslash (\) character.
dhcptab records contain three (3) fields:
Name | Type | Value |
The fields are defined as follows:
This field identifies the record and is used as the search key into the dhcptab table. A Name must consist of ASCII characters. If the record is of type Macro, then the length is limited to 64 characters. If the record is of type Symbol, then the length is limited to 8 characters.
This field specifies the type of record. Currently, there are only two legal values for Type:
This record is a DHCP macro definition.
This record is a DHCP symbol definition. It is used to define vendor and site-specific options.
This field contains the value for the specified type of record. For the macro type, the value will consist of a series of symbol=value pairs, separated by the colon (:) character. For the symbol type, the value will consist of a series of fields, separated by a comma (,), which define a symbol's characteristics. Once defined, a symbol can be used in macro definitions.
The fields describing the characteristics of a symbol are as follows:
Context | Code | Type | Granularity | Maximum |
These fields are defined as follows:
This field defines the context in which the symbol definition is to be used. It can have three values:
This symbol defines a standard option, codes from 77-127. The use of this symbol type is for adding new standard options added since the release of the dhcp server.
This symbol defines a site-specific option, codes 128-254.
This symbol defines a vendor-specific option, codes 1-254. The Vendor context takes ASCII string arguments which identify the client class that this vendor option is associated with. Multiple client class names can be specified, separated by white space. Only those clients whose client class matches one of these values will see this option.
This field specifies the option code number associated with this symbol. Valid values are 128-254 for site-specific options, and 1-254 for vendor-specific options.
This field defines the type of data expected as a value for this symbol. Legal values are:
NVT ASCII text. Value is enclosed in double-quotes ("). Granularity setting has no effect on symbols of this type, since ASCII strings have a natural granularity of one (1).
No value is associated with this data type. Presence of symbols of this type denote boolean TRUE, whereas absence denotes FALSE. Granularity and Miximum values have no meaning for symbols of this type.
Dotted decimal form of an Internet address. Multi-IP address granularity is supported.
An unsigned number with a supported granularity of 1, 2, 4, and 8 octets.
Uninterpreted ASCII representation of binary data. The client identifier is one example of an OCTET string. Valid characters are 0-9, [a-f] [A-F]. One ASCII character represents one nibble (4 bits), thus two ASCII characters are needed to represent an 8 bit quantity. The granularity setting has no effect on symbols of this type, since OCTET strings have a natural granularity of one (1).
This value specifies how many objects of Type define a single instance of the symbol value. For example, the static route option is defined to be a variable list of routes. Each route consists of two IP addresses, so the Type is defined to be IP, and the data's granularity is defined to be 2 IP addresses. The granularity field affects the IP and NUMBER data types.
This value specifies the maximum items of Granularity which are permissible in a definition using this symbol. For example, there can only be one IP address specified for a subnet mask, so the Maximum number of items in this case is one (1). A Maximum value of zero (0) means that a variable number of items is permitted.
The following example defines a site-specific option called MystatRt, of code 130, type IP, and granularity 2, and a Maximum of 0. This definition corresponds to the internal definition of the static route option (StaticRt).
MystatRt s Site,130,IP,2,0
The following example illustrates a macro defined using the MystatRt site option symbol just defined:
10netnis m :MystatRt=3.0.0.0 10.0.0.30:
If present, four macro definitions are consulted by the DHCP server to determine the options that are returned to the requesting client:
Client Class | Network | IP Address | Client Identifier |
These macros are processed as follows:
A macro called by the ASCII representation of the client class is searched for in the dhcptab. If found, then its symbol/value pairs will be selected for delivery to the client. This mechanism permits the network administrator to select configuration parameters to be returned to all clients of the same class.
A macro named by the dotted Internet form of the network address of the client's network (for example, 10.0.0.0) is searched for in the dhcptab. If found, then its symbol/value pairs will be combined with those of the Client Class macro. If a symbol exists in both macros, then the Network macro value overrides the value defined in the Client Class macro. This mechanism permits the network administrator to select configuration parameters to be returned to all clients on the same network.
This macro is specified in the dhcp network database for the record assigned to the requesting client. If this macro is found in the dhcptab, then its symbol/value pairs will be combined with those of the Client Class macro and the Network macro. This mechanism permits the network administrator to select configuration parameters to be returned to clients using a particular IP address. It can also be used to deliver a macro defined to include "server-specific" information by including this macro definition in all dhcp network database entries owned by a specific server.
A macro named by the ASCII representation of the client's unique identifier as shown in the dhcp network table, dhcp_network(4). If found, its symbol/value pairs are combined to the sum of the Client Class, Network, and IP Address macros. Any symbol collisions are replaced with those specified in the client identifier macro. This mechanism permits the network administrator to select configuration parameters to be returned to a particular client, regardless of what network that client is connected to.
The following table maps the available internal symbol names to RFC-2132 options:
Symbol | Code | Description |
---|---|---|
Subnet | 1 | Subnet Mask, dotted Internet address (IP). |
UTCoffst | 2 | Coordinated Universal time offset (seconds). |
Router | 3 | List of Routers, IP. |
Timeserv | 4 | List of RFC-868 servers, IP. |
IEN116ns | 5 | List of IEN 116 name servers, IP. |
DNSserv | 6 | List of DNS name servers, IP. |
Logserv | 7 | List of MIT-LCS UDP log servers, IP. |
Cookie | 8 | List of RFC-865 cookie servers, IP. |
Lprserv | 9 | List of RFC-1179 line printer servers, IP. |
Impress | 10 | List of Imagen Impress servers, IP. |
Resource | 11 | List of RFC-887 resource location servers, IP. |
Hostname | 12 | Client's hostname, value from hosts database. |
Bootsize | 13 | Number of 512 octet blocks in boot image, NUMBER. |
Dumpfile | 14 | Path where core image should be dumped, ASCII. |
DNSdmain | 15 | DNS domain name, ASCII. |
Swapserv | 16 | Client's swap server, IP. |
Rootpath | 17 | Client's Root path, ASCII. |
ExtendP | 18 | Extensions path, ASCII. |
IpFwdF | 19 | IP Forwarding Enable/Disable, NUMBER. |
NLrouteF | 20 | Non-local Source Routing, NUMBER. |
PFilter | 21 | Policy Filter, IP,IP. |
MaxIpSiz | 22 | Maximum datagram Reassembly Size, NUMBER. |
IpTTL | 23 | Default IP Time to Live, (1=<x<=255), NUMBER. |
PathTO | 24 | RFC-1191 Path MTU Aging Timeout, NUMBER. |
PathTbl | 25 | RFC-1191 Path MTU Plateau Table, NUMBER. |
MTU | 26 | Interface MTU, x>=68, NUMBER. |
SameMtuF | 27 | All Subnets are Local, NUMBER. |
Broadcst | 28 | Broadcast Address, IP. |
MaskDscF | 29 | Perform Mask Discovery, NUMBER. |
MaskSupF | 30 | Mask Supplier, NUMBER. |
RDiscvyF | 31 | Perform Router Discovery, NUMBER. |
RSolictS | 32 | Router Solicitation Address, IP. |
StaticRt | 33 | Static Route, Double IP (network router). |
TrailerF | 34 | Trailer Encapsulation, NUMBER. |
ArpTimeO | 35 | ARP Cache Time out, NUMBER. |
EthEncap | 36 | Ethernet Encapsulation, NUMBER. |
TcpTTL | 37 | TCP Default Time to Live, NUMBER. |
TcpKaInt | 38 | TCP Keepalive Interval, NUMBER. |
TcpKaGbF | 39 | TCP Keepalive Garbage, NUMBER. |
NISdmain | 40 | NIS Domain name, ASCII. |
NISservs | 41 | List of NIS servers, IP. |
NTPservs | 42 | List of NTP servers, IP. |
NetBNms | 44 | List of NetBIOS Name servers, IP. |
NetBDsts | 45 | List of NetBIOS Distribution servers, IP. |
NetBNdT | 46 | NetBIOS Node type (1=B-node, 2=P, 4=M, 8=H) |
NetBScop | 47 | NetBIOS scope, ASCII. |
XFontSrv | 48 | List of X Window Font servers, IP. |
XDispMgr | 49 | List of X Window Display managers, IP. |
LeaseTim | 51 | Lease Time Policy, (-1 = PERM), NUMBER. |
Message | 56 | Message to be displayed on client, ASCII. |
T1Time | 58 | Renewal (T1) time, NUMBER. |
T2Time | 59 | Rebinding (T2) time, NUMBER. |
NW_dmain | 62 | NetWare/IP Domain Name, ASCII. |
NWIPOpts | 63 | NetWare/IP Options, OCTET (unknown type). |
NIS+dom | 64 | NIS+ Domain name, ASCII. |
NIS+serv | 65 | NIS+ servers, IP. |
TFTPsrvN | 66 | TFTP server hostname, ASCII. |
OptBootF | 67 | Optional Bootfile path, ASCII. |
MblIPAgt | 68 | Mobile IP Home Agent, IP. |
SMTPserv | 69 | Simple Mail Transport Protocol Server, IP. |
POP3serv | 70 | Post Office Protocol (POP3) Server, IP. |
NNTPserv | 71 | Network News Transport Proto. (NNTP) Server, IP. |
WWWservs | 72 | Default WorldWideWeb Server, IP. |
Fingersv | 73 | Default Finger Server, IP. |
IRCservs | 74 | Internet Relay Chat Server, IP. |
STservs | 75 | StreetTalk Server, IP. |
STDAservs | 76 | StreetTalk Directory Assist. Server, IP. |
BootFile | N/A | File to Boot, ASCII. |
BootPath | N/A | Boot path prefix to apply to client's requested boot file, ASCII. |
BootSrvA | N/A | Boot Server, IP. |
BootSrvN | N/A | Boot Server Hostname, ASCII. |
EchoVC | N/A | Echo Vendor Class Identifier Flag, (Present=TRUE) |
LeaseNeg | N/A | Lease is Negotiable Flag, (Present=TRUE) |
Include | N/A | Include listed macro values in this macro. |
# # Solaris-specific client vendor options. First define them, then use them # in our Client Class macro definitions to establish proper context for each # specific platform. Used to implement diskless boot of Solaris using DHCP # as a configuration protocol. # # Root NFS mount options (mount_nfs(1M) form) SrootOpt s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,1,ASCII,1,0 # IP address of Root server. SrootIP4 s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,2,IP,1,1 # Hostname of Root server. SrootNM s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,3,ASCII,1,0 # Pathname of Root directory. SrootPTH s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,4,ASCII,1,0 # IP address of Swap server. SswapIP4 s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,5,IP,1,0 # Path to swapfile on swap server. SswapPTH s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,6,ASCII,1,0 # Option path of file to boot (e.g. /platform/sun4u/kernel/sparcv9/unix) SbootFIL s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,7,ASCII,1,0 # Posix 1003.1 timezone specification Stz s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,8,ASCII,1,0 # NFS read size used by standalone boot program when loading kernel. SbootRS s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,9,NUMBER,2,1 # IP address of Jumpstart Install server. SinstIP4 s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,10,IP,1,1 # Name of Jumpstart Install server. SinstNM s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,11,ASCII,1,0 # Path to installation image on Install server. SinstPTH s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,12,ASCII,1,0 # ASCII <server name>:/path of sysid configuration file SsysidCF s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,13,ASCII,1,0 # ASCII <server name>:/path of JumpStart configuration file SjumpsCF s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,14,ASCII,1,0 # ASCII terminal type Sterm s Vendor=SUNW.Ultra-1 SUNW.Ultra-30 SUNW.i86pc,15,ASCII,1,0 # # Macro definitions # # Set the Locale. EST's offset from GMT is -18000 seconds. Locale m :UTCoffst=-18000: # # Define all Solaris-generic options under this macro. Solaris m :SrootIP4=172.21.0.2:SrootNM="test-172-21-0-0-2": \ :SinstIP4=172.21.0.2:SinstNM="test-172-21-0-0-2": \ :Sterm="xterm": # # Define all sparc-platform specific options under this macro. sparc m \ :SrootPTH="/export/s28/base.s28s_wos/latest/Solaris_2.8/Tools/Boot": \ :SinstPTH="/export/s28/base.s28s_wos/latest": # # Define all sun4m architecture-specific options under this macro. Note how # we include the Solaris and sparc generic information by include the # appropriate macros in this definition. sun4m m :Include=Solaris:Include=sparc: \ :SbootFIL="/platform/sun4m/kernel/unix": # # Define all sun4u architecture-specific options under this macro. sun4u m :Include=Solaris:Include=sparc: # # Solaris on Intel platform-specific parameters are under this macro. i86 m :Include=Solaris: \ :SrootPTH="/export/s28/base.s28x_wos/latest/Solaris_2.8/Tools/Boot": \ :SinstPTH="/export/s28/base.s28x_wos/latest": \ :SbootFIL="/platform/i86pc/kernel/unix": # # Solaris on Intel machines are identified by the "SUNW.i86pc" class. All # clients identifying themselves as members of this class will see these # parameters. SUNW.i86pc m :Include=i86: # # Ultra-1 platforms identify themselves as part of the "SUNW.Ultra-1" class. # By default, we boot these machines in 32bit mode. All clients identifying # themselves as members of this class will see these parameters. SUNW.Ultra-1 m :SbootFIL="/platform/sun4u/kernel/unix": \ :Include=sun4u: # # Ultra-30 platforms identify themselves as part of the "SUNW.Ultra-30" class. # By default, we will boot these machines in 64bit mode. All clients # identifying themselves as members of this class will see these parameters. SUNW.Ultra-30 m :SbootFIL="/platform/sun4u/kernel/sparcv9/unix": \ :Include=sun4u: # # Macros named using a client's subnet IP address are automatically consulted # by the DHCP server. Thus, all clients on the 172.20.64.64 network will see # these options. Thus it makes sense to associate all parameters specific to # a network with its macro. Note that it is important to keep the netmasks(4) # table up to date with respect to your network topology in order for the # DHCP server macro selection process to work correctly. # 172.20.64.64 m :Broadcst=172.20.64.127:Subnet=255.255.255.192: \ :Router=172.20.64.65:BootSrvA=172.21.0.2: 172.20.64.0 m :Subnet=255.255.255.192: \ :Router=172.20.64.2 172.20.64.1:Broadcst=172.20.64.63: \ :BootSrvA=172.21.0.2: 172.20.64.128 m :Subnet=255.255.255.128:Router=172.20.64.129: \ :Broadcst=172.20.64.255:BootSrvA=172.21.0.2: 172.21.0.0 m :Subnet=255.255.0.0:Router=172.21.0.1: \ :Broadcst=172.21.255.255:BootSrvA=172.21.0.2: 192.168.208.0 m :Subnet=255.255.248.0:Router=192.168.208.1: \ :Broadcst=192.168.215.255:BootSrvA=172.21.0.2: 172.22.0.0 m :Broadcst=172.22.255.255:Subnet=255.255.0.0:MTU=4352: \ :Router=172.22.0.1:BootSrvA=172.22.0.1: \ :NIS+dom="nis+.labtest.dhcp":NIS+serv=172.21.0.2: # # We use a macro named after the server's hostname to group parameters related # to the services exported by this server. Here we set the lease policy, as # well as automatically return a client's hostname by consulting the name # service. test-172-21-0-0-2 m :Include=Locale:Timeserv=172.21.0.2: \ :LeaseTim=3600:LeaseNeg:Hostname: \ :DNSdmain="lab.test.dhcp":DNSserv=172.22.0.7: # # This macro's name is a client's client identifier. Its options will be # combined with those of the Client class macro, network macro, and server # macro. Regardless of where this client appears in the network topology # served by this dhcp service, these parameters will follow it! 010800207E8A02 m :Impress=172.22.255.27:
dhcpconfig(1M), dhcpmgr(1M), dhtadm(1M), in.dhcpd(1M), dhcp_network(4)
Alexander, S., and R. Droms, DHCP Options and BOOTP Vendor Extensions, RFC 2132, Silicon Graphics, Inc., Bucknell University, March 1997.
Droms, R., Interoperation Between DHCP and BOOTP, RFC 1534, Bucknell University, October 1993.
Droms, R., Dynamic Host Configuration Protocol, RFC 2131, Bucknell University, March 1997.
Wimer, W., Clarifications and Extensions for the Bootstrap Protocol, RFC 1542, Carnegie Mellon University, October 1993.
NAME | DESCRIPTION | EXAMPLES | FILES | SEE ALSO