企业级负载均衡LVS——TUN隧道模式搭建

上一篇《企业系统架构——LB集群之LVS负载均衡介绍(3种工作模式)》讲解了TUN模式的工作原理及其特点。此篇主要讲解TUN隧道模式的搭建。

一、简单回顾以下TUN模式工作原理

在这里插入图片描述
1)客户请求数据包,目标地址VIP发送到LB上。

2)LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。

3)RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。

4)响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址。

  • 一般来说,TUN模式会用来负载调度缓存服务器组,这些缓存服务器一般放置在不同的网络环境,可以就近折返给客户端;在请求对象不在Cache服务器本地命中的情况下,Cache服务器要向源服务器发送请求,将结果取回,最后将结果返回给用户。

二、搭建TUN隧道模式

1、搭建实验环境==
真机:做客户端client
虚拟机server1(172.25.76.1):做lvs调度器(DS)
虚拟机server2(172.25.76.2) :做后端的web服务器1(RS)
虚拟机server3(172.25.76.3):做后端的web服务器2(RS)
2、实验
在server1上搭建lvs调度器的TUN模式:

步骤一:安装ipvsadm服务

LVS全称为Linux Virtual Server,工作在ISO模型中的第四层,由于其工作在第四层,因此与iptables类似,必须工作在内核空间上。因此lvs与iptables一样,是直接工作在内核中的,叫ipvs,主流的linux发行版默认都已经集成了ipvs,因此用户只需安装一个管理工具ipvsadm即可。

yum install ipvsadm.x86_64 -y

在这里插入图片描述

步骤二:查看调度策略

ipvsadm -l #  做解析,慢
ipvsadm -ln #  不做解析,快

在这里插入图片描述


systemctl status ipvsadm.service #可以看到这个服务的启动脚本
vim /usr/lib/systemd/system/ipvsadm.service #查看开启这个服务的时候都干了一些什么

在这里插入图片描述
步骤四:开启服务

systemctl start ipvsadm.service #开启服务,错误
touch /etc/sysconfig/ipvsadm  #建立编写策略的文件
systemctl start ipvsadm.service #开启服务,正确
systemctl status ipvsadm.service #再次查看服务的状态

在这里插入图片描述
日志内容:
在这里插入图片描述
解决:
在这里插入图片描述步骤六:修改配置文件

vim /etc/sysconfig/ipvsadm-config
修改lvs服务的配置文件:no->yes,重启服务的时候保存策略

在这里插入图片描述步骤七:开启内核ip地址转换功能

由于调度器上的IPVS表会比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后发至RS服务器。此时源IP为DIP,目标IP为RIP。为实现ip地址的转换,需要开启系统的ip转发功能。
如果仅仅是想临时改变某个系统参数的值,可以用两种方法来实现,例如想启用IP路由转发功能:

 1)echo 1 > /proc/sys/net/ipv4/ip_forward

  (2)sysctl -w net.ipv4.ip_forward=1

在这里插入图片描述
以上两种方法都可能立即开启路由功能,但如果系统重启,所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件

 vim /etc/sysctl.conf
	net.ipv4.ip_forward=1

在这里插入图片描述步骤八:配置IPVS表规则

ipvsadm -C  #(清除之前的规则)
ipvsadm -A -t 172.25.76100:80 -s rr
ipvsadm -a -t 172.25.76.100:80 -r 172.25.76.2:80 -i  #(-i 隧道模式)
  		ipvsadm -a -t 172.25.76.100:80 -r 172.25.76.3:80 -i

在这里插入图片描述步骤九:添加tunl0隧道(虚拟网卡)

modprobe ipip #(在加载好ipip模块后就会有默认的tunl0隧道)
ifconfig -a #查看
ip addr add 172.25.76.100/24 dev tunl0
ip link set up tunl0 #激活tunl0隧道

在这里插入图片描述在这里插入图片描述
在虚拟机server2上搭建RS后端服务器:
步骤一:下载arptables服务

yum install arptables -y

在这里插入图片描述
步骤二:查看设置的访问规则

arptables -nL

在这里插入图片描述
步骤三:设置规则

arptables -A INPUT -d 172.25.76.100 -j DROP
arptables -A OUT -s 172.25.76.100 -j mangle --mangle-ip-s 172.25.76.2

在这里插入图片描述
步骤四:设置tunl0隧道

modprobe ipip #(在加载好ipip模块后就会有默认的tunl0隧道)
ifconfig -a #查看
ip addr add 172.25.76.100/24 dev tunl0
ip link set up tunl0

在这里插入图片描述
在这里插入图片描述

步骤五:修改内核反向过滤规则,防止丢包

sysctl -a | grep rp_filter  #查看过滤表将所有的过滤规则都关闭
sysctl -w (规则)=0
sysctl -p #使设置生效
sysctl -a | grep rp_filter再次查看

在这里插入图片描述
步骤五:下载httpd服务

yum install httpd -y

在这里插入图片描述步骤六:编辑默认发布页面文件
在这里插入图片描述在虚拟机server3上搭建RS后端服务器:
步骤一:下载arptables服务

yum install arptables -y

在这里插入图片描述
步骤二:查看设置的访问规则

arptables -nL

在这里插入图片描述
步骤三:设置规则

arptables -A INPUT -d 172.25.76.100 -j DROP
arptables -A OUT -s 172.25.76.100 -j mangle --mangle-ip-s 172.25.76.3

在这里插入图片描述

步骤四:设置tunl0隧道

modprobe ipip #(在加载好ipip模块后就会有默认的tunl0隧道)
ifconfig -a #查看
ip addr add 172.25.76.100/24 dev tunl0
ip link set up tunl0

在这里插入图片描述
在这里插入图片描述
步骤五:修改内核反向过滤规则,防止丢包

sysctl -a | grep rp_filter  #查看过滤表将所有的过滤规则都关闭
sysctl -w (规则)=0
sysctl -p #使设置生效
sysctl -a | grep rp_filter再次查看

在这里插入图片描述
步骤五:下载httpd服务

yum install httpd -y

在这里插入图片描述步骤六:编辑默认发布页面文件
在这里插入图片描述客户端(真机)测试:
在这里插入图片描述

发布了170 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CapejasmineY/article/details/102616508