Oracle Solaris : 系统支持以下名称服务:DNS、NIS、NIS+ 和本地文件存储 (/etc/inet/hosts)。每个名称服务都只有在进行某些配置后才可用。还必须相应地设置名称服务转换器配置文件(请参见 nsswitch.conf(4)),以指明要使用的名称服务。
在 DHCP 客户机系统可以使用名称服务之前,您必须将系统配置为此名称服务的客户机。缺省情况下,除非在系统安装过程中另行配置,否则仅使用本地文件。
下表概述了与每个名称服务以及 DHCP 相关的问题。该表中还提供了一些文档链接,这些文档可帮助您针对每个名称服务设置客户机。
表 16–1 DHCP 客户机系统的名称服务客户机设置信息
名称服务 |
客户机设置信息 |
---|---|
NIS |
如果您使用 Oracle Solaris : DHCP 将 Oracle Solaris : 网络安装信息发送到客户机系统,则可以使用包含 NISservs 和 NISdmain 选项的配置宏。这些选项将 NIS 服务器的 IP 地址和 NIS 域名传递到客户机。然后客户机便会自动成为 NIS 客户机。 如果 DHCP 客户机系统已在运行 Oracle Solaris :,则当 DHCP 服务器将 NIS 信息发送到 DHCP 客户机时,不会在该系统上自动配置 NIS 客户机。 如果 DHCP 服务器配置为将 NIS 信息发送到 DHCP 客户机系统,则在客户机上按如下方式使用 dhcpinfo 命令时,您可以看到为客户机提供的值: # /sbin/dhcpinfo NISdmain # /sbin/dhcpinfo NISservs 注 – 对于 DHCPv6,在命令中包括 -v6 和不同的协议关键字。 # /sbin/dhcpinfo -v6 NISDomain # /sbin/dhcpinfo -v6 NISServers 将系统设置为 NIS 客户机时,请使用针对 NIS 域名和 NIS 服务器返回的值。 您可以使用标准方法为 Oracle Solaris : DHCP 客户机系统设置 NIS 客户机,如《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》中的第 5 章 “设置和配置 NIS 服务”所述。 提示 – 您可以编写一个使用 dhcpinfo 和 ypinit 的脚本,以便在 DHCP 客户机系统上自动配置 NIS 客户机。 |
NIS+ |
如果 DHCP 客户机系统的 NIS+ 客户机是使用常规方法设置的,则 DHCP 服务器在不同的时间可能会为客户机提供不同的地址。这就产生了安全性问题,因为 NIS+ 安全性包括作为配置组成部分的 IP 地址。为确保客户机每次都具有相同的地址,请使用非标准方法设置 DHCP 客户机系统的 NIS+ 客户机,此方法在将 DHCP 客户机设置为 NIS+ 客户机中介绍。 如果已经手动为 DHCP 客户机系统指定了 IP 地址,则客户机的地址始终不变。您可以使用标准方法设置 NIS+ 客户机,此方法在《System Administration Guide: Naming and Directory Services (NIS+)》中的“Setting Up NIS+ Client Machines”中介绍。 |
/etc/inet/hosts |
对于要使用 /etc/inet/hosts 作为其名称服务的 DHCP 客户机系统,您必须设置 /etc/inet/hosts 文件。 DHCP 客户机系统的主机名将由 DHCP 工具添加到其 /etc/inet/hosts 文件中。但是,您必须将此主机名手动添加到网络中其他系统的 /etc/inet/hosts 文件中。如果 DHCP 服务器系统使用 /etc/inet/hosts 进行名称解析,则您还必须在系统上手动添加客户机的主机名。 |
DNS |
如果 DHCP 客户机系统通过 DHCP 接收 DNS 域名,则会自动配置客户机系统的 /etc/resolv.conf 文件。/etc/nsswitch.conf 文件也自动更新,以便将 dns 按搜索顺序附加到 hosts 行中其他名称服务的后面。有关 DNS 的更多信息,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》。 |
您可以在作为 DHCP 客户机的 Oracle Solaris : 系统上使用 NIS+ 名称服务。但是,如果 DHCP 服务器可以在不同的时间提供不同的地址,则这将在某种程度上绕过 NIS+ 的安全增强功能之一,即创建数据加密标准 (Data Encryption Standard, DES) 证书。出于安全考虑,请将 DHCP 服务器配置为始终提供相同地址。当您设置不使用 DHCP 的 NIS+ 客户机时,请将此客户机的专有 DES 凭证添加到 NIS+ 服务器中。可以使用多种方法来创建凭证,例如使用 nisclient 脚本或 nisaddcred 命令。
生成 NIS+ 凭证时,要求客户机具有静态主机名以创建和存储这些凭证。如果您要使用 NIS+ 和 DHCP,则必须为 DHCP 客户机的所有主机名创建完全相同的凭证。这样,无论 DHCP 客户机接收何种 IP 地址和关联主机名,此客户机都可以使用相同的 DES 凭证。
以下过程显示如何为所有 DHCP 主机名创建相同的凭证。仅当您知道 DHCP 客户机使用的主机名时,此过程才有效。例如,当 DHCP 服务器生成主机名时,您便会知道客户机可能收到的主机名。
要使 DHCP 客户机系统成为 NIS+ 客户机,该系统必须使用属于 NIS+ 域中其他 NIS+ 客户机系统的凭证。此过程仅为系统生成凭证,而这些凭证仅适用于登录到系统的超级用户。其他登录到 DHCP 客户机系统的用户必须在 NIS+ 服务器中具有自己专有的凭证。这些凭证根据《System Administration Guide: Naming and Directory Services (NIS+) 》中的过程进行创建。
通过在 NIS+ 服务器上键入以下命令来为客户机创建凭证:
# nisgrep nisplus-client-name cred.org_dir > /tmp/file |
此命令将 NIS+ 客户机的 cred.org_dir 表项写入临时文件中。
使用 cat 命令查看此临时文件的内容。
或者,使用文本编辑器。
复制要用于 DHCP 客户机的凭证。
您必须复制公钥和私钥,它们是包含以冒号分隔的数字和字母的长字符串。这些凭证将粘贴到下一步发出的命令中。
通过键入以下命令来为 DHCP 客户机添加凭证:
# nistbladm -a cname=" dhcp-client-name@nisplus-domain" auth_type=DES \ auth_name="unix.dhcp-client-name@nisplus-domain" \ public_data=copied-public-key \ private_data=copied-private-key |
对于 copied-public-key,请粘贴您从临时文件中复制的公钥信息。对于 copied-private-key,请粘贴您从临时文件中复制的私钥信息。
通过在 DHCP 客户机系统上键入以下命令来将文件从 NIS+ 客户机系统远程复制到 DHCP 客户机系统:
# rcp nisplus-client-name:/var/nis/NIS_COLD_START /var/nis # rcp nisplus-client-name:/etc/.rootkey /etc # rcp nisplus-client-name:/etc/defaultdomain /etc |
如果您收到“权限被拒绝”消息,则说明系统可能没有设置为允许远程复制。在这种情况下,您可以以一般用户的身份将文件复制到中间位置。然后,以超级用户的身份,将这些文件从中间位置复制到 DHCP 客户机系统上的适当位置。
通过在 DHCP 客户机系统上键入以下命令来为 NIS+ 复制正确的名称服务转换器文件:
# cp /etc/nsswitch.nisplus /etc/nsswitch.conf |
重新引导 DHCP 客户机系统。
现在 DHCP 客户机系统应该可以使用 NIS+ 服务。
以下示例假设您有一个系统 nisei,此系统是 NIS+ 域 dev.example.net 中的 NIS+ 客户机。您还有一个 DHCP 客户机系统 dhow,并且希望将 dhow 作为 NIS+ 客户机。
(First log in as superuser on the NIS+ server) # nisgrep nisei cred.org_dir > /tmp/nisei-cred # cat /tmp/nisei-cred nisei.dev.example.net.:DES:unix.nisei@dev.example.net:46199279911a84045b8e0 c76822179138173a20edbd8eab4:90f2e2bb6ffe7e3547346dda624ec4c7f0fe1d5f37e21cff63830 c05bc1c724b # nistbladm -a cname="dhow@dev.example.net." \ auth_type=DES auth_name="unix.dhow@dev.example.net" \ public_data=46199279911a84045b8e0c76822179138173a20edbd8eab4 \ private_data=90f2e2bb6ffe7e3547346dda624ec4c7f0fe1d5f37e21cff63830\ c05bc1c724b # rlogin dhow (Log in as superuser on dhow) # rcp nisei:/var/nis/NIS_COLD_START /var/nis # rcp nisei:/etc/.rootkey /etc # rcp nisei:/etc/defaultdomain /etc # cp /etc/nsswitch.nisplus /etc/nsswitch.conf # reboot |
现在 DHCP 客户机系统 dhow 应该可以使用 NIS+ 服务。
如果您要将大量的 DHCP 客户机系统都设置为 NIS+ 客户机,则可以编写脚本。脚本可以快速将项添加到 cred.org_dir NIS+ 表中。以下示例显示了一个脚本样例。
#! /usr/bin/ksh # # Copyright (c) by Sun Microsystems, Inc. All rights reserved. # # Sample script for cloning a credential. Hosts file is already populated # with entries of the form dhcp-[0-9][0-9][0-9]. The entry we're cloning # is dhcp-001. # # PUBLIC_DATA=6e72878d8dc095a8b5aea951733d6ea91b4ec59e136bd3b3 PRIVATE_DATA=3a86729b685e2b2320cd7e26d4f1519ee070a60620a93e48a8682c5031058df4 HOST="dhcp-" DOMAIN="mydomain.example.com" for i in 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 do print - ${HOST}${i} #nistbladm -r [cname="${HOST}${i}.${DOMAIN}."]cred.org_dir nistbladm -a cname="${HOST}${i}.${DOMAIN}." \ auth_type=DES auth_name="unix.${HOST}${i}@${DOMAIN}" \ public_data=${PUBLIC_DATA} private_data=${PRIVATE_DTA} cred.org_Dir done exit 0 |