我们常说负载均衡设置问题,那么可以分为硬件负载均衡设置和软件负载均衡设置两方面说起。那么本文呢,主要是讨论一下路由器和交换机的负载均衡设置问题。显而易见,他们都是硬件产品。但是,作为不同的产品,在功能上也有所区别,必然设置也是不同的。
TCP负载均衡与SLB都是为了同一目的,即在多台服务器上分担负载,他们之间不同的地方在于:TCP负载均衡是在路由器上做的,而SLB是先在交换机(只有6500,4980G支持)上定义服务器群组,然后再在边界路由器上做静态NAT转换
一.TCP负载均衡
如图1所示:内部两台服务器10.0.0.1与10.0.0.2向外提供同一WWW服务,当外部用户访问http://202.1.1.1时,将在这两台内部服务器之间轮流提供服务,其负载均衡设置方法与NAT相反:
- Router(config)#ip nat pool webservers 10.0.0.1 10.0.0.2 netmask 255.255.255.0 type rotary
- Router(config)#access-list 1 permit host 202.1.1.1
- Router(config)#ip nat inside destination list 1 pool webservers
- Router(config)#int fa0/0
- Router(config-if)#ip nat inside
- Router(config-if)#int s0
- Router(config-if)#ip nat outside
说明:***句定义了一个服务器地址池,其中关键字rotary的作用是当访问202.1.1.1时使请求地址交替转换为10.0.01、10.0.0.2
二.服务器负载均衡(SLB)
如图2:WWW服务器的虚拟IP地址为10.0.0.254,内网用户可以直接访问http://10.0.0.254,如果要向部提供WWW服务,则必须在边界路由器上对这个虚拟服务器地址做个静态地址转换。#p#
交换机上的负载均衡设置:
1.定义服务器群组
- Switch(config)#ip slb serverfarm webservers
- Switch(config-slb-sfarm)#real 10.0.0.1
- Switch(config-slb-real)#inservice
- Switch(config-slb-real)#exit
- Switch(config-slb-sfarm)#real 10.0.0.2
- Switch(config-slb-real)#inservice
说明:***句定义服务器群组名为webservers,第二名将真实服务器与服务器群组关联起来,第三条语句表示启用第二句指定的服务器;同理,***两句将真实服务器10.0.0.2与服务器群组关联起来并启用它
2.虚拟服务器的负载均衡设置
- Switch(config)#ip slb vserver httpserver
- Switch(config-slb-vserver)#virtual 10.0.0.254 tcp www
- Switch(config-slb-vserver)#inservice
- Switch(config-slb-vserver)#client 0.0.0.0 0.0.0.0
说明:***句定义虚拟服务器名为httpserver,第二句配置虚拟服务器的IP地址为10.0.0.254,协议为TCP,服务为WWW服务;第三句启用些虚拟服务器;第四句指定客户为所有用户,也可以指定特定用户
到目前为止,内部用户可以通过访问http://10.0.0254来访问WWW服务器了,如果需要将这台服务器向名提供WWW服务,则还需要配置***一步静态地址转换
3.静态地址转换的负载均衡设置(可选)
- Rouer(config)#ip nat inside source static 10.0.0.0254 202.1.1.1
- Router(config)#int fa0/0
- Router(config-if)#ip nat inside
- Router(config-if)#int s0
- Router(config-if)#ip nat outside