LVS NAT 模式搭建

1、负载均衡介绍html

一、简单说就是让多台服务器均衡的去承载压力。实现负载均衡的开源软件有LVS,keepalived,haproxy,Nginx等,商业的有F5,NetScaler.nginx

2、LVS介绍算法

一、LVS是一款四层的负载均衡软件,是针对TCP/IP作的转发和路由,因此稳定性和效率至关高。核心角色是调度器,用来分发用户的请求,还有处理用户服务的服务器vim

二、LVS根据实现方式不一样:有NAT模式,IP Tunnel 模式 ,DR模式。后端

三、NAT模式:调度器把用户的请求经过预设的iptables规则转发给后端真实服务器。调度器会有一个公网IP,一个内网IP,真实服务器只有内网IP,用户访问的时候请求的是调度器的公网IP,会把用户的请求转到真实服务器的内网IP上,该模式节省公网IP,可是调度会成为一个瓶颈。bash

四、IP Tunnel 模式:须要一个公共的IP配置在分发器和全部realserver上,称之为vip.,客户请求数据包,目标地址VIP发送到LB上。LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。而后发送出去。RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,而后解开IP Tunnel包头信息,获得客户的请求包并进行响应处理。响应处理完毕以后,RS服务器使用本身的出公网的线路,将这个响应数据包发送给客户端。源IP地址仍是VIP地址.服务器

五、DR模式:和IP Tunnel 模式方法相同,用户的请求被调度器动态的分配到真实服务器上,真实服务器响应请求把结果直接返回给用户,在这种模式下不会封装IP,而是将数据帧的MAC地址改成真实服务器的MAC地址。负载均衡

3、LVS的调度算法测试

一、轮询调度(Round Robin)ui

二、带权重的轮询调度(Weighted Round Robin)

三、最小链接调度(Least Connections)

四、带权重最小链接(Weighted Least Connections)

五、基于局部性的最小连接(Locality-Based Least Connections)

六、带复制的基于局部性最小连接(Locality-Based Least Connections with Replication)

七、目标地址散列调度(Destination Hashing)

八、源地址散列调度(Source Hashing)

4、LVS NAT 模式搭建

一、设置调度器(dir) 192.168.134.130(内网IP)   192.168.150.128(公网IP),须要设置为仅主机模式。

     RS1:192.168.134.150    RS2:192.168.134.131

二、三台机器上都关闭防火墙  首先安装 iptables-service

systemctl stop firewalld
systemctl disable firewalld

iptables -F 

service iptables save

三、设置RS1 和RS2 的网关 192.168.134.130  编辑  vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改 :GATEWAY=192.168.134.130 

而后: service network restart

 

四、在dir上安装 ipvsadm

yum install -y ipvsadm

五、在dir编写配置脚本  vim /usr/local/sbin/lvs_nat.sh

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.134.0/24 -j MASQUERADE
IPVSADM= '/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.150.128:80 -s wlc -p 300
$IPVSADM -a -t 192.168.150.128:80 -r 192.168.134.150:80 -m -w 1
$IPVSADM -a -t 192.168.150.128:80 -r 192.168.134.131:80 -m -w 1
六、为了方便区分RS1和RS2,给131和150设置不一样的主页。编辑  vim /usr/share/nginx/html/index.html 
设置为 rs1 和 rs2 ,而后启动nginx :  systemctl start nginx
 
  七、测试,先运行lvs_nat.sh
发现一直请求到rs1上,这是由于脚本中设置了-p 参数,理论上300秒内都会访问到同一个服务上。

$IPVSADM -A -t 192.168.150.128:80 -s wlc -p 300  修改成  $IPVSADM -A -t 192.168.150.128:80 -s wlc

 

能够发如今rs1 和 rs2 之间来回访问,作到了负载均衡。

相关文章
相关标签/搜索