在 NFTABLES 中结合 DNAT 和 SYNPROXY

在 NFTABLES 中结合 DNAT 和 SYNPROXY

我有一个应用程序需要 DNAT 来实现负载平衡,并需要 SYNPROXY 来缓解 SYN 泛洪。如果没有 SYNPROXY,我会将循环 DNAT 放入 PREROUTING 挂钩上的 NAT 链中。然而,添加 SYNPROXY 似乎会使这个问题变得复杂,因为它与下游服务器的初始模拟通信是通过 OUTPUT 路径发生的(如果我理解正确的话)。我读到的建议是 DNAT 因此应该移动到 OUTPUT 挂钩的 NAT 链,但这看起来很奇怪。在第一个 SYN、SYN-ACK、ACK 之后数据包如何穿越 netfilter?此方法是否会更新 PREROUTING CONNTRACK 以便后续数据包正确进行 NAT?这是一个可行的解决方案吗?

相关内容