集群:
多台主机做同一件事
负载均衡集群
lvs 4层负载
Nginx 7层负载
haproxy 可4层,可7层负载
slb 云主机服务(例如阿里云),要付费
F5 硬件设备
高可用集群(使用两台负载均衡器,一台坏了由另一台顶上)
keepalived
高性能集群(超级计算机)
负载均衡器(只负责两边的转发请求)
VIP(令牌,用户只知道令牌的地址,通过令牌就能找到)
lvs:Linux Virtual Server
l4:四层交换,四层路由:
根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法)
netfilter:
PREROUTING --> INPUT
PREROUTING --> FORWARD --> POSTROUTING
OUTPUT --> POSTROUTING
lvs:
ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务
ipvs:工作于内核中netfilter INPUT钩子上
支持TCP,UDP,AH,EST,AH_EST,SCTP等诸多协议
grep -i -A 2 'ipvs' /boot/config-2.6.32-504.el6.x86_64 查看系统对ipvs的支持情况,包括算法
lvs arch:
调度器:director,dispatcher,balancer
RS:Real Server
Client IP:CIP
Director Virutal IP:VIP
Director IP:DIP
Real Server IP:RIP
lvs type:
lvs-nat:masquerade
lvs-nat本质上就是多目标的DNAT(iptables)
lvs-nat模式通过修改请求报文的目标IP地址(同时可能会修改目标端口)至挑选出来的某RS的RIP地址实现转发
lvs-nat的特点:
RS和DIP应该使用私网地址,且RS的网关要指向DIP
请求和响应报文都要经由director转发,所以配置时需要将director的转发功能开启,极高负载的场景中,director可能会成为系统性能瓶颈
支持端口映射
RS可以使用任意OS
RS的RIP和Director的DIP必须在同一IP网络
lvs-dr(direct routing):lvs的默认模式,gateway
lvs-dr模式通过修改请求报文的目标MAC地址进行转发
Director:调度器要配置VIP,DIP
RSs:所有的Real Server都要配置RIP,VIP
lvs-dr的特点:
保证前端路由器将目标IP为VIP的请求报文发送给director,解决方案有以下三种:
静态绑定
arptables
修改RS主机内核的2个参数:
arp_announce:是否接收并记录别人的通告以及是否通告自己的mac地址给别人。
arp_announce有三个可选值,0,1,2,其意义如下:
0(default,默认值为0):通告自己所拥有的所有地址
1:尽量不通告与自己不在同一个网段的地址,比如不通告2.0网段的地址给1.0网段,不通告3.0网段的地址给1.0网段等,但是是尽量不通告,有可能还是会通告的
尽量避免不在该网络接口子网段的本地地址做出arp回应.
当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.
此时会检查来访IP是否为所有接口上的子网段内ip之一.如果该来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2:总是不通告与自己不在同一个网段的地址,比如不通告2.0网段的地址给1.0网段,不通告3.0网段的地址给1.0网段等,绝对不会通告
对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.
首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址.
如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.
arp_ignore:是否响应arp请求
arp_ignore有9个可选值,0,1,2,3,4,5,6,7,8,其意义如下:
0(default,默认值为0):回应任何网络接口上对任何本地IP地址的arp查询请求
1:请求报文从哪个接口进入的且请求的目标地址就是此接口配置的地址才予以响应,否则不响应
只回答目标IP地址是来访网络接口本地地址的ARP查询请求
2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
3:不回应该网络接口的arp请求,而只对设置的唯一和连接地址做出回应
4-7:保留未使用
8:不回应所有(本地地址)的arp查询
RS的RIP可以使用私有地址,也可以使用公网地址
RS跟Director必须在同一物理网络中,中间不能有路由器相