环境:
在vm里开三个虚拟机
负载调度器:10.0.3.102
真实服务器1:10.0.3.103
真实服务器2:10.0.3.104

虚拟ip: 10.0.3.99 (用来飘移)

负载调度器上
ifconfig eth0:0 10.0.3.99 netmask 255.255.255.0 #增加虚拟ip
route add -host 10.0.3.99 dev eth0:0 #添加路由?这个不是很清楚
yum install ipvsadm* -y #安装ipvsamd*
ipvsadm -C #清空虚拟服务器列表 ,执行过一次后,后面这三条命令都要重新执行
ipvsadm -At 10.0.3.99:80 -s rr #增加一台虚拟服务器,调度算法为rr轮询
ipvsadm -at 10.0.3.99:80 -r 10.0.3.103:80 -g #在虚拟服务器里增加一台真实服务器
ipvsadm -at 10.0.3.99:80 -r 10.0.3.104:80 -g
ipvsadm -L  #查看
service iptables stop #关闭防火墙
vi /etc/selinux/config #关闭selinux
setenforce 0
watch ipvsadm

curl 10.0.3.99


IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.3.99:http rr
-> 10.0.3.103:http Route 1 0 0
-> 10.0.3.104:http Route 1 0 0

真实服务器A
ifconfig eth0:0 10.0.3.99 netmask 255.255.255.255
route add -host 10.0.3.99 dev eth0:0
echo “1” > /proc/sys/net/ipv4/conf/eth0/arp_ignore #后面有解释
echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
yum install httpd -y
service httpd start
vi /var/www/html/index.html
curl localhost
curl 10.0.3.100
curl 10.0.3.99
service firewalld stop
service iptables stop
curl 10.0.3.99
curl 10.0.3.99

真实服务器B
ifconfig eth0:0 10.0.3.99 netmask 255.255.255.255
route add -host 10.0.3.99 dev eth0:0
echo “1” > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
service iptables stop
setenforce 0
echo “2” > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
service iptables status
yum install httpd -y
service httpd start
vi /var/www/html/index.html

效果
[root@localhost ~]# curl 10.0.3.99
this is 103
[root@localhost ~]# curl 10.0.3.99
this is 104
[root@localhost ~]# curl 10.0.3.99
this is 104
[root@localhost ~]# curl 10.0.3.99
this is 103
注意,这个用浏览器访问时,可能需要多刷新几次,或另开一个窗口,亦或另开一个浏览器,才会出现ip飘移到另一台服务器ip的情况,显示另一个服务器对应的web页面

arp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式0
0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求
1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内

arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址做出arp回应.
当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.

2 -
对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址.
如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.

centos部署LVS负载均衡直接路由DR模式的更多相关文章

  1. LVS负载均衡集群--DR模式部署

    目录: 一.LVS-DR数据包流向分析 二.DR 模式的特点 三.LVS-DR中的ARP问题 四.DR模式 LVS负载均衡群集部署 一.LVS-DR数据包流向分析 1.为方便进行原理分析,将clien ...

  2. LVS 负载均衡 (VS/DR模式 与 VS/TUN 模式)

    一.VS/DR模式 ①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP. ②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将目标MAC改为了RIP的MAC ...

  3. LVS负载均衡常用的工作模式有NAT、DR、和TUN三种,其中DR模式性能最为优越,使用最为广泛。

    一.安装LVS LVS的编译安装参考本站文章:http://www.linuxe.cn/post-192.html,对于LVS这种功能性软件,在生产中用yum安装也是没有问题的. 1 yum inst ...

  4. LVS负载均衡集群--NAT模式部署

    目录: 一.企业群集应用概述 二.负载均衡群集架构 三.负载均衡群集工作模式分析 四.关于LVS虚拟服务器 五.NAT模式 LVS负载均衡群集部署 一.企业群集应用概述 1.群集的含义 Cluster ...

  5. LVS负载均衡机制之LVS-DR模式工作原理以及简单配置

    本博文主要简单介绍一下LVS负载均衡集群的一个基本负载均衡机制:LVS-DR:如有汇总不当之处,请各位在评论中多多指出. LVS-DR原理: LVS的英文全称是Linux Virtual Server ...

  6. LVS负载均衡的三种模式和八种算法总结

    三种LVS负载均衡模式 调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的。 LVS负载均衡模式---1.NAT模式 NAT用法本来是因为网络I ...

  7. 构建LVS负载均衡集群——NAT模式(最简单方式)

    一.装备一台lvs调度器主机要求两个网卡一个为内部局域网ip,一个为公网ip #IP地址设置过程不再重复 [root@localhost ~]# ip a | grep eth0 #内网ip : et ...

  8. LVS 负载均衡 三种工作模式 十种调度算法

    原文链接:https://blog.csdn.net/weixin_40470303/article/details/80541639 一.LVS简介 LVS(Linux Virtual Server ...

  9. LVS负载均衡集群(DR)

    -----构建DR模式的LVS群集----- --client---------------------LVS------------------------WEB1----------------- ...

随机推荐

  1. 【转】一款开源免费跨浏览器的视频播放器--videojs使用介绍

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  2. spark 笔记 8: Stage

    Stage 是一组独立的任务,他们在一个job中执行相同的功能(function),功能的划分是以shuffle为边界的.DAG调度器以拓扑顺序执行同一个Stage中的task. /** * A st ...

  3. AXIS2 通过 WSDL生成JAVA文件

    有时在我们的开发中可能会有这种情况就是你要使用webservice但是对方没有给你提供java文件,可能就只会给你一个wsdl文件,这种文件和xml文件是比较相似.axis2也给我们提供了很好的工具如 ...

  4. Uep查询语句总结

    今天没事干总结一下uep查询语句: 第一种方法: 注意在实体写上对应的构造方法 package com.haiyisoft.entity.wz; import java.math.BigDecimal ...

  5. python MySQLdb 如何设置读超时read_timeout

    在python中,经常用到 MySQLdb操作MySQL数据库. 在实现上,MySQLdb并不是纯python的,而是封装了MySQL C API库_mysql. 对于MySQLdb是否支持read_ ...

  6. Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)

    本文装载自:http://blog.csdn.net/u012737182/article/details/52831008    感谢原文作者分享 开发环境:Tomcat9.0 在使用Ajax实现R ...

  7. Cinder 架构分析、高可用部署与核心功能解析

    目录 文章目录 目录 Cinder Cinder 的软件架构 cinder-api cinder-scheduler cinder-volume Driver 框架 Plugin 框架 cinder- ...

  8. Cinder LVM backend cinder-volume service down

    目录 文章目录 目录 问题 调查 解决 问题 [stack@manager ~]$ cinder service-list +------------------+------------------ ...

  9. 缓存融合(Cache Fusion)介绍

    概念 简单地说,缓存融合就是把Oracle RAC数据库中所有数据库缓存作为一个共享的数据库缓存,并被RAC中的所有节点共享.它是实现RAC的基本技术. 缓存融合主要有如下四个功能: (1) 提供扩展 ...

  10. 关系/对象映射 多对多关系(@ManyToMany 注释)【重新认识】

    old: @ManyToMany 注释:表示此类是多对多关系的一边, mappedBy 属性定义了此类为双向关系的维护端, 注意:mappedBy 属性的值为此关系的另一端的属性名. 例如,在Stud ...