配置过程如下:
分析架构:如果ld是单一节点,那么这个ld挂了,整个架构也就挂了,所以我们这里必须考虑到HighAvailabiliity(HA),我们这里就是通过keepalived这个高可用软件来实现的。
1.客户端配置:
#ifconfigeth0192.168.18.106
#routeadddefaultgw192.168.18.254
2.Router端配置:
#ifconfigeth0192.168.18.254
#ifconfigeth0:0192.168.19.100
打开包转发
#echo1>/proc/sys/net/ipv4/ip_forward
3.分发器Master的配置:
安装lvs到分发器上面
配置好yum源,保证能够读取到介质中的Cluster目录!
cat/etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=file:///media/Server
enabled=1
gpgcheck=0
[Cluster]
name=cluster
baseurl=file:///media/Cluster
enabled=1
gpgcheck=0
#yum-yinstallipvsadm
#ifconfigeth0192.168.19.300
安装keepalived,并通过其绑定VTP
#tarzxfkeepalived-1[1].1.17.tar.gz
#yuminstallgccopenssl-develkernel-develipvsadm-y(不装一会安装会有问题)
#ln-s/usr/src/kernels/2.6.18-238.el5-i686//usr/src/linux(这条不能复制粘贴,因为要看你机器的内核版本,可以粘过去进行tab键补齐)
#cdkeepalived-1.1.17
#./configure--prefix=/usr/local/keepalived
#make
#makeinstall
安装后,把人家提供好的文件进行对应的复制!
#cp/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/
#cp/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/
#mkdir-pv/etc/keepalived
mkdir:已创建目录“/etc/keepalived”
#cp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/
#ln-s/usr/local/keepalived/sbin/keepalived/sbin/
删减自定义配置文件就行:
#vim/etc/keepalived/keepalived.conf
!ConfigurationFileforkeepalived
global_defs{
router_iddr1
}
vrrp_sync_grouphttp{
group{
apache
}
}
vrrp_instanceapache{
stateMASTER
interfaceeth0
virtual_router_id51
priority180
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.19.250
}
}
virtual_server192.168.19.5080{
delay_loop6
lb_algorr
lb_kindDR
#persistence_timeout3600
protocolTCP
real_server192.168.19.10180{
weight1
TCP_CHECK{
connect_timeout3
connect_port80
}
}
real_server192.168.19.10280{
weight1
TCP_CHECK{
connect_timeout3
connect_port80
}
}
}
启动服务
#/etc/init.d/keepalivedstart
4.分发器Backup的配置:
安装lvs到分发器上面
配置好yum源,保证能够读取到介质中的Cluster目录!
cat/etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=file:///media/Server
enabled=1
gpgcheck=0
[Cluster]
name=cluster
baseurl=file:///media/Cluster
enabled=1
gpgcheck=0
#yum-yinstallipvsadm
#ifconfigeth0192.168.19.200
安装keepalived,并通过其绑定VTP
#tarzxfkeepalived-1[1].1.17.tar.gz
#yuminstallgccopenssl-develkernel-develipvsadm-y(不装一会安装会有问题)
#ln-s/usr/src/kernels/2.6.18-238.el5-i686//usr/src/linux(这条不能复制粘贴,因为要看你机器的内核版本,可以粘过去进行tab键补齐)
#cdkeepalived-1.1.17
#./configure--prefix=/usr/local/keepalived
#make
#makeinstall
安装后,把人家提供好的文件进行对应的复制!
#cp/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/
#cp/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/
#mkdir-pv/etc/keepalived
mkdir:已创建目录“/etc/keepalived”
#cp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/
#ln-s/usr/local/keepalived/sbin/keepalived/sbin/
删减自定义配置文件就行:
#vim/etc/keepalived/keepalived.conf
!ConfigurationFileforkeepalived
global_defs{
router_iddr2#(这里名字注意要和master的不一样就行)
}
vrrp_sync_grouphttp{
group{
apache
}
}
vrrp_instanceapache{
stateBACKUP#(这里要改成backup,备机)
interfaceeth0
virtual_router_id51
priority100#(这里级别要比主机低点就好)
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.19.250
}
}
virtual_server192.168.19.5080{
delay_loop6
lb_algorr
lb_kindDR
#persistence_timeout3600
protocolTCP
real_server192.168.19.10180{
weight1
TCP_CHECK{
connect_timeout3
connect_port80
}
}
real_server192.168.19.10280{
weight1
TCP_CHECK{
connect_timeout3
connect_port80
}
}
}
5.realserver的配置:
#ifconfigeth0192.168.19.100
绑定VTP:利用脚本来实现:
#!/bin/bash
VIP=192.168.19.250
ROUTE=192.168.19.100
start(){
ifconfiglo:0$VIP/32broadcast$VIPup
routeadd-host$VIPdevlo:0
routeadddefaultgw$ROUTE
echo1>/proc/sys/net/ipv4/conf/all/arp_ignore
echo2>/proc/sys/net/ipv4/conf/all/arp_announce
echostart;
}
stop(){
routedeldefaultgw$ROUTE
routedel-host$VIPdevlo:0
ifconfiglo:0down
echo0>/proc/sys/net/ipv4/conf/all/arp_ignore
echo0>/proc/sys/net/ipv4/conf/all/arp_announce
echostop;
}
case$1in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo'start|stop'
esac
把这个脚本放到/etc/init.d/下面
启动:/etc/init.d/vip.shstart
其他realserver的配置同理
6.到master主机上面验证:
测试第一步:查看绑定的VTP
#ipaddsh
1:lo:<LOOPBACK,UP,LOWER_UP>mtu16436qdiscnoqueue
link/loopback00:00:00:00:00:00brd00:00:00:00:00:00
inet127.0.0.1/8scopehostlo
inet6::1/128scopehost
valid_lftforeverpreferred_lftforever
2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_fastqlen1000
link/ether00:0c:29:a6:09:10brdff:ff:ff:ff:ff:ff
inet192.168.19.300/24brd192.168.19.255scopeglobaleth0
inet192.168.19.250/32scopeglobaleth0c
inet6fe80::20c:29ff:fea6:910/64scopelink
valid_lftforeverpreferred_lftforever
3:sit0:<NOARP>mtu1480qdiscnoop
link/sit0.0.0.0brd0.0.0.0
测试第二步,查看realserver的连通性
l#elinkshttp://192.168.19.102/index.html--dump
102
#elinkshttp://192.168.19.101/index.html--dump
101
测试第三步,查看ipvsadm规则
#ipvsadm-ln
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.19.250:80rr
->192.168.19.101:80Route100
->192.168.19.102:80Route100
测试第四步,同客户端测试
[root@~]#elinkshttp://192.168.19.250/index.html--dump
101
[root@~]#elinkshttp://192.168.19.250/index.html--dump
102
[root@~]#elinkshttp://192.168.19.250/index.html--dump
101
[root@~]#elinkshttp://192.168.19.250/index.html--dump
102
启动BACKUP
ld2#/etc/init.d/keepalivedstart
启动keepalived:[确定]
关闭master上的keepalived,模拟失败
再在client上测试,看访问能否继续!
如果没有问题,在realserver(192.168.19.101)上关闭服务
ld1#ipvsadm-ln
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.19.250:80rr
->192.168.19.102:80Route100
ld1#ipvsadm-ln
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.19.250:80rr
->192.168.19.101:80Route100
->192.168.19.102:80Route100
解决无用的广播包太多,造成ld无法绑定vip
ld1上执行
iptables-F
iptables-AINPUT-mttl--ttl-eq255-jREJECT
iptables-IINPUT-s$ld2ip-jACCEPT
ld2上执行
iptables-F
iptables-AINPUT-mttl--ttl-eq255-jREJECT
iptables-IINPUT-s$ld1ip-jACCEPT