博客
关于我
负载均衡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/

    你可能感兴趣的文章
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>
    Mysql8在Windows上离线安装时忘记root密码
    查看>>
    MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
    查看>>
    mysql8的安装与卸载
    查看>>
    MySQL8,体验不一样的安装方式!
    查看>>
    MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
    查看>>
    Mysql: 对换(替换)两条记录的同一个字段值
    查看>>
    mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
    查看>>
    MYSQL:基础——3N范式的表结构设计
    查看>>
    MYSQL:基础——触发器
    查看>>
    Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
    查看>>
    mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
    查看>>
    mysqldump 参数--lock-tables浅析
    查看>>
    mysqldump 导出中文乱码
    查看>>