地址环境规划
DR1(主):192.168.100.66
DR2(备):192.168.100.77
web1:192.168.100.88
web2:192.168.100.99
vip:192.168.100.100
client:192.168.100.200
centos7-1——DR1调度服务器
1、安装ipvsadm、keepalived软件包
yum install ipvsadm keepalived -y
2、网卡模式:仅主机
固定IP:192.168.100.66
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.100.66
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
service network restart
vim /etc/sysctl.conf
#添加路由转发功能
net.ipv4.ip_forward=1
#proc响应关闭重定向功能
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0
sysctl -p //生效
3、构建虚拟网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
//原有内容删掉
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETWASK=255.255.255.0
ifup ens33:0 //启用虚拟网卡
4、添加服务启动脚本
cd /etc/init.d/
vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.100
RIP1=192.168.100.88
RIP2=192.168.100.99
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $VIP dev ens33:0
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting------------------[ok]"
;;
stop)
/sbin/ipvsadm -C
systemctl stop ipvsadm
ifconfig ens33:0 down
route del $VIP
echo "ipvsamd stoped--------------------[ok]"
;;
status)
if [ ! -e ar/lock/subsys/ipvsadm ];then
echo "ipvsadm stoped--------------------"
exit 1
else
echo "ipvsamd Runing-------------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
chmod +x dr.sh //赋予执行权限
service dr.sh start //执行脚本
systemctl status ipvsadm //查看服务开启状态
centos7-2——DR2调度服务器
1、安装ipvsdam、keepalived软件包
yum install ipvsdam keepalived -y
2、网卡模式:仅主机
固定IP:192.168.100.77
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.100.77
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
3、构建虚拟网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
//原有内容删掉
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETWASK=255.255.255.0
ifup ens33:0 //启用虚拟网卡
4、添加服务启动脚本
cd /etc/init.d/
vim dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.100
RIP1=192.168.100.88
RIP2=192.168.100.99
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $VIP dev ens33:0
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting------------------[ok]"
;;
stop)
/sbin/ipvsadm -C
systemctl stop ipvsadm
ifconfig ens33:0 down
route del $VIP
echo "ipvsamd stoped--------------------[ok]"
;;
stop)
/sbin/ipvsadm -C
systemctl stop ipvsadm
ifconfig ens33:0 down
route del $VIP
echo "ipvsamd stoped--------------------[ok]"
;;
status)
if [ ! -e ar/lock/subsys/ipvsadm ];then
echo "ipvsadm stoped--------------------"
exit 1
else
echo "ipvsamd Runing-------------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
chmod +x dr.sh
service dr.sh start
systemctl status ipvsadm //查看服务开启状态
centos7-3——web1节点服务器
1、安装httpd软件包
yum install httpd -y
2、网卡模式:仅主机
固定IP:192.168.100.88
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.100.88
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
service network restart //重启网卡
systemctl stop firewalld.service //关闭防火墙
setenforce 0
3、开启服务并查看开启状态
systemctl start httpd.service
systemctl status httpd.service
4、写HTML网页
cd /var/www/html/
echo "this is accp web" > index.html
5、构建虚拟网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=Lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.0
ONBOOT=yes
cd /etc/init.d/
vim web.sh //控制服务启动脚本
#!/bin/bash
VIP=192.168.100.100
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
sysctl -p > /dev/null 2>&1
echo "RealServer Start OK "
;;
stop)
ifconfig lo:0 down
route del $VIP /dev/null 2>&1
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
chmod +x web.sh
service web.sh start
ifup lo:0 //启用立刻中断
在web2节点服务器上查看IP,可以看到虚拟IP就说明没问题:ifconfig
firefox "http://127.0.0.1/" & //直接访问网站
service web.sh stop
service web.sh start //建议重启服务
centos7-4——web2节点服务器
安装httpd软件包
yum install httpd -y
网卡模式:仅主机
固定IP:192.168.100.99
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.100.99
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
service network restart //重启网卡
systemctl stop firewalld.service //关闭防火墙
setenforce 0
systemctl start httpd.service
systemctl status httpd.service
cd /var/www/html/
echo "this is benet web" > index.html
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=Lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.0
ONBOOT=yes
cd /etc/init.d/
vim web.sh //控制服务启动脚本
#!/bin/bash
VIP=192.168.100.100
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
sysctl -p > /dev/null 2>&1
echo "RealServer Start OK "
;;
stop)
ifconfig lo:0 down
route del $VIP /dev/null 2>&1
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
chmod +x web.sh
service web.sh start
ifup lo:0 //启用立刻中断
firefox "http://127.0.0.1/" & //直接访问网站
service web.sh stop
service web.sh start //建议重启服务
测试
(1)centos7-1——DR1调度服务器
systemctl stop firewalld.service //关闭防火墙
setenforce 0
(2)win7
仅主机模式
固定IP:192.168.100.200
网关:192.168.100.100
ping 192.168.100.100 //保证能通
http://192.168.100.100/
this is benet web 和 this is accp web
表明LVS没问题
keepalived部署(两台调度服务器上配置一样)
cd /etc/keepalived/
vim keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1 //指向本地
smtp_connect_timeout 30
router_id LVS_01 //指定名称,备份服务器不同名称,另一台为02
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER //备份服务器是BACKUP
interface eth0
virtual_router_id 10 //组号相同
priority 100 //优先级,备小于主
advert_int 1
authentication {
auth_type PASS
auth_pass abc123 //验证密码
}
virtual_ipaddress {
192.168.100.100 //虚拟IP
}
}
virtual_server 192.168.100.100 80 { //虚拟IP及端口号
delay_loop 6
lb_algo rr
lb_kind DR //改为DR
persistence_timeout 50
protocol TCP
real_server 192.168.100.88 80 { //节点服务器1
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.100.99 80 { //节点服务器2
weight 1
TCP_CHECK { //修改为TCP_CHECK
connect_port 80 //添加端口
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
systemctl start keepalived.service
systemctl status keepalived.service
ip addr show dev ens33:0 //查看虚拟网卡
测试
在win7上:ping 192.168.100.100
down掉一台调度服务器:ifdown ens33:0
如果在win7上还能通,就说明另一台调度服务器去接替它工作,就达到目的