调度器LVS

代理功能,网站服务器的入口

实现流量控制

控制访问流向

1、LVS集群的工作模式
  • lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
  • lvs-dr:操纵封装新的MAC地址
  • lvs-tun:在原请求IP报文之外新加一个IP首部
  • lvs-fullnat:修改请求报文的源和目标IP,默认内核不支持

http://www.linuxvirtualserver.org/Documents.html

1.1、LVS的NAT模式

lvs-nat:本质是多目标IP的DNAT地址转换,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发

区别在于支持多目标转发,不是固定目标

访问负载压力大,决定着集群内性能瓶颈

(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP

(2)请求报文和响应报文都必须经由LVS转发,LVS容易成为系统瓶颈

(3)支持端口映射,可修改请求报文的目标PORT

(4)VS必须是Linux系统,RS可以是任意OS系统

在这里插入图片描述

LVS是作用在INPUT表之前,将访问请求重新指向,直接通过POSTROUTING表到达内部服务器,报文回来的时候正常走向

1.2、LVS的DR模式

LVS-DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是其挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变

报文通过LVS到达内部服务器后不再原路返回,而是直接返回客户端,在内部服务器后面也配置虚拟IP

在这里插入图片描述

在这里插入图片描述

DR模式的特点

  1. LVS和各RS都配置有VIP且配置对外不可见

  2. 确保前端路由器将目标IP为VIP的请求报文发往Director

    • 在前端网关做静态绑定VIP和Director的MAC地址

    • 在RS上使用arptables工具

    • 在RS上修改内核参数以限制arp通告及应答级别:不回应广播询问vip的MAC地址,arp不广播通告RS拥有vip地址

  3. RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由LVS

  4. RS和LVS要在同一个物理网络,中间可以放交换机而不能放路由

  5. 请求报文要经由LVS,但响应报文不经由LVS,而由RS直接发往Client

  6. 不支持端口映射(端口不能修改)

  7. 无需开启ip_forward功能

  8. RS可使用大多数OS系统

/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce
2、DR模式搭建

不支持端口映射

ip报文头不动,更改MAC地址

限制响应级别:arp_ignore

0:默认值,表示可使用本地任意接口上配置的任意地址进行响应,都响应

1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应,仅在特定接口收到特定请求才响应,可理解为都不响应

限制通告级别:arp_announce

0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告

1:尽量避免将接口信息向非直接连接网络进行通告

2:必须避免将接口信息向非本网络进行通告

校验数据包地址:rp_filter

说明:参数rp_filter用来控制系统是否开启对数据包源地址的校验。

0:表示不开启地址校验

1:表示开启严格的反向路径校验。对每一个收到的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包

2:表示开启松散的反向路径校验,对每个收到的数据包,校验其源地址是否可以到达,即反向路径是否可以ping通,如反向路径不通,则直接丢弃该数据包。

在这里插入图片描述

2.1、环境
五台主机
一台:客户端 eth0:仅主机 192.168.0.6/24 GW:192.168.0.200

一台:ROUTER
eth0 :NAT  10.0.0.200/24
eth1: 仅主机 192.168.0.200/24
启用 IP_FORWARD

一台:LVS
eth0:NAT:DIP:10.0.0.8/24 GW:10.0.0.200  #配置网关用于反向检查,判断是否可用通讯,有配置网关即可,具体指向仅要求在网段内
#也可不配置网关,但需更改内核参数为0/proc/sys/net/ipv4/conf/all/rp_filter

两台RS:
RS1:eth0:NAT:10.0.0.7/24   GW:10.0.0.200
RS2:eth0:NAT:10.0.0.17/24 GW:10.0.0.200
2.2、配置VIP
#RS1的IPVS配置,在RS2上也同样执行,注意先改内核参数再添加vip
[root@rs1 ~]#echo 1 >   /proc/sys/net/ipv4/conf/all/arp_ignore
[root@rs1 ~]#echo 2 >   /proc/sys/net/ipv4/conf/all/arp_announce 
[root@rs1 ~]#echo 1 >   /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@rs1 ~]#echo 2 >   /proc/sys/net/ipv4/conf/lo/arp_announce
#永久保存可在/etc/sysctl.conf中
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1  ......
sysctl -p

[root@rs1 ~]#ip a a 10.0.0.100/32 dev lo label lo:1     #注意是添加在回环网卡lo上,子网是32

#在LVS上配置VIP
ip a a 10.0.0.100/32 dev lo:1       #在LVS上不用改内核参数,注意要是VIP配置在lo上子网必须为32,在eth0上则24和32均可
2.3、添加规则
[root@10.0.0.8 ~]#ipvsadm -A -t 10.0.0.100:80 -s rr
[root@10.0.0.8 ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.7:80 -g
[root@10.0.0.8 ~]#ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.17:80 -g
[root@10.0.0.8 ~]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 rr
  -> 10.0.0.7:80                  Route   1      0          0         
  -> 10.0.0.17:80                 Route   1      0          0  

验证

curl 10.0.0.100
3、多网段DR模式

VIP的地址和RS的地址不在同一网段

在这里插入图片描述

具体实现

#在路由器上
ip a a 172.16.0.200/24 dev eth0 label eth0:1

#LVS,RS均需修改内核参数
#其余步骤差不多

验证

curl 172.16.0.100
第八周作业

redis的sentinel和cluster简介
nginx简单应用
http协议通信和nginx架构
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值