lvs项目介绍

lvs集群的体系结构

lvs集群中的IP负载均衡技术

lvs集群的负载调度

LVS:

1、实现调度的工具IPVS

2、管理工具 ipvsadm

3、keepalived实现管理及高可用

虚拟IP地址 VIP 域名指向的地址

真实IP地址 RIP 集群节点使用的IP

DIP 负载均衡器上的IP

客户端IP地址 CIP

DR模式-直接路由模式

通过改写请求报文的目标mac地址

  • 通过在调度器LB上修改数据包的目的MAC地址实现转发。只修改目的mac地址。
  • 请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)
  • 因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面
  • RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。
  • RS节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让RS直接出网就可以。
  • 由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。

2.2.6 LVS DR模式工作原理:

MAC转换过程

实例场景设备清单: director分发器,IP: 192.168.1.70, VIP : 192.168.1.63

client基本信息: IP:192.168.1.101向目标vip发出请求,Director接收。此时IP包头及数据帧头信息如下:

Director分发器根据负载均衡算法选择一台active的realserver(假设是192.168.1.62),将此RIP所在网卡的mac地址作为目标mac地址,发送到局域网里。此时IP包头及数据帧头信息如下:

③ realserver(192.168.1.62)在局域网中收到这个帧,**拆开后发现目标IP(VIP)与本地匹配**,于是处理这个报文。随后重新封装报文,发送到局域网。此时IP包头及数据帧头信息如下:

  1. ** 如果client与VS同一网段,那么client(192.168.1.101)将收到这个回复报文。如果跨了网段,那么报文通过gateway/路由器经由Internet返回给用户。**

归纳一下:

1)接收client的请求,根据你设定的负载均衡算法选取一台realserver的ip;

2)以选取的这个ip对应的mac地址作为目标mac,然后重新将IP包封装成帧转发给这台RS;

3)在hash table中记录连接信息。

数据包、数据帧的大致流向是这样的:client –> VS –> RS –> client

NAT转发模式

FULLNAT转发模式

TUNNEL模式

ipvsadm 生产常用命令
ipvsadm -Ln –stats
ipvsadm -Lnc
ipvsadm -A -t 192.168.100.33:80 -s rr
ipvsadm -a -t 192.168.100.33:80 -r 192.168.100.232 -g
ipvsadm -a -t 192.168.100.33:80 -r 192.168.100.233 -g
ipvsadm -C 清空

/etc/sysctl.conf
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2

sysctl -p

echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
echo “1”>/proc/sys/net/ipv4/conf/lo/arp_ignore
echo “2”>/proc/sys/net/ipv4/conf/lo/arp_announce
echo “2”>/proc/sys/net/ipv4/conf/all/arp_announce

route del -host 192.168.200.37 dev lo
ifconfig ens32:1 192.168.200.37/24 up
arping -c 1 -I ens32 -s 192.168.200.232 192.168.200.37 >/dev/null 2>&1
arping -c 1 -I ens32 -D 192.168.200.37
ifconfig lo:0 192.168.100.33 netmask 255.255.255.255

heartbeart+lvs+ldirectord脚本配置方案 早期的方案已不再使用

piranha

keepalived+lvs 极力推荐 简单、易用、高效

tcpdump -i ens192 port 80

while true ;do /bin/bash /root/ipvs sleep 5;done

VRRP协议 虚拟路由器冗余协议 解决静态路由的单点故障,通过竞选协议机制来将路由任务交给某台VRRP路由器
VRRP通信是用IP多播的方式实现通信
主发包,备接收包,备接不到包的时候,接管主的资源。备可以有多个 ,通过优先级竞选。
VRRP使用了加密协议

文档更新时间: 2019-12-15 14:28   作者:老王