lvs DR 工作模式/高可用

4层负载平衡:

将网络流量负载平衡到多个服务器的最简单方法是使用第4层(传输层)负载平衡。以这种方式进行负载均衡将根据IP范围和端口转发用户流量
用户访问负载均衡器,负载均衡器将用户的请求转发给后端服务器的Web后端组。无论选择哪个后端服务器,都将直接响应用户的请求。通常,Web后端中的所有服务器应该提供相同的内容 - 否则用户可能会收到不一致的内容。

一、lvs 的四种工作模式

DR 工作模式

当用户访问lvs调度器(vs)上的vip时,是通过修改请求报文的目标mac地址,在数据链路层通过调度算法将请求转发给真实服务器(rs),而真实服务器响应后的处理结果直接返回给客户端用户;所以说,vs 和rs 要都有vip,只是用arptables 处理了rs在数据链路层arp转发。由于必须处于同一vlan下,受到了局限性,但是其工作效率很高。client --> vs --> rs --> client
DR的不足:LVS - RS 间必须在同一个VLAN
RS上绑定VIP,风险太大

NAT 工作模式

通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。client --> vs --> rs --> vs --> client
相当于数据流进入到VS时,做了一次DNAT,从VS出去的时候做了一次DNAT
NAT 不足: RS/ROUTER 要配置策略路由

TUN 工作模式(隧道工作模式)

客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器
TUN不足:RS配置复杂(IPIP模块),RS上绑定VIP,风险比较大

FULLNAT 工作模式(不是系统自带)

引入local address(内网ip地址),cip-vip转换为lip->rip,而 lip和rip均为IDC内网ip,可以跨vlan通讯

LVS在大规模网络中应用存在不足
各转发模式,网络拓扑复杂,运维成本高
和商用LB设备相比
缺少TCP标志位DDOS攻击防御
主备部署方式不足
性能无法线性扩展

二、实现httpd的负载均衡

在这里插入图片描述

1.利用DR工作模式和轮询调度算法实现

调度器:
yum install -y ipvsadm ##安装lvs管理器
给网卡添加一个再添加一个vip

ip addr add 172.25.19.100/24   dev eth0

在这里插入图片描述

添加虚拟服务,当外部访问到vip时会直接lvs

ipvsadm -A -t 172.25.19.100:80 -s rr ## 添加虚拟一个虚拟服务IP,-s是调度算法‘rr’ 轮询调度算法
ipvsadm -a -t 172.25.19.100:80 -r 172.25.19.2:80 -g
ipvsadm -a -t 172.25.19.100:80 -r 172.25.19.3:80 -g ## 添加虚拟IP的rs服务器
ipvsadm -ln ##查看lvs 调度器是否添加成功

在这里插入图片描述

rs端:
server2和server3上开启httpd服务
为观察方便 把测试页写成各自的主机名

echo server2 > /var/www/html/index.html

并添加虚拟ip 172.25.19.100,

ip addr add 172.25.19.100/24 dev eth0

通过真实主机进行访问测试:
curl 172.25.19.100来测试
访问到的测试页为两台机子轮询,实现了负载均衡

在这里插入图片描述

arp -an | grep 100可以查看收到arp报文对应的mac地址

arp -d 172.25.19.100 ##删除指定ip的arp缓存

但这种存在问题,这样不是很安全,因为server2和3他们同样有虚拟ip,宿主机访问虚拟ip时也可能会被这两台机子抢去而访问它,这就会使调度器无用,为了避免这类问题,我们给两台rs服务器添加相应的规则来使他们的虚拟IP不被直接访问。
通过内核禁止或者通过arp防火墙来实现。

在两台rs服务器端都安装并屏蔽:
yum install arptables -y ##安装arp防火墙
systemctl start arptables ## 开启服务
添加arptables访问规则

arptables -A INPUT -d 172.25.19.100 -j DROP  ##把目的地址到100的禁止掉
arptables -A OUTPUT -s 172.25.19.100 -j mangle --mangle-ip-s 172.25.19.3  ## 把源地址为100伪装成本机

访问测试:
这样在测试时就不会直接访问到以172.25.19.100为ip的server2 和server3,只会先访问调度器,通过调度器的设定来访问rs服务器

在这里插入图片描述

lvs的优先级要高于本地服务 可以将arp包策略保存到本机

arp-ethers.servic ```

ipvsadm策略保存到本机  

```bash ipvsadm-save -n > /etc/sysconfig/ipvsadm ipvsadm -C ##s刷掉策略

三、keepalive + lvs高可用

针对若rs服务器出现故障或者调度器单点故障等问题,keepalive很好的解决了相应的问题,健康检查和失败切换(LVS冗余)是keepalived的两大核心功能。利用keepalive中的vrrp协议实现高可用解决单点故障,TCP_CHECK实现对后端rs进行健康检测。

1) lvs 高可用master

在server1和server4上安装keepalived

yum install keepalived -y

修改server1配置文件,让server1做主用机

[root@server1 ~]# cd /etc/keepalived/
[root@server1 keepalived]# ls
keepalived.conf
[root@server1 keepalived]# vim keepalived.conf 

在这里插入图片描述

添加rs规则,
健康监测次数
调度算法
持久连接,

在这里插入图片描述
后面的内容都删除
在这里插入图片描述

删除掉之前DR模式下的添加的vip,清除ipvsadm的设置的规则,启动keepalived

[root@server1 keepalived]# ip addr del 172.25.19.100/24 dev eth0
[root@server1 keepalived]# ipvsadm -C

在这里插入图片描述

启动keepalive自动生成规则,可以看到由keepalive添加的vip,keepalive服务会自动添加虚拟ip和编写ipvsadm规则,所以可以把之前添加过的删掉。

在这里插入图片描述

2) lvs 高可用backup

备用主机(server4):
其他与主用机的内容一样,只需改它的状态和优先级,所以拷贝1的文件过来即可

在这里插入图片描述

启动服务

[root@server4 keepalived]# systemctl start keepalived.service

在这里插入图片描述

访问测试:

当server1的keepalive停止之后,vip会自动漂移到server4上,不会影响客户端对后端服务器的访问
在这里插入图片描述

但是设置成主备机时,当server1的keepalive重新启动时,会抢占资源。
若不想被抢占,则可修改server1主用机的配置文件,当重启服务时,vip 就不会从server4自动漂移到server1上

四. NAT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值