Lvs负载均衡tun模式 fangfu的技术博客

的— layout: post title: “LVS负载均衡TUN模式” date: 2020-04-07 12:04:59 categories: LVS tags: LVS excerpt: mathjax: true —

LVS常用的三种模式:NAT、DR、TUN

NAT模式: RealServer将自己的网关指向Director 可以运行任何支持TCP/IP的操作系统。但是扩展性有限,容易产生瓶颈。

LVS的DR模式的原理

LVS的TUN模式的原理

ipvsadm命令选项

-A        添加一个虚拟服务,使用ip地址、端口号、协议来唯一定义一个虚拟服务
-E        编辑一个虚拟服务
-D        删除一个虚拟服务
-C        清空虚拟服务列表
-R        从标准输入中还原虚拟服务列表
-S        保存虚拟服务规则至标准输出,输出规则可使用-R选项还原
-L        显示虚拟服务列表
-Z        虚拟服务器列表计数器清零(清空当前连接数)
-a        添加一台真实服务器
-e        编辑一台真实服务器
-d        减少一台真实服务器
-t        使用TCP服务,该参数后需加主机与端口信息
-u        使用UDP服务,该参数后需加主机与端口信息
-s        指定lvs的调度算法
-r        设置真实服务器IP与端口
-g        设置lvs工作模式为DR直连路由
-i        设置lvs工作模式为TUN隧道
-m        设置lvs工作模式为NAT地址转换模式
-w        指定真实服务器权重
-c        连接状态,配和-L使用
-n        数字格式显示
--stats   显示统计信息
--rate    显示速率信息
--sort    对虚拟服务器和真实服务器排序输出
--set tcp tcpfin udp
          设置ipvs连接超时值,三个参数分别代表tcp会话超时时间、收到FIN包后tcp会话超时时间、udp超时时间
--timeout
          显示tcp tcpfin udp的timeout值
--start-daemon
          启动同步守护进程
--stop-daemon
          停止同步守护进程

TUN环境部署: 三个节点服务器,主服务器Director Server配置脚本: yum install -y net-tools yum install -y ipvsadm

TUN环境部署: 三个节点服务器, 主服务器Director Server配置脚本:

vi tun_ds.sh

#! /bin/bash

modprobe ipip
ip addr add 10.0.2.70/24 dev tunl0
ipvsadm -A -t 10.0.2.70:80 -s rr
ipvsadm -a -t 10.0.2.70:80 -r 10.0.2.62:80 -i
ipvsadm -a -t 10.0.2.70:80 -r 10.0.2.63:80 -i
ipvsadm -ln

bash tun_ds.sh

真实服务器Real Server

配置脚本: vi tun_rs.sh

#! /bin/bash
modprobe ipip
ip addr add 10.0.2.70/32 dev tunl0
ip link set up tunl0
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.lo.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
sysctl -w net.ipv4.conf.enp0s8.rp_filter=0
sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.enp0s9.rp_filter=0
sysctl -w net.ipv4.conf.enp0s3.rp_filter=0
sysctl -p

bash tun_rs.sh

nginx站点目录中生成压缩包100m,做下载测试 dd if=/dev/zero of=100mb.zip bs=1024k count=100


TUN点对点IP通道

   modprobe ipip
   iptunnel add idc3 mode ipip remote 10.0.2.10 local 172.10.0.99  # 注意这两个IP是服务器的公网IP,我这里随便输的
   ifconfig idc3 192.168.2.89 netmask 255.255.255.0 #这里是内网IP
FFwechat FFalipay