LVS-NAT

来源:互联网 发布:怎么购买备案域名 编辑:程序博客网 时间:2024/05/22 15:04

LVS-NAT

简介

工作原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。

优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。

缺点:扩展性有限。当服务器节点增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

集群上各IP地址说明

CIP:客户端ip,用于请求集群服务器DIP:负载ip,Director用于连接内外网的Ip地址,物理网卡的ipVIP:集群ip,为Director用户向客户提供服务的ip地址RIP:真实服务器ip,私有地址    

工作过程

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

第一步,客户端访问VIP1的网站,发送的请求包是源地址是自己的IP地CIP,目标地址直接访问的是Director的VIP,请求显示某一个页面,而不是去直接访问RealServer里面的IP地址(RealServer的IP地址是私有的IP地址,需要经过NAT的方式将内部IP地址转化之后的VIP才能在公网上运作)

步骤二:客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;

步骤三:真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

实验配置

实验环境

四台机器

Director节点:(eth0 192.168.10.30  eth1 192.168.20.30)Client:(eth1 192.168.10.1)Real server1: (eth0 192.168.10.10)Real server2: (eth0 192.168.10.20)负载调度器有两个网卡,内网(192.168.10.0),外网(192.168.20.0),real serve属于内网,内网连外网要注意网关,Client只是为了方便检测,可不要,直接在Director server上检测

Director server配置

  1. 添加外网网卡

  2. 打开路由转发功能

    [root@Director ~]#vim /etc/sysctl.conf //将……net.ipv4.ip_forward = 0……//改为net.ipv4.ip_forward = 1[root@Director ~]# sysctl -p//加载配置,是指sysctl.conf里面的配置生效
  3. 安装LVS管理工具

    [root@Director ~]#rpm -ivh /mnt/Packages/ipvsadm-1.26-4.el6.x86_64.rpm
  4. 配置Director规则

    [root@Director ~]#ipvsadm -A -t 192.168.20.30:80 -s rr//rr表示轮询,round-robinA,表示添加;-t,表示TCP的服务,后面书写格式为VIP:Port;-s设置调度算法[root@Director ~]#ipvsadm -a -t 192.168.20.30:80 -r 192.168.10.10 -m//添加一条RealServer[root@Director ~]#ipvsadm -a -t 192.168.20.30:80 -r 192.168.10.20 -m //添加第二条RealServer-a,表示添加real server的地址;-r,表示realserver地址;  -m,表示masquerade,也就是NAT方式LVS
  5. 查看规则与保存

    [root@Director ~]#ipvsadm -Ln-> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  192.168.20.30:80 rr-> 192.168.10.10:80             Masq    1      0          0         -> 192.168.10.20:80             Masq    1      0          0 ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHEDInActConn 指非活跃连接数, TCP ESTABLISH状态以外的连接都称为不活跃连接。Weight 权重比例[root@Director ~]#/etc/init.d/ipvsadm save//可以看到保存路径

Real server1配置

  1. 添加网关

    [root@RS1 ~]# route add default gw 192.168.10.30//可到配置网卡文件中永久添加[root@RS1 ~]# ping 192.168.20.30//检测是否通信
  2. 安装httpd服务并开启

    [root@RS1 ~]# yum -y install httpd[root@RS1 ~]# service httpd restart
  3. 创建测试网页

    [root@RS1 ~]# echo web10 > /var/www/html/index.html

Real server2配置

  1. 添加网关

    [root@RS2 ~]# route add default gw 192.168.10.30//可到配置网卡文件中永久添加[root@RS2 ~]# ping 192.168.20.30//检测是否通信
  2. 安装httpd服务并开启

    [root@RS2 ~]# yum -y install httpd[root@RS2 ~]# service httpd restart
  3. 创建测试网页

    [root@RS2 ~]# echo web20 > /var/www/html/index.html

测试

  1. 可直接在负载调度器上检测

    [root@Director ~]# curl 192.168.10.10web10[root@Director ~]# curl 192.168.10.20web20[root@Director ~]# curl 192.168.20.30web20[root@Director ~]# curl 192.168.20.30web10

ipvsadm命令其他参数

  1. 命令参数

    [root@Director ~]# ipvsadm --helpipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)Usage:ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine]ipvsadm -D -t|u|f service-addressipvsadm -Cipvsadm -Ripvsadm -S [-n]
  2. 命令使用

    //查看客户端连接分发器和Real Server的情况[root@Director ~]# ipvsadm -Lnc   IPVS connection entriespro expire state       source             virtual            destinationTCP 01:54  TIME_WAIT   192.168.20.1:52815 192.168.20.30:80   192.168.10.10:80TCP 01:56  TIME_WAIT   192.168.20.1:52818 192.168.20.30:80   192.168.10.20:80TCP 01:56  TIME_WAIT   192.168.20.1:52819 192.168.20.30:80   192.168.10.10:80TCP 01:54  TIME_WAIT   192.168.20.1:52816 192.168.20.30:80   192.168.10.20:80//查看分发情况[root@Director ~]# ipvsadm -L -n --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes-> RemoteAddress:PortTCP  192.168.20.30:80                   85      399      304    35542    28839-> 192.168.10.10:80                   42      202      177    19855    17424-> 192.168.10.20:80                   43      197      127    15687    11415
原创粉丝点击