为什么四层负载调度器一次TCP握手, 而七层负载调度器两次TCP握手

为什么四层负载调度器一次TCP握手, 而七层负载调度器两次TCP握手

 img

以经典的LVS NAT模式为例

由real server 端数据包可以看出 , 客户端和真实服务器连接的, 负载调度器只负责转发 , LVS 内核使用netfilter 内核做进站出站的转发 , 在做了DNAT情况下 , 返回数据包自动做SNAT , 客户端和真实服务器 只做了一次TCP握手

还有一个最基本的原则 请求数据包和回复数据包 源IP和目标IP对应的是一致的

 img

在real server 端可以看出是负载调度器和真实服务器连接的, 负载调度器需要一次TCP连接接收用户请求

, 再需要一次TCP连接向真实服务器发送请求 , 所以是两次TCP握手

所以在收到SYN攻击时 ,四层采取的手段是转发攻击到真实服务器 , 而七层 会拦截SYN, 因为直接攻击负载调度器

所以四层的并发更高

四层只负责转发

七层负载调度需要处理数据包

nat和 DR的比较

nat

  • 1 D系统必须是LInux RS 系统可以任意
  • 2 D负责出入站
  • 3 支持端口映射

DR

img

  • 1 系统必须是Linux , RS系统必须是Linux
  • 2 D负责入站 真实服务器负责出站
  • 3 不支持端口映射
  • 4 RS与D 必须处于同一广播域

所以可以得出 为什么DR 比 NAT 并发高呢

  • NAT负载调度器负责数据包进出站
  • DR 只负责数据包入站 真实服务器负责出站

相比之下DR模式负载调度器处理的数据包数量少,压力小,所以并发更高

posted on 2022-02-07 23:11  joe_HelloWorld  阅读(83)  评论(0编辑  收藏  举报

导航