LVS模式二:TUN隧道模式

本文详细介绍了LVS TUN模式的配置过程,包括在server1上进行策略清除、VIP添加、后端服务器添加及策略保存,在server2上进行隧道添加、VIP添加、隧道激活及rp_filter参数修改,确保数据包源地址校验正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

隧道模式

client ->vs ->Rs -> client

  •     IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。
  •     IP隧道技术亦称为IP封装技术(IP encapsulation)。
  •     IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个  IP地址,另一端也有唯一的IP地址
     

TUN 模式LVS的配置:

  • server1
  • 添加隧道
  • 隧道添加对外暴露的VIP
  • 隧道激活

在server上清除之前的策略重新添加新的策略

[root@server1 ~]# ipvsadm -C   ##清除策略
[root@server1 ~]# ipvsadm -A -t 172.25.254.100:80 -s rr    #添加vip,对后端服务器采用rr算法
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -i    #添加后端真实服务器server2
[root@server1 ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -i    #添加后端真实服务器server3

[root@server1 ~]# /etc/init.d/ipvsadm save    ##保存策略
  • server2:
  • 添加隧道
  • 隧道添加对外暴露的VIP
  • 隧道激活
[root@server2 html]# modprobe ipip
[root@server2 html]# ip addr del 172.25.254.100/32 dev eth0
[root@server2 html]# ip addr add 172.25.254.100/32 dev tunl0
[root@server2 html]# ip link set up tunl0

在server2上修改rp_filter参数

[root@server2 html]# sysctl -a |grep rp_filter   ##关闭反向
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.tunl0.rp_filter = 1
net.ipv4.conf.tunl0.arp_filter = 0

##将参数为1的都改为0
[root@server2 html]# sysctl -w net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.rp_filter = 0
[root@server2 html]# sysctl -w net.ipv4.conf.lo.rp_filter=0
net.ipv4.conf.lo.rp_filter = 0
[root@server2 html]# sysctl -w net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.eth0.rp_filter = 0
[root@server2 html]# sysctl -w net.ipv4.conf.tunl0.rp_filter=0
net.ipv4.conf.tunl0.rp_filter = 0

[root@server2 html]# sysctl -a |grep rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.tunl0.rp_filter = 0
net.ipv4.conf.tunl0.arp_filter = 0

注意:重新加载后,有一个参数始终不为0,需要在文件中修改

[root@server2 html]# sysctl -p   ##重新加载后
[root@server2 html]# sysctl -a |grep rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 1   ##始终不为0,则这个需要在文件中改
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.tunl0.rp_filter = 0
net.ipv4.conf.tunl0.arp_filter = 0

##在文件中修改
[root@server2 html]# vim /etc/sysctl.conf 
# Controls source route verification
net.ipv4.conf.default.rp_filter = 0

[root@server2 html]# sysctl -p

[root@server2 html]# sysctl -a |grep rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 0  ##修改成功了
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.tunl0.rp_filter = 0
net.ipv4.conf.tunl0.arp_filter = 0

修改参数的作用:

rp_filter参数用于控制系统是否开启对数据包源地址的校验。

有三个值,0、1、2,具体含义:

    0:不开启源地址校验。

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

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

  • server3

  • server3和server2上是一样的操作步骤

测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值