问题:N2L 服务器死锁。
原因:如果 hosts、ipnodes 或 ypserv 文件中未正确列出 N2L 主服务器和 LDAP 服务器的地址,则可能会出现死锁问题。有关如何为 N2L 配置正确地址的详细消息,请参见NIS 到 LDAP 转换的先决条件。
有关死锁情况的示例,请考虑以下一系列事件:
NIS 客户机尝试查找 IP 地址。
N2L 服务器发现 hosts 项已过时。
N2L 服务器尝试通过 LDAP 更新 hosts 项。
N2L 服务器从 ypserv 获取其 LDAP 服务器的名称,然后使用 libldap 进行搜索。
libldap 尝试通过调用名称服务转换器来将 LDAP 服务器的名称转换为 IP 地址。
名称服务转换器可能会对 N2L 服务器发出 NIS 调用,这会造成死锁。
解决方案:在 N2L 主服务器上的 hosts 或 ipnodes 文件中列出 N2L 主服务器和 LDAP 服务器的地址。必须将服务器地址列在 hosts、ipnodes 还是同时列在这两个文件中取决于为解析本地主机名而配置这些文件的方式。另外,还要检查在查找顺序中,nsswitch.conf 文件中的 hosts 和 ipnodes 项是否将 files 列在 nis 之前。
此死锁问题的替代解决方案是在 ypserv 文件中列出 LDAP 服务器的地址而不是其主机名。这意味着 LDAP 服务器地址将列在其他位置。因此,更改 LDAP 服务器或 N2L 服务器的地址会使工作量稍有增加。