LVS四层负载均衡

版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin

LVS四层负载均衡

1.lvs工作模式

dr direct routing 直接路由模式 nat tun 隧道 full nat 完全nat模式
CIP client ip 客户端ip地址
VIP 虚拟ip
DIP director 负载均衡ip
RS服务器 real server 真实服务器,处理用户请求
RIP real server ip

2.lvs-dr 模式介绍

特点
lvs dr模式中lvs只负责转发 并修改用户请求的目标mac地址 dmact
lvs dr模式中响应和处理 是后端rs服务器处理 处理直接响应给用户.
lvs vip公网ip rs服务器也要有公网ip 
lvs dr 支持更高并发(几万 几十万) nginx(1w)
lvs 和后端rs服务器 必须要在同1个局域网 涉及到arp解析
用户请求过来的端口 无法修改的. 用户的请求是什么端口 后端rs服务器就要开端口

3.lvs-nat模式介绍

lvs与rs服务器可以不在同一局域网
nat模式 流量初入都要经过 lvs 效率 性能不高
端口也可以不同

4.lvs-dr模式部署实操

1.环境准备

主机 服务 ip
lb01 lvs 10.0.0.5
lb02 lvs 10.0.0.6
vip 10.0.0.3
web01 nginx 10.0.0.7
web02 nginx 10.0.0.8
lb01#
[root@lb01 ~]# yum -y install ipvsadm.x86_64
#web02,web01配置相同  
[root@web01 ~]# cat /etc/nginx/conf.d/lvs.com.conf 
server {
   listen 80;
   server_name   lvs.com;
   root /code/lvs;
   location / {
   index index.html ;
   }
}
[root@web01 ~]# curl -H Host:lvs.com   172.16.1.7
lvs web01 10.0.0.7 172.16.1.7
[root@web01 ~]# curl -H Host:lvs.com   172.16.1.8
lvs web02 10.0.0.8 172.16.1.8

2.lvs-dr模式配置流程

1.lvs服务端配置

#01.手动添加vip,后面是由keepalived生成
ip addr add 10.0.0.3/24 dev eth0 label eth0:0
#02. 查看lvs规则
[root@lb01 ~]# ipvsadm 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
#03. 清空规则,要备份
ipvsadm -C     #clear清除 #iptables -F flush 
#04. 设置 tcp超时时间
ipvsadm --set 30 5 60   #设置tcp 超时时间
#05. 添加规则
[root@lb01 ~]# ipvsadm -ln #查看规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Schedu -> RemoteAddress:Port    Forward Weight ActiveConn InActConn
#添加规则 upstream 
ipvsadm -A -t 10.0.0.3:80 -s wrr -p 20   
#-A --add-service 创建池塘  
#-t --tcp-service tcp协议
#10.0.0.3:80 组名称
#-s scheduler 轮询算法   wrr weight 加权轮询   rr lc wlc 
#-p persistent 会话保持时间  
#添加规则 向upsteam中添加server  
ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.7:80 -g -w 1
ipvsadm -a -t 10.0.0.3:80 -r 10.0.0.8:80 -g -w 1
#-a 添加 rs服务器  
#-t tcp协议
#-r 指定rs服务器ip
#-g --gatewaying dr模式 默认的
#-w 权重
[root@lb01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.3:80 wrr persistent 20
  -> 10.0.0.7:80                 Route   1      0          0         
  -> 10.0.0.8:80                 Route   1      0          0

2.web服务器端配置

#lo网卡绑定 vip 
ip addr add 10.0.0.3/32 dev lo label lo:1 
[root@web01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-lo:1
DEVICE=lo:1
IPADDR=10.0.0.3
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback
[root@web01 ~]# systemctl restart network 
[root@web02 ~]# ip a s lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
   inet 10.0.0.3/32 brd 10.0.0.3 scope global lo:1
       valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
#抑制arp解析
cat >>/etc/sysctl.conf<<EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF
sysctl -p
posted @ 2022-06-05 14:08  kirin(麒麟)  阅读(135)  评论(0编辑  收藏  举报
Δ