LVS在⼤大规模⺴⽹网络环境中的应⽤用    吴佳明_普空 阿⾥里巴巴       关注⺴⽹网络技术
LVS历史   LVS是⼀一个开源的软件,由毕业于国防科技⼤大学的章⽂文嵩博⼠士于1998年5月创⽴立,可以实现LINUX平台下的负载均衡。   LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。
主要内容1.  LVS-问题2.  LVS功能-fullnat3.  LVS功能-synproxy4.  LVS性能-cluster5.  LVS性能-IPVS改进6.  LVS性能-系统改进7.  LVS-todo list
LVS在互联⺴⽹网应⽤用中的位置
LVS⺴⽹网络拓扑淘宝CDN LVS DR⺴⽹网络拓扑
问题•  LVS部署⽅方式存在不⾜足 –  各转发模式,⺴⽹网络拓扑复杂,运维成本⾼高•  和商⽤用LB设备相⽐比 –  缺少TCP标志位DDOS攻击防御•  性能不⾜足 –  10G+ bps的HTTP流量 –  1000w+ pps的syn...
DR模式-不⾜足•  不⾜足   1.  LVS-RS间必须在同⼀一个VLAN         2.  RS上绑定VIP,⻛风险⼤大;           IN:更改⺫⽬目的MAC           OUT:NULL
NAT模式-不⾜足•  不⾜足   1. RS/ROUTER配置策略路由           IN(2):DNAT           OUT(4):SNAT
TUNNEL-不⾜足•  不⾜足   1.  RS配置复杂(IPIP模块等)         2.  RS上绑定VIP,⻛风险⼤大;            IN:增加1个IP头            OUT:NULL
解决⽅方法•  LVS各转发模式运维成本⾼高 –  FULLNAT:⼀一种新的转发模式,实现LVS-    RealServer间跨vlan通讯,并且in/out流都经过LVS;•  缺少攻击防御模块 –  SYNPROXY:synflood攻...
FULLNAT•  FULLNAT是⼀一种新的转发模式 –  主要思想      引⼊入local address(内⺴⽹网ip地址),cip-vip转换  为lip->rip,⽽而 lip和rip均为IDC内⺴⽹网ip,可以跨vlan  通讯...
FULLNAT
FULLNAT•  NAT实现原理
FULLNAT•  FULLNAT实现原理
FULLNAT•  NAT-HOOK点       NETFILTER HOOK点,同iptables       为什么是这2个HOOK点?
FULLNAT•  FULLNAT-HOOK点            区分 IN/OUT 流
FULLNAT•  NAT-session表           ⽤用client address作为hash key
FULLNAT•  FULLNAT-session表           双向hash,⽤用五元组作为hash key
FULLNAT•  FULLNAT-获取client address(TOA)          TOA: address of tcp option
SYNPROXY•  SYNPROXY⽤用于防御synflood攻击 –  主要思想      参照linux tcp协议栈中syncookies的思想,  LVS-构造特殊seq的synack包,验证ack包中  ack_seq是否合法-实现...
SYNPROXY
性能-多核多队列•  单队列⺴⽹网卡 –  只有⼀一个rx_buffer和⼀一个tx_buffer;
性能-多核多队列•  多队列⺴⽹网卡 –  N个rx_buffer和N个tx_buffer, N=CPU核个数
性能-CLUSTER
性能-软件优化•  LVS优化 –  增⼤大session hash table –  增⼤大session hash bucket lock个数 –  Route opt. –  Statistic Lockless
性能-软件优化•  软件优化效果            Route&Lockless opt.       35       30       25       20       15       10        5        0   ...
性能-硬件优化•  硬件优化 –  Intel ® E5-2600处理器(DDIO) –  Synproxy cookies算法(AVX指令集) –  BIOS设置优化
Intel ® E5-2600处理器(DDIO)介绍   •  Intel E5 处理器平台 + Intel82599⺴⽹网卡   •  通过减少内存访问来提升系统IO性能           Without DDIO             ...
性能-硬件优化•  硬件优化效果 – 性能提升87.5%                  SYNFlood   800   700   600   500   400   300   200   100     0              ...
Todo List•  性能:lockless•  功能:7层;攻击防御;•  开源:http://kb.linuxvirtualserver.org/wiki/  IPVS_FULLNAT_and_SYNPROXY
谢谢 Q&A新浪微博:吴佳明_普空
Upcoming SlideShare
Loading in …5
×

Lvs在大规模网络环境下的应用pukong

1,597 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,597
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
32
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Lvs在大规模网络环境下的应用pukong

  1. 1. LVS在⼤大规模⺴⽹网络环境中的应⽤用 吴佳明_普空 阿⾥里巴巴 关注⺴⽹网络技术
  2. 2. LVS历史 LVS是⼀一个开源的软件,由毕业于国防科技⼤大学的章⽂文嵩博⼠士于1998年5月创⽴立,可以实现LINUX平台下的负载均衡。 LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。
  3. 3. 主要内容1.  LVS-问题2.  LVS功能-fullnat3.  LVS功能-synproxy4.  LVS性能-cluster5.  LVS性能-IPVS改进6.  LVS性能-系统改进7.  LVS-todo list
  4. 4. LVS在互联⺴⽹网应⽤用中的位置
  5. 5. LVS⺴⽹网络拓扑淘宝CDN LVS DR⺴⽹网络拓扑
  6. 6. 问题•  LVS部署⽅方式存在不⾜足 –  各转发模式,⺴⽹网络拓扑复杂,运维成本⾼高•  和商⽤用LB设备相⽐比 –  缺少TCP标志位DDOS攻击防御•  性能不⾜足 –  10G+ bps的HTTP流量 –  1000w+ pps的synflood攻击
  7. 7. DR模式-不⾜足•  不⾜足 1.  LVS-RS间必须在同⼀一个VLAN 2.  RS上绑定VIP,⻛风险⼤大; IN:更改⺫⽬目的MAC OUT:NULL
  8. 8. NAT模式-不⾜足•  不⾜足 1. RS/ROUTER配置策略路由 IN(2):DNAT OUT(4):SNAT
  9. 9. TUNNEL-不⾜足•  不⾜足 1.  RS配置复杂(IPIP模块等) 2.  RS上绑定VIP,⻛风险⼤大; IN:增加1个IP头 OUT:NULL
  10. 10. 解决⽅方法•  LVS各转发模式运维成本⾼高 –  FULLNAT:⼀一种新的转发模式,实现LVS- RealServer间跨vlan通讯,并且in/out流都经过LVS;•  缺少攻击防御模块 –  SYNPROXY:synflood攻击防御模块 –  其它TCP FLAG DDOS攻击防御策略•  性能不⾜足 –  硬件/软件/部署⽅方式 多个层⾯面的优化
  11. 11. FULLNAT•  FULLNAT是⼀一种新的转发模式 –  主要思想 引⼊入local address(内⺴⽹网ip地址),cip-vip转换 为lip->rip,⽽而 lip和rip均为IDC内⺴⽹网ip,可以跨vlan 通讯; –  keepalived配置⽅方式: virtual_server 125.76.224.240 { lb_kind FNAT/DR/NAT/TUNNEL local_address { 192.168.1.1 }
  12. 12. FULLNAT
  13. 13. FULLNAT•  NAT实现原理
  14. 14. FULLNAT•  FULLNAT实现原理
  15. 15. FULLNAT•  NAT-HOOK点 NETFILTER HOOK点,同iptables 为什么是这2个HOOK点?
  16. 16. FULLNAT•  FULLNAT-HOOK点 区分 IN/OUT 流
  17. 17. FULLNAT•  NAT-session表 ⽤用client address作为hash key
  18. 18. FULLNAT•  FULLNAT-session表 双向hash,⽤用五元组作为hash key
  19. 19. FULLNAT•  FULLNAT-获取client address(TOA) TOA: address of tcp option
  20. 20. SYNPROXY•  SYNPROXY⽤用于防御synflood攻击 –  主要思想 参照linux tcp协议栈中syncookies的思想, LVS-构造特殊seq的synack包,验证ack包中 ack_seq是否合法-实现了TCP三次握⼿手代理; –  配置⽅方式 virtual_server 125.76.224.240 { syn_proxy
  21. 21. SYNPROXY
  22. 22. 性能-多核多队列•  单队列⺴⽹网卡 –  只有⼀一个rx_buffer和⼀一个tx_buffer;
  23. 23. 性能-多核多队列•  多队列⺴⽹网卡 –  N个rx_buffer和N个tx_buffer, N=CPU核个数
  24. 24. 性能-CLUSTER
  25. 25. 性能-软件优化•  LVS优化 –  增⼤大session hash table –  增⼤大session hash bucket lock个数 –  Route opt. –  Statistic Lockless
  26. 26. 性能-软件优化•  软件优化效果 Route&Lockless opt. 35 30 25 20 15 10 5 0 basic opt.HTTP(%) 0 25New Conn(%) 0 33.3
  27. 27. 性能-硬件优化•  硬件优化 –  Intel ® E5-2600处理器(DDIO) –  Synproxy cookies算法(AVX指令集) –  BIOS设置优化
  28. 28. Intel ® E5-2600处理器(DDIO)介绍 •  Intel E5 处理器平台 + Intel82599⺴⽹网卡 •  通过减少内存访问来提升系统IO性能 Without DDIO With DDIO CPU 0 CPU 1 CPU 0 CPU 1 Core Core Core Core Core Core Core Core QPI QPI Core Core Core Core Core Core Core CoreDIMMs Core Core Core Core Eliminates Core Core Core Core DIMMs Memory Core Core QPI Core Core Accesses Core Core QPI Core Core Cache Cache Cache Cache PCIe PCIe PCIe PCIe PCIe PCIe
  29. 29. 性能-硬件优化•  硬件优化效果 – 性能提升87.5% SYNFlood 800 700 600 500 400 300 200 100 0 sandybridge westmere sandybridge with AVX数据包量(w) 400 550 750百分⽐比(%) 0 37.5 87.5
  30. 30. Todo List•  性能:lockless•  功能:7层;攻击防御;•  开源:http://kb.linuxvirtualserver.org/wiki/ IPVS_FULLNAT_and_SYNPROXY
  31. 31. 谢谢 Q&A新浪微博:吴佳明_普空

×