我有一台服务器 (A),客户端通过互联网连接到它,它的 IP 是 195.45.10.2,它将流量路由到服务器 (B),它的 IP 是 85.10 20.2。所以现在我想使用类似 dsr 的东西让服务器 b 直接向客户端发送数据包。客户端发送给 A,A 发送给 B,然后 B 直接响应客户端。因此,需要从 A 到 B 请求数据包,以客户端 IP 地址作为源,然后从 B 到客户端的响应数据包以服务器 A IP 地址作为源 IP 地址。
答案1
在这种情况下,使用 DSR 模式应该没问题,只要:
服务器 A 可以通过网络直接访问服务器 B,即同一子网上至少有一个接口。
并且服务器 B 可以通过任何有效的路由直接通过互联网响应客户端。
但是我刚刚检查过,NGINX 似乎仅支持 DSR 的 UDP 模式,而不支持 TCP? https://www.nginx.com/blog/ip-transparency-direct-server-return-nginx-plus-transparent-proxy/
LVS 很好地支持它,并且我们已经使用它多年了: http://www.linuxvirtualserver.org/ https://www.loadbalancer.org/blog/layer-4-vs-layer-7-load-balancing-we-still-love-dsr/