1

我们有一个使用 LDAP 进行身份验证的应用程序。该应用程序使用 F5 以负载平衡配置部署在四台 MiddleWare 服务器上。尽管 AD 存储中有 8 个域控制器,但我们每天都会在所有 MW 服务器上继续收到错误,这似乎表明 ActiveDirectory 无法访问。主要由用户在高峰用户登录时间报告,但也发生在全天的其他时间。绑定到 LDAPS 与 LDAP 时,错误消息的文本略有不同,但堆栈跟踪是相同的。

错误信息:

  • (LDAPS) - “服务器无法运行。(0)”
  • (LDAP) - “目录服务不可用。(0)”

我们已经尝试了所有可能的配置选项,但错误仍然存​​在

  • 连接到安全/非安全 DC(端口 636/389)
  • 使用无服务器/无服务器绑定进行连接

经过所有研究后,我们正朝着实现代码更改的方向前进,该更改在向用户抛出错误之前在池中的每个 DC 上重试一次绑定操作。

其工作方式是当应用程序启动时,应用程序的目录服务访问组件将执行以下操作:

建立站点中所有域控制器的列表(以及任何相邻站点,如果愿意) 执行一系列测试以验证连接性(ping、389/3268/636 测试)。这也将确认它是 DC、GC 还是 RODC。执行一个简单的查询来验证目录服务是否正常工作并且身份验证是否正常工作。保存已知正常域控制器的列表,以及脱机域控制器的列表。

然后,我们在执行绑定时使用这些已知良好的服务器,将服务器嵌入到绑定路径中。如果发生异常并且是表明 dc 出现问题的类型之一(服务器无法运行、忙、超时等),我们将该 dc 添加到脱机列表并尝试使用其他 dc 之一进行操作。

这种方法是可行的选择吗?有什么取舍吗?您是否建议分析 Wireshark 数据有助于确定根本原因?它是否与 MW 服务器上的 TCP/UDP 端口不可用有关?

4

0 回答 0