TCP重传机制在DDoS防护中的踩坑记录
最近在配置服务器DDoS防护策略时,误将TCP重传机制作为主要防护手段,结果踩了大坑。
问题背景
某次攻击中,系统出现大量半开连接,初步判断是SYN Flood攻击。按照经验,我调整了TCP重传参数:
# 错误的配置方式
echo 'net.ipv4.tcp_synack_retries = 1' >> /etc/sysctl.conf
sysctl -p
实际效果
设置后发现系统响应变慢,且正常用户连接也出现超时。通过tcpdump抓包分析,发现大量RST包被发送,但实际攻击流量并未减少。
原因分析
经过深入排查,发现TCP重传机制主要是针对网络丢包的恢复机制,而非DDoS防护的核心手段。真正的防护应该配合:
- 连接数限制:
net.core.somaxconn = 1024 - SYN cookies:
net.ipv4.tcp_syncookies = 1 - 连接频率限制
正确配置方案
# 建议配置
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 1024
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.ip_conntrack_max = 65536
结论:TCP重传机制更适合作为网络优化参数,而非DDoS防护的主力武器。

讨论