LVS负载均衡群集—直接路由模式(LVS-iptun)搭建
环境准备
调度服务器(Director)1台:CentOS 7.9
IP: 192.168.137.10
VIP: 192.168.137.200
Web服务器(Real Server)2台:CentOS 7.9
SERVER AA: 192.168.137.20
SERVER BB: 192.168.137.21
客户端测试机: 192.168.137.255
一、调度服务器(Director)配置
1.安装必要软件yum install -y ipvsadm
2. 创建并执行配置脚本
创建/root/dr.sh文件:vi /root/dr.sh
#!/bin/bash
# 添加虚拟IP
ifconfig ens33:0 192.168.137.200 broadcast 192.168.137.200 netmask 255.255.255.255 up
# 开启IP转发
echo "1" > /proc/sys/net/ipv4/ip_forward
# 清除现有规则
ipvsadm -C
# 添加虚拟服务
ipvsadm -A -t 192.168.137.200:80 -s wlc
# 添加真实服务器
ipvsadm -a -t 192.168.137.200:80 -r 192.168.137.20:80 -i -w 2
ipvsadm -a -t 192.168.137.200:80 -r 192.168.137.21:80 -i -w 1
# 查看规则
ipvsadm -l
赋予执行权限并运行:
chmod +x /root/dr.sh
sh /root/dr.sh
3、启动tunl0接口ifconfig tunl0 up
4. 关闭防火墙systemctl stop firewalld
systemctl disable firewalld
5. 验证配置ifconfig
ipvsadm -l
二、Web服务
1. 在两台Web服务器上安装Apacheyum install -y httpd
systemctl start httpd
systemctl enable httpd
2. 创建测试页面
在SERVER AA(192.168.137.20):echo "This is SERVER AA" > /var/www/html/index.html
在SERVER BB(192.168.137.21):echo "This is SERVER BB" > /var/www/html/index.html
3. 配置TUN模式
在两台Web服务器上创建/root/tunl0web.sh文件:vi /root/tunl0web.sh
#!/bin/bash
# 加载ipip模块
modprobe ipip
# 添加VIP到tunl0接口
ip addr add 192.168.137.200 dev tunl0
# 配置ARP参数
echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/tunl0/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter
# 应用配置
sysctl -p &>/dev/null
# 启动tunl0接口
ifconfig tunl0 up
赋予执行权限并运行:chmod +x /root/tunl0web.sh
sh /root/tunl0web.sh
4. 关闭防火墙systemctl stop firewalld
systemctl disable firewalld
5. 验证配置ifconfig
lsmod | grep ipip
三、验证测试
在Web服务器AA上测试:curl 192.168.137.20
应返回"This is SERVER AA"
在Web服务器BB上测试:curl 192.168.137.21
应返回"This is SERVER BB"
在客户端(192.168.137.255)上测试负载均衡:curl 192.168.137.200
多次执行应轮流返回"SERVER AA"和"SERVER BB"
在调度服务器上查看连接分配:ipvsadm -l
可以看到连接被分配到不同的真实服务器上