Solaris Express Installation Guide: Network-Based Installations
Previous Next

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

Task

Description

Instructions

Set up an install server.

Set up a Solaris server to support clients that must install the Solaris OS from the network.

Chapter 4, Installing From the Network (Overview)

Set up client systems for Solaris installation over the network by using DHCP.

Use add_install_client -d to add DHCP network installation support for a class of client (of a certain machine type, for example) or a particular client ID.

Using Solaris DVD:

Adding Systems to Be Installed From the Network With a DVD Image

Using Solaris CD:

Adding Systems to Be Installed From the Network With a CD Image

add_install_client(1M)

Prepare your network to use the DHCP service.

Decide how you want to configure your DHCP server.

Chapter 15, Planning for DHCP Service (Tasks), in System Administration Guide: IP Services

Configure the DHCP server.

Use DHCP Manager to configure your DHCP server

Chapter 16, Configuring the DHCP Service (Tasks), in System Administration Guide: IP Services

Create DHCP options for installation parameters and macros that include the options.

Use DHCP Manager or dhtadm to create new Vendor options and macros that the DHCP server can use to pass installation information to the clients.

Creating DHCP Options and Macros for Solaris Installation Parameters

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.

  1. Become superuser or assume an equivalent role on the DHCP server system.
  2. Start the DHCP Manager.
    # /usr/sadm/admin/bin/dhcpmgr &

    The DHCP Manager window is displayed.

  3. Select the Options tab in DHCP Manager.
  4. Choose Create from the Edit menu.

    The Create Option panel opens.

  5. 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.

  6. Click OK when you have entered all the values.
  7. In the Options tab, select the option you just created.
  8. Select Duplicate from the Edit menu.

    The Duplicate Option panel opens.

  9. 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.

  10. 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.

  1. Select the Macros tab in DHCP Manager.
  2. Choose Create from the Edit menu.

    The Create Macro panel opens.

  3. Type the name of a macro.

    See Table 3-5 for macro names you might use.

  4. Click the Select button.

    The Select Option panel opens.

  5. Select Vendor in the Category list.

    The Vendor options you created are listed.

  6. Select an option you want to add to the macro and click OK.
  7. 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.

  8. 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.

  9. 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).

Previous Next