keepalived 高可用lvs的dr模型(vip与dip不在同一网段)
现在rs1和rs2上面安装httpd并准备测试页

[root@rs1 ~]# yum install httpd -y
[root@rs1 ~]# echo "this is r1" > /var/www/html/index.html
[root@rs1 ~]# systemctl start httpd [root@rs2 ~]# yum install httpd -y
[root@rs2 ~]# echo "this is r2" > /var/www/html/index.html
[root@rs2 ~]# systemctl start httpd

在lvs和Lvs2上安装keepalived和ipvsadm (为了测试看效果用)httpd(为了实现sorryserver)
[root@lvs ~]# yum install ipvsadm -y
[root@lvs ~]# yum install keepalived -y
[root@lvs ~]# yum install httpd -y
[root@lvs ~]# echo "this is lvs1" > /var/www/html/index.html
[root@lvs ~]# systemctl start httpd
[root@lvs2 ~]# yum install httpd -y
[root@lvs2 ~]# echo "this is lvs2" > /var/www/html/index.html
[root@lvs2 ~]# systemctl start httpd
[root@lvs2 ~]# yum install ipvsadm -y
[root@lvs2 ~]# yum install keepalived -y
配置router服务器(在router上添加一块外网网卡,并添加两个内网地址)开启路由转发

[root@router network-scripts]# cp ifcfg-ens33 ifcfg-eth1
[root@router network-scripts]# vim ifcfg-eth1
NAME="eth1"
DEVICE="eth1"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
IPADDR=172.16.14.100
NETMASK=255.255.0.0
TYPE=Ethernet [root@router network-scripts]# systemctl restart network
[root@router network-scripts]# ip a a 10.0.0.10/8 dev eth0:1 #:这个是临时加的,如果想永久有效,写在配置文件中 [root@router ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@router ~]# sysctl -p

配置client服务器网关指向路由

[root@client ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=static
IPADDR=172.16.14.200
NETMASK=255.255.0.0
GATEWAY=172.16.14.100
TYPE=Ethernet

配置rs1和rs2的网关指向路由器

[root@rs1 ~]# vinet
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="95b18552-6cc5-48c5-b29a-91ed73675c50"
BOOTPROTO=static
IPADDR=192.168.37.24
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
[root@rs1 ~]# systemctl restart network [root@rs2 ~]# vinet
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="cdd70dbc-1363-45da-9c7a-0ae369f9aac3"
BOOTPROTO=static
IPADDR=192.168.37.25
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
[root@rs2 ~]# systemctl restart network

配置lvs和lvs2服务器的网关指向路由器

[root@lvs ~]# vinet
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="15caec5a-6740-4a81-8c72-5fbcb6fb9d25"
BOOTPROTO=static
IPADDR=192.168.37.23
NETMASK=255.255.255.0
GATEWAY=192.168.37.22
TYPE=Ethernet
[root@lvs2 ~]# vinet
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="686fb723-2360-4683-bb81-8bc6a20778ff"
BOOTPROTO=static
IPADDR=192.168.37.26
NETMASK=255.255.255.0
GATEWAY=192.168.37.22

在rs1和rs2上分别添加vip 并关闭arp通告

[root@rs1 ~]# ifconfig lo:1 10.0.0.100 netmask 255.255.255.255
[root@rs1 ~]# route add -host 10.0.0.100 dev lo:1
[root@rs1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
[root@rs1 ~]# sysctl -p [root@rs2 ~]# ifconfig lo:1 10.0.0.100 netmask 255.255.255.255
[root@rs2 ~]# route add -host 10.0.0.100 dev lo:1
[root@rs2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
[root@rs2 ~]# sysctl -p

在lvs和Lvs2服务器配置keepalived
[root@lvs ~]# vim /etc/keepalived/keepalived.conf
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id ka1
vrrp_mcast_group4 224.100.100.99
}
state MASTER
interface eth0
virtual_router_id 77
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.0.0.100/8 dev eth0 lable eth0:1
}
}
delay_loop 6
lb_kind DR
protocol TCP
sorry_server 192.168.37.23 80
weight 1
HTTP_GET {
url {
path /
status_code=200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.25 80 {
weight 1
HTTP_GET {
url {
path /
status_code=200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id ka2
vrrp_mcast_group4 224.100.100.99
}
state BACKUP
interface eth0
virtual_router_id 77
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.0.0.100/8 dev eth0 lable eth0:1
}
}
delay_loop 6
lb_kind DR
protocol TCP
sorry_server 192.168.37.26 80
weight 1
HTTP_GET {
url {
path /
status_code=200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.25 80 {
weight 1
HTTP_GET {
url {
path /
status_code=200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
在lvs服务器分别启动keepalived
[root@lvs2 ~]# systemctl start keepalived
[root@lvs ~]# systemctl start keepalived
在client服务器测试
下面是keepalived各项参数
还可以在keepalived 上定义通知脚本
在各lvs服务器配置脚本
[root@lvs keepalived]# vim notify.sh
#!/bin/bash
#
contact='root@localhost'
notify() {
mailsubject="$(hostname) to be $1, vip floating"
mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
echo "$mailbody" | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac
在各lvs服务器配置
[root@lvs keepalived]# vim keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 77
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
10.0.0.100/8 dev eth0 lable eth0:1
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
keepalived 高可用lvs的dr模型(vip与dip不在同一网段)的更多相关文章
- 3、使用keepalived高可用LVS实例演示
回顾: keepalived: vrrp协议的实现: 虚拟路由器: MASTER,BACKUP VI:Virtual Instance keepalived.conf GLOBAL VRRP LVS ...
- lvs负载简介,原理,常见使用案例及Keepalived高可用
Lvs简介 基础概念 LVS(Linux Virtual Server)即Linux虚拟服务器,是由张文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中(2.6及以上版本内核) ...
- Keepalived之高可用LVS集群
前文我们聊了下keepalived的邮件通知相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13645163.html:今天我们来说说keepalive ...
- LVS集群和Keepalived高可用实战
第四十章LVS集群和Keepalived高可用实战 一.ARP协议 1.概念 地址解析协议,即ARP(AddressResolutionProtocol),是根据IP地址获取物理MAC地址的一个TCP ...
- LVS+Keepalived高可用负载均衡集群架构实验-01
一.为什么要使用负载均衡技术? 1.系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查, ...
- LVS+Keepalived 高可用环境部署记录(主主和主从模式)
之前的文章介绍了LVS负载均衡-基础知识梳理, 下面记录下LVS+Keepalived高可用环境部署梳理(主主和主从模式)的操作流程: 一.LVS+Keepalived主从热备的高可用环境部署 1)环 ...
- LVS+Keepalived高可用部署
一.LVS+Keepalived高可用部署 一.keepalived节点部署 1.安装keepalived yum install keepalived ipvsadm -y mkdir -p /op ...
- 高可用群集HA介绍与LVS+keepalived高可用群集
一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅 ...
- 1. lvs+keepalived 高可用群集
一. keepalived 工具介绍 1.专为lvs 和HA 设计的一款健康检查工具 2.支持故障自动切换 3.支持节点健康状态检查 二. keepalived 实现原理剖析 keepalived ...
随机推荐
- Are we ready for learned cardinality estimation?
Are we ready for learned Cardinality Estimation 摘要 文章包括三大部分: 对于一个静态的数据库,本文将五种基于学习的基数估计方法与九中传统的基数估计方法 ...
- Intellij IDEA 配置Junit
导包: 1.Hamcrest Core 包: https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core/1.3 2.Junit包 ...
- Flink 实践教程:入门(6):读取 PG 数据写入 ClickHouse
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- pytest-mian函数运行
1.设置多并发运行 1.命令行安装 pip install pytest-xdist #安装插件,进行多并发运行,#调用:-n -5 import pytest # pytest.main([&quo ...
- pytest框架+conftest.py配置公共数据的准备和清理
1.pytest介绍:1.自动发现测试模块和测试方法 2.断言使用 assert+表达式即可 3.可以设置会话级.模块级.类级.函数级的fixture 数据准备+清理工作 4.丰富的插件库,==all ...
- 18.jvm调优工具及案例分析
目标: Jmap.Jstack.Jinfo详解 JvisualVm调优工具实战 JVM内存或CPU飙高如何定位 JState命令预估JVM运行情况 系统频繁Full GC导致系统卡顿实战调优 内存泄漏 ...
- java:字符串与数字的转换
各种数字类型转换成字符串型 int i =8; String s =Integer.toString(i);// String g =String.valueOf(i); // 其中 value 为任 ...
- 反调试代码调试死机代码禁止F12代码
反调试代码调试死机代码禁止F12代码 // 反调试函数,参数:开关,执行代码 function siji(){ var total=""; for (var i=0; ...
- jmeter中执行kafka topic指令
前置条件 kafka版本:2.2.1 jmeter版本:5.3 插件:ApacheJMeter_ssh-1.2.0.jar 1.拷贝 ApacheJMeter_ssh-1.2.0.jar 到/lib/ ...
- 【CSP2019 D1T2】【括号树】
题面 不再多说,想必大家都看过这个题 思路 我们可以手推几个满足条件的字符串 我们发现在这些字符串里 每个)都与离它最近的(的匹配 所以我们维护树上每个节点到根节点中没用使用过的(的位置(nl[n]) ...