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 ...
随机推荐
- NodeJs创建一个简单的服务器
步骤: 1 //模块化引入 2 let http = require ("http"); 3 4 //创建服务器 5 http.createServer(function(requ ...
- 实验1:SDN拓扑拓扑实验
一.实验目的 能够使用源码安装Mininet: 能够使用Mininet的可视化工具生成拓扑: 能够使用Mininet的命令行生成特定拓扑: 能够使用Mininet交互界面管理SDN拓扑: 能够使用Py ...
- Ubuntu安装BCC
Ubuntu安装BCC 教程 官方文档 安装 这里官方文档中首先讲到的是二进制文件的安装,直接通过apt进行安装 sudo apt-get install bpfcc-tools linux-head ...
- 《手把手教你》系列技巧篇(四十二)-java+ selenium自动化测试 - 处理iframe -下篇(详解教程)
1.简介 经过宏哥长时间的查找,终于找到了一个含有iframe的网页.所以今天这一篇的主要内容就是用这个网页的iframe,宏哥给小伙伴或者童鞋们演示一下,在处理过程中遇到的问题以及宏哥是如何解决的. ...
- 团队作业3--需求改进&系统
需求改进&系统设计 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 这个作业的目标 需求改进&系统设计 目录 需求改进&系统设计 需求&原型改进 针对课堂 ...
- Django笔记&教程 2-4 视图常用
Django 自学笔记兼学习教程第2章第4节--视图常用 点击查看教程总目录 1 - shortcut 视图函数需要返回一个HttpResponse对象或者其子类对象. 不过很多时候直接手写建立一个H ...
- 彻底搞懂Spring状态机原理,实现订单与物流解耦
本文节选自<设计模式就该这样学> 1 状态模式的UML类图 状态模式的UML类图如下图所示. 2 使用状态模式实现登录状态自由切换 当我们在社区阅读文章时,如果觉得文章写得很好,我们就会评 ...
- Python学习周总结(一)
Python-FirstWeek知识汇总 学习了一周python,最大的感触就是要有自己的逻辑思维和发散性思维,考虑事物的广度,层层相扣即使数学逻辑不会,基本的程序功能还是可以实现的,共勉,加油~ 一 ...
- Unable to unwrap data, invalid status [CLOSED]-服务端webSocket报错
一.问题由来 现在的项目中在使用webSocket这门技术,主要用来在服务端和客户端进行实时的数据传输,因为需要及时的进行响应,所以才没有使用http请求的方式, 而是使用socket的方式,这样可以 ...
- Dapr初体验之服务调用
初次理解服务调用 在微服务中,有一个难点就是:如果你想使用各个服务组件,你就得知道不同服务的地址和端口,也就是服务发现. 在传统应用我们是怎么做的?就是在web项目里配置上api地址,如下: 在一个w ...