我正在 Linux 上开发某种透明代理的概念验证。
透明代理拦截 TCP 流量并将其转发到后端。我使用https://www.kernel.org/doc/Documentation/networking/tproxy.txt和欺骗套接字进行传出 TCP 连接。
在我的开发 PC 上,我能够使用 Docker 模拟网络并且一切正常。
但是我需要在 AWS 上部署测试环境。
建议设计:
同一子网内的三个虚拟机:
- 客户端,192.168.0.2
- 代理,192.168.0.3
- 后端,192.168.0.4
在客户端上,我将路由添加到 192.168.0.4 到 192.168.0.3
在代理上,我将 TPROXY 配置为拦截 TCP 数据包并将其转发到具有 192.168.0.2 IP 源地址的后端。我们的透明代理在这里工作。
在后端,我运行简单的 Web 服务器。我还添加了到 192.168.0.2 到 192.168.0.3 的路由,否则数据包将直接返回到 192.168.0.2
问题:
提议的网络设计会按预期工作吗?
AWS 使用某种软件定义的网络,我不知道它的工作方式是否与将 3 个 Linux 机器连接到一个以太网交换机的方式相同。