当前位置: 首页 > news >正文

LVS中的DR模式,直接路由模式

DR模式工作原理介绍

请求经过调度器,响应由real  server  直接响应给客户端。

如上图所示,real server想要正常访问互联网,后端的real server的网关就得写网络中真实的网关。

DR模式的核心要素:【重点】

1.请求经过调度器,响应由real server直接给客户端

2.配置real  server网关时要写网络中真实的网关,确保real  server可以正常访问互联网。

3.DIP,VIP要在相同的网络中。

4.在所有的real  server上配置vip,目的就是为了让real server能够正常的处理客户端请求。

arp_ignore=1 只让主机回复关于物理网卡的ARP响应。

arp_announce=2让主机以适当的地址发送响应。

5.real  server的操作系统只能是类Linux操作系统,【原因是系统的参数可以修改。】

不会涉及到地址的转换。

在LVS的DR模式当中,调度器的DIP和VIP地址,和后端服务器的RIP地址都处于一个网段中,

当客户端请求转发到后端服务器的时候,后端服务器对客户端请求进行数据处理,对客户端请求进行解封装的时候,会发现这个请求是发送给调度器的VIP地址的。

任何一个主机收到一份数据只要这个目的地址不是主机IP,那么这个主机就会丢弃这份数据,给客户端带来的影响就是客户端访问不到服务。

如上图所示,怎么解决这个问题?

因此,以LVS的DR模式构建集群的时候,为了确保后端的real  server能够正常的处理请求。

我们需要在DR模式里面,在每个real server机器上也都去配置vip地址。

但是此时同一个IP地址,也就是说同一个VIP地址出现在多台机器上,这会造成IP地址冲突的问题,

此时我们还需要去解决IP地址冲突的问题,

那么我们想一下,主机和主机之间是怎么检测到IP地址有冲突的?

使用的就是ARP协议

ARP协议的作用就是用来获取某个IP地址对应的MAC地址的。

如果主机向外界发送IP地址为192.168.88.10的IP地址,并且询问这个IP地址对应的MAC地址,如果主机收到了这个IP对应的MAC地址则证明IP地址冲突,如果主机没有收到关于这个IP地址对应的MAC地址则证明IP地址没有冲突。【这个主机的IP地址是192.168.88.10】

在LVS的DR模式的负载均衡集群中,我们可以想办法使得real server机器上的VIP地址不往外发送关于ARP协议的响应,只让调度器上的VIP地址往外发送关于ARP协议的响应。【此时就解决了vip地址冲突的问题。】

如上图所示,我们可以去手动修改real  server上内核参数,即使得net.ipv4.conf.all.arp_ignore=1

arp_ignore的取值有0和1和2

其中0表示允许机器响应关于arp协议的请求,2表示禁止机器响应所有关于arp协议的请求。

1表示的是只让机器回复关于物理网卡IP地址的ARP响应。

使得real  server不响应虚拟网卡的ARP协议响应。

real  server上有两个IP地址,一个是物理网卡上的IP地址,一个是虚拟网卡上的IP地址,那么此时real  server再往外发送数据的时候,默认的源IP地址都会是物理网卡的IP地址。此时客户端面对响应数据的源IP地址是real  server物理网卡的IP地址的时候,就会把响应数据丢弃。

造成的结果还是客户端无法访问服务。

此时我们面对这个问题,我们还需要修改real  server机器上的另一个内核参数,

arp_announce=0修改默认值为2

此时的real  server再次往外发送数据的时候,就会以合适的IP地址向外发送数据。【也就是说,如果访问的是real server上的VIP地址,real server就以虚拟网卡的VIP地址进行回应,如果访问的是real  server上的物理网卡的IP地址,real server就会以物理网卡的IP地址进行回应。】

DR模式web集群案例

如上图所示,做一个DR模式的web集群案例。、

1)real  server安装httpd,建立测试文件。

2)在所有的real  server上配置VIP【配置在本地回环网卡上,】

在DR模式里面配置VIP的时候,VIP的子网掩码必须是32位子网掩码,子网掩码全部都是1

此时的VIP即是一个网段,也是一个IP,这个网段中的IP地址只有VIP自己,不能写其他的子网掩码,否则这个VIP地址中会多出来到达这个VIP地址的路由地址,会影响我们服务的正常访问。

如上图所示,这就是添加IP地址到指定网卡的操作。

如上图所示,每个real  server的机器上都要配置这个VIP地址。

这条命令是临时生效的,如果想要这个命令永久生效,就需要将这个命令写到rc.local文件里面。

3.修改所有real  server上的arp参数。

如上图所示,我们需要在real  server机器上将net.ipv4.conf.all.arp_ignore=0修改为1

如上图所示,我们需要设置这个net.ipv4.conf.all.arp_announce=2

随后使用systctl  -p使得修改的内核参数生效。

4)在调度器上配置VIP地址。

如上图所示,将VIP地址添加到调度器上的lo本地回环网卡上,

5)创建虚拟服务

如上图所示,这是在调度器上创建虚拟服务,配置负载均衡集群,查看负载均衡表的操作。

6)测试访问

相关文章:

  • LeetCode:二叉树的最大深度
  • 基于DR模式的LVS集群案例
  • oracle 触发器与commit的先后执行顺序
  • Linux如何安装AppImage程序
  • Postman中https和http的区别是什么?
  • 2025数字中国创新大赛-数字安全赛道数据安全产业积分争夺赛决赛Writeup
  • fedora系统详解详细版本
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十)
  • 初学Python爬虫
  • 架设手游使用游戏盾SDK怎么提升网络速度?
  • 音频相关基础知识
  • RTC实时时钟DS1337S/PT7C4337WEX国产替代FRTC1337S
  • webRtc之指定摄像头设备绿屏问题
  • Ubuntu 单机多卡部署脚本: vLLM + DeepSeek 70B
  • 游戏引擎学习第262天:绘制多帧性能分析图
  • MySQL的深度分页如何优化?
  • ESP32开发入门(五):WiFi 开发实践
  • 0509滴滴前端项目常见内容
  • ElementUI 表格el-table自适应高度设置
  • 007 Linux 开发工具(上)—— vim、解放sudo、gc+
  • 阶跃星辰CEO姜大昕:追求智能上限仍是最重要的事,多模态的“GPT-4时刻”尚未到来
  • 第四轮伊美核谈判将于11日在阿曼举行
  • 数理+AI+工程,上海交大将开首届“笛卡尔班”招生约20名
  • A股三大股指低收:银行股再度走强,两市成交11920亿元
  • 一周文化讲座|城市移民与数字时代的新工作
  • 江苏省人社厅党组书记、厅长王斌接受审查调查