博客
关于我
负载均衡LVS集群之TUN模式搭建
阅读量:501 次
发布时间:2019-03-06

本文共 1943 字,大约阅读时间需要 6 分钟。

LVS/TUN模式配置与轮询机制实践指南

一、LVS/TUN模式原理

在本节中,我们将探讨Linux Virtual Server(LVS)结合TUN模式的工作原理。LVS结合TUN模式是一种高效的网络负载均衡解决方案,其核心思想是在传统VS/NAT模式的基础上,通过IP隧道技术实现对客户端请求包头的双层包头处理,从而将请求转发至后端真实服务器(RS server)。

其工作原理主要包括以下几个步骤:

  • 客户端请求处理:客户端发送请求时,将IP包头中的源地址替换为虚拟IP地址(VIP),目标地址保留不变。
  • 隧道包头处理:LVS将请求包头中的源地址转换为TUN接口上的目标地址,形成双层包头。
  • 路由转发:通过TUN接口将转发给后端真实服务器,后者需支持IPTunneling协议。
  • 二、TUN模式优缺点分析

    TUN模式作为LVS的一种调度策略,具有以下特点:

  • 优点

    • 不需要调度应答报文,网络负载能力显著增强。
    • 服务器与调度器可以分布在不同VLAN中,网络架构灵活。
    • 支持广域负载均衡,适合大规模后端服务器集群。
  • 缺点

    • 所有真实服务器需支持IPTunneling协议,并安装相应内核模块,增加部署复杂性。
    • 建立隧道的开销较大,可能导致网络延迟增加。
    • 后端服务器需与外网保持联系,存在一定的安全风险。
    • 不支持端口映射,需依赖TUN协议的双向通信能力。
  • 三、实验环境说明

    本次实验环境包括:

    • 虚拟服务器(VS):server1,IP地址为172.25.66.1
    • 后端真实服务器(RS)
      • server2,IP地址为172.25.66.2
      • server3,IP地址为172.25.66.3

    四、轮询机制配置

    1. Virtual Server(VS)配置

    配置步骤

  • 加载TUN模块:首先使用以下命令加载IPIP模块:

    modprobe ipip

    查看接口状态:

    ip addr

    可能会看到隧道接口tunl0的信息。

  • 将VIP绑定至TUN接口

    • 首先从原有的网卡(如eth1)上删除VIP:
    ip addr del 172.25.66.100/24 dev eth1
    • 将VIP添加至TUN接口:
    ip addr add 172.25.66.100/24 dev tunl0
  • 添加负载均衡策略:使用ipvsadm命令进行配置:

    ipvsadm -A -t 172.25.66.100:80 -s rr

    -Adding real servers:

    ipvsadm -a -t 172.25.66.100:80 -r 172.25.66.2:80 -i
    ipvsadm -a -t 172.25.66.100:80 -r 172.25.66.3:80 -i

    查看配置结果:

    ipvsadm -ln
  • 2. 真实服务器(RS)配置

    在server2和server3上执行以下操作

  • 安装Apache并创建网页内容

    rpm -q httpd httpd-2.2.15-29.el6_4.x86_64

    创建默认网页:

    echo "

    www.westos.org ---- server$HOST

    " > /var/www/html/index.html
  • 加载IPIP模块

    modprobe ipip

    查看接口状态:

    ip addr show
  • 将VIP收回TUN接口

    • 删除VLAN eth1上的VIP:
    ip addr del 172.25.66.100/32 dev eth1
    • 将VIP添加至TUN接口:
    ip addr add 172.25.66.100/32 dev tunl0
    • 激活TUN接口:
    ip link set up tunl0
  • 关闭反向过滤规则:由于TUN模式会开启反向过滤规则,需要在所有接口上关闭:

    sysctl -w net.ipv4.conf.*.rp_filter=0sysctl -p

    查看结果:

    sysctl -a | grep rp_filter

    打开.回车,系统会提示是否需要保存修改,输入Y后刷新配置:

    sysctl -p
  • 测试验证

    经过以上配置后,通过curl命令测试VIP地址:

    curl 172.25.66.100

    观察结果,应发现请求会交替 toString.string 的结果,例如:

    • 第1次访问:http://www.westos.org ---- server3
    • 第2次访问:http://www.westos.org ---- server2
    • 第3次访问:http://www.westos.org ---- server3
    • 以此类推...

    通过这种配置,LVS + TUN模式成功实现了对多个后端服务器的轮询调度,确保了负载均衡和高可用性。

    转载地址:http://gvldz.baihongyu.com/

    你可能感兴趣的文章
    MySQL5.6忘记root密码(win平台)
    查看>>
    MySQL5.6的Linux安装shell脚本之二进制安装(一)
    查看>>
    MySQL5.6的zip包安装教程
    查看>>
    mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
    查看>>
    Webpack 基本环境搭建
    查看>>
    mysql5.7 安装版 表不能输入汉字解决方案
    查看>>
    MySQL5.7.18主从复制搭建(一主一从)
    查看>>
    MySQL5.7.19-win64安装启动
    查看>>
    mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
    查看>>
    MySQL5.7.37windows解压版的安装使用
    查看>>
    mysql5.7免费下载地址
    查看>>
    mysql5.7命令总结
    查看>>
    mysql5.7安装
    查看>>
    mysql5.7性能调优my.ini
    查看>>
    MySQL5.7新增Performance Schema表
    查看>>
    Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
    查看>>
    Webpack 之 basic chunk graph
    查看>>
    Mysql5.7版本单机版my.cnf配置文件
    查看>>
    mysql5.7的安装和Navicat的安装
    查看>>
    mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
    查看>>