首页 小组 文章 搜索 用户

[lvs(ipvsadm)]LVS(NAT)简单搭建实现负载均衡

2020-05-20 15:25:37
4
300

   LVS(Linux Virtual Server)集群

LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在19985月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一,是根据iptables的实现来开发的,所以使用时候会和iptables相当类似

官网:http://www.linuxvirtualserver.org/

中文站点: http://zh.linuxvirtualserver.org/


LVS负载均衡的三种包转发方式

     LVS提供了三种包转发方式:NAT(网络地址映射)IP Tunneling(IP隧道)Direct Routing(直接路由)。不同的转发模式决定了不同的cluster的网络结


LVS-NAT 模式工作原理:

            客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。


集群各节点ip注解:

客户端计算机的IPCIP):

可能是一个本地的、与VIP在同一网络的私有ip地址,或者是一个因特网上的公共ip地址。用作向集群发送请求的源ip地址

虚拟IPVIP):

Director用于向客户端提供服务的ip地址

DirectorIPDIP):

DirectorVIP上接收访问集群服务的请求,这些请求通过DIP转发出去抵达各个集群节点

真实real server IPRIP):

向外部世界提供服务的节点叫做真实服务器,因此在真实服务器上使用的ip地址叫做真实ip地址(RIP


配置LVS-NAT:

前期准备:

1、准备3台主机 以redhat7.6为例   

主机名                                    ip

LVS-Server                            192.168.1.40

LVS-RIP1                               192.168.2.41

LVS-RIP2                               192.168.2.42

为LVS-Server配置网络环境

        添加一个网卡(需要两张网卡), 配置成以下网络环境:

 eth0  192.168.1.40  模式:br0    模拟公网

        eth1  192.168.2.40  模式:vmnet4    模拟内网

2、vi /etc/selinux/config         关闭selinux 

3、iptables -F         清除规则

4、systemctl stop firewalld 关闭防火墙    或者

firewall-cmd --permanent --add-port=1~65535/tcp                        #开启全部的端口

firewall-cmd --reload                                                                          

firewall-cmd --list-all                                                                          #查看规则                                 

准备完成以后===========================开始配置

打开路由转发功能

[root@LVS-Server ~]# vi /etc/sysctl.conf  

net.ipv4.ip_forward = 1

[root@LVS-Server ~]# sysctl -p                                                    #配置生效

       [root@LVS-Server ~]#systemctl restart network                         #重启网卡

        [root@LVS-Server ~]#yum install ipvsadm -y                             #安装ipvsadm

        [root@LVS-Server ~]#ipvsadm -A -t 192.168.1.40:80 -s rr           #添加虚拟服务器,添加TCP的服务,添加调度算法

        [root@LVS-Server ~]#ipvsadm -a -t 192.168.1.40:80 -r 192.168.2.41 -m    #添加real server的地址,ip地址

        [root@LVS-Server ~]#ipvsadm -a -t 192.168.1.40:80 -r 192.168.2.42 -m

        [root@LVS-Server ~]#ipvsadm -L -n                                          #查看ipvs表和算法

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.1.40:80 rr

  -> 192.168.2.41:80              Masq    1      0          0        

  -> 192.168.2.42:80              Masq    1      0          0        

        [root@LVS-Server ~]#ipvsadm --save > /etc/sysconfig/ipvsadm   ipvsadm -S    #保存以上的配置

配置真实服务器

配置IPREAL SERVER自己的网络相关信息配置成如下:

LVS-RIP1eth0 vmnet4 192.168.2.41  网关: 192.168.2.40

LVS-RIP2 eth0 vmnet4 192.168.2.42  网关: 192.168.2.40

配置LVS-RIP1realserver, 并启web服务

[root@LVS-RIP1 ~]# yum install -y httpd

[root@LVS-RIP1 ~]# systemctl restart httpd

[root@LVS-RIP1 ~]# echo "192.168.2.41" > /var/www/html/index.html    #(实验期间,各个服务器的页面不同)

配置LVS-RIP2realserver, 并启web服务

[root@LVS-RIP2 ~]# yum install -y httpd

[root@LVS-RIP2 ~]# systemctl restart httpd

[root@LVS-RIP2 ~]# echo "192.168.2.42" > /var/www/html/index.html    #(实验期间,各个服务器的页面不同)



测试:

LVS-Server上测试:

[root@LVS-Server ~]# yum install elinks  

 

测试VIP 

[root@LVS-Server ~]# elinks 192.168.2.40

[root@LVS-Server ~]# elinks 192.168.2.40 --dump

   192.168.2.41

[root@LVS-Server ~]# elinks 192.168.2.40 --dump

   192.168.2.42

往分发机上写入---------分别分发给真实的设备 负载的轮询算法rr

访问: 在物理上打开浏览器访问: 每按F5刷新一次,就会变换一个页面。



        






















评论 (4)