LVS之TUNEL(隧道)模式

LVS的原理

请看这篇博客:https://blog.csdn.net/weixin_38044888/article/details/97794685

TUNEL模式详解

TUNEL模式实验

实验环境准备

主机服务
真实主机localhost客户端
server1DS(Director Sever——LVS调度器)
server2RS(Real Server——后端真实提供服务的虚拟机)
server3RS(Real Server——后端真实提供服务的虚拟机)

注意:我们所有的虚拟机server1-3的实验环境都是rhel7.5版本。

配置各服务器环境

server1(DS)

  • 首先,清除之前的ipvsadm策略以及VIP。
ipvsadm -C
ip addr del 172.25.66.100/24 dev eth0
  • 添加隧道模式,将VIP配置到隧道模式网卡上。
modprobe ipip
ip addr add 172.25.66.100/24 dev tunl0
ip link set up tunl0
  • 使用ipvsadm添加隧道模式策略
[root@server1 ~]# ipvsadm -A -t 172.25.66.100:80 -s rr
# 说明:-A 添加策略  -t 指定VIP:端口  -s 指定调度算法 rr轮询
[root@server1 ~]# ipvsadm -a -t 172.25.66.100:80 -r 172.25.66.2:80 -i
[root@server1 ~]# ipvsadm -a -t 172.25.66.100:80 -r 172.25.66.3:80 -i
# 说明: -t 指定VIP:端口 -r 指定rs:端口  -i 指定模式为TUNEL模式
  • 查看并重启服务,看是否生效:
[root@server1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.66.100:80 rr
  -> 172.25.66.2:80               Tunnel  1      0          0         
  -> 172.25.66.3:80               Tunnel  1      0          0         
[root@server1 ~]# systemctl restart ipvsadm.service 
[root@server1 ~]# cat /etc/sysconfig/ipvsadm
-A -t 172.25.66.100:80 -s rr
-a -t 172.25.66.100:80 -r 172.25.66.2:80 -i -w 1
-a -t 172.25.66.100:80 -r 172.25.66.3:80 -i -w 1

server2与server3(Real Server)

  • 删除原有的VIP,添加隧道模式,将VIP配置到隧道模式网卡上。
ip addr del 172.25.66.100/24 dev eth0
modprobe ipip
ip addr add 172.25.66.100/24 dev tunl0
ip link set up tunl0
  • 消除RS上反向过滤规则的影响。

内核sysctl中的rp_filter变量可以控制反向过滤。它验证反向数据包的流向,以避免伪装IP攻击。
rp_filter参数用于系统是否开启对数据包源地址的校验。有三个值,0、1、2,具体含义:

0:不开启源地址校验。

1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。

2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。

所以,我们这里需要将相关的rp_filter参数修改为0,客户端才能接受到数据包。

sysctl -a | grep rp_filter		# 查看参数状态
sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
sysctl -p  # 使之通知内核生效
  • 安装httpd,写入发布页面,实验效果更明显。

真实主机上测试

[root@localhost images]# curl 172.25.66.100
server3
[root@localhost images]# curl 172.25.66.100
server2

发现轮询访问,说明实验成功!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值