APP下载

SLB技术在应用系统平台建设中的研究
——以西方宗教音乐资源检索平台建设为例

2019-06-03孙光懿

实验室研究与探索 2019年3期
关键词:IP地址路由器数据包

孙光懿, 熊 杰

(1.天津音乐学院图书信息中心,天津300171;2.黄冈师范学院物理与电信学院,湖北黄冈438000)

0 引言

为使广大师生方便快捷的获得教学科研以及专业学习所需的西方宗教音乐资源,开发了西方宗教音乐资源检索平台。但是随着用户数的增加,单台服务器的计算与数据处理能力已无法应对如此巨大的访问量,为有效解决这一问题,采用在校园网内部署多台应用服务器并在出口路由器上应用服务器负载均衡(Server Load Balancing,SLB)[1-3]技术,实施服务器冗余和流量负载均衡的设计方案,这样可使用户请求的流量将由多台服务器负责处理,不仅可以有效解决单台服务器流量负载过重和发生单点故障的问题,而且还可以充分利用现有服务器资源,节省购买高性能服务器的经费。西方宗教音乐资源检索平台实际运行在各真实服务器之中,对外呈现出的则是SLB虚拟服务器。另外出口路由器还可根据多种不同因素来配置服务器负载分担,在特殊情况下,可以指定同一台服务器对用户的请求做出响应。例如当使用文件传输协议FTP时,用户必须与同一台服务器进行会话,才能完成文件的传输任务。

1 相关技术

1.1 SLB 简介

SLB可以看作是热备份路由协议(Hot Standy Router Protocol,HSRP)协议的扩展,属于思科私有协议。主要应用在思科3层网络设备上,多用来实现服务器之间流量负载均衡[4-6]。SLB组可以由多台服务器组成,但是虚拟服务器只能有1台,(虚拟服务器可以看作是真实服务器的群集)虚拟服务器负责响应客户发起的访问请求,再根据WRR或WLC负载均衡算法将数据包转发到一台或多台真实服务器上,在这一过程中用户只需知道虚拟服务器的IP地址即可完成对应用系统的访问,而无需知道真实服务器的IP地址,从而使真实服务器得到了有效的安全保护。另外应用SLB技术还可以获得如下好处:①可以增强应用系统运行的可靠性,当真实服务器发生故障无法响应用户的请求时,路由器可以立刻检测到并不再向其转发用户请求数据包,直到这台故障真实服务器能够正常工作为止。响应用户请求的工作则由其他真实服务器来继续完成,整个过程中用户对应用系统的访问不会受到丝毫影响。②可以极大减轻系统管理员的工作负担,由于用户只知道在2层网络中存在的虚拟服务器,因此当系统管理员对真实服务器进行重新调整时,无需考虑当前用户的状态。

1.2 SLB的工作模式

(1)分派工作模式。在分派工作模式中,用户数据包的目的IP地址为虚拟服务器的IP地址,当运行SLB的路由器收到用户数据包后,即按照某种负载均衡算法[7]将数据包转发到真实服务器中,在此过程中并不改变数据包的目的地址。真实服务器为了响应用户的请求,不仅需要将虚拟服务器的IP地址设置为各真实服务器接口的第2地址,而且需要保证与运行SLB的路由器以及虚拟服务器在数据链路层中可达,否则真实服务器将无法响应用户的请求。

(2)定向工作模式。定向工作模式与分派工作模式略有不同,运行SLB的路由器也是按照某种负载均衡算法把收到的用户数据包(此时数据包的目的IP地址同样为虚拟服务器IP地址[8-9])发往各真实的服务器,但是会通过NAT技术把数据包中的目的IP地址转换为真实服务器的IP地址(需要注意的一点是路由器iOS的版本不同,有可能所支持的NAT类型也会不同)。在定向工作模式下,真实服务器不会认为2层网络中有虚拟服务器的存在,对于目的IP地址为自己的数据包,也不会将其丢弃。由于分派工作模式可使真实服务器获得更高的性能与安全性,因此在默认情况下,运行SLB的路由器多使用分派工作模式。

2 仿真实验[10-15]

仿真实验由3台服务器(分别用路由器R1、R2、R3来模拟)、1台思科3640路由器R4、1台思科3550 3层交换机SW1和1台终端计算机(用路由器R5来模拟)构成。3台服务器作为TELNET SERVER主要用来响应并处理用户TELNET服务请求,3层交换机SW1则用来与路由器R4和3台服务器互连。为了提高用户访问TELNET SERVER的可靠性与安全性,将路由器R4部署在网络出口处的同时,将3台服务器部署在内网,并且在路由器R4上应用SLB技术,使3台服务器在逻辑上组成1个虚拟服务器,用户对TELNET SERVER的请求均先由路由器R4负责处理。当路由器R4收到路由器R5的TELNET请求后,首先会向R5呈现出虚拟服务器的IP地址,然后再把R5的请求转发到3台真实服务器上,3台服务器会按照在路由器R4上制定的负载均衡算法来决定自己所承载的流量。如果采用的是加权轮询算法,则根据每台真实服务器处理能力的不同,制定相应的权值,使其可以处理相应的用户访问请求。如果采用的是加权最小连接调度算法,则每台真实服务器已建立连接的用户访问请求与所设定的权值会成一定比例。仿真实验网络结构如图1所示。

2.1 IP 地址分配

路由器R4的f0/0与e1/3接口分别连接路由器R5和3层交换机SW1。而3层交换机SW1的f1/1、f1/2、f1/3接口分别与路由器R1的e1/0接口、路由器R2的e1/1接口、路由器R3的e1/2接口相连。仿真实验各设备接口IP地址分配详细情况如下:

设备名称接口IP地址子网掩码R1 e1/0 2.1.1.3 255.255.255.0 R2 e1/1 2.1.1.4 255.255.255.0 R3 e1/2 2.1.1.5 255.255.255.0 R4 e1/3 2.1.1.2 255.255.255.0 f0/0 211.68.193.3 255.255.255.0 R5 f0/0 211.68.193.2 255.255.255.0

2.2 路由器及交换机接口配置

(1)配置路由器R1

R1(config)#int e1/0//进入接口e1/0

R1(config-if)#ip add 2.1.1.3 255.255.255.0

R1(config)#int LOOPBACK 1//建立环回接口

R1(config-if)#ip add 5.5.5.5 255.0.0.0

R1(config)#line vty 0 5

R1(config-line)#password sgy

R1(config-line)#login

(2)配置路由器R2

R2(config)#int e1/1//进入接口e1/1

R2(config-if)#ip add 2.1.1.4 255.255.255.0

R2(config)#int LOOPBACK 1

R2(config-if)#ip add 6.6.6.6 255.0.0.0

R2(config)#line vty 0 5

R2(config-line)#password sgy

R2(config-line)#login

(3)配置路由器R3

R3(config)#int e1/2//进入接口e1/2

R3(config-if)#ip add 2.1.1.5 255.255.255.0

R3(config)#int LOOPBACK 1

R3(config-if)#ip add 7.7.7.7 255.0.0.0

R3(config)#line vty 0 5

R3(config-line)#password sgy

R3(config-line)#login

(4)配置路由器R4

R4(config)#int e1/3//进入接口e1/3

R4(config-if)#ip add 2.1.1.2 255.255.255.0

R4(config)#int f0/0//进入接口f0/0

R4(config-if)#ip add 211.68.193.3 255.255.255.0//此接口地址用于与路由器R5互连

(5)配置路由器R4

R5(config)#int f0/0//进入接口f0/0

R5(config-if)#ip add 211.68.193.2 255.255.255.0//此接口地址用于与路由器R4互连

(6)配置3层交换机SW1

SW1(config)#vlan database

SW1(vlan)#vlan 2

SW1(config)#int range f1/0-3

SW1(config-if-range)#sw access vlan 2

2.3 路由配置

由于路由器R5与路由器R1、R2、R3不在同一网段中,如需互相通信就必须为其配置路由,在这里为各路由器配置可靠性更高的静态路由。

R1(config)#ip route 0.0.0.0 0.0.0.0 2.1.1.2

R2(config)#ip route 0.0.0.0 0.0.0.0 2.1.1.2

R3(config)#ip route 0.0.0.0 0.0.0.0 2.1.1.2

R5(config)#ip route 0.0.0.0 0.0.0.0 211.68.193.3

R4(config)#ip route 5.0.0.0 255.0.0.0 2.1.1.3

R4(config)#ip route 6.0.0.0 255.0.0.0 2.1.1.4

R4(config)#ip route 7.0.0.0 255.0.0.0 2.1.1.5

2.4 配置分配工作模式下的SLB

在分配工作模式下,不仅需要将路由器R1、R2、R3、R4以及虚拟服务器地址配置在同一个网段,而且还要在路由器R1、R2、R3与3层交换机SW1互连的接口下增加一个secondary地址(此地址为虚拟服务器IP地址),从而保证它们之间在2层网络可以相互通信。

R4(config)#ip slb server lzz//创建名为lzz的服务器组

R4(config-slb-sfarm)#real 2.1.1.3//服务器组内其中的一个真实服务器 IP地址为1.1.1.3

R4(config-slb-real)#weight 1//配置这个真实服务器的权重,SLB按照权重值来分配各服务器所承载流量的大小

R4(config-slb-real)#inserv//启用服务器

R4(config-slb-real)#faildetect//配置检测服务器的可用状态,如果服务器发生故障,SLB将不会把流量转发到该服务器

R4(config-slb-sfarm)#real 2.1.1.4

R4(config-slb-real)#weight 1

R4(config-slb-real)#inserv

R4(config-slb-real)#faildetect

R4(config-slb-sfarm)#real 2.1.1.5

R4(config-slb-real)#weight 1

R4(config-slb-real)#inserv

R4(config-slb-real)#faildetect

R4(config-slb-real)#exit

R4(config-slb-sfarm)#predictor roundrobin//采用轮询负载均衡方式

R4(config)#ip slb vserver lzz//创建虚拟的服务器

R4(config-slb-vserver)#virtual 2.1.1.100 tcp telnet//设置虚拟服务器 IP 地址为2.1.1.100

R4(config-slb-vserver)#serverfarm lzz//使用前面创建的服务器组

R4(config-slb-vserver)#client 211.68.193.0 255.255.255.0//只允许此网段的用户访问虚拟服务器

R4(config-slb-vserver)#inservice//启用虚拟的服务器

R1(config)#int e1/0

R1(config-if)#ip add 2.1.1.100 255.255.255.0 secondary//增加虚拟服务器的IP地址

R2(config)#int e1/1

R2(config-if)#ip add 2.1.1.100 255.255.255.0 secondary

R3(config)#int e1/2

R3(config-if)#ip add 2.1.1.100 255.255.255.0 secondary

2.5 配置定向工作模式下的SLB

在定向工作模式下,不需要将路由器R1、R2、R3、R4以及虚拟服务器地址配置在同一个网段,路由器R4会更改用户请求的数据包,将数据包中的目的IP地址更改为真实服务器的地址(即路由器R1、R2、R3的环回接口地址)。

R4(config)#ip slb server lzz

R4(config-slb-sfarm)#nat server//设置SLB的工作模式为定向模式

R4(config-slb-sfarm)#real 5.5.5.5//模拟路由器 R1 的环回接口作为真实服务器的地址

R4(config-slb-real)#weight 1

R4(config-slb-real)#inservice

R4(config-slb-real)#faildetect

R4(config-slb-sfarm)#real 6.6.6.6//模拟路由器 R2 的环回接口作为真实服务器的地址

R4(config-slb-real)#weight 1

R4(config-slb-real)#inservice

R4(config-slb-real)#faildetect

R4(config-slb-sfarm)#real 7.7.7.7//模拟路由器 R3 的环回接口作为真实服务器的地址

R4(config-slb-real)#weight 1

R4(config-slb-real)#inservice

R4(config-slb-real)#faildetect

R4(config-slb-real)#exit

R4(config-slb-sfarm)#predictor roundrobin//采用轮询负载均衡方式

R4(config)#ip slb vserver lzz//创建虚拟的服务器

R4(config-slb-vserver)#virtual 173.17.1.100 tcp telnet//设置虚拟服务器 IP地址为173.17.1.100

R4(config-slb-vserver)#serverfarm lzz//使用服务器组lzz

R4(config-slb-vserver)#client 211.68.193.0 255.255.255.0//只允许此网段的用户访问虚拟服务器

R4(config-slb-vserver)#inservice//启用虚拟的服务器

3 仿真实验测试

3.1 设备正常情况下测试

在这里以分配工作模式下的SLB为例,测试用户(路由器 R5)TELNET远程访问虚拟服务器2.1.1.100,查看是否实现服务器之间流量负载均衡以及虚拟服务器和服务器组的工作状态。

(1)使用TELNET命令进行负载均衡测试

R5#telnet 2.1.1.100

Trying 2.1.1.100 ...Open

User Access Verification

Password:

R1 > exit[Connection to 2.1.1.100 closed by foreign host]//连接到了R1路由器

R5#telnet 2.1.1.100

Trying 2.1.1.100 ...Open

User Access Verification

Password:

R2>exit

[Connection to 2.1.1.100 closed by foreign host]//连接到了R2路由器

R5#telnet 2.1.1.100

Trying 2.1.1.100 ...Open

User Access Verification

Password:

R3>exit

[Connection to 2.1.1.100 closed by foreign host]//连接到了R3路由器

(2)服务器组的详细信息如图3所示。

图3 服务器组的详细信息

(3)虚拟服务器的详细信息如图4所示。

图4 虚拟服务器的详细信息

通过以上测试,可以得出以下结论:虚拟服务器lzz由3台真实服务器构成(用路由器R1、R2、R3来模拟),它们之间采用轮询负载均衡算法响应用户请求,且每台服务器的权重值均为1。当用户(路由器R5)对虚拟服务器发起访问请求时,(此时数据包的目的地址为虚拟服务器地址2.1.1.100)3台真实服务器(即路由器R1、R2、R3)会按照轮询负载均衡算法依次分别响应用户的访问请求,从而实现了服务器之间流量负载均衡。

3.2 设备故障情况下测试

在这里通过手动关掉路由器R1模拟真实服务器发生故障。测试后发现,用户(路由器R5)仍然可以对虚拟服务器地址进行正常访问,虚拟路由器检测到路由器R1发生故障,进而不再向路由器R1转发用户的服务请求,路由器R2和路由器R3会按照轮询负载均衡算法继续响应用户的访问请求。由此可见,在启用SLB技术后服务器组内的某台服务器即使发生故障,也不会影响用户对资源检索平台的正常访问。

4 结语

SLB技术是实现服务器之间流量负载均衡的重要技术之一,可以提供第4层或第7层交换特性。通过在网络中应用SLB技术,将多台低性能的服务器虚拟成一台高性能的虚拟服务器,不仅服务器之间可以按照预先设定的算法实现流量负载均衡,而且还使服务器组具有了容错性。

猜你喜欢

IP地址路由器数据包
买千兆路由器看接口参数
二维隐蔽时间信道构建的研究*
维持生命
路由器每天都要关
路由器每天都要关
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
铁路远动系统几种组网方式IP地址的申请和设置
C#串口高效可靠的接收方案设计
公安网络中IP地址智能管理的研究与思考
《IP地址及其管理》教学设计