1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 负载均衡集群——lvs的TUN模式(隧道模式)详细介绍

负载均衡集群——lvs的TUN模式(隧道模式)详细介绍

时间:2024-01-30 04:53:01

相关推荐

负载均衡集群——lvs的TUN模式(隧道模式)详细介绍

一、TUN模式(隧道模式)工作原理

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

(2)VS/TUN模式下,调度器和后端服务器组之间使用IP隧道技术。当客户端发送的请求(CIP–>VIP)被director接收后,director修改该报文,加上IP隧道两端的IP地址作为新的源和目标地址,并将请求转发给后端被选中的一个目标;

(3)当后端服务器接收到报文后,首先解封报文得到原有的CIP–>VIP,该后端服务器发现自身的tun接口上配置了VIP,因此接受该数据包。

(4)当请求处理完成后,结果将不会重新交给director,而是直接返回给客户端;在后端服务器返回给客户端数据包时,由于使用的是普通网卡接口,根据一般的路由条目,源IP地址将是该网卡接口上的地址,例如是RIP。因此,要让响应数据包的源IP为VIP,必须添加一条特殊的路由条目,明确指定该路由的源地址是VIP。

Client --> DS(调度器) -->prerouting --> INPUT -->postrouting -->RS(真正的服务器)–>lo 回环接口–> 网卡ens33 -->Client

二、访问服务器的详细流程:

数据包从客户端发往DS服务器,DS服务器会根据调度策略确定要把客户端的请求发给哪台RS,此时会在数据包外面再加一层IP报头;此时源IP从CIP(192.168.1.55)变为了VIP(192.168.1.100);目的IP从VIP(192.168.1.100)变为了RIP(192.168.1.22/33),数据包的请求来源就是DS调度器(192.168.1.100);请求的目的地是RS(192.168.1.22/33),RS在接收到数据包之后,请求包的来源本来是CIP(192.168.1.55);但是加了一层数据包之后变为了VIP(192.168.1.100),而RS服务器上也有(192.168.1.100)这个ip;所以RS会把IP包的报头拆开,拆开发现请求的数据包访问的还是自己的ip(192.168.1.22/33);这时RS就会回复客户端的请求(跟DR模式类似,只不过多加了一层IP报头,封装IP守护)

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

三、TUN模式中的名词解释

DS 调度器,lvs的前端设备RS 真正提供服务的后端服务器RIP 后端服务器的ip地址DIP 调度器和后端服务器通信的ip源IPCIP(客户端的IP)目的IPVIP(设置的统一入口),对外公布的ip,客户请求进来的ip

四、搭建实验环境

实验环境

三台虚拟机+一台真实主机

1台做lvs调度器,两台做后端轮询的web服务器,用真机分别连接三台虚拟机,真机本身是客户端

主机名称 ip 功能server1 192.168.1.11 lvs调度器 DS server2 192.168.1.22 [apache]后端web服务器1 RSserver3 192.168.1.33 [apache]后端web服务器2 RSlocalhost192.168.1.55 客户端(client)

五、搭建lvs调度器的TUN模式

在server1上:

ipvsadm -C 清除DR模式的策略ipvsadm -L 查看策略[root@server1 ~]# ipvsadm -C[root@server1 ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn[root@server1 ~]# modprobe ipip 加入隧道模块 [root@server1 ~]# ip a 查看多了一块网卡[root@server1 ~]# ip addr add 192.168.1.100/24 dev tunl0 添加ip临时添加[root@server1 ~]# ip link set up tunl0 是网卡生效

在隧道模式里面添加策略:ipvsadm -A -t 192.168.1.100:80 -s rr 设置轮询调度ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.22:80 -i 表示隧道模式,轮询web服务器1ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.33:80 -i 表示隧道模式,轮询web服务器2systemctl restart ipvsadm.service重启服务生效cat /etc/sysonfig/ipvsadm查看策略文件

server2/3相同操作

[root@server2 ~]# modprobe ipip 加入隧道模块 [root@server2 ~]# ip a 查看多了一块网卡[root@server2 ~]# ip addr add 192.168.1.100/24 dev tunl0 添加ip临时添加[root@server2 ~]# ip link set up tunl0 是网卡生效

在server2(web2)和server(web3)上面分别修改反向过滤规则,防止丢包

系统会对流入的数据包进行反向路径校验,入包的数据是100,如果出包的数据不是100

这个数据就会被丢弃,所以我们要消除反向过滤的影响,将=1的项都设置为0

关闭反向过滤规则,是为了防止web服务器不认识发来的拆包后的源ip把数据包给丢掉,导致web服务器丢包,客户端访问不到数据

因为隧道模式实现的是不同网段的主机进行通信,如果信息要从服务端返回到客户端时

由于客户端和服务端不在同一个网段,数据根本出不去,所以我们需要关闭反向参数检验

0:不开启源地址校验

1:开启严格的反向路径校验

对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包

server2/3相同设置

sysctl -a | grep rp_filter查看过滤表将所有的过滤规则都关闭sysctl -w 规则=0sysctl -p 必须使设置生效sysctl -a | grep rp_filter再次查看主机测试(清除缓存)

主机测试

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。