LVS-TUN LVS-NAT两种负载均衡

LVS-NAT负载均衡模式

由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用保留IP地址(10.0.0.0/255.0.0.0、172.16.0.0 /255.128.0.0和192.168.0.0/255.255.0.0)[64, 65, 66]。这些地址不在Internet上使用,而是专门为内部网络预留的。当内部网络中的主机要访问Internet或被Internet访问时,就需要 采用网络地址转换(Network Address Translation, 以下简称NAT),将内部地址转化为Internets上可用的外部地址。NAT的工作原理是报文头(目标地址、源地址和端口等)被正确改写后,客户相信 它们连接一个IP地址,而不同IP地址的服务器组也认为它们是与客户直接相连的。由此,可以用NAT方法将不同IP地址的并行网络服务变成在一个IP地址 上的一个虚拟服务。

VS/NAT的体系结构如图所示。在一组服务器前有一个调度器,它们是通过Switch/HUB相连接的。这些服务器提供相同的网络服务、相同的内 容,即不管请求被发送到哪一台服务器,执行结果是一样的。服务的内容可以复制到每台服务器的本地硬盘上,可以通过网络文件系统(如NFS)共享,也可以通 过一个分布式文件系统来提供。

LVS-TUN LVS-NAT两种负载均衡_第1张图片

 

VS/NAT的配置如下表所示,所有到IP地址为202.103.106.5和端口为80的流量都被负载均衡地调度的真实服务器 172.16.0.2:80和172.16.0.3:8000上。目标地址为202.103.106.5:21的报文被转移到172.16.0.3:21 上。而到其他端口的报文将被拒绝。

 

LVS-TUN LVS-NAT两种负载均衡_第2张图片

下面,举个例子来进一步说明VS/NAT

LVS-TUN LVS-NAT两种负载均衡_第3张图片

因为实验需求 笔者将CIP:server1(虚拟机)设置了两块网卡,分别模拟内外网

两台RS :server2     server3   ip设置为于server1 模拟内网ip的同网段ip

 

[root@server1 ~]# ip link set up eth1    #激活网卡eth1
[root@server1 ~]# ip addr add 192.168.0.1/24 dev eth1    #为网卡设置临时内网ip

LVS-TUN LVS-NAT两种负载均衡_第4张图片

上图可以看到ip设置成功,eth0 的ip 与笔者真机ip处于同一网段,作为外网ip使用

配置yum源仓库,加入HighAvailability和LoadBalancer 否则ipvsadm无法安装

LVS-TUN LVS-NAT两种负载均衡_第5张图片

安装失败

LVS-TUN LVS-NAT两种负载均衡_第6张图片

安装成功

LVS-TUN LVS-NAT两种负载均衡_第7张图片

 

然后打开ip转换功能

[root@server1 ~]# vim /etc/sysctl.conf

将参数修改为1

LVS-TUN LVS-NAT两种负载均衡_第8张图片LVS-TUN LVS-NAT两种负载均衡_第9张图片

sysctl -p   刷新修改内容

添加ipvsadm策略

[root@server1 ~]# ipvsadm -A -t 172.25.254.1:80 -s rr   #rr表示轮询
[root@server1 ~]# ipvsadm -a -t 172.25.254.1:80 -r 192.168.0.2:80 -m      #设置nat模式
[root@server1 ~]# ipvsadm -a -t 172.25.254.1:80 -r 192.168.0.3:80 -m     #添加rip
[root@server1 ~]# ipvsadm -ln   #查看策略

 

 

LVS-TUN LVS-NAT两种负载均衡_第10张图片

为server2和server3配置临时网关,安装http服务,在http默认发布目录编写发布页

LVS-TUN LVS-NAT两种负载均衡_第11张图片

yum install httpd -y

vim /var/www/html/index.html

 

server3默认发布页写为:

 

到此设置完毕,接下来可以进行测试

(记得真机ip不可与RS在同一网段)

LVS-TUN LVS-NAT两种负载均衡_第12张图片

实验完成,成功达成NAT负载均衡。

 

LVS-TUN负载均衡模式

在VS/NAT的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新 瓶颈。大多数Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即在负载调度器中只负责调度 请求而响应直接返回给客户,将极大地提高整个集群系统的吞吐量。

LVS-TUN LVS-NAT两种负载均衡_第13张图片

 

VS/TUN的工作流程如图所示:它的连接调度和管理与VS/NAT中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态地 选择一台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为VIP 的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。

LVS-TUN LVS-NAT两种负载均衡_第14张图片

接下来开始LVS—TUN的负载均衡实验

VS为server1  IP为172.25.254.1

VIP为172.25.254.100

RS为server2 server3 IP分别为172.25.254.2     172.25.254.3

 

server1:

modprobe ipip 加载隧道模块,ip addr可以看到tunl0网卡

LVS-TUN LVS-NAT两种负载均衡_第15张图片

[root@server1 ~]# ip link set up tunl0        #启用网卡
[root@server1 ~]# ip addr add 172.25.254.100/24 dev tunl0        #添加虚拟ip

LVS-TUN LVS-NAT两种负载均衡_第16张图片

配置yum源仓库,加入HighAvailability和LoadBalancer 否则ipvsadm无法安装(这部上面做过了,不再赘述)

[root@server1 ~]# ipvsadm -C            #清空策略
[root@server1 ~]# ipvsadm -A -t 172.25.254.100:80 -s rr      #指定轮询
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -i     #设定为TUN模式
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -i
[root@server1 ~]# ipvsadm -ln      #查看策略

LVS-TUN LVS-NAT两种负载均衡_第17张图片

 

server2:

yum -y install heartbeat-ldirectord heartbeat-pils heartbeat-stonith heartbeat ipvsadm arptables_jf

[root@server2 ~]# arptables -F      #清空策略
[root@server2 ~]# arptables -A IN -d 172.25.254.100 -j DROP                #不缓存vip的mac地址
[root@server2 ~]# arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.2
[root@server2 ~]# /etc/init.d/arptables_jf save     #刷新策略
Saving current rules to /etc/sysconfig/arptables:          [  OK  ]
[root@server2 ~]# arptables -L      #查看策略

LVS-TUN LVS-NAT两种负载均衡_第18张图片

 

与之前步骤相同,不再赘述

LVS-TUN LVS-NAT两种负载均衡_第19张图片

 

yum install httpd -y

vim /var/www/html/index.html

[root@server2 ~]# cat /var/www/html/index.html
www.westos.org-server2

[root@server2 ~]# /etc/init.d/httpd restart         #刷新服务

LVS-TUN LVS-NAT两种负载均衡_第20张图片

将过滤出来=1的服务全部变更为0   变更命令为sysctl -w 将等于号前后空格去掉,改为=0即可

 

server3:

设置与server2一致,不再赘述

只需记得将

 arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.2   改为

 arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.3   即可

 

到此LVS—TUN配置完成。可以开始测试

LVS-TUN LVS-NAT两种负载均衡_第21张图片

 

轮询成功

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(LVS-TUN LVS-NAT两种负载均衡)