文章目录
1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。
LVS(Linux Virtual Server)是一种高性能、可扩展的负载均衡软件,它可以将客户端请求分发到多个后端服务器上,从而实现负载均衡。LVS支持多种工作模式,其中最常用的是NAT模式和DR模式。这两种模式各有优缺点,下面我将详细介绍他们的特点及适用场景。
NAT模式
在NAT模式下,LVS通过修改数据包头部信息,将客户端请求转发给后端服务器,并将响应流量经过NAT方式返回给客户端。具体来说,LVS会将请求数据包中的源IP地址改为自己的IP地址,并将目标IP地址改为后端服务器的IP地址;对于响应数据包,LVS会将目标IP地址改为自己的IP地址,并将源IP地址改为客户端的IP地址。NAT模式下,LVS需要处理所有进出LVS的流量,因此需要更多的CPU资源,并且会增加一定的延迟。但是,NAT模式可以实现透明的负载均衡,后端服务器无需知道LVS的存在,也无需进行任何特殊配置。NAT模式的优点:
透明性:后端服务器无需知道LVS的存在,也无需进行任何特殊配置,可以像正常服务器一样运行。
稳定性:当某个后端服务器出现故障时,LVS会自动将请求路由到其他可用的后端服务器上。
安全性:LVS可以隐藏后端服务器的真实IP地址,从而增强了系统的安全性。 NAT模式的缺点:性能损失:由于需要对数据包进行地址转换和端口转换,因此会增加一定的网络延迟和CPU负载。
扩展性:LVS的NAT模式只支持单向流量转发,不适合处理需要双向通信的业务场景。
DR模式
在DR模式下,LVS仅负责将客户端请求路由到后端服务器上,并将响应流量直接返回给客户端。与NAT模式不同的是,在DR模式中,LVS不需要对响应流量进行地址转换和端口转换,因此性能更高、延迟更低。但是,要使用DR模式,后端服务器需要配置虚拟IP,并将响应流量发送到虚拟IP上,这需要一定的额外配置。DR模式的优点:
高性能:由于无需对数据包进行地址转换和端口转换,因此可以实现更高的性能和更低的延迟。
可扩展性:DR模式支持多台LVS节点组成集群,通过共享虚拟IP来实现负载均衡,因此可以实现更高的可扩展性。
灵活性:DR模式适用于需要双向通信的业务场景,可以在后端服务器上直接处理响应流量。 DR模式的缺点:配置复杂度:要使用DR模式,后端服务器需要配置虚拟IP,并将响应流量发送到虚拟IP上,这需要一定的额外配置。
透明性:由于LVS不对响应流量进行地址转换和端口转换,因此后端服务器需要知道LVS的存在,并进行相应的配置。
2. 基于 CentOS 7 构建 LVS-DR 群集。
1、环境准备
准备机器
192.168.1.100 lVS
192.168.1.101 web1
192.168.1.102 web2
192.168.1.33 测试机器
2、安装httpd准备两个web页面
web1和web2安装
yum install httpd -y
echo "web test is `hostname -I`" > /var/www/html/index.html
systemctl restart httpd.service
访问
[root@test ~]# curl 192.168.1.101
web test is 192.168.1.101
[root@test ~]# curl 192.168.1.102
web test is 192.168.1.102
3、配置LVS负载均衡服务
1、下载工具
yum install ipvsadm.x86_64 -y
2、增加一个虚拟IP 192.168.1.110
nmcli connection modify ens33 +ipv4.addresses 192.168.1.110/24
nmcli connection up ens33
3、配置LVS
清除所有策略
ipvsadm -C
查看
ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
添加LVS服务
ipvsadm -A -t 192.168.1.110:80 -s wrr
增加两台RS
ipvsadm -at 192.168.1.110:80 -r 192.168.1.101:80 -g
ipvsadm -at 192.168.1.110:80 -r 192.168.1.102:80 -g
查看
4、手工在RS端绑定VIP,添加本机访问VIP的路由信息
ifconfig lo:110 192.168.1.110 netmask 255.255.255.255 up
添加本机访问VIP的路由
route add -host 192.168.1.110 dev lo
5、手工在RS端抑制ARP响应
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce
也可以使用arptables实现抑制arp
下载
yum install arptables -y
arptables -A INPUT -d 192.168.1.110 -j DROP
arptables -A OUTPUT -s 192.168.1.110 -j mangle --mangle-ip-s 192.168.1.102
6、测试