LVS DR模型尝试搭建笔记

前言

看下面的内容,必须要理解一些基础知识:
例如:OSI七层模型,三次握手,四次挥手,下一跳,目标地址,原地址,MAC地址,网关等等网络的基础知识,不懂的,自行百度一下,这里就不多说了;

可能也是因为无聊,也可能是写文档写累了,那就搞搞网络,搭建一个负载均衡的服务器放松一下子;

介绍

因为设备简陋,只有一台win的笔记本电脑,所以就下载了一个VMware,安装了三个虚拟Linux服务器,操作系统就不说了,因为已经被红帽公司给嘎了。说到这里,就要必须要简单说一下每个服务器定义的IP和服务器的名称,方面后面往下说;

1 笔记本电脑:

1.1 物理网卡IP(192.168.0.108)
1.2 VMware8 虚拟网卡IP(192.168.100.1)

  1. LVS-node服务器:

2.1 ens33: 192.168.100.111
2.2 ens33:1(一个网卡上是可以配置多个IP地址的哦):192.168.100.118

  1. node1服务器:

3.1ens33: 192.168.100.102
2.3 lo:1 192.168.100.118 (特别说明:lo 是那个127.0.0.1 的网卡,只有自己晓得,别的服务器是看不到的)

  1. node2服务器:

4.1ens33: 192.168.100.103
4.2 lo:1 192.168.100.118

先简单的说一下什么是DR模型:
请添加图片描述
当客户端的请求变大了以后,一个服务器已经不能承受如此大的访问了,这个时候其中一个解决方案就是:我们就需要进行多台服务器进行负载均衡。吧唧,我们在所有的服务器前面加了一台负载均衡服务器,啊这,,,难道前面一台应用服务器承受不了,这一台负载均衡服务器就可以了?假如我们让负载均衡服务器不进行三次握手的操作,让客户端直接跟后面的server1进行握手连接呢?假如我们让负载均衡服务器只做一个转发呢?怎么样?是不是会变快了。。。
请添加图片描述
如上图:客户端请求全部打到负载均衡服务器上,然后由负载均衡服务器转发到各个服务器上,然后各个服务器回复返回到负载均衡服务上,最后回到客户端,这有一个什么问题呢?不知道是否有听过一个词,叫“非对称性”。什么意思呢?不知道有没有观察过我们每次的请求,可能我们请求的只是get / HTTP/1.0 \n这么一个短小的请求,返回的结果却超级多的内容,这就导致一个问题,就比如:一个路上自行车可以20辆同时通过,但是汽车只能通过5辆。那么针对这个问题,我们可不可以,让server的响应不经过负载均衡服务器,直接给client怎么样?好像可行呀,但是应该怎么办呢?请添加图片描述
如上图:client 会有一个CIP,他要发送的是负载均衡服务器上的VIP,再由负载均衡服务器发送到server上,那么这是一个怎么样的过程呢?

第一步:原地址是:CIP,目标地址:VIP 的一个数据包,发送到负载均衡服务器上,
第二步:负载均衡服务器将目标地址VIP转化成目标地址RIP,这个转换过程就叫D-NAT,目标地址转换协议;
第三步:负载均衡服务器将转换过的数据包,发送给server服务器;
第四步:server服务器处理完成,组建一个原地址是:RIP,目标地址:CIP的一个数据包给客户端。
。。。嗯哼?这个时候客户端会收吗?这个时候客户端估计懵逼了,怎么回事?我发个VIP一个数据包,怎么RIP给我一个数据包,RIP是谁啊?不会诈骗吧,然后客户端会把数据包给丢了,苦苦等待VIP给他发个数据包。

上面过程失败了,失败的原因是因为响应的原地址不对,那怎么办呢?请添加图片描述
如上图:如果我在应用服务器上也有一个VIP,负载均衡服务不用把目标IP给换了,直接丢过去怎么样?但是,但是。。。不对呀,如果多个服务器都有VIP,那么IP地址不是重复了吗?然后如果目标地址不变,我该怎么把包发给应用服务器上呢?
问题存在,开始解决问题:
第一个问题:IP地址重复,导致别的服务器都不知道该怎么发了?
那么如果负载均衡服务器的VIP向外广播,告诉别的服务器他有这个VIP,然后应用服务器的VIP只有自己知道,不告诉别人,就是向内显示,对外隐藏。这样是不是就可以了?向内显示,对外隐藏,让我们想到了什么?没错,就是127.0.0.1这个。
第二个问题:如果目标地址不变,该怎么把包发送到应用服务器上呢?
那么如果客户端发过来的包不变,在这个基础上在负载均衡的链路层在包装一层,封装一层RIP@MAC地址,是不是就可以了?做点小小的手脚,网络层我不动你,在发出去的一刹那,在链路层封装一层RIP的MAC地址,秀,是你吗?这个是基于2层,有一种讲法就是”MAC地址欺骗“。
注意一点:这里说的负载均衡要和服务器在同一个局域网内!!!因为封装的MAC地址,只能是一跳的距离。

以上的理论知识的最后一个模型就是DR模型,理论到此结束,那么开始搭建:

首先画一个实验手册:
请添加图片描述
第一步:将网络层处理好。
每个主机的IP这里都配置好了,那么就开始配置每个服务器VIP,VIP配置在子接口上,怎么做呢?

先配置LVS-node的VIP:

ifconfig  ens33:1 192.168.100.118/24 #这样就可以创建一个网卡
ifconfig # 就可以看到 ens33:1 验证

在配置node1 和node2 之前,需要先配置一下内核协议,让配置的VIP不往外通知;
首先先进入到:

cd /proc/sys/net/ipv4/conf/ens33

需要修改这么目录下的两个:一个是arp_ignore,另外一个arp_announce;

echo 1 > arp_ignore
echo 2 > arp_announce

为了保证其他接口也生效,那么在上面的目录,上一层,有个all的目录,里面再进行改一遍;
然后再进行配置VIP,这里要注意,需要将子网掩码配置成4个255,是为了规避死循环的风险。

ifconfig lo:1  192.168.100.118 netmask 255.255.255.255

然后安装httpd 这是阿帕奇的静态 web server

yum install httpd -y # 安装
service httpd start # 启动
vi /var/www/html/index.html # 创建一个主页
from 192.168.100.102 #主页内容

打开浏览器输入:

请添加图片描述
如果没有出现,那就看看是不是防火墙,没有开放:80的接口。
然后node2的服务器,一样配置;
这个时候网络层都已经配置完成!!!

这个时候回到LVS-node的服务器上,
开始安装应用层的软件:
yum install ipvsadm

开始配置进来的规则:

ipvsadm -A -t 192.168.100.118:80 -s rr
ipvsadm -ln # 查看

开始配置出去的规则:

ipvsadm -a -t 192.168.100.118:80 -r 192.168.100.102 -g -w 1
ipvsadm -a -t 192.168.100.118:80 -r 192.168.100.103 -g -w 1

这样配置完成以后,就会出现如下的出入的规则,就可以开始负载均衡啰:
请添加图片描述
真的超级简单!!!
配置完成上面的规则以后,现在直接去访问

http://192.168.100.118:80 这样疯狂的刷新,界面就变成了102/103的转变,这就是完成了DR模型的负载均衡的搭建!!!!!!

请添加图片描述

讲在最后的话

学的也不是很深,故可能会有不对的地方,欢迎来纠正。有些地方写的也很简单!!!
欢迎一起来讨论,学习技术!!!

越学越觉得,自己犹如坐井观天的青蛙。
所以要更加努力的跳出这口井,看看这广阔的天空!!!
加油!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值