NET模型是一个比较简单集群模型,其工作方式也比较容易理解。如图

201619993.png

VIP要是一个用户可见的IP,也就是公网IP

DIPRIP要在一个IP网段内,可以是私有IP

用户访问时访问的是director,也就是一个集群服务。但是用户并不能清除的知道自己访问的是一个集群服务,用户看到的只是director通过VIP提供的服务,所以用户在发送请求时其目标IP指向的是VIPVIP在接收到用户请求之后通过指定的算法将请求通过DIP转发给realserverrealserver得到请求报文之后会在最短的时间内处理并将报文回传给DIPDIP再将响应报文转交给VIPVIP将响应报文送还给用户。你不必惊讶,NET集群的工作就是这么简单,不要想得太复杂。

下面以NET模型为例来实现一个简单的web集群

由于资源限制,实例中使用虚拟机来实现。

首先准备好两台虚拟机当做两台web服务器,这里我们只是来说明NET模型的实现的,所有对一些共享存储之类的不做深究。

再准备一台支持ipvs的虚拟机,给其提供两块网卡,用来做director

用户就用我们的主机来实现下面我们做一些规划:

VIP192.168.0.3

DIP172.16.22.210

RIP1172.16.22.111

RIP2172.16.22.112

客户机IP192.168.0.234

我们假设VIP是公网IPDIPRIP都是内网IP,所有我们将DIPRIP的网卡设定为host-only,而VIP要保证能够与客户机通信,这样的话准备工作就已经齐备了。

首先打开两台做web服务器的虚拟机,将其网关指为DIP。别忘了安装上web服务,并提供页面,由于我们是为了测试NET模型,所有将两台web服务提供的页面区别开来。 Realserver1的网页内容为111Realserver2的页面内容为s12。下面来更改一下两台服务器的网关。在命令行模式执行setup命令,选择Network configuration下一步选择Edit Devices接下来选择网卡回车将Default gateway IP一项的IP地址改为DIPIP地址,Realserver2的过程相同。如图

注意:各realserver之间的时间要保持一致,其时间偏差不应该超出1秒钟

Realserver1

201847516.png

Realserver2

201758285.png

更改过后重启网络服务其更改才会生效。做完这些步骤,我们的测试服务器就已将完成了。

然后为director提供ipvs服务,要注意的是ipvs服务系统自带的yum包不一定会有,有的话可以直接安装,没有的话就需要去下载安装了,安装过程不再给出。

安装并启动之后为其提供调度规则,并开启转发功能,使其能够在两块网卡之间转发数据。

201957503.png

图中主机已经启动了转发功能,如果其值为0将其修改为1即可。

这样一个简单的NET模型的web集群就已经可以访问了。打开浏览器来看一下是否可以完成切换:

202039771.png

至此,一个成功的NET模型就已经实现了!

下面再来看一下DR模型:

DR模型的工作方式与NET有所差别,如图:

202123490.png

DR模型的directorNET相似,接收了所有的请求报文,并将其通过DIP转发给RIP。但是,DR模型的VIP不处理响应报文,响应报文是通过路由设备直接响应给用户的。这样就节省了director的资源。但是用户请求的是目标IPVIP,如果RIP直接响应给用户的话,用户发现没有对此IP发送请求,是不会接收的。所以我们还必须用VIP的地址来响应给用户。可是VIP不处理响应报文,我们改如何来实现呢?这里就用到了网卡的别名。可以给RIP的网卡定义一个别名,将其地址设为VIP的地址。由于是网卡的别名,是隐藏的地址,所以不会发生IP冲突。一般情况下别名的地址是不用来通信的,只用来响应用户的请求的集群服务。

DR模型的实现要比NET模型多一个路由,所以需要再准备一台虚拟机来当做路由来使用。

规划:

RIP1172.16.22.111

RIP2:172.16.22.112

DIP172.16.22.210

VIP192.168.0.3

内部路由接口:172.16.161.20

外部路由接口:192.168.0.177

以外部主机作为客户机,准备四台虚拟机:

两台作为realserver,将其网卡调整为Host-only

一台作为director,将DIP的网卡调整为Host-onlyVIP的网卡调整为与用户和路由可以直接通信的类型;

另外一台作为路由,也为其添加两块网卡,一块作为内部路由接口,将其调整为Host-only,另外一块作为外部路由接口,要保证能与外部主机通信。

下面来实现一下这个过程:

前面讲过realserver要使用VIP的地址直接响应给用户的,所以给realserver的网卡配置上别名,不过在这之前将其RIP的网关指向路由设备使其能够到外网中去(别忘了查看时间是否一致)

Realserver1

202218167.png

Realserver2

202256797.png

修改网关之后要修改内核参数,然后定义别名,并给别名添加路由条目(注意:一定要先修改内核参数,然后在定义别名)

Realserver1Realserver2的步骤完全相同:

202325635.png

做完之后别忘了启动web服务。(这里跟NET模型用的是同样的realserverweb页面已经存在)

配置Director

首先开启director主机的转发功能,使其可以实现网卡间的数据转发,然后为VIP提供一条跟RIP的别名相同的路由条目,最后启动ipvs功能,并添加规则:

202418208.png

路由不需要怎么配置,只要开启转发功能即可,完成之后可以用我们的客户机(也就是我们实体主机)来验证一下是否可以通信:

202453260.png

这里只给出两个,但是最好是都验证一下,保证每一台主机间都可以通信。如果可以那么就用浏览器来试一下吧:

202540789.png

完成之后,还可以看一下Director的报文记录:

202607474.png

多刷新几次看一下报文数据的变化情况!