LVS-TUN模式

一、LVS-TUN模式的工作原理

采用NAT模式时,由于请求和响应的报文必须通过调度器地址重写,当客户请求越来越多时,调度器处理能力将成为瓶颈。为了解决这 个问题,调度器把请求的报文通过IP隧道转发到真实的服务器。真实的服务器将响应处理后的数据直接返回给客户端。这样调度器就只处理请求入站报文,由于一般网络服务应答数据比请求报文大很多,采用VS/TUN模式后,集群系统的最大吞吐量可以提高10倍。

VS/TUN的工作流程图如下所示,它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。而是把客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器。

原理过程:

1)客户请求数据包,目标地址VIP发送到LB上。

2)LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。

3)RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。

4)响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址。(RS节点服务器需要在本地回环接口配置VIP)

二、LVS-TUN模式下的负载均衡

实验环境:

Load Balance:172.25.56.1
Virtual IP: 172.25.56.156
server2(RS): 172.25.56.2
server3(RS): 172.25.56.3

 

1、在server1上:

1.配置网络

modprobe ipip

ip link set up tunl0

ip addr add 172.25.56.156 dev tunl0   添加虚拟IP

ip addr                                                   查看IP

 

2.配置yum仓库

vim /etc/yum.repos.d/rhel-source.repo

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.56.250/rhel6.5/LoadBalancer
gpgcheck=0

 

3.添加规则:

yum install ipvsadm -y

/etc/init.d/ipvsadm start                                                开启服务

ipvsadm -C

ipvsadm -A -t 172.25.56.156:80 -s rr

ipvsadm -a -t 172.25.56.156:80 -r 172.25.56.2:80 -i     给vip添加rip,使用TUN模式

ipvsadm -a -t 172.25.56.156:80 -r 172.25.56.3:80 -i

/etc/init.d/ipvsadm save                                                保存策略

ipvsadm -ln                                                                    查看策略

ipvsadm -lnc                                                                  查看调度IP情况

 

 

2、在server2上:

1.安装apache

yum install httpd -y

vim /var/www/html/index.html
<h1>server2</h1>

/etc/init.d/httpd start

 

2.配置网络

modprobe ipip                                            加载模块

ip link set up tunl0

ip addr add 172.25.56.156/32 dev tunl0    添加虚拟IP

ip addr                                                         查看ip

 

3.安装arptables_jf工具

注:由于设置172.25.56.156/32作为vip,不可以和外部通信,所以设用arptables将其的访问全部DROP,出去的包全部为转为本机的ip

yum install arptables_jf -y

arptables -F                                                     清空策略

arptables -A IN -d 172.25.56.156 -j DROP      拒绝172.25.56.156的访问

arptables -A OUT -s 172.25.56.156 -j mangle --mangle-ip-s 172.25.56.2    

注:由于tcp三次握手原因,因此仍需以vip地址出去才能实现握手,而真正将数据传输给客户端的是realserver,mangle参数即为这个功能

/etc/init.d/arptables_jf save                            保存策略

arptables -L                                                     查看策略

 

4.关闭rp_filter

rp_filter参数的作用:
1. 减少DDoS攻击
校验数据包的反向路径,如果反向路径不合适,则直接丢弃数据包,避免过多的无效连接消耗系统资源。
2. 防止IP Spoofing
校验数据包的反向路径,如果客户端伪造的源IP地址对应的反向路径不在路由表中,或者反向路径不是最佳路径,则直接丢弃数据包,不会向伪造IP的客户端回复响应。

sysctl -a|grep .rp_filter      将过滤出的打开着的.rp_filter全部关闭

sysctl -w net.ipv4.conf.default.rp_filter=0

sysctl -w net.ipv4.conf.tunl0.rp_filter=0

sysctl -w net.ipv4.conf.eth0.rp_filter=0

sysctl -w net.ipv4.conf.lo.rp_filter=0

 

3、在server3中:

1.安装apache

yum install httpd -y

vim /var/www/html/index.html
<h1>server3</h1>

/etc/init.d/httpd start

2.配置网络

modprobe ipip                                            加载模块

ip link set up tunl0

ip addr add 172.25.56.156/32 dev tunl0    添加虚拟IP,tun后面的是字母l不是1

ip addr                                                         查看ip

 

3.安装arptables_jf工具

注:由于设置172.25.56.156/32作为vip,不可以和外部通信,所以设用arptables将其的访问全部DROP,出去的包全部为转为本机的ip

yum install arptables_jf -y

arptables -F

arptables -A IN -d 172.25.56.156 -j DROP

arptables -A OUT -s 172.25.56.156 -j mangle --mangle-ip-s 172.25.56.3  

注:由于tcp三次握手原因,因此仍需以vip地址出去才能实现握手,而真正将数据传输给客户端的是realserver,mangle参数即为这个功能

/etc/init.d/arptables_jf save

arptables -L

 

4.关闭rp_filter

sysctl -a|grep .rp_filter    将过滤出的打开着的.rp_filter全部关闭

sysctl -w net.ipv4.conf.default.rp_filter = 0

sysctl -w net.ipv4.conf.tunl0.rp_filter = 0

sysctl -wnet.ipv4.conf.eth0.rp_filter = 0

 

4、测试:

在物理机中执行 for i in {1..10};do curl 172.25.56.156;done ,出现轮询ze配置生效

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值