lvs配置使用

2020-04-02  本文已影响0人  早_wsm

lvs工作原理:
待补充

三种模式:

NAT、DR、TUN、FULLNAT
nat:
访问流程CIP>>VIP>>DIP>>RIP
入站要进行DNAT,出站SNAT,入站出战都要经过LVS,可以修改端口
LVS内专用术语:
CIP:client ip
VIP:virtual ip
DIP:drector ip
RIP:real server ip

dr:默认模式,应用比较广泛

通过更改数据包的MAC地址实现数据包的转发,只接收入站请求,不能改端口,LAN内使用
所有节点要与LVS处于同一个局域网

tun:不改变数据包内容,只封装一个IP头,只接收入站请求,出战不走LVS,LAN/WAN下使用,不能改端口
ipvsadm管理工具

LVS调度算法

固定调度算法:rr,wrr,dh,sh
rr:轮询(round robin)
wrr:加权轮询(weight round robin)
dh:目标地址散列调度算法 (destination hash)
sh:源地址散列调度算法(source hash)
动态调度算法:wlc,lc,lblc,lblcr
lc:最少连接数(least-connection)
wlc:加权最少连接数(weight least-connection)

环境准备

主机 DIP/CIP VIP
m01 10.0.0.61
lb01 10.0.0.5 10.0.0.31
lb02 10.0.0.6 10.0.0.31
web01 10.0.0.7
web02 10.0.0.8

安装LVS

ip addr add 10.0.0.31/24 dev eth0 label eth0:0
ip addr add 10.0.0.32/24 dev eth0 label eth0:0

-A 添加一个虚拟服务
-t 指定虚拟ip
-s 指定使用算法

[root@lb01 ~]# ipvsadm -A -t 10.0.0.31:80 -s rr
[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.31:80 rr

添加真实服务器(-g参数设置LVS工作模式为DR模式,-w设置权重)
ipvsadm -a -t 10.0.0.31:80 -r 10.0.0.7 -g -w 1
ipvsadm -a -t 10.0.0.31:80 -r 10.0.0.8 -g -w 2

[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.31:80 rr
  -> 10.0.0.7:80                  Route   1      0          0         
  -> 10.0.0.8:80                  Route   2      0          0     

注意:这里的子网掩码必须是32(也就是全255),网络地址与IP地址一样,广播
地址与IP地址也一样

这里因为web1也配置与代理一样的VIP地址,默认肯定会出现地址冲突;
sysctl.conf文件写入这下面四行的主要目的就是访问10.0.0.31的数据包,只有调度器会响应,其他主机都不做任何响应,这样防止地址冲突的问题。

[root@web01 ~]# vim /etc/sysctl.conf
#手动写入如下4行内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
做好arp抑制

sysctl -p #使/etc/sysctl.conf立即生效,或者直接重启服务器

最后测试访问

上一篇 下一篇

猜你喜欢

热点阅读