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
本文来自博客园,作者:kirin(麒麟),转载请注明原文链接:https://www.cnblogs.com/kirin365/articles/16343884.html