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

3、测试结果

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐