Linux企业级负载均衡集群LVS TUN隧道模式和NAT模式

一、TUN隧道模式

1、TUN隧道模式的工作原理

TUN模式,又称隧道模式,隧道模式就是修改请求报文的首部IP,再加一层IP报头, 优点:DS和RS不需要在同一网段,可实现不同网络之间的访问。

  • IP隧道技术又称为IP封装技术,它可以 将带有源和目标IP地址的数据报文使用新的源和目标IP进行二次封装,这样这个报文就可以发送到一个指定的目标主机上。

  • 客户端发送到LVS调度器(DS)的数据包源地址: CIP(客户端IP) 目标地址: VIP(DS服务器)

  • 加了数据包报头之后源地址: DIP(VIP)(DS服务器) 目标地址: RIP(RS真正的服务器)

  • 数据流向: Client --> DS(调度器) -->prerouting --> INPUT -->postrouting -->RS(真正的服务器)–>lo 回环接口–> 网卡eth0 -->Client

2、TUN模式的特点

  • 隧道模式下,调度器和后端服务器组之间使用IP隧道技术,当客户端发送的请求(CIP–>VIP)被director接收后,=director修改该报文,加上IP隧道两端的IP地址作为新的源和目标地址==,并将请求转发给后端被选中的一个目标。当后端服务器接收到报文后,首先解封该报文原有的CIP—>VIP,该后端服务器发现自身的tun接口上配置了VIP,因此接受该数据包。当请求处理完成后,结果将不会重新交给director,而是直接返回给客户端。此时响应数据包的源IP为VIP,目标IP为CIP。 Real Server的RIP和Director的DIP不用处于同一物理网络中,且RIP必须可以和公网通信。也就是说集群节点可以跨互联网实现 。Real Server的tun接口上需要配置VIP地址,以便接收director转发过来的数据包,以及作为响应的报文源IP,Director转发给Real Server时需要借助隧道,隧道外层的IP头部的源IP时DIP,目标IP是RIP,而Real Server响应给客户端的IP头部是根据隧道内层的IP头分析得到的,源IP是VIP,目标IP是CIP,Director只处理入站请求,响应请求由realserver自己完成。
  • 一般来说,TUN模式会用来负载调度缓存服务器组,这些缓存服务器一般放置在不同的网络环境,可以就近折返给客户端;在请求对象不在Cache服务器本地命中的情况下,Cache服务器要向源服务器发送请求,将结果取回,最后将结果返回给用户。

3、实现lvs调度器的TUN模式

在DR模式实验的基础上做
1、在LVS调度器(server1)上,ipvsadm -C 清除之前的规则
2、modprobe ipip 添加隧道使用的模块

  • modprobe -r ipip 删除隧道模块

在这里插入图片描述
3、删除原来网卡上的VIP: ip addr del 172.25.7.100/24 dev eth0
添加VIP到tunl0上: ip addr add 172.25.7.100/24 dev tunl0

在这里插入图片描述
4、激活tunl0: ip link set up tunl0
5、添加策略:

ipvsadm -A -t 172.25.7.100:80 -s rr
ipvsadm -a -t 172.25.7.100:80 -r 172.25.7.2:80 -i
ipvsadm -a -t 172.25.7.100:80 -r 172.25.7.3:80 -i	 

  
  
  • 1
  • 2
  • 3

在这里插入图片描述

6、在server2和server3(RS)上,

1)modprobe ipip					        ##添加tunl模块
2)ip addr del 172.25.7.100/32 dev eth0	
3)ip addr add 172.25.7.100/32 dev tunl0	 ##添加vip到tunl上
4)ip link set up tunl0				    ##激活tunl0
5)sysctl -a | grep rp_filter	##查看反向过滤规则
	sysctl -w net.ipv4.conf.default.rp_filter = 0
	sysctl -w net.ipv4.conf.default.rp_filter=0
	sysctl -w net.ipv4.conf.lo.rp_filter=0
	sysctl -w net.ipv4.conf.eth0.rp_filter=0
	sysctl -w net.ipv4.conf.tunl0.rp_filter=0	
	##关闭反向过滤(如果开启,会对流入的数据包的反向路径进行校验,如果不符合要求,就丢弃,设置为0则不进行校验)
6)sysctl -p  #使生效

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 因为系统会对流入的数据包进行 反向路径校验,入包的数据是100,如果出包的数据不是100,这个数据就会被 丢弃,所以我们要消除反向过滤的影响,将=1的项都设置为0。
  • 关闭反向过滤规则的原因: 为了防止web服务器不认识发来的拆包后的源ip把数据包给丢掉,导致web服务器丢包,客户端访问不到数据。 因为 隧道模式实现的是不同网段的主机进行通信,如果信息要从服务端返回到客户端时,由于客户端和服务端不在同一个网段,数据根本出不去,所以我们需要关闭反向参数检验。
  • 0:不开启源地址校验
  • 1:开启严格的反向路径校验
  • 对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包

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

在这里插入图片描述

7、在客户端测试:
在这里插入图片描述

二、LVS下的NAT模式(网络地址转换模式)

1、NAT模式的原理

NAT(Network Address Translation,网络地址转换)当在内网的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网(外网)上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。这种通过 使用少量的公有IP 地址代表较多的私有IP地址 的方式,将有助于减缓可用的IP地址空间的枯竭。

  • 借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
  • NAT 自动修改IP报文的源IP地址和目的IP地址 ,在NAT处理过程中 自动完成IP地址校验

2、NAT模式的特点

  • RIP和DIP一般处于同一私有网段中。但并非必须,只要RIP和DIP能通信即可
  • 各Realserver的网关指向DIP 这样才能保证响应交给Director。
  • NAT模式的最大缺点:Director负责所有进出数据:不仅处理客户端发起的请求,还负责将响应传输给客户端。而响应数据一般比请求数据大的多,调度器Director容易出现瓶颈。 但是这种模式配置起来简单
在构建高性能LVS NAT服务器集群时,共分为三层结构,分别为分发层,realserver和存储池三种。

  
  
  • 1

首先对于分发层的应用需要两块网卡,其中一块网卡地址为公网ip,起名为VIP;另一块网卡地址为DIP,起到分发的作用。即调度器必须双网卡,一个IP对外,一个IP对内,连接web服务器,web服务器的网关必须指向调度器的对内IP
首先,输入 virt-manager #打开虚拟机管理平台
在这里插入图片描述
点击添加硬件,给调度器server1再添加一块虚拟网卡

在这里插入图片描述
配置server1调度器的网络
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启网络
在这里插入图片描述
配置server2的网络
在这里插入图片描述
在这里插入图片描述

重启网络
在这里插入图片描述
配置server3的网络
在这里插入图片描述
重启网络
在这里插入图片描述
ifconfig #查看server1调度器的网卡和ip

在这里插入图片描述
web1服务器的网关:
route -n
在这里插入图片描述
web2服务器的网关:
route -n
在这里插入图片描述

NAT模式下的ip转发
我们需要配置NAT模式下的ip转发,让通过Load Balancer的ip包能够转发到真正提供服务的Real Server之上进行处理:

  
  
  • 1
  • 2

内联代码片
开启调度器的地址转发功能
vim /etc/sysctl.conf
在这里插入图片描述
net.ipv4.ipforward = 1
在这里插入图片描述
sysctl -p #使其生效
在这里插入图片描述

使用ipvsadm命令添加一个集群服务,然后将后端提供http服务的两台RealServer加入到新添加的集群服务中
将后端两台RealServer172.25.60.2172.25.60.3添加到集群服务172.25.254.1中,由于使用的是LVS-NAT模式,所以需要指定-m选项,-m代表NAT模式。
将后端两台RealServer映射给了lvs-server的外网IP,访问lvs-server外网IP80端口时,lvs-server会将请求调度给后端两台RealServer。

  
  
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
ipvsadm -ln #查看集群的策略信息
在这里插入图片描述

测试:
用真机curl lvs-server的外网地址即可实现轮询效果。

curl 172.25.254.1 #外网ip
在这里插入图片描述

发布了107 篇原创文章 · 获赞 0 · 访问量 1440

猜你喜欢

转载自blog.csdn.net/weixin_45029822/article/details/104452470