1-LVS

LVS = Linux Virtual Server 是 Linux 内核里自带的、高性能、高可用的负载均衡软件,用来把用户请求均匀分给多台后端服务器。

NAT模式

调度器必须启用内核路由转发(net.ipv4.ip_forward=1),RS 网关必须指向 DIP

1、实验目的

实现 LVS NAT 模式的负载均衡调度,验证轮询(RR)、加权轮询(WRR)调度算法的效果,掌握 NAT 模式下 LVS 的核心配置步骤。

2、实验环境

|-------|---------------------|-----------------------------------|
| 服务器名称 | 作用 | IP地址 |
| VS | 调度器,双网卡,侨接外网和服务区 | 内:192.168.23.100 外:192.168.79.100 |
| RS1 | 真实服务器,内网,网关(23.100) | 内:192.168.23.10 |
| RS2 | 真实服务器,内网,网关(23.100) | 内:192.168.23.20 |

3、实验过程

先配置实验环境

在vs上面配置两张网卡,外网eth0:192.168.79.100;内网eth1:192.168.23.100(仅主机)

在RS1上配置单网卡(仅主机)内网:192.168.23.10;网关:192.168.23.100,并启动eth0

在RS2上配置单网卡(仅主机)内网:192.168.23.20;网关:192.168.23.100,并启动eth0

测试结果:可以成功访问

nat实现

VS上安装ipvsadm:

bash 复制代码
[root@vsnode ~]# yum install ipvsadm -y

开启内核路由功能:

bash 复制代码
[root@vsnode ~]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
[root@vsnode ~]# sysctl -p
net.ipv4.ip_forward = 1

编写策略
ipvsadm命令:

  • ipvsadm --C 清空

  • #ipvsadm --R 重载

  • ipvsadm -A -t(tcp)service-address(集群地址) -s scheduler(调度算法)

    • -A 添加
    • -s wrr (加权论调)
    • -w 1 权重为1
    • -r 指定真实服务器地址,端口(eg:192.168.23.10:80
    • -m nat模式转发
bash 复制代码
[root@vsnode ~]# ipvsadm -C
[root@vsnode ~]# ipvsadm -A -t 192.168.79.100:80 -s wrr
[root@vsnode ~]# ipvsadm -a -t 192.168.79.100:80 -r 192.168.23.10:80 -m -w 1
[root@vsnode ~]# ipvsadm -a -t 192.168.79.100:80 -r 192.168.23.20:80 -m -w 1

测试结果:

更改权重为2,并测试

规则持久化

利用自定义文件进行持久化
ipvsadm命令:

  • ipvsadm -A -t(tcp)service-address(集群地址) -s scheduler(调度算法)
    • -A 添加
    • -s wrr (加权论调)
    • -w 2 权重为2
    • -r 指定真实服务器地址,端口(eg:192.168.23.10:80)
bash 复制代码
#存入文件
[root@vsnode ~]# ipvsadm-save -n
-A -t 192.168.79.100:80 -s wrr
-a -t 192.168.79.100:80 -r 192.168.23.10:80 -m -w 2
-a -t 192.168.79.100:80 -r 192.168.23.20:80 -m -w 1
[root@vsnode ~]# ipvsadm-save -n > /mnt/ipvs.rule
#清除规则
[root@vsnode ~]# ipvsadm -C    
#从文件中导入规则
[root@vsnode ~]# ipvsadm-restore < /mnt/ipvs.rule

结果:

利用守护进程进行规则持久化

bash 复制代码
[root@vsnode ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
#清除规则
[root@vsnode ~]# ipvsadm -C
#重启后自动导入规则
[root@vsnode ~]# systemctl enable --now ipvsadm.service
Created symlink /etc/systemd/system/multi-user.target.wants/ipvsadm.service → /usr/lib/systemd/system/ipvsadm.service.

结果:

DR模式

1、实验目的

部署 LVS 默认且应用最广泛的 DR 模式集群,解决 VIP 地址冲突问题,验证 DR 模式的调度特性及加权轮询算法的效果。

2、实验环境

|--------|---------|-------------------------------------------------|
| 服务器名称 | 作用 | IP地址 |
| router | 路由器,双网卡 | 内:192.168.23.100 外:192.168.79.100 |
| vsnode | 调度器 | vip:192.168.23.200(lo) dip:1912.168.23.50(eth0) |
| client | 客户端 | 外:192.168.79.99 |
| RS1 | 真实服务器 | 内:192.168.23.10 |
| RS2 | 真实服务器 | 内:192.168.23.20 |

*可将nat模式中的RS1、RS2沿用,将nat中的vsnode调度器的名称改为router为DR模式的路由器沿用

3、实验过程

配置ip

vsnode:配置文件,将lo(192.168.23.200)设为VIP;eth0(192.168.23.50)为dip,网关:192.168.23.100

配置结果:

client:

环境配置:

路由器router,设定内核路由功能,并数据转发策略

RS1:设置vip在lo上

配置:

bash 复制代码
[root@RS1 ~]# cd /etc/NetworkManager/system-connections/
[root@RS1 system-connections]# cp -p eth0.nmconnection lo.nmconnection
[root@RS1 system-connections]# vim lo.nmconnection
[root@RS1 system-connections]# nmcli c reload
[root@RS1 system-connections]# nmcli c up lo

结果:

arp禁止响应

RS2:设置vip在lo上

配置:

bash 复制代码
[root@RS2 ~]# cd /etc/NetworkManager/system-connections/
[root@RS2 system-connections]# cp -p eth0.nmconnection lo.nmconnection
[root@RS2 system-connections]# vim lo.nmconnection
[root@RS2 system-connections]# nmcli c reload
[root@RS2 system-connections]# nmcli c up lo

结果:

arp禁止响应

全网可达:

利用防火墙标记解决轮询错误

在RS1和RS2中开启https

bash 复制代码
[root@RS1 ~]# dnf install mod_ssl -y
[root@RS1 ~]# systemctl restart httpd

[root@RS2 ~]# dnf install mod_ssl -y
[root@RS2 ~]# systemctl restart httpd

在vsnode中添加https的轮询策略

使用火墙标记访问vip的80和443的所有数据包,设定标记为6666,然后对此标记进行负载

bash 复制代码
[root@vsnode ~]# iptables -t mangle -A PREROUTING -d 192.168.23.200 -p tcp -m multiport --dports 80,443 -j MARK  --set-mark 6666
[root@vsnode ~]# ipvsadm -A -f 6666 -s rr
[root@vsnode ~]# ipvsadm -a -f 6666 -r 192.168.23.10 -g
[root@vsnode ~]# ipvsadm -a -f 6666 -r 192.168.23.20 -g

在用户端测试结果:

相关推荐
User_芊芊君子1 天前
影音自由新玩法:Plex+cpolar 解锁异地访问,告别网盘限速烦恼
服务器·nginx·测评
wanhengidc1 天前
云手机的运行环境如何
运维·服务器·游戏·智能手机·生活
炸膛坦客1 天前
Linux - Ubuntu - PC端:(三)切换中英文,Fcitx5
linux·ubuntu
7yewh1 天前
jetson_yolo_deployment 01_linux_dev_env
linux·嵌入式硬件·yolo·机器人·嵌入式
cyber_两只龙宝1 天前
【Haproxy】Haproxy的算法详解及配置
linux·运维·服务器·云原生·负载均衡·haproxy·调度算法
阿常呓语1 天前
Linux命令 jq详解
linux·运维·shell·jq
君生我老1 天前
Linux 权限
linux
hy____1231 天前
Linux_网络基础3
linux·服务器·网络
我不听你讲话1 天前
LNMP网络服务搭建
linux·php·apache
Mr. Cao code1 天前
MySQL服务器配置与socket连接详解
服务器·数据库·mysql