基于web的Nat集群配置
一、条件
1、最少三台服务器,一台配置调度器,其余主机配置web服务器
2、调度器主机上最少有两张网卡,一张网卡作为内部网络的网关(DIP),另一张网卡作为公网ip(VIP),由于这种类型有公网和内网之分,所以,需要对两张网卡设置成不同的网络,而如果是一张网卡,就无法实现。
二、规划
1,由于是在虚拟机中进行配置,就都是用私有地址了。
配置ip和路由以及网关
首先为网卡选择网络连接方式,防止配置好ip后,在选择连接方式,ip会重置
DIP、realserver1、realserver2选择vmnet
VIP桥接就好
调度器VIP:172.16.5.11
DIP: 192.168.1.11作为realserver的网关
服务器ip
Realserver1:192.168.1.12
Realserver2:192.168.1.13
2,为realserver提供网页
3,安装lvs调度器工具ipvsadm,给调度器配置规则
三、配置
1,网络选择
按照上述所说,选择好网络,接下来就开始配置ip
2,realserver1配置
# ifconfig eth0 192.168.1.12/24 up # route add default gw 192.168.1.11
提供网站首页
# vim /var/www/html/index.html <h1>realserver1</h1> # service httpd start
3,realserver2配置
# ifconfig eth0 192.168.1.13/24 up # route add default gw 192.168.1.11
提供网站首页
# vim /var/www/html/index.html <h1>realserver2</h1> # service httpd start
4,调度器配置
# ifconfig eth0 172.16.5.11/16 up # ifconfig eth1 192.168.1.11/24 up # route add default gw 172.16.0.1------------教室网关
5,安装ipvsadm-1.25-10.el6.x86_64
# yum -y install ipvsadm-1.25-10.el6.x86_64
6,配置规则
# ipvsadm -A -t 172.16.5.11:80 -s rr # ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.12 -m # ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.13 -m
7,启用转发
# sysctl -w net.ipv4.ip_forward=1
这一步不可少,否则,只能接受请求报文,响应报文发不出去。
基于web的DR(director route)类型的负载均衡
一、分析及规划
1,同样,至少三台主机,一台做调度器,其余两台做web服务器。
2,因为这种类型的报文的传送是通过ARP解析mac地址,进行ip欺骗的网络传输。请求报文送达目的主机,目的主机直接将返回报文发往原地址,无需经过调度器,因此调度器只需要一块网卡即可。
3,调度器上的vip是用户请求的ip,也是web服务需要封装mac地址的ip,是公网IP,可以在同一块网卡上另添加一个ip(DIP),作为和reaserver(RIP)通信的一个网段内的ip,此时rip可以是私有ip,也可以使公网ip,这取决于dip的类型。我们暂且使用私有ip。
4,reserver收到报文后,直接讲报文转发出去,但能跟外界通信的只有RIP,但发出去的报文源ip却是vip,这就需要设置内核参数,来达到目的。
5,规划
Vip:172.16.5.11
Dip:192.168.1.11
Realserver1:eth0:192.168.1.12
Lo:0:172.16.5.11
Realserver2:eth0:192.168.1.13
Lo:0:172.16.5.11
6,其余配置沿用nat机制。
二、配置实现
1、Realserver1
# ifconfig eth0 192.168.1.12 # echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore # echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce # ifconfig lo:0 172.16.5.11 broadcast 172.16.5.11 netmask 255.255.255.255 up # route add -host 172.16.5.11 dev lo:0 # route add default gw 192.168.1.254----------三台主机在同一个网段
提供网站首页
# vim /var/www/html/index.html <h1>realserver1</h1>
2、Realserver1
# ifconfig eth0 192.168.1.13 # echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore # echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce # ifconfig lo:0 172.16.5.11 broadcast 172.16.5.11 netmask 255.255.255.255 up # route add -host 172.16.5.11 dev lo:0 # route add default gw 192.168.1.254----------三台主机在同一个网段
提供网站首页
# vim /var/www/html/index.html <h1>realserver2</h1>
3、配置调度器
# ifconfig eth0 172.16.5.11 broadcast 172.16.5.11 netmask 255.255.255.255 up------调度器配置Vip的网卡是外网接口
# ifconfig eth0:1 192.168.1.11 # route add default gw 192.168.1.254
规则配置
# ipvsadm -A -t 172.16.5.11:80 -s wrr
-s 指明方法
Wrr 权重模式
# ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.12 -g -w 2 # ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.13 -g -w 3
-g 是dr模式
-w 指明权重
4、别忘了启用转发
# sysctl -w net.ipv4.ip_forward=1
关于时间同步:各节点间的时间偏差不大于1s,建议使用统一的ntp服务器进行更新时间;
DR模型中的VIP的MAC广播问题:
在DR模型中,由于每个节点均要配置VIP,因此存在VIP的MAC广播问题,在现在的linux内核中,都提供了相应kernel 参数对MAC广播进行管理,具体如下:
0:只要本地配置的有相应地址,就给予响应;
1:仅在请求的目标地址配置在到达的接口上的时候,才给予响应;DR模型使用
0:将本地任何接口上的任何地址向外通告;
1:试图仅向目标网络通告与其网络匹配的地址;
2:仅向与本地接口上地址匹配的网络进行通告;DR模型使用