LVS集群部署

LVS集群部署
一、lvs集群的类型:

lvs-nat:修改请求报文的目标IP;多目标IP的DNAT;
lvs-dr:操纵封装新的MAC地址;
lvs-tun:在原请求IP报文之外新加一个IP首部,两级ip,隧道逻辑;
lvs-fullnat:修改请求报文的源和目标IP

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

1、RIP和DIP必须在同一个IP网络,且应该使用私网地址;RS的网关要指向DIP;
2、请求报文和响应报文都必须经由Director转发;Director易于成为系统瓶颈;
3、支持端口映射,可修改请求报文的目标PORT;
4、vs必须是Linux系统,rs可以是任意系统;

三、lvs-dr:
Direct Routing,直接路由;
通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变;

Director调度器和各RS后端服务器都得配置使用VIP;

1、确保前端路由器将目标IP为VIP的请求报文发往Director:
(a) 在前端网关做静态绑定;
(b) 在RS上使用arptables;
(c) 在RS上修改内核参数以限制arp通告及应答级别;
arp_announce
arp_ignore
2、 RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director;
3、 RS跟Director要在同一个物理网络;
4、请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client;
5、 不支持端口映射;

四、lvs-tun:
转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而是在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP);

1、 DIP, VIP, RIP都应该是公网地址;
2、 RS的网关不能,也不可能指向DIP;
3、 请求报文要经由Director,但响应不能经由Director;
4、不支持端口映射;
5、RS的OS得支持隧道功能;

五、lvs-fullnat:

通过同时修改请求报文的源IP地址和目标IP地址进行转发;

  1. CIP <----> DIP
  2. VIP <----> RIP
    1、 VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP;
    2、 RS收到的请求报文源地址是DIP,因此,只能响应给DIP;但Director还要将其发往Client;
    3、请求和响应报文都经由Director;
    4、 支持端口映射;
    注意:此类型默认不支持;

六、总结:

lvs-nat, lvs-fullnat:请求和响应报文都经由Director调度服务器;
lvs-nat:RIP的网关要指向DIP;
lvs-fullnat:RIP和DIP未必在同一IP网络,但要能通信;
lvs-dr, lvs-tun:请求报文要经由Director调度服务器,但响应报文由RS直接发往Client客户端;
lvs-dr:通过封装新的MAC首部实现,通过MAC网络转发;
lvs-tun:通过在原IP报文之外封装新的IP首部实现转发,支持远距离通信;

在这里插入图片描述
在这里插入图片描述
步骤一:使用命令增、删、改LVS集群规则

[root@proxy ~]# yum -y install ipvsadm
[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr # 创建LVS虚拟集群服务器(算法为加权轮询:wrr)
[root@proxy ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.5:80 wrr
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100
[root@proxy ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.5:80 wrr
-> 192.168.2.100:80 router 1 0 0
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -m -w 2 # 为集群添加若干real server
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.201 -m -w 3
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.202 -m -w 4
[root@proxy ~]# ipvsadm -E -t 192.168.4.5:80 -s rr # 修改集群服务器设置(修改调度器算法,将加权轮询修改为轮询)
[root@proxy ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.5:80 rr
-> 192.168.2.100:80 router 1 0 0
-> 192.168.2.200:80 masq 2 0 0
-> 192.168.2.201:80 masq 2 0 0
-> 192.168.2.202:80 masq 1 0 0
[root@proxy ~]# ipvsadm -e -t 192.168.4.5:80 -r 192.168.2.202 -g # 修改read server(使用-g选项,将模式改为DR模式)
[root@proxy ~]# ipvsadm -A -t 192.168.4.5:3306 -s lc
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.100 -m
#创建另一个集群(算法为最少连接算法;使用-m选项,设置工作模式为NAT模式)
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.200 -m
[root@proxy ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm # 永久保存所有规则
[root@proxy ~]# ipvsadm -C #清空所有规则

部署LVS-NAT集群
[root@web1 ~]# yum -y install httpd # 安装软件包
[root@web1 ~]# echo “192.168.2.100” > /var/www/html/index.html   #将IP导入到网页文件中
[root@web1 ~]# systemctl restart httpd # 启动服务

部署LVS-NAT模式调度器
[root@proxy ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@proxy ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@proxy ~]# echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
#修改配置文件,设置永久规则
[root@proxy ~]# yum -y install ipvsadm # 创建集群服务器
[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m #添加真实服务器
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m

部署LVS-DR集群
[root@proxy ~]# cd /etc/sysconfig/network-scripts/ # 为了防止冲突,VIP必须要配置在网卡的虚拟接口!!!
[root@proxy ~]# cp ifcfg-eth0{,:0}
[root@proxy ~]# vim ifcfg-eth0:0
TYPE=Ethernet
#网卡类型为:以太网卡
BOOTPROTO=none
#none手动配置IP,或者dhcp自动配置IP
NAME=eth0:0
#网卡名称
DEVICE=eth0:0
#设备名称
ONBOOT=yes
#开机时是否自动激活该网卡
IPADDR=192.168.4.15
#IP地址
PREFIX=24
#子网掩码
[root@proxy ~]# systemctl restart network
[root@proxy ~]# ifconfig
给web1配置VIP地址
注意:这里的子网掩码必须是32(也就是全255),网络地址与IP地址一样,广播地址与IP地址也一样。
[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 ~]# cp ifcfg-lo{,:0}
[root@web1 ~]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.15
NETMASK=255.255.255.255
NETWORK=192.168.4.15
BROADCAST=192.168.4.15
ONBOOT=yes
NAME=lo:0
防止地址冲突的问题:
这里因为web1也配置与调度器一样的VIP地址,默认肯定会出现地址冲突;
sysctl.conf文件写入这下面四行的主要目的就是访问192.168.4.15的数据包,只有调度器会响应,其他主机都不做任何响应,这样防止地址冲突的问题。
[root@web1 ~]# vim /etc/sysctl.conf
#手动写入如下4行内容
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#当有arp广播问谁是192.168.4.15时,本机忽略该ARP广播,不做任何回应
#本机不要向外宣告自己的lo回环地址是192.168.4.15
[root@web1 ~]# sysctl -p
[root@web1 ~]# systemctl restart network # 重启网络服务,设置防火墙与SELinux
[root@web1 ~]# ifconfig
常见错误:如果重启网络后未正确配置lo:0,有可能是NetworkManager和network服务有冲突,关闭NetworkManager后重启network即可。(非必须的操作)
[root@web1 ~]# systemctl stop NetworkManager
[root@web1 ~]# systemctl restart network
proxy调度器安装软件并部署LVS-DR模式调度器
[root@proxy ~]# yum -y install ipvsadm
[root@proxy ~]# ipvsadm -C #清空所有规则
[root@proxy ~]# ipvsadm -A -t 192.168.4.15:80 -s wrr
[root@proxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.100 -g -w 1
# 添加真实服务器(-g参数设置LVS工作模式为DR模式,-w设置权重)
[root@proxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.200 -g -w 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LVS(Linux Virtual Server)是一个开源项目,可以在Linux内核中实现一个高性能、高可用性的服务器集群。其中,NAT模式是LVS集群的一种常见部署方式,可以将外部请求通过LVS集群中的虚拟IP地址映射到后端真实服务器上。 以下是LVS集群搭建NAT模式的步骤: 1. 安装LVS软件包 在LVS集群中,需要安装ipvsadm和keepalived这两个软件包来实现负载均衡和高可用性。可以使用以下命令安装: ``` sudo apt-get install ipvsadm keepalived ``` 2. 配置LVS集群LVS集群中,需要至少有一个Director服务器和多个Real服务器。Director服务器是LVS集群中的核心部分,负责接收外部请求并将它们转发到Real服务器上。Real服务器是LVS集群中的后端服务器,负责处理来自Director服务器的请求。 在Director服务器上,需要进行以下配置: - 配置网络接口,将其绑定到虚拟IP地址上; - 配置ipvsadm规则,将请求映射到Real服务器上; - 配置keepalived,实现高可用性。 在Real服务器上,需要关闭iptables和ARP扫描功能,并配置正确的网络接口。 3. 测试LVS集群 在完成LVS集群的配置后,可以使用curl等工具测试其性能和可用性。例如,可以使用以下命令发送一个HTTP请求: ``` curl http://<虚拟IP地址>/ ``` 如果一切正常,请求应该被转发到Real服务器上,并返回正确的响应。 以上是LVS集群搭建NAT模式的基本步骤,具体的操作细节和配置方法可以参考LVS官方文档或相关的教程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值