TCP SYN 攻击是一种 DDOS 攻击,攻击者使用三向 TCP 握手过程以攻击服务器。
将发送很多 TCP SYN 请求,在服务器或目标设备使用 SYN-ACK 进行响应时,没有 ACK 响应,从而导致大量半打开的 TCP 连接。通过重复发送连接请求 (SYN) 数据包,攻击者可能使目标服务器计算机上的所有可用端口不堪重负,从而导致目标设备缓慢响应合法流量,或者根本不响应合法流量。
NSX Advanced Load Balancer 上的 TCP SYN 泛洪攻击缓解
NSX Advanced Load Balancer 支持 TCP SYN 泛洪检测和缓解,而无需任何用户干预。在 NSX Advanced Load Balancer 20.1.3 版本之前,使用 synseen_entries_thresh 参数为 SYN 数据包分配阈值。在超过 synseen_entries_thresh 后,将丢弃新的 SYN 数据包,从而导致拒绝为合法连接请求提供服务。synseen_entries_thresh 计算基于内核数。对于大型系统,synseen_entries_thresh 高于 100 万。
如果发生 SYN 攻击,NSX Advanced Load Balancer 在开始断开连接之前查找流表或连接表。NSX Advanced Load Balancer 使用各种衡量指标和事件以检测 TCY SYN 攻击。这有助于避免拒绝或关闭合法的 TCP 连接或请求。
TCP SYN 泛洪攻击的主要目的是使内存资源耗尽。每个 SYN 数据包都会导致分配内存以保留初始化连接的状态。NSX Advanced Load Balancer 使用基于 SYN Cookie 的解决方案以缓解 SYN 泛洪。在初始化连接数超过限制后,TCP/IP 堆栈或其他组件就会停止分配内存,直到完全建立连接。该限制是作为 SE 组属性中的可配置 flow_table_new_syn_max_entries 提供的。flow_table_new_syn_max_entries 参数的默认值为 40000。
衡量指标和事件
在检测到 TCP SYN 攻击时,NSX Advanced Load Balancer 生成与 TCP SYN 攻击相关的日志。
导航到事件选项卡以检查与特定虚拟服务的 TCP SYN 攻击关联的事件。以下屏幕截图显示虚拟服务 vs1 受到 TCP SYN 攻击:
,然后选择SE_SYN_TBL_HIGH 警示
在 TCP SYN 泛洪流量中的总 SYN 超过 SE 限制时,控制器将显示 SE_SYN_TBL_HIGH 以作为警示消息。