LVS DR搭建
前期准备工作--ip规划
DR:192.168.31.35 LVS调度器
VIP:192.168.31.100 VIP地址
RS1:192.168.31.36 后端真实web服务器
RS2:192.168.31.37 后端真实web服务器
前期准备工作--应用安装
yum install -y ipvsadm keepalived
前期准备工作--端口设置以及查询命令
systemctl stop firewalld 或者
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload
查看连接数和状态以及转发:ipvsadm -lnc
查看LVS设置:ipvsadm
DR脚本:192.168.31.35 创建dr.sh 并写入以下内容
#!/bin/bash
# LVS script for VS/DR
# . /etc/rc.d/init.d/functions #
VIP=192.168.31.100
RIP1=192.168.31.36
RIP2=192.168.31.37
PORT=80
case "$1" in
start)
# 配置VIP
/sbin/ifconfig ens192:0 $VIP broadcast $VIP netmask 255.255.255.0 up
/sbin/route add -host $VIP dev ens192:0
# 打开内核转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# 删除表中所有规则
/sbin/iptables -F
# 将表中数据包计数器和流量计数器归零
/sbin/iptables -Z
# 清空所有规则
/sbin/ipvsadm -C
# 配置集群--添加一个集群服务
/sbin/ipvsadm -A -t $VIP:80 -s wlc
# 配置集群--集群服务中添加真实服务器
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g -w 1
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g -w 2
#增加ipvsadm 锁文件
/bin/touch /var/lock/subsys/ipvsadm &> /dev/null
;;
stop)
#停止IP端口转发
echo 0 > /proc/sys/net/ipv4/ip_forward
# 清空所有规则
/sbin/ipvsadm -C
#删除VIP地址和路由
/sbin/ifconfig ens192:0 down
/sbin/route del $VIP
#删除ipvsadm 锁文件
/bin/rm -f /var/lock/subsys/ipvsadm
echo "ipvs is stopped..."
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ]; then
echo "ipvsadm is stopped ..."
else
echo "ipvs is running ..."
ipvsadm -L -n
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
;; esac
RS脚本:192.168.31.36/37 创建rs.sh 并写入以下内容
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
# . /etc/rc.d/init.d/functions
VIP=192.168.31.100
host=`/bin/hostname`
case "$1" in
start)
# 关闭 ARP 应答和响应
#arp_ignore: 定义接收到ARP请求时的响应级别;1表示仅在请求的目标地址配置请求到达的接口上的时候,才给予响应
#arp_announce:定义将自己地址向外通告时的通告级别:2表示仅向与本地接口上地址匹配的网络进行通告;
/sbin/ifconfig lo down
/sbin/ifconfig lo up
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/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# 把 VIP 配置在 lo:0 接口 防止和其他主机沟通 掩码32 只广播给自己
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
# 配置路由,只要是到 VIP 的报文,就走 lo 网卡
/sbin/route add -host $VIP dev lo:0
;;
stop)
# Stop LVS-DR real server loopback device(s).
/sbin/ifconfig lo:0 down
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
;;
status)
# 恢复 ARP 应答和响应
islothere=`/sbin/ifconfig lo:0 | grep $VIP`
isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
if [ ! "$islothere" -o ! "isrothere" ];then
# Either the route or the lo:0 device
# not found.
echo "LVS-DR real server Stopped."
else
echo "LVS-DR real server Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;; esac
分别执行脚本 sh dr.sh start或 sh rs.sh start
以上便是同网段 单点LVS集群搭建全部过程,请大家多多指教,如有错误请留言或私聊,每隔一天我会定时上线查看。