动态主机配置协议 (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–13 中的实例来创建一个 Korn shell 脚本,从而创建表 7–4 中列出的所有选项和一些有用的宏。 请确保将括在引号中的所有 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)”。