4EWQE 发表于 2017-11-7 09:31:54

实现LVS负载均衡NAT模式

1、LVS-NAT实现原理简述   
   注释:
    ipvs:工作于内核上的netfilterINPUT钩子之上的程序,可根据用户定义的集群实现请求转发;
    VS:Virtual Server   虚拟服务
    Director, Balancer   负载均衡器、分发器
    RS:Real Server   后端请求处理服务器            
    CIP: Client IP    用户端IP
    Director Virtual IP: VIP负载均衡器虚拟IP
    Director IP: DIP   负载均衡器IP
               RealServer IP: RIP后端请求处理服务器IP
其中:VIP是让用户访问的,DIP是让后端服务器通信的
(1) 当用户请求到达DirectorServer,此时请求的数据报文会先到内核空间的PREROUTING链。此时报文的源IP为CIP,目标IP为VIP (2)PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链(3) IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。此时报文的源IP为CIP,目标IP为RIP (4) POSTROUTING链通过选路,将数据包发送给RealServer(5) Real Server比对发现目标为自己的IP,开始构建响应报文发回DirectorServer。此时报文的源IP为RIP,目标IP为CIP      (6)Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。此时报文的源IP为VIP,目标IP为CIP

2、实验:
实验准备:
三台主机,一台负载均衡器,两台后端服务器
    LVS-server 两个网卡,桥接模式,仅主机模式
    后端服务器:仅主机模式   
(1)在LVS-server上配置
    1.安装包

      yum install ipvsadm
   2.开启一个基于80端口的虚拟服务,调度方式为wrr
    ipvsadm -A -t 172.17.251.106:80 -s wrr
    3.配置web后端服务器real server为net工作方式,权重为1

    ipvsadm -a -t 172.17.251.106:80 -r 192.168.191.107 -m -w 1
    ipvsadm -a -t 172.17.251.106:80 -r 192.168.191.110 -m -w 1
    4.修改内核参数,允许路由转发

      vim/etc/sysctl.conf
       修改 net.ipv4.ip_forward = 1

      sysctl -p 查看生效
(2)在两个real server上添加默认路由指向DIP
    route add default gw 192.168.191.106
(3)为了方便测试。

    在real server上实现LNMP。可以安装下面步骤实现

    http://guanm.blog.51cto.com/13126952/1978354
    在192.168.191.107上
    cd /data/web

    echo site1 > index.html

    在192.168.191.110上   
    cd /data/web
    echo site2 > index.html(4)在客户端测试     curl http://172.17.251.106/index.html     可以看到依次出现site1 ,site2 ,因为两者的权重一样   

页: [1]
查看完整版本: 实现LVS负载均衡NAT模式