lvs的DR模式负载均衡

it2022-05-05  86

主机ip服务server1172.25.16.1ipvsadm调度器server2172.25.16.2RealServer1 apache服务server3172.25.16.3RealServer2 apache服务物理真机机172.25.16.250模拟客户端测试服务VIP172.25.16.100连接服务用的ip 安装ipvsadm

真机挂载好yum源(不会就点这句话)

虚拟机修改yum源

vim /etc/yum.repos.d/yum.repo [iso] name=iso baseurl=http://172.25.16.250/iso6.5 gpgcheck=0 [LoadBalancer] name=LoadBalancer baseurl=http://172.25.16.250/iso6.5/LoadBalancer gpgcheck=0 enabled=1

安装软件

yum install ipvsadm -y server2和3安装httpd并写发布页

以server2为例3的操作是一样的

yum install -y httpd vim /var/www/html//index.html server2 /etc/init.d/httpd start chkconfig httpd on server1写策略

添加一个监控的vip 查看现有策略

ipvsadm -A -t 172.25.16.100:80 -s rr ipvsadm -l

添加真实服务器的地址并且绑定到vip上 查看策略 保存策略

ipvsadm -a -t 172.25.16.100:80 -r 172.25.16.2:80 -g ipvsadm -a -t 172.25.16.100:80 -r 172.25.16.3:80 -g ipvsadm -l /etc/init.d/ipvsadm save

添加vip

server1

ip addr add 172.25.16.100/24 dev eth1

server2和3

ip addr add 172.25.16.100/32 dev eth1

注意: 在server2和server3中之所以将子网掩码设置成32,是因为请求从调度器过来时,不对外提供服务的,只提供内部通信就好

访问测试

真机访问vip 查看在此网段下绑定100这个ip的MAC地址

curl 172.25.16.100 arp -an | grep 100

查看server3的MAC地址是否一样 清除绑定的MAC地址 再次访问vip

arp -d 172.25.16.100 curl 172.25.16.100

可见此时又自动绑定到server2

清除绑定,再次访问

arp -d 172.25.16.100 curl 172.25.16.100

查看此时绑定的MAC地址 对比server1 可见只有在绑定MAC地址为server1时才能轮巡,这样是不合理的,我们需要在server2和3的路由策略

配置server2和3的路由策略

server2和3的配置过程是一样的,区别只在172.25.16.2要改为172.25.16.3

安装arp路由策略软件

yum install arptables_jf -y

增添策略

arptables -A IN -d 172.25.16.100 -j DROP ######当网内广播需要172.25.16.100这个ip时,它将丢弃网内的所有请求 arptables -A OUT -s 172.25.16.100 -j mangle --mangle-ip-s 172.25.16.2 ######当往外传数据时伪装成172.25.16.2这个ip进行工作 /etc/init.d/arptables_jf save #####保存策略 /etc/init.d/arptables_jf start ######开启服务

真机测试 chkconfig +服务 on 可以把服务设置为开机启动 下次重启的时候我们只需要server1手动添加vip172.25.16.100/24 server2和3添加vip172.25.16.100/32就行了


最新回复(0)