woyoudn 发表于 2019-1-5 15:11:38

实现LVS负载均衡NAT模式

  1、LVS-NAT实现原理简述    https://s3.运维网.com/oss/201711/04/3c0b70732f7b90bc5c8ec17f4cbbb7e8.png
  
     注释:
      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 两个网卡,桥接模式,仅主机模式
      后端服务器:仅主机模式   https://s5.运维网.com/oss/201711/04/6e57addf682f64ef68d6c918c6282cfd.png
  (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.运维网.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模式