linux 搭建负载均衡集群——LVS的TUN模式的搭建部署

本文介绍TUN模式下的IPVS负载均衡原理及在Red Hat Enterprise Linux 6.5上的部署过程。通过配置调度器与后端服务器,实现客户端请求的高效分发。文章详细记录了从模块加载到策略保存的每一步操作。

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

一.TUN模式简介

  •  TUN是IP Tunneling ,IP隧道的简称,它将调度器收到的IP数据包封装在一个新的IP数据包中,转交给应用服务器,然后实际服务器的返回数据会直接返回给用户。
  •  IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址
     

二.实验环境(rhel6.5版本)

1. 各主机信息

主机名IP
server1(调度器)172.25.8.1
server2(后端服务器)172.25.8.2
server3(后端服务器)172.25.8.3

2. server2与server3安装apache,在默认发布目录/var/www/html下编写发布文件,并开启httpd服务

三.TUN隧道模式的搭建部署

实验前提调度器(server1)以配置好ipvsadm:配置步骤请查看博文:

https://blog.youkuaiyun.com/weixin_43369306/article/details/96474533

配置调度器server1:

  1. 删除之前DR模式添加的策略

     2. 添加隧道

添加模块(删除模块:modprobe -r ipip)

     3. 给隧道添加Virtual IP

ip addr del 172.25.83.100/24 dev eth0 #删除DR模式下绑定的Virtual IP

给隧道添加Virtual IP

     4. 激活隧道

5. 添加新的策略

-i 指定隧道模式

6. 保存策略

配置后端服务器server2:

1. 添加隧道

先删除先前的虚拟ip,再添加

2. 给隧道添加Virtual IP

3. 激活隧道

4. 修改rp_filter 参数

Linux内核参数 rp_filter:

https://www.cnblogs.com/lipengxiang2009/p/7446388.html

https://www.jianshu.com/p/16d5c130670b

需要关掉反向路径检测(反向路径检测:当以100访问进来的包要符合内核的某种规则,出去的应该还是100,如果不关掉的话,出去的路径是4.2,客户端不会接受)

重新加载

查看后发现仍有一个参数的值是1,此时必须要从文件中修改

编辑文件,将参数该为0

再重新加载

再次查看,发现参数已全部该为0

为什么要修改rp_filter参数?

  • rp_filter参数用于控制系统是否开启对数据包源地址的校验。有三个值,0、1、2,具体含义:
  • 0:不开启源地址校验。
  • 1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。
  • 2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。


配置后端服务器server3:与server2一样的配置步骤
 

客户端(真机)测试:

 

### 关于LVSLinux Virtual Server)仿真配置教程 #### 什么是LVSLVSLinux Virtual Server),即Linux虚拟服务器,是一种用于构建高可用性和高性能服务系统的解决方案。它通过在网络层实现负载均衡技术,在UNIX/Linux平台上提供高效的集群管理能力[^1]。 #### LVS的主要功能 LVS可以用来分发网络请求到多个实际工作的节点上,从而提高整个系统的吞吐量和服务质量。它可以应用于Web服务、数据库查询等多种场景中,并支持多种负载均衡策略以及不同的转发模式[^2]。 #### 工作原理概述 LVS的工作流程通常如下所示: - 用户发起请求至前端的LVS负载均衡服务器; - 负载均衡器依据设定好的规则将流量分配给后端真实的服务实例(如Apache HTTP服务器或其他应用服务器); - 后续可能还会涉及数据持久化组件(例如MySQL数据库或者缓存系统Memcached等)。值得注意的是,这些后台资源同样可以通过另一级LVS来进行进一步优化处理[^4]。 #### 配置SNAT规则 (可选项) 当内部网络中的设备需要访问外部Internet时,则需设置源地址转换(SNAT),这可通过`iptables`工具完成相应规则定义来达成目标[^3]: ```bash iptables -t nat -A POSTROUTING -s 内部子网IP范围 ! -d 外部接口所在网段 -j MASQUERADE ``` #### 实现方式——三种主要模型介绍 以下是几种常见的部署架构及其特点说明: ##### VS/NAT (基于网络地址翻译的方式) 在这种方法里, 客户端看到的目标ip实际上是lvs所在的机器上的vip(virtual ip),而realserver并不知道客户端的存在. 优点在于简单易行;缺点则是性能受限于单台nat路由器的能力. ##### VS/TUN (利用IP隧道封装的方法) 此方案把来自客户的包重新打包成一个新的带有目的地址为rs(RealServer)私有ip的数据报发送出去. RealServers必须开启ip_forward参数并正确路由返回路径. 相比前者减少了额外开销, 提升了一定程度下的效率. ##### VS/DR (借助直接路由的技术手段) 该种形式下client到达director之后不再经过任何修改便直接传送给相应的real server, 只不过此时两者间存在一个共同使用的物理链路连接而已. 这种方式具有最低延迟和最高带宽利用率的优势. #### 示例代码片段展示如何搭建基本环境 下面给出一段简单的shell脚本作为参考指南帮助理解上述理论部分的实际运用情况: ```bash #!/bin/bash # 设置VIP ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 up # 开启ip_forward echo "1" > /proc/sys/net/ipv4/ip_forward # 清理旧表项 /sbin/iptables -F /sbin/iptables -X /sbin/iptables -Z # 添加新的规则 /sbin/ipvsadm -C /sbin/ipvsadm -A -t 192.168.1.1:80 -s rr # 加入RS列表 for i in `seq 1 3`;do /sbin/ipvsadm -a -t 192.168.1.1:80 -r 172.16.$i.1:80 -g; done ``` 以上仅作为一个基础框架供学习者模仿练习之用,请根据实际情况调整各项数值以满足特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值