LVS TUN(隧道)模式详解

1.工作原理:

比起NAT技术,由于请求和响应都需要通过vs(虚拟服务器–也是模型中的调度器lvs)进行地址的改写,那么当客户端的请求越来越多的时候,vs的处理能力就会成为一个瓶颈。为了解决这个问题,vs通过IP隧道,将客户端的请求(源(cip),目的(vip))通过IP隧道(此过程是对请求数据包进行封装,在原来请求数据的基础上添加头部(包括新的源(vip)和目的rip)),发送给真实的服务器,服务器打开封装(封装里边cip,vip不变),处理请求,处理完成后,直接通过网关直接返回响应给客户端,不经过vs。

拓扑结构:
在这里插入图片描述

2.实验环境

redhat 7.5

server1(lvs)172.25.60.1/24
server2(apache)172.25.60.2/24
server3(apache)172.25.60.3/24

注意:调度器要有所有服务器的的解析,server1,server2,server3的vip在tunl0(隧道虚拟网卡)上边

3.配置TUN模式

(1)在所有服务器上都配置隧道(server1/2/3)

lsmod 	//查看是否有ipip模块
modprobe ipip 	//下载隧道模块,生成隧道tunl0
ipaddr addr add 172.25.1.200/24 dev tunl0 	//在隧道上添加vip
ip link set up tunl0 	//激活tunl0

(2)在lvs(server1)上配置规则:

ipvsadm -C 
ipvsadm -A -t 172.25.60.100:80 -s rr 	//rr:轮询
ipvsadm -a -t 172.25.60.100:80 -r 172.25.60.2 -i 	//-i:隧道模式
ipvsadm -a -t 172.25.60.100:80 -r 172.25.60.3 -i

(3)在server2和server3上安装arptables,并配置规则:

server2:
arptables -F
arptables -A INPUT -d 172.25.60.100 -j DROP	//目的地址是172.25.60.100 的DROP掉
arptables -A OUTPUT -s 172.25.60.100 -j mangle --mangle-ip-s 172.25.60.2
server3:
arptables -F
arptables -A INPUT -d 172.25.60.100 -j DROP	
arptables -A OUTPUT -s 172.25.60.100 -j mangle --mangle-ip-s 172.25.60.3

arptables的常用命令:

arptables -nL	//查看规则
arptables -F	//刷新规则(其他命令与iptables相似)
/etc/sysconfig/arptables	//arptables规则配置文件
arptables-save > /etc/sysconfig/arptables	//将规则保存到配置文件
#不保存编写的规则只能临时生效,重启系统后就没有了

(3)在server2和server3上关闭rp_filter

rp_filter参数用于控制系统是否开启对数据包源地址的校验。
简单点说:现在为了使apach上的eth0网卡进来的数据包,可以不从eth0网卡出去,而使用tunl0出去,就不许关掉rp_filter

sysctl -a | grep rp_filter	//查看
sysctl -w net.ipv4.conf.all.rp_filter=0	//更改
......			//把rp_filter=1的全改为0

在这里插入图片描述

(4)测试:

curl 172.25.60.100		//访问

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值