LVS--基础--04--实践--TUNNEL模式

LVS–基础–04–实践–TUNNEL模式


1、原理

1.1、数据处理

在IP隧道模式中,代理主机将数据包经过自己打包之后,将IP转化成公网可传递的IP,并将消息经过自己又一次的打包,发送给真实服务器,真实服务器对这个请求作出响应,这样就达到一个可以跨地区的传输。并且也避免了DR模式中代理机与真实服务机必须在同一局域网的不便。

1.2、说明

  1. 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。此时报文的源IP为CIP,目标IP为VIP 。
  2. PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
  3. IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后发至POSTROUTING链。此时源IP为DIP,目标IP为RIP
  4. POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。此时源IP为DIP,目标IP为RIP
  5. RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的tunl0接口VIP,那么此时RS开始处理此请求,处理完成之后,通过tunl0接口送给eth0网卡,然后向外传递。此时的源IP地址为VIP,目标IP为CIP

2、LVS TUNNEL特性

  1. RIP、VIP、DIP全是公网地址
  2. RS的网关不会也不可能指向DIP
  3. 所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
  4. 不支持端口映射
  5. RS的系统必须支持隧道

3、机器

机器IP说明
lvs主机192.168.187.181lvs主机
RealServer1192.168.187.182后端真实服务器
RealServer2192.168.187.183后端真实服务器

3.1、安装软件

3.1.1、lvs主机

# ipvsadm 安装
yum install -y ipvsadm

3.1.2、RealServer

# 安装
yum install httpd -y

# 编写测试文件 
# echo "from RealServer 192.168.187.182"  > /var/www/html/index.html
echo "from RealServer 192.168.187.183"  > /var/www/html/index.html

# 启动httpd
systemctl start httpd

在这里插入图片描述

4、LVS主机操作

4.1、如果之前有的话,就清空ipvs配置

ipvsadm -C

4.2、配置tunnel信息

# 添加隧道模式
modprobe ipip 
# 隧道模式添加网卡
ip addr add  192.168.187.200/24 dev tunl0  
# 开启隧道模式
ip link set up tunl0     
# 查看
ip addr show


4.3、配置ipvs

# 添加虚拟服务器192.168.187.200:80,使用TCP协议,使用rr轮询算法
ipvsadm -A -t 192.168.187.200:80 -s rr   
# 添加后端服务器 192.168.187.182,使用TCP协议,VIP是192.168.187.200:80,-i是TUNNEL模式
ipvsadm -a -t 192.168.187.200:80 -r 192.168.187.182:80 -i 
ipvsadm -a -t 192.168.187.200:80 -r 192.168.187.183:80 -i
# 查看ipvs配置信息
ipvsadm -ln 
# 保存规则
/usr/sbin/ipvsadm-save


在这里插入图片描述

5、RealServer服务器配置

5.1、添加隧道模式的DIP


# 添加隧道模式
modprobe ipip 

# 添加隧道模式的DIP
ip addr add  192.168.187.200/32 dev tunl0   

#开启隧道模式
ip link set up tunl0 


5.2、调整系统参数

vim /etc/sysctl.conf

内容


net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.ens32.rp_filter=0
net.ipv4.conf.tunl0.rp_filter=0
 

5.3、生效配置

sysctl -p

6、验证

6.1、验证轮询

在机器192.168.187.171上测试(与realserver的IP处于同一网段)

curl 192.168.187.200:80
curl 192.168.187.200:80
curl 192.168.187.200:80
curl 192.168.187.200:80
curl 192.168.187.200:80
curl 192.168.187.200:80

在这里插入图片描述

原因

192.168.187.171 请求192.168.187.200,但是mac确是182的

在这里插入图片描述
在这里插入图片描述

6.2、改造

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值