Haproxy ldap 会话持久性?

Haproxy ldap 会话持久性?

当使用 haproxy 对 ldap 服务器进行负载平衡时,是否可以实现会话粘性?

示例:我有一个 lb,它负载平衡到两个后端 ldap 服务器。这对于读取来说工作得很好,但是如果您使用目录工作室浏览树,或者实施 pam,它会导致 pam 出错,并且它会在目录工作室中进行身份验证时返回。

我希望当用户访问负载均衡器的 IP 时,lb 将用户绑定到一个后端服务。

答案1

我建议为此在 HAProxy 中使用 stick 表。

一个很好的参考资料https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#stick

实际上你可以做这样的事情:

backend ldap
mode tcp
balance roundrobin
stick-table type ip size 200k expire 30m
stick on src
server s1 192.168.1.1:389
server s2 192.168.1.2:389

答案2

您可以根据源 IP 进行路由,因此如果您的管理员(使用目录工作室)使用静态 IP 或位于“管理员”网络段上,您只需制定一条规则,始终将它们发送到其中一台服务器,这也将使记录他们的会话变得更容易。

除了来源之外,我还没有看到基于任何其他因素的 TCP 会话持久性好的解决方案。分析 TCP 数据包,如果您在数据包中找到有助于识别会话的内容,HA 代理很可能能够根据该内容进行路由。

前端 ft-public-mysql-in
  绑定 192.168.3.1:53
  模式 tcp
  选项 tcplog
  acl 路由1源 192.168.2.0
  acl 路由2 源 192.168.1.0
  use_backend bkserver_pool if route1
  use_backend bkserver_1 if route2

相关内容