透明 HAProxy,客户端无法连接

透明 HAProxy,客户端无法连接

我对透明 HAProxy 有疑问。我使用带有 ius-repo 的 Centos 7,因此编译时支持 tproxy。这里没有花哨的东西,只有基础知识。平面 IP 空间,不涉及路由(目前)。还设置了其他选项(ipforward、非本地绑定)。

我有一台包含一些内容的 Web 服务器(srv1 上的 apache,IP 为 192.168.1.10),有一台 haproxy 盒子(v1.8.9),接口 IP 为 192.168.1.11,前端和后端有一条规则,绑定到 192.168.1.11:80。流量应重定向到 192.168.1.10 tcp/80。以 tcp 模式运行(这是 tcp 服务的演示,因此最终不适合使用 http)。

从 HAProxy 框中,我可以对其自己的 IP 192.168..11 执行 wget,这会导致对 apache 框的正确调用和应答。但是当我尝试从另一个客户端 (192.168.1.12) 执行相同操作时,wget 会挂起发送的 HTTP 请求,等待响应... ^C 如果我从后端删除选项“source 0.0.0.0 usesrc clientip”,一切正常,但客户端 IP 是来自 HAProxy 框的 IP,这是我不想要的。我还在网上使用了 iptables magic。

非常简单:客户端 -> HaProxy -> Web 服务器,但需要客户端 IP。

有任何想法吗?

答案1

您确定已经在内核中配置了TPROXY,并设置了正确的防火墙标记吗?

https://www.loadbalancer.org/blog/configure-haproxy-with-tproxy-kernel-for-full-transparent-proxy/

答案2

我有同样的问题。但在 pfSense Haproxy 中。我的网络中传递 tarafic 的顺序是客户端互联网 ---> firwall(haproxy)---> waf ----> 服务器。当然网关服务器是 LAN 接口防火墙。

当在后端 haproxy 上设置透明客户端 ip 以及在前端设置 x-forward 以显示源 ip 客户端时,服务器本身无法接收响应。我通过在 /etc/hosts 以及容器中设置 dns 名称站点 vip waf 解决了该问题。例如 192.168.1.10(vip waf) mydomain.ir

相关内容