目录
通过LVS作为负载均衡器来给后端服务器分发流量
LVS
ens33:192.168.100.10 外网;ens36:192.168.10.20 内网
web1:192.168.10.101;web2:192.168.10.102



1) 启动httpd

2)配置SNAT转发规则
设置开启路由转发功能
![]()

清空iptables规则

添加地址转换功能,

加载ip_vs模块

安装ipvsadm工具

创建环境生成文件
![]()
启动ipvsadm

配置负载分配策略

-A:添加虚拟服务器
-a:添加真实服务器
-t:指定VIP地址及端口
-s:指定负载调度算法
-m:使用nat集群模式
-w:设置权重
启动策略

Masq代表NAT模式
查看当前策略

启动httpd服务

写入页面内容
![]()
网关指向lvs
启动httpd服务

写入页面内容
![]()
网关指向lvs
访问对外地址,可以跳转到真实服务器的内容而不显示真实服务器的IP

由于NAT模式下,数据来回都需要经过LVS服务器,将会造成LVS服务器压力非常大。于是便出现了DR模式。

负载调度器 ens33:192.168.10.30 虚拟子接口 ens33:0:192.168.10.100
web1 ens33:192.168.10.101 lo:0:192.168.10.100
web2 ens33:192.168.10.102 lo:0:192.168.10.100
集群对外暴露一个虚拟端口IP192.168.10.100,客户机在访问时先到达路由;路由将会进行ARP广播,来获得服务器192.168.10.100的MAC地址;正常情况下3台服务器均会响应路由器的ARP广播,这时我们需要设置服务器只响应访问ip为本地ip的ARP请求,所以只有director服务器响应;director服务器接收到数据后,因为在同一个内网上所以通过数据帧传输的方式发送给下面的web服务器处理;web服务器处理完成后需要向外面发送,所以需要先进行ARP广播,获取到路由的MAC地址,但是如果使用的是192.168.10.100的IP会导致路由器更新自己的IP和MAC的对应关系,暴露自己的物理服务器地址,所以在这里我们需要设置在进行ARP广播的时候采用的是ens33网卡的真实IP和MAC地址;之后发送数据包的时候用的是192.168.10.100的IP和真实MAC地址,但因为路由工作在三层,基于IP和端口进行传输,不再更新MAC地址,从而使整个服务器正常工作。
安装环境
![]()
配置虚拟子网接口

![]()

开启 
调整LVS的proc的响应参数

配置负载均衡策略

配置环回ip地址


在web服务器中添加vip本地范围跟路由

![]()

在web中调整内核的ARP、响应参数使得ARP广播时使用ens33ip

net.ipv4.conf.all.arp_ignore = 1 只响应目的ip为本地的arp请求
net.ipv4.conf.all.arp_announce = 2 使用发送接口的ip地址来代替ip包的源地址发送arp广播

①keepalived是一个转为LVS和HA设计的一款健康检查工具,基于VRRP协议来实现的LVS高可用,支持故障自动切换,节点健康状态检查来解决静态路由出现的单点故障问题。
②在一个LVS集群中通常由多台服务器组成一个热备组,对外表现为一个虚拟IP
③在keepalived服务之间,只有作为主的服务器会一直发送VRRP广播包,表名自己或者。当主服务器不在发送时,备用就是启动相关服务接管资源,保证业务的连续性。
为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析
负责健康检查,常见的方式有端口检查和URL检查
实现VRRP协议
①管理LVS负载均衡软件
②支持故障自动切换
③实现LVS集群中节点的健康检查
④实现LVS负载调度器、节点服务器的高可用性
在之前的基础上再加入一台备用DR服务器 192.168.10.20
修改配置文件keepalived.conf


开启keepalived服务

直接开启ens33:0会报错,需要重启网卡
验证
![]()
主断开keepalived,VIP消失

仍可以访问