PS(作者小牢骚):LVS知识理解不了?请看转移至全网最详细讲解LVS(理论篇),你不懂的它都有!!!
一、lvs的nat模式
1、实验环境
主机名 | 角色 | IP地址 |
lvs | 调度器 | 172.25.254.100(NAT) 192.168.0.100(仅主机) |
webserver1 | 真实服务器(RS) | 192.168.0.10 |
webserver2 | 真实服务器(RS) | 192.168.0.20 |
server | 测试机 | 172.25.254.254 |
2、实验步骤
2.1 LVS中开启内核路由功能(LVS)
2.1.1 查看
sysctl -a | grep ip_forward
可以使用上述命令进行查看,若 net.ipv4.ip_forward = 0,则内核路由功能处于关闭状态。
2.1.2 编辑sysctl.conf文件
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
2.1.3 生效
sysctl -p
2.2 设置网关 (webserver1、webserver2)
将两台 RS 网关设置为 192.168.0.100,可以使用 route -n 命令去查看网关情况。
vim /etc/NetworkManager/system-connections/eth0.nmconnection
address1=192.168.0.10/24,192.168.0.100
2.3 apache 服务设置
2.3.1 下载 (LVS、webserver1、webserver2)
dnf install -y httpd
2.3.2 编辑网页以便测试(webserver1、webserver2)
echo webserver1 > /var/www/html/index.html
echo webserver2 > /var/www/html/index.html
2.3.3 开启 apache 服务 (LVS、webserver1、webserver2)
systemctl enable --now httpd
2.3.4 测试(LVS)
curl 192.168.0.10
curl 192.168.0.20
2.4 安装LVS软件(LVS)
dnf install -y ipvsadm
2.5 添加策略(LVS)
ipvsadm -A -t 172.25.254.100:80 -s rr
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10 -m
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20 -m
查看 LVS 策略命令:
ipvsadm -Ln
3、测试结果
在测试机上进行结果测试
for i in {1..10}
> do
> curl 172.25.254.100
> done
二、ipvsadm命令的使用
1、管理集群服务中的增删改
参数 | 参数说明 |
-A | 添加 |
-E | 修改 |
-D | 删除 |
#增加
ipvsadm -A -t 172.25.254.100:80 -s rr
#修改
ipvsadm -E -t 172.25.254.100:80 -s wrr
#删除
ipvsadm -D -t 172.25.254.100:80
2、管理集群中 RealServer 的增删改
参数 | 参数说明 |
--rate | 输出速率信息 |
-C | 清空lvs策略 |
-w | 设定权重 |
注意:权重一定要设定为 wrr 不能设定为 rr ,否则在测试过程中会报错。
3、保存策略
#第一种
ipvsadm-save > /etc/sysconfig/ipvsadm
ipvsadm -C
ipvsadm-restore > /etc/sysconfig/ipvsadm
#第二种
systemctl stop ipvsadm.service
vim /etc/sysconfig/ipvsadm
-A -t 172.25.254.100:80 -s rr
-a -t 172.25.254.100:80 -r 192.168.0.10 -m
-a -t 172.25.254.100:80 -r 192.168.0.20 -m
systemctl start ipvsadm.service
注意:第一种使用 ipvsadm-restore > /etc/sysconfig/ipvsadm 命令之后,/etc/sysconfig/ipvsadm 文件内容清空
三、lvs的dr模式实现
1、实验环境
主机名 | 角色 | IP地址 |
client | 客户机 | 172.25.254.200 |
router | 路由机 | 172.25.254.100(NAT) 192.168.0.100(主机上) |
lvs | 调度器 | 192.168.0.50 |
webserver1 | 真实服务器(RS) | 192.168.0.10 |
webserver2 | 真实服务器(RS) | 192.168.0.20 |
2、实验步骤
2.1 设置网关
lvs、webserver1、webserver2上的网关为192.168.0.100
client上的网关为172.25.254.100
2.2 开启内核路由功能(router、lvs)
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
2.3 解决vip响应问题(webserver1、webserver2)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
2.4 配置 vip 回环接口(lvs、webserver1、webserver2)
ip a a 192.168.0.200/32 dev lo
2.5 配置策略(lvs)
ipvsadm -A -t 192.168.0.200:80 -s wrr
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g
3、测试结果
四、lvs防火墙标记
1、实验环境
主机名 | 角色 | IP地址 |
client | 客户机 | 172.25.254.200 |
router | 路由机 | 172.25.254.100(NAT) 192.168.0.100(主机上) |
lvs | 调度器 | 192.168.0.50 |
webserver1 | 真实服务器(RS) | 192.168.0.10 |
webserver2 | 真实服务器(RS) | 192.168.0.20 |
2、实验步骤
2.1 在 RS1 和 RS2 中安装 mod_ssl 并重启 apache
yum install mod_ssl -y
systemctl restart httpd
2.2 设定端口标签
iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports
80,443 -j MARK --set-mark 66
2.3 设定调度规则
ipvsadm -A -f 66 -s rr
ipvsadm -a -f 66 -r 192.168.0.10 -g
ipvsadm -a -f 66 -r 192.168.0.20 -g