Preconfiguring System Configuration Information With the DHCP Service (Tasks)
The Dynamic Host Configuration Protocol (DHCP) enables host systems in a TCP/IP network to
be configured automatically for the network as they boot. DHCP uses a
client and server mechanism. Servers store and manage configuration information for clients, and provide
that information on a client's request. The information includes the client's IP address
and information about network services available to the client.
A primary benefit of DHCP is its ability to manage IP address
assignments through leasing. Leasing allows IP addresses to be reclaimed when not in
use and reassigned to other clients. This ability enables a site to use
a smaller pool of IP address than would be needed if all clients
were assigned a permanent address.
You can use DHCP to install the Solaris OS on certain client systems
on your network. All SPARC based systems that are supported by the Solaris
OS and x86 based systems that meet the hardware requirements for running the
Solaris OS can use this feature.
The following task map shows the high-level tasks that must be performed to
enable clients to obtain installation parameters by using DHCP.
Table 3-2 Task Map: Preconfiguring System Configuration Information With the DHCP Service
Creating DHCP Options and Macros for Solaris Installation Parameters
When you add clients with the add_install_client -d script on the install server, the script
reports DHCP configuration information to standard output. This information can be used when
you create the options and macros that are needed to pass network installation
information to clients.
You can customize the options and macros in your DHCP service to
perform the following types of installations.
Class-specific installations – You can instruct the DHCP service to perform a network installation for all clients of a specific class. For example, you can define a DHCP macro that performs the same installation on all Sun Blade systems on the network. Use the output of the add_install_client -d command to set up a class-specific installation.
Network-specific installations – You can instruct the DHCP service to perform a network installation for all clients in a specific network. For example, you can define a DHCP macro that performs the same installation on all systems in the 192.168.2 network.
Client-specific installations –You can instruct the DHCP service to perform a network installation for a client with a specific Ethernet address. For example, you can define a DHCP macro that performs a specific installation on the client with the Ethernet address 00:07:e9:04:4a:bf. Use the output of the add_install_client -d -e ethernet_address command to set up a client-specific installation.
For more information on setting up clients to use a DHCP server
for a network installation, see the following procedures.
DHCP Options and Macro Values
To install DHCP clients from the network, you must create Vendor category options
to pass information that is needed to install the Solaris OS. The following
tables describe common DHCP options that you can use to install a DHCP
client.
You can use the standard DHCP options that are listed in Table 3-3 to configure and install x86 based systems. These options are not platform specific, and can be used to install the Solaris OS on a variety of x86 based systems. For a complete list of standard options, see dhcp_inittab(4).
Table 3-4 lists options that you can use to install Sun client systems. The vendor client classes that are listed in this table determine what classes of client can use the option. Vendor client classes that are listed here are examples only. You should specify client classes that indicate the actual clients in your network that you need to install from the network. See Working With DHCP Options (Task Map) in System Administration Guide: IP Services for information about how to determine a client's vendor client class.
For detailed information on DHCP options, see DHCP Option Information in System Administration Guide: IP Services.
Table 3-3 Values for Standard DHCP Options
Option Name |
Code |
Data Type |
Granularity |
Maximum |
Description |
BootFile |
N/A |
ASCII |
1 |
1 |
Path to the
client's boot file |
BootSrvA |
N/A |
IP address |
1 |
1 |
IP address of boot server |
DNSdmain |
15 |
ASCII |
1 |
0 |
DNS domain name |
DNSserv |
6 |
IP address |
1 |
0 |
List of
DNS name servers |
NISdmain |
40 |
ASCII |
1 |
0 |
NIS domain name |
NISservs |
41 |
IP address |
1 |
0 |
IP address of NIS server |
NIS+dom |
64 |
ASCII |
1 |
0 |
NIS+ domain name |
NIS+serv |
65 |
IP
address |
1 |
0 |
IP address of NIS+ server |
Router |
3 |
IP address |
1 |
0 |
IP addresses of network routers |
Table 3-4 Values for Creating Vendor Category Options for Solaris Clients
Name |
Code |
Data Type |
Granularity |
Maximum |
Vendor Client
Classes * |
Description |
The following Vendor category options are required to enable a DHCP server to support Solaris installation clients. The options are used in the Solaris client's startup scripts.
Note - Vendor client classes that are listed here are examples only. You should
specify client classes that indicate the actual clients in your network that you
need to install from the network.
|
SrootIP4 |
2 |
IP address |
1 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
IP address of root server |
SrootNM |
3 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Host
name of root server |
SrootPTH |
4 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Path to the client's root directory on the
root server |
SinstIP4 |
10 |
IP address |
1 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
IP address of JumpStart install server |
SinstNM |
11 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Host name of install
server |
SinstPTH |
12 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Path to installation image on install server |
The following options can be used by the client startup scripts, but are not required by the scripts.
Note - Vendor client classes that are
listed here are examples only. You should specify client classes that indicate the
actual clients in your network that you need to install from the network.
|
SrootOpt |
1 |
ASCII
text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
NFS mount options for the client's root file system |
SbootFIL |
7 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Path to the
client's boot file |
SbootRS |
9 |
NUMBER |
2 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
NFS read size used by standalone boot program when loading
the kernel |
SsysidCF |
13 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Path to sysidcfg file, in the format server:/path |
SjumpsCF |
14 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Path to
JumpStart configuration file in the format server:/path |
SbootURI |
16 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Path to the standalone boot
file or path to the WAN boot file. For the standalone boot file,
use the following format. tftp://inetboot.sun4u For the WAN boot file, the format is http://host.domain/path-to-file This option
can be used to override BootFile and siaddr settings in order to
retrieve a standalone boot file. Supported protocols: tftp (inetboot), http (wanboot). For example,
use the following format. tftp://inetboot.sun4u |
SHTTPproxy |
17 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
IP address and port number of the proxy
server that is used on your network. This option is needed only when
a client is booting across a WAN, and the local network uses a
proxy server. For example, use the following format: 198.162.10.5:8080 |
The following options are not currently used by the Solaris client startup scripts. You can use them only if you edit the startup scripts.
Note - Vendor client classes that are
listed here are examples only. You should specify client classes that indicate the
actual clients in your network that you need to install from the network.
|
SswapIP4 |
5 |
IP
address |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
IP address of swap server |
SswapPTH |
6 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Path to the client's swap file on
the swap server |
Stz |
8 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Time zone for client |
Sterm |
15 |
ASCII text |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
Terminal type |
When you have created the options, you can create macros that include those
options. The following table lists sample macros you can create to support Solaris
installation for clients.
Table 3-5 Sample Macros to Support Network Installation Clients
Macro Name |
Contains These Options and Macros |
Solaris |
SrootIP4, SrootNM, SinstIP4, SinstNM |
sparc |
SrootPTH, SinstPTH |
sun4u |
Solaris and sparc macros |
sun4v |
Solaris
and sparc macros |
i86pc |
Solaris macro, SrootPTH, SinstPTH, SbootFIL |
SUNW.i86pc |
i86pc macro |
SUNW.Sun-Blade-1000 |
sun4u macro, SbootFIL
|
SUNW.Sun-Fire-880 |
sun4u macro, SbootFIL |
PXEClient:Arch:00000:UNDI:002001 |
BootSrvA, BootFile |
xxx.xxx.xxx.xxx network address macros |
BootSrvA option could be
added to existing network address macros. The value of BootSrvA should indicate the
tftboot server. |
01client-MAC-address client-specific macros (for example, 010007E9044ABF) |
BootSrvA, BootFile |
The macro names that are listed in the previous table match the
Vendor client classes of the clients that must install from the network. These
names are examples of clients you might have on your network. See Working With DHCP Options (Task Map) in System Administration Guide: IP Services
for information about determining a client's vendor client class.
You can create these options and macros by using the following methods.
Note that the total size of the vendor options that are provided
to a particular client must not exceed 255 bytes, including the option codes and
length information. This is a limitation of the current Solaris DHCP protocol
implementation. Generally, you should pass the minimum amount of vendor information needed. You
should use short path names in options that require path names. If you
create symbolic links to long paths, you can use the shorter link names.
Using DHCP Manager to Create Install Options and Macros
You can use DHCP Manager to create the options that are listed
in Table 3-4 and the macros that are listed in Table 3-5.
How to Create Options to Support Solaris Installation (DHCP Manager)
Before You Begin
Perform the following tasks before you create DHCP macros for your installation.
- Become superuser or assume an equivalent role on the DHCP server system.
- Start the DHCP Manager.
# /usr/sadm/admin/bin/dhcpmgr &
The DHCP Manager window is displayed.
- Select the Options tab in DHCP Manager.
- Choose Create from the Edit menu.
The Create Option panel opens.
- Type the option name for the first option, then type values appropriate for
that option.
Use the output of the add_install_client command , Table 3-3, and Table 3-4 to
check the option names and values for options you must create. Notice that
the vendor client classes are only suggested values. You should create classes to
indicate the actual client types that need to obtain Solaris installation parameters from the
DHCP service. See Working With DHCP Options (Task Map) in System Administration Guide: IP Services for information about how to determine a client's vendor
client class.
- Click OK when you have entered all the values.
- In the Options tab, select the option you just created.
- Select Duplicate from the Edit menu.
The Duplicate Option panel opens.
- Type the name of another option, then modify other values appropriately.
The values for code, data type, granularity, and maximum are most likely to
need modification. See Table 3-3 and Table 3-4 for the values.
- Repeat Step 7 through Step 9 until you have created all the options.
You can now create macros to pass the options to network installation clients,
as explained in the following procedure.
Note - You do not need to add these options to a Solaris client's
/etc/dhcp/inittab file because they are already included in that file.
How to Create Macros to Support Solaris Installation (DHCP Manager)
Before You Begin
Perform the following tasks before you create DHCP macros for your installation.
- Select the Macros tab in DHCP Manager.
- Choose Create from the Edit menu.
The Create Macro panel opens.
- Type the name of a macro.
See Table 3-5 for macro names you might use.
- Click the Select button.
The Select Option panel opens.
- Select Vendor in the Category list.
The Vendor options you created are listed.
- Select an option you want to add to the macro and click OK.
- Type a value for the option.
See Table 3-3 and Table 3-4 for the option's data type and refer to the
information that add_install_client -d reports.
- Repeat Step 6 through Step 7 for each option you want to include.
To include another macro, type Include as the option name and type the
macro name as the option value.
- Click OK when the macro is complete.
More Information
Continuing the Installation
If you plan to use DHCP in an installation over the network,
you need to set up an installation server and add the system as
an installation client. For more information, see Chapter 4, Installing From the Network (Overview).
If you plan to use DHCP in a WAN boot installation, you
need to perform additional tasks. For more information, see Chapter 9, WAN Boot (Overview).
If you plan to use DHCP in a custom JumpStart installation, you
need to create a profile and a rules.ok file. For more information, see Chapter 2, Custom JumpStart (Overview), in Solaris Express Installation Guide: Custom JumpStart and Advanced Installations.
See Also
For more information about DHCP, see Part II, DHCP, in System Administration Guide: IP Services.
Writing a Script That Uses dhtadm to Create Options and Macros
You can create a Korn shell script by adapting the example in Example 3-1
to create all the options listed in Table 3-3 and Table 3-4 and some useful
macros. Be sure to change all IP addresses and values contained in quotes
to the correct IP addresses, server names, and paths for your network. You
should also edit the Vendor= key to indicate the class of clients you
have. Use the information that add_install_client -d reports to obtain the data that you need
to adapt the script.
Example 3-1 Sample Script to Support Network Installation
# Load the Solaris vendor specific options. We'll start out supporting
# the Sun-Blade-1000, Sun-Fire-880, and i86 platforms. Note that the
# SUNW.i86pc option only applies for the Solaris 10 3/05 release.
# Changing -A to -M would replace the current values, rather than add them.
dhtadm -A -s SrootOpt -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,1,ASCII,1,0'
dhtadm -A -s SrootIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,2,IP,1,1'
dhtadm -A -s SrootNM -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,3,ASCII,1,0'
dhtadm -A -s SrootPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,4,ASCII,1,0'
dhtadm -A -s SswapIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,5,IP,1,0'
dhtadm -A -s SswapPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,6,ASCII,1,0'
dhtadm -A -s SbootFIL -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,7,ASCII,1,0'
dhtadm -A -s Stz -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,8,ASCII,1,0'
dhtadm -A -s SbootRS -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,9,NUMBER,2,1'
dhtadm -A -s SinstIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,10,IP,1,1'
dhtadm -A -s SinstNM -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,11,ASCII,1,0'
dhtadm -A -s SinstPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,12,ASCII,1,0'
dhtadm -A -s SsysidCF -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,13,ASCII,1,0'
dhtadm -A -s SjumpsCF -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,14,ASCII,1,0'
dhtadm -A -s Sterm -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,15,ASCII,1,0'
dhtadm -A -s SbootURI -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,16,ASCII,1,0'
dhtadm -A -s SHTTPproxy -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,17,ASCII,1,0'
# Load some useful Macro definitions.
# Define all Solaris-generic options under this macro named Solaris.
dhtadm -A -m Solaris -d \
':SrootIP4=10.21.0.2:SrootNM="blue2":SinstIP4=10.21.0.2:SinstNM="red5":'
# Define all sparc-platform specific options under this macro named sparc.
dhtadm -A -m sparc -d \
':SrootPTH="/export/sparc/root":SinstPTH="/export/sparc/install":'
# Define all sun4u architecture-specific options under this macro named sun4u.
# (Includes Solaris and sparc macros.)
dhtadm -A -m sun4u -d ':Include=Solaris:Include=sparc:'
# Solaris on IA32-platform-specific parameters are under this macro named i86pc.
# Note that this macro applies only for the Solaris 10 3/05 release.
dhtadm -A -m i86pc -d \
':Include=Solaris:SrootPTH="/export/i86pc/root":SinstPTH="/export/i86pc/install"\
:SbootFIL="/platform/i86pc/kernel/unix":'
# Solaris on IA32 machines are identified by the "SUNW.i86pc" class. All
# clients identifying themselves as members of this class will see these
# parameters in the macro called SUNW.i86pc, which includes the i86pc macro.
# Note that this class only applies for the Solaris 10 3/05 release.
dhtadm -A -m SUNW.i86pc -d ':Include=i86pc:'
# Sun-Blade-1000 platforms identify themselves as part of the
# "SUNW.Sun-Blade-1000" class.
# All clients identifying themselves as members of this class
# will see these parameters.
dhtadm -A -m SUNW.Sun-Blade-1000 -d \
':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":\
Include=sun4u:'
# Sun-Fire-880 platforms identify themselves as part of the "SUNW.Sun-Fire-880" class.
# All clients identifying themselves as members of this class will see these parameters.
dhtadm -A -m SUNW.Sun-Fire-880 -d \
':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":Include=sun4u:'
# Add our boot server IP to each of the network macros for our topology served by our
# DHCP server. Our boot server happens to be the same machine running our DHCP server.
dhtadm -M -m 10.20.64.64 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.20.64.0 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.20.64.128 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.21.0.0 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.22.0.0 -e BootSrvA=10.21.0.2
# Make sure we return host names to our clients.
dhtadm -M -m DHCP-servername -e Hostname=_NULL_VALUE_
# Create a macro for PXE clients that want to boot from our boot server.
# Note that this macro applies for the Solaris 10 3/05 release.
dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \
:BootFile=nbp.i86pc:BootSrvA=10.21.0.2:
# Create a macro for PXE clients that want to boot from our boot server.
# Note that this macro applies for the Solaris 10 2/06 release.
dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \
:BootFile=i86pc:BootSrvA=10.21.0.2:
# Create a macro for the x86 based client with the Ethernet address 00:07:e9:04:4a:bf
# to install from the network by using PXE.
dhtadm -A -m 010007E9044ABF -d :BootFile=010007E9044ABF:BootSrvA=10.21.0.2:
# The client with this MAC address is a diskless client. Override the root settings
# which at the network scope setup for Install with our client's root directory.
dhtadm -A -m 0800201AC25E -d \
':SrootIP4=10.23.128.2:SrootNM="orange-svr-2":SrootPTH="/export/root/10.23.128.12":'
As superuser, execute dhtadm in batch mode. Specify the name of the script
to add the options and macros to your dhcptab. For example, if your
script is named netinstalloptions, type the following command.
# dhtadm -B netinstalloptions
Clients that have vendor client classes that are listed in the Vendor=
string can now use DHCP to install over the network.
For more information about how to use the dhtadm command, see dhtadm(1M). For more
information about the dhcptab file, see dhcptab(4).