LVS-NAT

LVS-NAT

试用IPVS来做负载均衡,使用了1台双网卡服务器和2台单网卡服务器,2个网段。服务器信息如下:



IP配置信息如下:

服务器

操作系统

网卡

IP

调度服务器

Centos

eth0

192.168.18.58

eth1

192.168.2.90

实际服务器

Centos

eth0

192.168.2.71

Centos

eth0

192.168.2.72

 

1.         首先配置调度服务器:

 

a)         IPVS模块已经内置到linux2.6.x内核中,可以通过下面的命令查看是否已安装:

modprobe -l | grep ipvs

看到类似下面的输出,表示已经安装了

kernel/net/netfilter/ipvs/ip_vs.ko

kernel/net/netfilter/ipvs/ip_vs_rr.ko

kernel/net/netfilter/ipvs/ip_vs_wrr.ko

kernel/net/netfilter/ipvs/ip_vs_lc.ko

kernel/net/netfilter/ipvs/ip_vs_wlc.ko

kernel/net/netfilter/ipvs/ip_vs_lblc.ko

kernel/net/netfilter/ipvs/ip_vs_lblcr.ko

kernel/net/netfilter/ipvs/ip_vs_dh.ko

kernel/net/netfilter/ipvs/ip_vs_sh.ko

kernel/net/netfilter/ipvs/ip_vs_sed.ko

kernel/net/netfilter/ipvs/ip_vs_nq.ko

kernel/net/netfilter/ipvs/ip_vs_ftp.ko

kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko

 

b)         安装IPVS的管理工具ipvsadm

yum install -y ipvsadm

 

c)         清除表中所有记录:

ipvsadm -C

使用下面的命令增加虚拟服务器,采用轮询调度策略:

ipvsadm -A -t 192.168.18.58:8888 -s rr

 

使用下面的命令添加实际服务器,并采用NAT方式转发数据包:

ipvsadm -a -t 192.168.18.58:8888 -r 192.168.2.71:9999 -m

ipvsadm -a -t 192.168.18.58:8888 -r 192.168.2.72:9999 -m

 

d)         打开数据包转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

 

2.         接下来配置2台实际服务器,分别做以下工作:

 

a)         9999端口上启动一个web服务:

配置好web服务后,当访问http://192.168.2.71:9999时,页面返回:This is 192.168.2.71.;当访问http://192.168.2.72:9999时,页面返回:This is 192.168.2.72.

 

b)         设置默认网关指向调度服务器

route del default

route add default gw 192.168.2.90

 

3.         测试

 

访问192.168.18.58:8888,会显示This is 192.168.2.71This is 192.168.2.72,多次刷新应该要交替出现7172,但实际上并没有这样,浏览器只显示与第一次相同的内容,也就是ipvsadm每次都选择了同一台服务器。这是因为当一个TCP连接的初始SYN报文到达时,IPVS就选择了一台服务器,后继报文会被转发到相同的服务器。这个TCP连接在ipvsadm中默认有效时间为15分钟,可以通过下面的命令查看:

ipvsadm -L --timeout

Timeout (tcp tcpfin udp): 900 120 300

现在将有效时间改为1秒来测试,使用下面的命令:

ipvsadm --set 1 120 300

 

再到浏览器中每隔1秒多点击刷新,就会交替出现7172,说明轮询调度正在正常工作。

 

 

你可能感兴趣的:(LVS-NAT)