本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路
keepalived学习笔记
功能简述:
1.自动配置LVS规则
2.带健康检查
3.VRRP虚拟路由热备协议,可以虚拟出一个VIP
注:yum -y install ipvsadm可以不装,装上为了可以用ipvsadm-Ln这个命令查看规则
实验环境
VIP是keepalived虚拟的,所有不能手动配置
客户端配置网卡192.168.4.5
WEB1配置网卡192.168.4.100 VIP192.168.4.80
WEB2配置网卡192.168.4.200 VIP192.168.4.80
给WEB1,WEB2安装keepalived
yum -y install keepalived
WBE1配置
vim /etc/keepalived/keepalived.conf
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc(谁发邮件)
smtp_server 192.168.200.1(定义邮件服务器)
smtp_connect_timeout 30
找到这个语句改router_id (改成wbe1后面删掉)LVS_DEVEL(设置路由ID号)相当于路由器的名字,把自己当路由器用
}
vrrp_instance VI_1{
state MASTER (定义主服务器位MASTER)
interface eth0 (自动给eth0网卡配置4.80的VIP,)
virtual_router_id 51(要求主备id一致)
priority 100 服务器的优先级,优先级越高先获得VIP(谁当主就把值调大)
authentication{ (为集群配置密码,解决当攻击者在旁边在搭建一个keepalived获取VIP,当集群都设置密码后没有密码的keepalived就不是集群里的就无法获取VIP)
auth_type PASS
auth_pass 111(上班时需要改这个密码)
}
virtual_ipaddress{ (设置VIP所获取的虚拟IP)可以设置多个虚拟IP
改 192.168.4.80
}
}
WBE2配置
vim /etc/keepalived/keepalived.conf
找到这个语句改router_id (改成wbe2后面删掉)LVS_DEVEL(设置路由ID号)相当于路由器的名字,把自己当路由器用
改state BACKUP(改成这个BACKUP)
virtual_router_id 51
改低priority 90
virtual_ipaddress{ (设置VIP所获取的虚拟IP)可以设置多个虚拟IP
改 192.168.4.80
}
systemctl start keepalived 两个WBE都起服务
iptables -F 清空防火墙规则
setenforce 0 关闭SELinux防火墙
验证命令 ip a s eth0
LVS(DR模式)+keepalived
先关闭两台web的keepalivedsystemctl stop keepalived
实验环境:
客户机网卡192.168.4.10
调度器1网卡192.168.4.5/24 VIP192.168.4.15
调度器2网卡192.168.4.6/24 VIP192.168.4.15
WEB1 1网卡192.168.4.100/24 VIP192.168.4.15
WEB2 1网卡192.168.4.200/24 VIP192.168.4.15
Wbe1配置
vim ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO=none
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
IPADDR="192.168.4.100"
PREFIX=24
cd /etc/sysconfig/network-scripts
每一个服务器都有特殊的网卡ifcfg-lo没有真正的网卡,这个网卡是虚拟出来的
cp ifcfg-lo{,:0} 拷贝一份网卡出来。
vim ifcfg-lo:0 伪装成4.15去回应客户端
DEVICE=lo:0
IPADDR=192.168.4.15 是vip
NETMASK=255.255.255.255 必须是全255/32位
NETWORK=192.168.4.15 主机型IP,自己在一个网里
BROADCAST=192.168.4.15 广播地址,也是自己
ONBOOT=yes 这个网卡开机时是否自动激活
NAME=lo:0 网卡名字
vim /etc/sysctl.conf 修改后不响应客户的广播请求
net.ipv4.conf.all.arp_ignore=1 不回VIP 手写这些内容
net.ipv4.conf.lo.arp_ignore=1 不回VIP
net.ipv4.conf.lo.arp_announce=2 如果是0就把所有东西告诉对方,1尽量不说,2是打死不说
net.ipv4.conf.all.arp_announce=2 配置完不能立刻生效,需要这个命令刷新下才能生效sysctl -p
Wbe2配置
vim ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO=none
DEFROUTE="yes"
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
IPADDR="192.168.4.200"
PREFIX=24
cd /etc/sysconfig/network-scripts
cp ifcfg-lo{,:0}
vim ifcfg-lo:0 伪装成4.15
DEVICE=lo:0
IPADDR=192.168.4.15 是vip
NETMASK=255.255.255.255 必须是全255/32位
NETWORK=192.168.4.15 主机型IP,自己在一个网里
BROADCAST=192.168.4.15 广播地址,也是自己
ONBOOT=yes 这个网卡开机时是否自动激活
NAME=lo:0 网卡名字
两个web都要做这个
vim /etc/sysctl.conf 修改后不响应客户的广播请求
net.ipv4.conf.all.arp_ignore=1 不回VIP 手写这些内容
net.ipv4.conf.lo.arp_ignore=1 不回VIP
net.ipv4.conf.lo.arp_announce=2 如果是0就把所有东西告诉对方,1尽量不说,2是打死不说
net.ipv4.conf.all.arp_announce=2 配置完不能立刻生效,需要这个命令刷新下才能生效sysctl -p
systemctl restart network 重启网卡
setenforce 0 关闭SELinux防火墙
systmctl stop firewalld 关闭防护
iptables -F 清空防火墙规则
调度器1配置IP
192.168.4.5/24 VIP192.168.4.15
systemctl restart network 重启网卡
1.yum -y install ipvsadm
2.yum -y install keepalived
3.vim /etc/keepalived/keepalived.conf 改下面2两行
router_id lvs1
virtual_ipaddress{ (设置VIP所获取的虚拟IP)可以设置多个虚拟IP
改 192.168.4.15
}
下面修改的是LVS和健康检查功能
virtual_server 192.168.4.15 80{ 创建虚拟集群语句也就是LVS的这个命令ipvsadm -A创建虚拟集群
delay_loop 6
lb_algo rr 调度算法
lb_kind DR 工作模式
#persistence_timeout 50 保持链接50 秒需要注释了
protocol TCP
real_server 192.168.4.100 80{ 给虚拟集群添加真实机的IP也就是LVS这个命令ipvsadm -a
weight 1 权重
下面是健康检查
SSL_get改成tcp_check{
connect_timeout 3 等待超时3秒
nb_get_retry 3 反复试3次
delay_before_retry 3 每3秒做一次健康检查
}补充的可以更换前面的SSL_get,tcp_check http_get
在写一个集群
real_server 192.168.4.200 80{ 给虚拟集群添加真实机的IP也就是LVS这个命令ipvsadm -a
weight 1 权重
下面是健康检查
SSL_get改成tcp_check{
connect_timeout 3 等待超时3秒
nb_get_retry 3 反复试3次
delay_before_retry 3 每3秒做一次健康检查
}
}
systemctl start keepalived
iptables -F 清空防火墙规则
调度器2配置IP
网卡192.168.4.6/24 VIP192.168.4.15
systemctl restart network 重启网卡
1.yum -y install ipvsadm
2.yum -y install keepalived
3.vim /etc/keepalived/keepalived.conf 改下面2两行
router_id lvs2
改state BACKUP(改成这个BACKUP)
改低priority 90
virtual_ipaddress{ (设置VIP所获取的虚拟IP)可以设置多个虚拟IP
改 192.168.4.15
}
virtual_server 192.168.4.15 80{ 创建虚拟集群语句也就是LVS的这个命令ipvsadm -A创建虚拟集群
delay_loop 6
lb_algo rr 调度算法
lb_kind DR 工作模式
#persistence_timeout 50 保持链接50 秒需要注释了
protocol TCP
real_server 192.168.4.100 80{ 给虚拟集群添加真实机的IP也就是LVS这个命令ipvsadm -a
weight 1 权重
下面是健康检查
SSL_get改成tcp_check{
connect_timeout 3 等待超时3秒
nb_get_retry 3 反复试3次
delay_before_retry 3 每3秒做一次健康检查
}补充的可以更换前面的SSL_get,tcp_check http_get
在写一个集群
real_server 192.168.4.200 80{ 给虚拟集群添加真实机的IP也就是LVS这个命令ipvsadm -a
weight 1 权重
systemctl start keepalived
iptables -F 清空防火墙规则