LVS实验步骤解析
一、LVS介绍
LVS(Linux Virtual Server)是一个开源的负载均衡解决方案,它基于Linux内核构建,能够在多个服务器之间分发网络流量和请求。LVS 提供了高性能、高可用性的服务器负载均衡功能,适用于各种网络服务,如 Web、数据库、邮件等。
二、lvs的调度算法
lvs静态调度算法
lvs动态调度算法
三、lvs集群中的增删改
管理集群服务中的增删改
#增加ipvsadm -A -t 172.25.254.100:80 -s rripvsadm -A -f 66 -p 3000#修改ipvsadm -E -t 172.25.254.100:80 -s wrr -p 3000#删除ipvsadm -D -t 172.25.254.100:80ipvsadm -D -f 66
管理集群中RealServer的增删改查
添加ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.30 -mipvsadm -a -t 172.25.254.100:80 -r 192.168.0.40 -m -w 2更改ipvsadm -e -t 172.25.254.100:80 -r 192.168.0.30 -m -w 1ipvsadm -e -t 172.25.254.100:80 -r 192.168.0.30 -i -w 1删除ipvsadm -d -t 172.25.254.100:80 -r 192.168.0.30查看ipvsadm -Ln
Nat模式集群实验
LVS 作为网关设备,通过修改数据包的源或目的IP 地址来实现负载均衡
实验环境
LVS:192.168.0.10(仅主机) 172.25.254.100(nat模式)
启用内核路由功能并安装ipvsadm
echo net.ipv4.ip_forward=1 > /etc/sysctl.conf
sysctl -p
yum install ipvsadm -y
添加调度策略
ipvsadm -A -t 172.25.254.100:80 -s rripvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -mipvsadm -a -t 172.25.254.100:80 -r 192.168.0.30:80 -m
查看策略:ipvsadm -Ln
RS1:192.168.0.20(仅主机)192.168.0.10(网关)
安装http: dnf install http -y
关闭防火墙:systemctl disable --now firewalld
将文本写入默认输出文件:echo RS1 -192.168.0.20 > /var/www/html/index.html
RS2:192.168.0.30(仅主机) 192.168.0.10(网关)
安装http: dnf install http -y
关闭防火墙:systemctl disable --now firewalld
将文本写入默认输出文件:echo RS2 -192.168.0.30 > /var/www/html/index.html
Client:172.25.254.10(NAT模式)
测试结果:
DR模式集群实验
直接路由模式,LVS 修改数据包的目的 MAC 地址,将流量直接路由到真实服务器3.TUN 模式:隧道模式,LVS 通过 IP 隧道将流量转发到真实服务器,这种方式下真实服务器可以分布在不同的地理位置。
实验环境
Router
网卡ens160配置
[connection]
id=ens160
type=ethernet
interface-name=ens160[ipv4]
method=manual
address1=172.25.254.100/24
网卡ens192配置
[connection]
id=ens192
type=ethernet
interface-name=ens192[ipv4]
method=manual
address1=192.168.0.10/24
启用内核路由功能
echo net.ipv4.ip_forward=1 > /etc/sysctl.conf
sysctl -p
打开防火墙
systemctl enable --now firewalld.service
firewall-cmd --permanent --add-masquerade刷新防火墙:firewall-cmd --reload
查看:firewall-cmd --list-all
LVS
网卡ens160配置
[connection]
id=ens160
type=ethernet
interface-name=ens160[ipv4]
method=manual
address1=192.168.0.200/24,192.168.0.10
address2=192.168.0.220/24
dns=8.8.8.8
添加调度策略
ipvsadm -A -t 192.168.0.220:80 -s rr
ipvsadm -a -t 192.168.0.220:80 -r 192.168.0.20:80 -g
ipvsadm -a -t 192.168.0.220:80 -r 192.168.0.30:80 -g
RS1
ens160配置
[connection]
id=ens160
type=ethernet
interface-name=ens160[ipv4]
method=manual
address1=192.168.0.20/24,192.168.0.10
dns=8.8.8.8
lo配置
[connection]
id=lo
type=loopback
interface-name=lo
[ipv4]
method=manual
address1=127.0.0.1/0address=192.168.0.220/32
配置全局变量:
echo net.ipv4.conf.all.arp_ ignore=1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_ announce=2 >> /etc/sysctl.conf
配置局部变量:
echo net.ipv4.conf.lo.arp_ ignore=1 >>/etc/sysctl.conf
echo net.ipv4.conf.lo arp_announce=2 >> /etc/sysctl.conf
RS2
ens160配置
[connection]
id=ens160
type=ethernet
interface-name=ens160[ipv4]
method=manual
address1=192.168.0.30/24,192.168.0.10
dns=8.8.8.8
lo配置
[connection]
id=lo
type=loopback
interface-name=lo[ipv4]
method=manual
address1=127.0.0.1/0
address=192.168.0.220/32
设置不对外响应
配置全局变量:
echo net.ipv4.conf.all.arp_ ignore=1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_ announce=2 >> /etc/sysctl.conf
配置局部变量:
echo net.ipv4.conf.lo.arp_ ignore=1 >>/etc/sysctl.conf
echo net.ipv4.conf.lo arp_announce=2 >> /etc/sysctl.conf
网卡配置后重启ens:
nmcli conncetion reload
nmcli connection up 网卡名
实验结果: