动态主机配置协议 (DHCP) 使 TCP/IP 网络中的主机系统能够在引导时被自动配置,以适应网络。DHCP 使用客户机和服务器机制。服务器为客户机存储和管理配置信息,并按照客户机的请求提供此信息。该信息包含客户机的 IP 地址,以及客户机可以使用的关于网络服务的信息。
DHCP 的主要优点是它能够通过租用来管理 IP 地址的指定。租用使 IP 地址可以在不使用时被回收并被重新指定给其它客户机。该功能使站点能够使用比为所有客户机均指定永久地址所需 IP 地址池小的 IP 地址池。
您可以使用 DHCP 在网络上的特定客户机系统中安装 Solaris 操作环境。只有符合运行 Solaris 操作环境的硬件要求的 Sun Enterprise Ultra 系统和 x86 系统才可以使用此功能。
以下任务图显示了必须执行的高级任务,使客户机可以通过使用 DHCP 来获得安装参数。
表 7–3 任务图:使用 DHCP 服务预先配置系统配置信息
任务 |
说明 |
参考 |
---|---|---|
设置安装服务器。 |
设置 Solaris 服务器以支持必须从网络安装 Solaris 操作环境的客户机。 | |
通过使用 DHCP 在网络上为 Solaris 安装设置客户机系统。 |
使用 add_install_client -d为某类客户机(例如,特定类型的计算机)或特定客户机 ID 添加 DHCP 网络安装支持。 |
使用 Solaris DVD: 使用 Solaris CD: |
准备您的网络以使用 DHCP 服务。 |
决定要如何配置您的 DHCP 服务器。 |
System Administration Guide: IP Services 中的“Planning for DHCP Service (Task)” |
配置 DHCP 服务器。 |
使用 DHCP Manager 来配置您的 DHCP 服务器 |
System Administration Guide: IP Services 中的“Configuring DHCP Service (Task)” |
为安装参数和包含选项的宏创建 DHCP 选项。 |
使用 DHCP Manager 或 dhtadm 创建新的供应商选项和宏,DHCP 服务器可以使用这些选项和宏将安装信息传送到客户机。 |
当您使用 add_install_client -d 脚本在安装服务器上添加客户机时,脚本将把 DHCP 配置信息报告到标准输出。当创建将网络安装信息传送给客户机时所需的选项和宏时,可以使用此信息。
要从网络安装 DHCP 客户机,您必须创建供应商种类选项,以传送安装 Solaris 操作环境所需的信息。表 7–4 显示了您必须创建的选项以及创建这些选项时所需的特性。
您可以在 DHCP 服务中定制宏,以执行以下类型的安装。
特定于类型的安装 — 您可以指示 DHCP 服务对某一特定类型的所有客户机执行网络安装。例如,您可以定义 DHCP 宏,对网络上的所有 Sun Blade 系统执行相同安装。使用 add_install_client -d 命令的输出设置特定于类型的安装。
特定于客户机的安装 — 您可以指示 DHCP 服务对具有特定以太网地址的客户机执行网络安装。例如,您可以定义 DHCP 宏,对以太网地址为 00:07:e9:04:4a:bf 的客户机执行特定安装。使用 add_install_client -d -e ethernet_address 命令的输出设置特定于客户机的安装。
有关设置客户机以从网络进行安装的详细信息,请参见以下过程。
有关使用 DVD 介质的网络安装,请参见使用 DVD 映像添加要从网络安装的系统。
有关使用 CD 介质的网络安装,请参见添加要使用 CD 映像从网络上安装的系统。
下表中列出的供应商客户机类确定哪些类的客户机可以使用该选项。此处列出的供应商客户机类仅作实例使用。您应当指定客户机类,它表示您的网络中需要从网络安装的实际客户机。关于如何确定客户机的供应商客户机类的信息,请参见 System Administration Guide: IP Services 中的“Working With DHCP Options (Task Map)”。
关于 DHCP 选项的详细信息,请参见 System Administration Guide: IP Services 中的“DHCP Option Information”。
表 7–4 用于为 Solaris 客户机创建供应商种类选项的值
名称 |
代码 |
数据类型 |
粒度 |
最大值 |
供应商客户机类 * |
说明 |
---|---|---|---|---|---|---|
需要以下供应商种类选项,以使 DHCP 服务器能够支持 Solaris 安装客户机。这些选项在 Solaris 客户机的启动脚本中使用。 |
||||||
SrootIP4 |
2 |
IP 地址 |
1 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
根服务器的 IP 地址 |
SrootNM |
3 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
根服务器的主机名 |
SrootPTH |
4 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
根服务器上客户机的根目录的路径 |
SinstIP4 |
10 |
IP 地址 |
1 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
JumpStart 安装服务器的 IP 地址 |
SinstNM |
11 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
安装服务器的主机名 |
SinstPTH |
12 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
安装服务器上的安装映像的路径 |
客户机启动脚本可以使用以下选项,但是脚本不需要使用这些选项。 |
||||||
SrootOpt |
1 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
客户机的根文件系统的 NFS 装载选项 |
SbootFIL |
7 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
客户机的根文件的路径 |
SbootRS |
9 |
数字 |
2 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
在装入内核时,NFS 读取独立引导程序所使用的大小 |
SsysidCF |
13 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
sysidcfg 文件的路径,格式为 server:/path |
SjumpsCF |
14 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
JumpStart 配置文件的路径,格式为 server:/path |
16 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
独立引导文件的路径或 WAN Boot 文件的路径。对于独立引导文件,请使用以下格式。 tftp://inetboot.sun4u 对于 WAN Boot 文件,格式为 http://host.domain/path-to-file 可以使用此选项覆盖 BootFile 和 siaddr 设置,以便检索独立引导文件。支持的协议:tftp (inetboot) 和 http (wanboot)。 例如,使用以下格式。tftp://inetboot.sun4u |
|
17 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
您的网络中使用的代理服务器的 IP 地址和端口号。仅当客户机在 WAN 内引导时才需要此选项,并且本地网络使用代理服务器。例如,使用以下格式: 198.162.10.5:8080 |
|
Solaris 客户机启动脚本当前不使用以下选项。仅当您编辑启动脚本时,才可以使用这些选项。 |
||||||
SswapIP4 |
5 |
IP 地址 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
交换服务器的 IP 地址 |
SswapPTH |
6 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
交换服务器上客户机的交换文件的路径 |
Stz |
8 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
客户机的时区 |
Sterm |
15 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
终端类型 |
创建了选项以后,您可以创建包含这些选项的宏。下表列出了样例宏,您可以创建这些宏以支持客户机的 Solaris 安装。
表 7–5 支持网络安装客户机的样例宏
宏名 |
包含这些选项和宏 |
---|---|
Solaris |
SrootIP4, SrootNM, SinstIP4, SinstNM |
sparc |
SrootPTH, SinstPTH |
sun4u |
Solaris 和 sparc 宏 |
i86pc |
Solaris 宏、SrootPTH, SinstPTH, SbootFIL |
SUNW.i86pc |
i86pc 宏 |
SUNW.Sun-Blade-1000 |
sun4u 宏、SbootFIL |
SUNW.Sun-Fire-880 |
sun4u 宏、SbootFIL |
xxx.xxx.xxx.xxx 网络地址宏 |
可以将 BootSrvA 选项添加到现有的网络地址宏中。BootSrvA 的值应表示 tftboot 服务器。 |
上一个表中列出的宏名与必须从网络安装的客户机的供应商客户机类相匹配。这些名称是可能位于网络上的客户机的实例。关于确定客户机的供应商客户机类的信息,请参见 System Administration Guide: IP Services 中的“Working With DHCP Options (Task Map)”。
通过使用以下方法,您可以创建这些选项和宏。
通过使用 dhtadm 命令写入一个创建选项和宏的脚本。关于如何写入创建这些选项和宏的脚本的信息,请参见写入使用 dhtadm 来创建选项和宏的脚本。
在 DHCP Manager 中创建选项和宏。关于如何在 DHCP Manager 中创建选项和宏的说明,请参见使用 DHCP Manager 来创建安装选项和宏。
通过改写实例 7–1 中的实例创建表 7–4 中列出的所有选项和某些有用的宏,您可以创建 Korn shell 脚本。请确保将引号括住的所有 IP 地址和值更改为适用于您的网络的正确的 IP 地址、服务器名和路径。您也应编辑 Vendor= 关键字以表示您具有的客户机类。使用 add_install_client -d 报告的信息,以获取改写脚本所需的数据。
# Load the Solaris vendor specific options. We'll start out supporting # the Sun-Blade-1000, Sun-Fire-880, and i86 platforms. 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. 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. 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_ # 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":' |
作为超级用户,请在批处理模式下执行 dhtadm。指定脚本名称以将选项和宏添加到您的 dhcptab 中。 例如,如果您的脚本名为 netinstalloptions,则请键入以下命令。
# dhtadm -B netinstalloptions |
具有 Vendor= 字符串中列出的供应商客户机类的客户机现在可以使用 DHCP 在网络上进行安装。
关于如何使用 dhtadm 命令的详细信息,请参见 dhtadm(1M)。关于 dhcptab 文件的详细信息,请参见 dhcptab(4)。
您可以使用 DHCP Manager 来创建表 7–4 中列出的选项和表 7–5 中列出的宏。
此过程假定您已经配置了您的 DHCP 服务器。如果您没有配置您的 DHCP 服务器,请参见 System Administration Guide: IP Services 中的“Planning for DHCP Service (Task)”。
成为 DHCP 服务器系统中的超级用户。
启动 DHCP Manager。
# /usr/sadm/admin/bin/dhcpmgr & |
将显示“DHCP Manager”窗口。
在“DHCP Manager”中选择“选项”选项卡。
从“编辑”菜单中选择“创建”。
“创建选项”对话框将打开。
为第一个选项键入选项名,然后为该选项键入相应的值。
使用表 7–4 检查您必须创建的选项的选项名和值。请注意,供应商客户机类只是建议的值。您应当创建类,以表示需要从 DHCP 服务获取 Solaris 安装参数的实际客户机类型。关于如何确定客户机的供应商客户机类的信息,请参见 System Administration Guide: IP Services 中的“Working With DHCP Options (Task Map)”。
输入了所有值以后,请单击“确定”。
在“选项”选项卡中,选择您刚刚创建的选项。
从“编辑” 菜单中选择“复制”。
“复制选项”对话框将打开。
键入另一个选项的名称,然后相应修改其它值。
代码值、数据类型值、粒度值和最大值可能都需要修改。关于这些值,请参见表 7–4。
您现在可以创建宏,以将选项传送给网络安装客户机(如以下过程中所述)。
您不需要将这些选项添加到 Solaris 客户机的 /etc/dhcp/inittab 文件中,因为此文件中已经包含了这些选项。
此过程假设您已经配置了您的 DHCP 服务器。如果您没有配置您的 DHCP 服务器,请参见 System Administration Guide: IP Services 中的“Planning for DHCP Service (Task)”。