LVS--DR模型介绍及实现
ARP地址解析:
报文从客户的短到达路由器之后,会加上源mac地址(从路由器哪个接口进入的就是哪个接口的mac地址),当到达本地网络之后,会在整个本地网络中做arp地址解析广播,把ip地址转换为mac地址进行通信。路由器进行报文的源mac和目标mac的封装,发送给交换机,交换机通过维护的mac地址表,进行报文的转发。
相关内容:
通过修改请求报文的目标mac地址实现请求报文的转发。
(1)保证前端路由器将目标ip为vip的报文请求发送给调度器(director);
解决方法:
静态绑定:就是在路由器上进行配置一个arp地址表,将来自的访问请求直接解析为mac地址,发送给调度器(director);
arptables:在两台RS上配置arptables规则,将收到vip的arp报文请求拒绝应答或者拒绝访问;
修改RS主机内核的参数(最好用的):arp_announce(是否接受别人的通告,并且进行记录,是否通告给别人),arp_ignore(是否响应别人的arp请求)
(2)RS的RIP可以使用私有地址,但也可以使用公网地址;
(3)RS和director必须在同一物理网络中;
(4)请求报文必须经过director,但响应报文一定不能经由director;
(5)不支持端口映射;
(6)RS支持大多数OS;
(7)RS的网关不能指向DIP;
当rip、vip和dip在同一网段的时候,rip指向的网关为dip的网关。当rip、vip和dip不在同一网段的时候,rip指向的网关为直接能跟客户端通讯的下一跳路由器的ip。通过修改请求报文的mac地址进行转发,在dr模型中,在调度器(director)上有两个ip地址,为VIP和DIP。同样的在RS上也有两个ip地址,为VIP和RIP。通常情况下,在RS上,VIP一般配置在本地回环接口的别名上。
通常在director上,vip配置在网卡的别名上,dip就是网卡的ip地址。
调度详细过程:
第一步:客户端发起请求报文,报文的源IP地址为CIP,目标IP地址为VIP。在经过路由器的时候,通过对VIP的地址解析,封装为MAC帧数据, 其源MAC为(从路由器哪个接口进入的就是哪个接口的MAC的地址),进行ARP广播,只能找到VIP所在的调度器(director),同时进行对MAC帧数据进行解封。
第二步:调度器通过某种调度算法,找出一个RS,做ARP地址广播。之后,经过调度器调度之后,对请求报文进行封装包含源MAC地址(源MAC地址并不重要)、请求报文本身(包含源IP和目的IP)以及包含挑选出来的RS的MAC地址。调度器将这个封装报文发回给交换机,交换机通过本身的MAC地址表找到调用的RS,进行解封,发现目的IP地址即VIP在本机有,那么提供服务。
第三步:应答报文通过交换机和路由器直接返回给客户端。应答报文在在rs内部,由于客户端请求的为vip,所以不能通过rip所在网卡直接响应,必须在rs内部添加一条路由,使得从lo接口哪个别名上进来的请求,还得经过lo接口上的哪个别名出去。前提:服务器RS的RIP必须可以通过路由器与客户端进行通信。
实现拓扑:
实现对http服务的调度。
配置过程:
(1)对调度器(director)进行配置,同时在director上安装ipvsadm软件包。
添加vip在director上。
[root@7-1 ~]# ifconfig eno16777736:0 172.16.125.100/32 broadcast 172.16.125.100 up
要求是对vip172.16.125.100的请求必须经过eno16777736:0该接口进行响应。
[root@7-1 ~]# route add -host 172.16.125.100 dev eno16777736:0
(2)后端RS的详细配置:
首先修改内核参数,保证前段路由器将目标地址为vip的报文发送给director。在后端RS上都要进行设置。
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore # echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce # echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
然后添加vip到lo接口的别名上,并且绑定通过lo接口别名进来的报文必须经过lo接口别名设备发送出去。后端RS上都要设置,同时在后端RS上开启httpd服务。
[root@7-2 ~]# ifconfig lo:0 172.16.125.100/32 broadcast 172.16.125.100 up [root@7-2 ~]# route add -host 172.16.125.100 dev lo:0
(3)在调度器上进行ipvs规则的设置。
[root@7-1 ~]# ipvsadm -A -t 172.16.125.100:80 -s rr [root@7-1 ~]# ipvsadm -a -t 172.16.125.100:80 -r 172.16.125.6 -g [root@7-1 ~]# ipvsadm -a -t 172.16.125.100:80 -r 172.16.125.7 -g
测试,在实现的时候,采用的是rr(轮询)算法,在客户机上对vip进行访问。
转载于:https://blog.51cto.com/angrybird/1706587
LVS--DR模型介绍及实现相关推荐
- LVS DR模型详解
DR模型的特点: 1.director必须与realserver位于同一个网络. 2.realserver可以使用公网ip地址,便于远程管理与配置. 3.director只负责处理入站请求.而响应报文 ...
- lvs dr 模型配置详解
lvs dr 模型配置详解 [学习笔记] 前期准备: 两台服务器 note01(lvs服务器) note02(real sever) 1 首先在note01配置子网卡: ifconfig eth0:2 ...
- LVS DR模型及LVS持久连接
LVS之DR模型以及持久连接 LVS的简单介绍 linux virtual server 简单来讲lvs是一段内核代码 类似于netfilter本身是一框架但不提供任何功能,但是在这框架上提供了能够根 ...
- LVS DR模型配置示例
要让路由知道哪台主机是Director,进行选择: 1.VIP:MAC(Director VIP) -- MAC绑定,但未必可行,例如路由是运营商的. 2.arptables 3.kernel par ...
- LVS(14)——DR模型实践、交换机
DR模型的配置见我的上一篇博客: 在lvs主机上操作ipvsadm: 在第四台和第五台主机上开启httpd服务 这里实现了DR模型,接下来测试 在客户端访问该vip: 访问成功 总结:DR模型里的真实 ...
- LVS(13)——DR模型准备工作及ip地址冲突问题
之前,我们的模型都是-m,也就是NAT模型,但是我们如果不指定,默认模型是DR模型. 也就是route. DR模型也准备五台主机: (1)客户端主机 单网卡NAT 192.168.19.180 (2) ...
- 详解LVS配置DR模型
详解LVS配置DR模型 准备: 三台服务器,一台LVS,两台RS 操作 LVS: 8是随便写的 新配置一个虚拟网卡,作为LVS的VIP,之后的访问就用这个"192.168.28.150&qu ...
- 负载均衡集群LVS模式之DR模型
在NAT模型下,director的工作能力是很有限的,每个用户访问服务器时,都要先访问director,在一定的范围内director可以承受,但超出这个范围director就无能为力,在较大规模应用 ...
- lvs之 lvs原理架构介绍
一. 概念 lvs的术语: Router:GWIP vs:virtual server,director rs:real server CIP:client IP VIP:virtual serve ...
- LVS DR模式负载均衡
高并发场景 LVS 安装及高可用实现 分类: 运维基本功,故障解决 转载自 惨绿少年 https://www.cnblogs.com/clsn/p/7920637.html 1.1 负载均衡介绍 ...
最新文章
- mysql ls命令,Linux 常用 ls命令详解
- Windows 7会成为Win XP第二的10大理由
- I2C 协议分析和学习
- require('module') 是什么?
- Dot Graphiz 操作说明
- react创建项目报错unexpected end of json while parsing near xxx
- matlab读取三级文件夹方式
- 毫秒和秒的换算工具_使用后戒不掉的文档搜索工具:Everything
- 新媒体素材采集工具,帮你采集新媒体素材,提高效率
- ectouch微信登录提示此次操作失败请返回重试原因
- C#--打包安装项目
- 安装vum、npm、cnpm、vue/cli
- 商鼎云|亚马逊云盘关停了?你需要了解分布式存储云盘
- c++国际象棋上的麦粒
- freeMarker导出word带图片
- Proteus8.9 VSM Studio SDCC编译器仿真STC15W4K32S4系列013_iic_03_AT24C08
- 《高质量C/C++编程指南》第1期
- python量化交易之 放量跌到底买入-涨1.1再卖
- star邀请码卡密获取以及使用方法
- 高新技术产业的股权设计原则
热门文章
- hdu 4283 You Are the One ( dp 2012 ACM/ICPC Asia Regional Tianjin Online )
- 在线ASCII流程图编辑器工具
- Java G1 GC 垃圾回收深入浅出
- innoDB索引使用和优化汇总
- 项目中js文件修改后浏览器不能及时更新的解决办法
- 【cocos2d-x从c++到js】10:JS与C++的交互2——JS与C++的“函数重载”问题
- openstack虚拟机迁移live-migration中libvirt配置
- arguments对象
- 2011 端午后,杭州支付宝
- 取得GridPanel选定行所有字段值