系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

使用 Sun Java System Directory Server 进行 NIS 到 LDAP 转换的最佳做法

N2L 服务支持 Sun Microsystems, Inc. 提供的 Sun Java System Directory Server(以前称为 Sun ONE Directory Server)和兼容版本的目录服务器。其他(第三方)LDAP 服务器可能会使用 N2L 服务,但是 Sun 不支持这些服务器。如果使用的是 Sun Java System Directory Server 或兼容 Sun 服务器以外的 LDAP 服务器,则必须手动配置服务器,使其支持 RFC 2307 或其后续版本中的方案。

如果使用的是 Sun Java System Directory Server,则可以增强目录服务器以提高性能。必须对 Sun Java System Directory Server 具有 LDAP 管理员权限才能增强目录服务器。另外,还可能需要重新引导目录服务器,此任务必须与服务器的 LDAP 客户机协调进行。docs.sun.com Web 站点上提供了 Sun Java System Directory Server(以及 Sun ONE 和 iPlanet Directory Server)文档。

使用 Sun Java System Directory Server 创建虚拟列表视图索引

对于大型映射,必须使用 LDAP 虚拟列表视图 (virtual list view, VLV) 索引来确保 LDAP 搜索可返回全部结果。有关在 Sun Java System Directory Server 上设置 VLV 索引的信息,请参见位于 docs.sun.com Web 站点上的 Sun Java System Directory Server 文档。

VLV 搜索结果使用固定的页面大小 50000。如果在 Sun Java System Directory Server 上使用 VLV,则 LDAP 服务器和 N2L 服务器都必须可以传送此大小的页面。如果已知所有的映射都小于此限制,则不必使用 VLV 索引。但是,如果使用的映射大于此大小限制,或者不能确定所有映射的大小,请使用 VLV 索引来避免返回不完整的结果。

如果使用 VLV 索引,请按如下方式设置适当的大小限制。

创建 VLV 索引之后,请立即将其激活,方法是在 Sun Java System Directory Server 上运行带有 vlvindex 选项的 directoryserver。有关更多信息,请参见 directoryserver(1M) 手册页。

标准映射的 VLV

如果符合以下条件,请使用 Sun Java System Directory Server idsconfig 命令设置 VLV:

VLV 特定于域,因此每次运行 idsconfig 时,都会为一个 NIS 域创建相应的 VLV。所以,在 NIS 到 LDAP 的转换过程中,必须针对 NISLDAPmapping 文件中包含的每个 nisLDAPdomainContext 属性都运行一次 idsconfig

自定义映射和非标准映射的 VLV

如果符合以下条件,则必须为映射手动创建新的 Sun Java System Directory Server VLV,或者复制并修改现有的 VLV 索引:

要查看现有的 VLV 索引,请键入以下内容:


# ldapsearch -h hostname -s sub -b "cn=ldbm database,cn=plugins,cn=config" \

"objectClass=vlvSearch"

避免 Sun Java System Directory Server 服务器超时

N2L 服务器在刷新映射时,可能会对 LDAP 目录进行大量访问。如果 Sun Java System Directory Server 的配置不正确,则刷新操作可能会因超时而无法完成。要避免目录服务器超时,请手动或者通过运行 idsconfig 命令来修改以下 Sun Java System Directory Server 属性。

例如,要增加服务器执行搜索请求所需的最短时间(以秒为单位),请修改以下属性:


dn: cn=config

nsslapd-timelimit: -1

为了进行测试,可以使用属性值 -1,这表示没有限制。确定最佳限制值之后,请更改属性值。请勿在生产服务器上保留值为 -1 的任何属性设置。如果没有限制,则服务器可能会容易受到拒绝服务攻击。

有关使用 LDAP 配置 Sun Java System Directory Server 的更多信息,请参见本书的System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP)中的“使用 LDAP 客户机设置 Sun Java System Directory Server(任务)”

避免 Sun Java System Directory Server 缓冲区溢出

要避免缓冲区溢出,请手动或者通过运行 idsconfig 命令来修改 Sun Java System Directory Server 属性。

  1. 例如,要增加针对客户机搜索查询返回的最大项数,请修改以下属性:


    dn: cn=config
    
    nsslapd-sizelimit: -1
  2. 要增加针对客户机搜索查询检验的最大项数,请修改以下属性:


    dn: cn=config, cn=ldbm database, cn=plugins, cn=config
    
    nsslapd-lookthroughlimit: -1

为了进行测试,可以使用属性值 -1,这表示没有限制。确定最佳限制值之后,请更改属性值。请勿在生产服务器上保留值为 -1 的任何属性设置。如果没有限制,则服务器可能会容易受到拒绝服务攻击。

如果使用 VLV,则应当按照使用 Sun Java System Directory Server 创建虚拟列表视图索引中的定义设置 sizelimit 属性值。如果未使用 VLV,则应当将大小限制设置得足够大,以便可以容纳最大容器。

有关使用 LDAP 配置 Sun Java System Directory Server 的更多信息,请参见第 11 章,为使用 LDAP 客户机设置 Sun Java System Directory Server(任务)