7.2 准备安装身份库

必须恰当配置身份库的环境。例如,服务器必须能够通过某种方法(服务或指定的文件)将身份库中的树名解析为服务器参照。本节将帮助您准备要安装身份库的环境。

7.2.1 当容器名称包含句点(“.”)时使用转义符

您可以在目录树中添加服务器名称中包含句点的 Windows 服务器。例如,O=netiq.comC=u.s.a。但是,如果树中的容器名称包含句点(“.”),则必须使用转义符。请查看以下注意事项:

  • 请勿在服务器名称的开头使用句点,例如:.netiq

  • 使用反斜杠(“\”)来转义容器名称中的句点。例如:

    O=novell\.com

    或者

    C=a\.b\.c

为 iMonitor、iManager、DHost iConsole、DSRepair、Backup、DSMerge、DSLogin 和 ldapconfig 等实用程序输入带句点的管理员名称和环境时,请包含转义符。例如,在登录 iMonitor 时,如果树中 O 的名称为 netiq.com,请输入 'admin.netiq\.com'admin.netiq\.com

7.2.2 使用 OpenSLP 或 hosts.nds 解析树名

在安装身份库基础结构之前,服务器应该能够通过某种方法(服务或指定的文件)将身份库中的树名解析为服务器参照。NetIQ 建议使用服务定位协议 (SLP) 服务来解析树名。eDirectory 先前版本的安装中包含 OpenSLP。但是,从 eDirectory 8.8 开始,安装中不再包含 OpenSLP。您必须单独安装 SLP 服务或使用 hosts.nds 文件。如果您使用 SLP 服务,该服务的目录代理 (SLPDA) 必须稳定。

本节提供以下信息:

使用 hosts.nds 文件解析树名

hosts.nds 文件是一个静态查找表,身份库应用程序使用它来搜索身份库分区和服务器。当网络中不存在 SLP DA 时,它可以帮助您避免 SLP 多路广播延迟。对于每个树或服务器,您必须在 hosts.nds 文件的一行中指定以下信息:

  • 服务器名称或树名:树名应以后随点 (.) 结尾。

  • 因特网地址:可以是 DNS 名称或 IP 地址。请不要使用 localhost

  • 服务器端口:(可选)追加在因特网地址后面以冒号 (:) 分隔。

除非本地服务器在非默认 NCP 端口上侦听,否则不需要在该文件中包含本地服务器的对应项。

要配置 hosts.nds 文件,请执行以下操作:

  1. 创建新的或打开现有的 hosts.nds 文件。

  2. 添加以下信息:

                      partition_name.tree_name. host_name/ip-addr:port server_name dns-addr/ip-addr:port
                    

    例如:

    # This is an example of a hosts.nds file:
    # Tree name Internet address/DNS Resolvable Name
      CORPORATE. myserver.mycompany.com
      novell.CORPORATE. 1.2.3.4:524
    
    # Server name Internet address
      CORPSERVER myserver.mycompany.com:524
  3. (可选)如果您随后决定使用 SLP 来解析树名并确保网络中提供身份库树,请在 hosts.nds 文件中添加以下文本:

    /usr/bin/slptool findattrs services:ndap.novell///(svcname-ws==[treename or *])"

    例如,要搜索其 svcname-ws 属性与 SAMPLE_TREE 值匹配的服务,请输入以下命令:

    /usr/bin/slptool findattrs services:ndap.novell///(svcname-ws==SAMPLE_TREE)"

    注:请在安装 SLP 和身份库之后执行此操作。

    如果所注册服务的 svcname-ws 属性为 SAMPLE_TREE,则输出将与 service:ndap.novell:///SAMPLE_TREE 类似。否则,您将不会收到输出响应。

了解 OpenSLP

OpenSLP 指的是 IETF Request-For-Comments (RFC) 2608 中所述的 IETF 服务定位协议 2.0 版标准的开源实现。

由 OpenSLP 源代码提供的接口是 RFC 2614 中所述的、以编程方式访问 SLP 功能的另一种 IETF 标准的实现。

要完全了解 SLP 的工作原理,最好阅读这些文档并吃透其中的内容。它们未必通俗易懂,但要想在内部网中正确配置 SLP,您必须了解这些知识。

有关 OpenSLP 项目的详细信息,请参见 OpenSLPSourceForge 网站。OpenSLP 网站上提供了包含有用配置提示的数份文档。其中的许多文档在本文档发布时并不完善。

本节中包含了有个 SLP 的用途以及它与身份库关系的以下讨论:

NetIQ 服务定位提供程序

为了提供更强大的服务播发环境,NetIQ 版本的 SLP 采用了某些具有 SLP 标准的库,但这样做的代价是降低了一定程度的可伸缩性。

例如,为了改善服务播发框架的可伸缩性,您可以对在子网上广播或进行多路广播的包数加以限制。SLP 规范通过对服务代理和用户代理上的目录代理查询施加限制,来实现此管理。发现的作用于所需范围的第一个目录代理,就是服务代理(以及本地用户代理)要为该范围的所有未来请求使用的目录代理。

实际上,NetIQ SLP 实现会扫描它所知道的所有目录代理以获取查询信息。它认为 300 毫秒的一轮往返时间已经很长,因此它可以在 3 到 5 秒内扫描 10 个服务器。如果已在网络中正确配置了 SLP,则不需要设置此时间,OpenSLP 假定针对 SLP 流量正确配置了网络。OpenSLP 的响应超时值大于 NetIQ SLP 服务提供程序的超时值,它会将目录代理的数目限制为响应的第一个代理,而不管该代理的信息是否正确和完整。

用户代理

用户代理 (UA) 采用与某个应用程序链接的静态或动态库的物理形式。它允许该应用程序查询 SLP 服务。用户代理的工作是提供一个编程接口,使客户端能够查询服务,并使服务能够自我播发。用户代理将联系目录代理以查询位于指定范围内的、具有指定服务类的已注册服务。

用户代理遵循某种算法来获取查询将要发送到的目录代理的地址。一旦获取指定范围的目录代理 (DA) 地址,它们便会针对该范围一直使用该地址,直到其不再做出响应,此时,用户代理将获取该范围的另一个 DA 地址。用户代理通过以下方式查找指定范围的目录代理地址:

  1. 检查以确定当前请求中的套接字句柄是否已连接到指定范围的 DA。如果该请求正好是一个多部分请求,则表示该请求中可能已存在超速缓存的连接。

  2. 检查它的本地已知 DA 超速缓存以查找与指定范围匹配的 DA。

  3. 检查本地服务代理 (SA) 以查找具有指定范围的 DA(并将新地址添加到超速缓存)。

  4. 查询 DHCP 以查找与指定范围匹配的、网络配置的 DA 地址(并将新地址添加到超速缓存)。

  5. 在已知的端口上多路广播 DA 发现请求(并将新地址添加到超速缓存)。

指定的范围为“default”(如果未指定)。也就是说,如果未在 SLP 配置文件中静态定义任何范围,并且未在查询中指定任何范围,那么,使用的范围将为“default”。此外,还应注意,身份库永远不会在其注册中指定范围。如果存在静态配置的范围,则在缺少某个指定范围的情况下,该范围将成为所有本地 UA 请求和 SA 注册的默认范围。

服务代理

服务代理采用主机上单独进程的物理形式。slpd.exe 作为本地计算机上的服务运行。用户代理通过向已知端口上的回写地址发送讯息来查询本地服务代理。

服务代理的工作是为已向 SLP 自行注册的本地服务提供持久的储存和维护地点,其本质上维护的是已注册本地服务的内存中数据库。事实上,除非存在本地 SA,否则服务无法向 SLP 注册。客户端能够发现仅包含 UA 库的服务,但注册却需要 SA,其主要原因是 SA 必须定期重新声明已注册服务的存在性,以维护在侦听目录代理中的注册。

服务代理通过执行以下操作并直接向可能的 DA 地址发送 DA 发现请求,来查找和超速缓存目录代理及其支持的范围列表:

  1. 检查所有静态配置的 DA 地址(并将新地址添加到 SA 的已知 DA 超速缓存)。

  2. 请求 DHCP 中的 DA 和范围的列表(并将新地址添加到 SA 的已知 DA 超速缓存)。

  3. 在已知端口上多路广播 DA 发现请求(并将新地址添加到 SA 的已知 DA 超速缓存)。

  4. 接收 DA 定期广播的 DA 播发包(并将新地址添加到 SA 的已知 DA 超速缓存)。

用户代理始终会先查询本地服务代理,这一点非常重要,因为本地服务代理的响应决定了用户代理是否要继续执行下一个发现阶段(在本案例中为 DHCP - 请参见用户代理中的步骤 3步骤 4)。

目录代理

目录代理的工作是为播发的服务提供长期持久的超速缓存,以及为用户代理提供查找服务的访问点。作为超速缓存,DA 将侦听 SA 以播发新服务,并超速缓存这些通知。不久后,DA 的超速缓存就会变得更充实,或者说更完整。目录代理使用失效算法来令超速缓存项失效。某个目录代理启动时,将会从持久存储(通常是硬盘驱动器)中读取其超速缓存,然后开始根据算法令超速缓存项失效。当有新的 DA 启动或者当删除某个超速缓存时,DA 将检测此情况,并向所有侦听 SA 发送让其转储本地数据库的特殊通知,以使 DA 能够快速构建超速缓存。

在不存在任何目录代理的情况下,将由 UA 执行 SA 可以响应的常规多路广播查询,以 DA 构建超速缓存时所用的大致相同方式构建所请求服务的列表。此类查询返回的服务列表是不完整的,与 DA 提供的服务列表相比,该列表的本地化程度要高得多,特别是当存在多路广播过滤时尤其如此,为了将广播和多路广播局限于本地子网,许多网络管理员会执行此项过滤。

总而言之,所有这一切都取决于用户代理针对给定范围查找到的目录代理。

为身份库配置 SLP

%systemroot%/slp.conf 文件中的以下参数用于控制目录代理发现:

net.slp.useScopes = comma-delimited scope list
net.slp.DAAddresses = comma-delimited address list
net.slp.passiveDADetection = <"true" or "false">
net.slp.activeDADetection = <"true" or "false">
net.slp.DAActiveDiscoveryInterval = <0, 1, or a number of seconds>
useScopes

指定 SA 要播发到的范围,以及当服务或客户端应用程序执行的注册或查询不存在特定的范围时,执行查询时将采用的范围。由于身份库会始终播发到默认范围并在默认范围内执行查询,此列表将成为所有身份库注册和查询的默认范围列表。

DAAddresses

表示优先级最高的 DA 点分十进制 IP 地址的逗号分隔列表。如果此已配置 DA 列表不支持某个注册或查询的范围,才会由 SA 和 UA 执行多路广播 DA 发现,除非禁用了此类发现。

passiveDADetection

默认情况下为 True。目录代理将定期通过已知端口在子网上广播其存在性(如果已进行了相应的配置)。这些包称为 DAAdvert 包。如果将此选项设置为 False,SA 将忽略所有广播 DAAdvert 包。

activeDADetection

默认情况下为 True。此参数允许 SA 定期广播请求,以使所有 DA 能够以定向的 DAAdvert 包作为响应。定向包不会以广播发出,而是应请求在响应中直接发送给 SA。如果将此选项设置为 False,则 SA 将不会定期广播 DA 发现请求。

DAActiveDirectoryInterval

表示一个 tri-state 参数。默认值为 1,该特殊值表示 SA 在初始化时只应发出一个 DA 发现请求。将此选项设置为 0 相当于将 activeDADetection 选项设置为 false。任何其他值是发现广播之间间隔的秒数。

正确使用这些选项可确保合理使用网络带宽来进行服务播发。事实上,所设计的默认设置本就优化了一般网络的可伸缩性。

7.2.3 改进身份库性能

身份库的底层基础结构 eDirectory 属于 I/O 密集型应用程序,而不是处理器密集型应用程序。以下两个因素可以提高身份库的性能:更多的超速缓存内存和更快的处理器。为了达到最佳效果,应在硬件允许的情况下尽可能多地超速缓存目录信息数据库 (DIB) 集。

尽管在单个处理器上 eDirectory 就能获得良好的伸缩性,但您还是可以考虑使用多个处理器。增加处理器会改进用户登录等方面的性能。此外,在多个处理器上激活多个线程也能提高性能。

下表提供了根据 eDirectory 中预期对象数进行服务器设置的一般指导。

对象

内存

硬盘

100.000

384 MB

144 MB

100 万

4 GB

1.5 GB

1000 万

2 GB 以上

15 GB

例如,对于带有标准纲要的 eDirectory 基本安装,每 50,000 位用户需要大约 74 MB 磁盘空间。但如果添加一组新特性或将每个现有特性完全填满,则对象将增大。进行这样的添加会影响所需的磁盘空间、处理器和内存。此外,对处理器的要求取决于计算机上可用的附加服务以及计算机要处理的鉴定、读和写的数量。加密和索引编制等进程可能会占用大量处理器时间。

7.2.4 在身份库服务器上使用 IPv6 地址

身份库同时支持 IPv4 和 IPv6 地址。您可以在安装身份库时启用 IPv6 地址。如果是从先前的版本升级,则必须手动启用 IPv6 地址。

身份库还支持双 IP 堆栈、隧道和纯 IPv6 转换方法。它仅支持全局 IP 地址。例如:

  • [::]

  • [::1]

  • [2015::12]

  • [2015::12]:524

指定 IPv6 地址时必须将其括在方括号 [ ] 中。要使用主机名而不是 IP 地址,您必须在 C:\Windows\System32\drivers\etc\hosts 文件中指定该名称,并将它与 IPv6 地址关联。

要在 Windows 服务器上使用 IPv6 地址,必须在安装期间选中 IPv6 自选设置下的启用 IPv6 复选框。此选项将为 IPv6 地址启用 NCP、HTTP 和 HTTPS 协议。如果您在安装过程中未启用 IPv6 地址,后来又决定使用 IPv6 地址,则您必须重新运行安装程序。有关详细信息,请参见部分 7.3, 安装身份库

可以使用以下链接通过 IPv6 地址访问 iMontior:http://[2015::3]:8028/nds

7.2.5 使用 LDAP 来与身份库通讯

当您安装身份库时,必须指定 LDAP 服务器监视的端口,以便其可通过该端口为 LDAP 请求提供服务。作为默认配置的一部分,明文和 SSL/TLS 的端口号分别设置为 389 和 636。

LDAP 简单绑定仅需要 DN 和口令。该口令采用明文格式。如果您使用端口 389,则整个包都采用明文格式。由于端口 389 允许明文,LDAP 服务器将通过此端口为目录的读请求和写请求提供服务。这种开放性适合不会发生欺骗且没有人会通过不当方式捕获包的信任环境。默认情况下,在安装期间会禁用此选项。

通过端口 636 的连接已加密。由 TLS(前称 SSL)管理此项加密。到端口 636 的连接会自动实例化一个握手。如果握手失败,则会拒绝连接。

注:默认情况下,安装程序会选择端口 636 进行 TLS/SSL 通讯。此默认设置可能会给您的 LDAP 服务器带来问题。如果(在安装 eDirectory 之前)主机服务器上已装载的服务使用了端口 636,则您必须指定另一个端口。在 eDirectory 8.7 版之前的安装中会将此冲突视为致命错误,并会卸载 nldap。而在 eDirectory 8.7.3 之后的版本中,安装程序会装载 nldap,然后在 dstrace.log 文件中添加一条错误讯息,并在不使用安全端口的情况下运行。

在安装过程中,您可以将身份库配置为禁止明文口令和其他数据。选择对于带口令的简单绑定需要 TLS 选项可以阻止用户发送可辨认的口令。如果您不选择此设置,用户将不知道其他人可以察觉到他的口令。这个不允许连接的选项仅适用于明文端口。如果与端口 636 建立安全连接并使用简单绑定,则连接已加密。没有人可以查看口令、数据包或绑定请求。

请考虑以下情况:

已启用“对于带口令的简单绑定需要 TLS”

Olga 使用的客户端要求输入口令。Olga 输入口令后,客户端才会连接到服务器。但是,LDAP 服务器不允许连接通过明文端口绑定到服务器。任何人都可以查看 Olga 的口令,但 Olga 无法获取绑定的连接。

已使用端口 636

您的服务器正在运行 Active Directory。Active Directory 运行的 LDAP 程序使用了端口 636。安装 eDirectory。安装程序检测到端口 636 已被占用,并且未向 NetIQ LDAP 服务器指派端口号。LDAP 服务器已装载并看上去已运行。但是,由于 LDAP 服务器不会复制或使用已打开的端口,因此,LDAP 服务器不会在任何复制的端口上为请求提供服务。

要校验是否已将端口 389 或 636 指派给 NetIQ LDAP 服务器,请运行 ICE 实用程序。如果供应商版本字段中未指定 NetIQ,则您必须为 eDirectory 重配置 LDAP 服务器,并选择其他端口。有关详细信息,请参见《NetIQ eDirectory Administration Guide》(NetIQ eDirectory 管理指南)中的“Verifying That the LDAP Server is Running”(校验 LDAP 服务器是否正在运行)。

Active Directory 正在运行

如果 Active Directory 正在运行并且明文端口 389 已打开,则您可以对端口 389 运行 ICE 命令,并请求输入供应商版本。报告将显示 Microsoft*。然后,您可以通过选择另一个端口来重配置 NetIQ LDAP 服务器,使 eDirectory LDAP 服务器能够为 LDAP 请求提供服务。

iMonitor 还可以报告端口 389 或 636 是否已打开。如果 LDAP 服务器不起作用,请使用 iMonitor 来查看细节。有关详细信息,请参见《NetIQ eDirectory Administration Guide》(NetIQ eDirectory 管理指南)中的“Verifying That the LDAP Server is Running”(校验 LDAP 服务器是否正在运行)。

7.2.6 在使用管理实用程序的工作站上手动安装 NICI

必须在使用 iManager 等管理实用程序的每个工作站上安装 NICI。有关将 NICI 与身份库配合使用的详细信息,请参见安装身份库的先决条件

要安装 NICI,请使用默认位于 products\eDirectory\processor_type\windows\processor_type\nici 文件夹中的 NICI_wx64.msi 文件。您可以使用引导式过程(向导)或无提示安装方式运行该文件。

7.2.7 安装 NMAS 客户端软件

必须在您想要使用 NetIQ Modular Authentication Service (NMAS) 登录方法的每个客户端工作站上安装 NMAS 客户端软件。登录方法是在安装身份库时指定的。

  1. 使用管理员帐户登录到 客户端工作站。

  2. 从安装目录(默认为 Win:\products\eDirectory\processor_type\nmas\)运行 nmasinstall.exe 程序。

  3. 单击 NMAS 客户端组件

  4. (可选)选择 NICI 选项以安装 NICI 组件。

  5. 单击确定

  6. 安装过程完成后,重启动客户端工作站。