一、Lvs-nat实战部署
1、准备
设置好网卡信息
2、基础环境搭建详情
①调度器LVS:网卡ens160(NAT模式)、网卡ens224(仅主机模式),使其可处于不同的VLAN段
为网卡ens160设置IP
vmset.sh ens160 172.25.254.100 lvs.zf.org
为网卡ens224设置IP
vmset.sh ens224 192.168.0.100 lvs.zf.org
修改网卡ens224的配置文件
[root@lvs boot]# vim /etc/NetworkManager/system-connections/ens224.nmconnection
重新加载网络配置
nmcli connection reload
nmcli connection up ens224
打开内核路由功能
vim /etc/sysctl.conf
sysctl -p # 使修改内容生效
②webserver1(仅主机)
为网卡ens160设置IP
vmset.sh ens160 192.168.0.10 webserver1.zf.org
修改ens160的网关
③webserver2(仅主机)
为网卡ens160设置IP
vmset.sh ens160 192.168.0.20 webserver2.zf.org
修改ens160的网关
保证畅通的环境
分别为webserver1和webserver2安装apache
dnf install httpd -y
将“webserver1 -192.168.0.10”这个内容输出并重定向到“/var/www/html/index.html”
将“webserver2 -192.168.0.20”这个内容输出并重定向到“/var/www/html/index.html”
最终在LVS上检测
3、LVS-NAT部署详情
dnf install ipvsadm -y
做策略
ipvsadm -A -t 172.25.254.100:80 -s rr
# 添加一个 TCP 类型的虚拟服务,IP为172.25.254.100,端口为 80,使用轮询(Round Robin)调度算法
ipvsadm -Ln
查看规则-n 选项表示以数字形式显示 IP 地址和端口,而不是进行域名解析
轮询调度的基本原理是按照固定的顺序依次为每个任务分配资源或处理时间片。
例如,假设有任务 A、B、C,调度器会先为 A 分配一个时间片进行处理,然后轮到 B,接着是 C,之后再回到 A,如此循环。
轮询调度的优点在于其实现简单,公平性较好,每个任务都有机会获得资源。它适用于多个任务的处理需求相对平均,且对响应时间要求不是特别严格的场景。 比如说,在一个计算机系统中,多个进程需要使用 CPU 资源,如果采用轮询调度,每个进程都能在一定的时间间隔内得到 CPU 的处理时间,避免某些进程长时间得不到资源而导致饥饿。
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m
#添加真实服务器(Real Server)
其中 -m 表示 NAT 模式,-g 表示 DR 模式,-i 表示 TUN 模式
循环10次看效果
最后,保存策略记录: ipvsadm-save > /etc/sysconfig/ipvsadm
二、ipvsadm命令的使用
1、添加一个新的虚拟服务:ipvsadm -A -t <VIP>:<Port> -s <调度算法>
ipvsadm -A -t 192.168.1.100:80 -s rr
#表示添加一个虚拟服务,IP 为 192.168.1.100,端口为 80,使用轮询(Round Robin)调度算法。
2、 添加真实服务器:ipvsadm -a -t <VIP>:<Port> -r <RIP>:<Port> -m
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.1:80 -m
#表示为上述虚拟服务添加一个真实服务器,IP 为 192.168.1.1,端口为 80,使用 NAT 模式。
3、查看规则: ipvsadm -L -n 以数字形式显示当前的 IPVS 规则
4、删除虚拟服务: ipvsadm -D -t <VIP>:<Port>
5、删除真实服务器: ipvsadm -d -t <VIP>:<Port> -r <RIP>:<Port>
6、修改调度算法:ipvsadm -E -t <VIP>:<Port> -s <新的调度算法>
三、Lvs-dr实战部署
本项目基于以下配置要求进行:
1、基础环境搭建详情
①调度器LVS
在上个实验的基础上,删除网卡信息,重新添加IP信息
仅保留网卡ens224,为其添加IP信息
修改网卡ens224的网关,并重新激活网卡
再次确认网关信息
② router
设置双网卡模式
设置双网卡的ip地址,并编辑ens224的文件,删除网关
打开内核路由功能
③client
为ens160设置ip
修改ens160的网关信息
2、LVS-DR部署详情
在RS1和RS2中关闭VIP的响应
设定VIP的lo地址的IP
[root@lvs ~]# ip a a 192.168.0.200/32 dev lo
[root@webserver1 ~]# ip a a 192.168.0.200/32 dev lo
[root@webserver2 ~]# ip a a 192.168.0.200/32 dev lo
在客户端测试VIP网络是否可达
做策略
客户端访问测试
四、LVS火墙标记
修改策略为轮询调度
[root@lvs ~]# ipvsadm -E -t 192.168.0.200:80 -s rr
在2个RS中安装mod_ssl模块,让RS支持https
[root@webserver1 ~]# yum install mod_ssl -y
[root@webserver1 ~]# systemctl restart httpd
[root@webserver2 ~]# yum install mod_ssl -y
[root@webserver2 ~]# systemctl restart httpd
在网络状态相关的输出中搜索与 “httpd” 相关的信息
忽略证书访问
增加一套策略,模拟轮询调度冲突
用防火墙标记解决该问题
在 mangle 表的 PREROUTING 链中添加一条规则,目标地址为 192.168.0.200 ,协议为 TCP ,多端口为 80 和 443 ,执行动作是 MASK 并设置标记为 66 。
清除策略
设定调度规则
客户端访问测试