LB集群-LVS-DR模式解析

上篇博客https://blog.51cto.com/14181896/2367578介绍LB集群的LVS-NAT模式 , 它是基于IP , 通过修改目标IP地址来实现的 , 而LVS-DR模式是基于数据链路层的负载均衡 , 它是通过修改修改MAC地址进行的负载均衡 .


 一 . LVS-DR模式作用及介绍


LVS-DR就是数据链路层负载均衡 , 是指在通信协议的数据链路层修改mac地址进行负载均衡

这种数据传输方式又称作三角传输模式,负载均衡数据分发过程中不修改IP地址,只修改目的mac地址,通过配置真实物理服务器集群所有机器虚拟IP和负载均衡服务器IP地址一致,从而达到不修改数据包的源地址和目的地址就可以进行数据分发的目的,由于实际处理请求的真实物理服务器IP和数据请求目的IP一致,不需要通过负载均衡服务器进行地址转换,可将相应数据包直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。


 二 . LVS-DR模式的工作过程


image.png


LVS-DR模式流程图解析

(1).当用户请求到达Director Server,,时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
(2).PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
(3).IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址 
(4).由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。
(5).RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP 
(6).响应报文最终送达至客户端


 三 . LVS-DR模型的特性


1). 保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS
2). RS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对RIP进行直接访问
3). RS跟Director Server必须在同一个物理网络中
4). 所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
5). 不支持地址转换,也不支持端口映射,因为DR模型是工作在二层的,二层只处理数据包中的MAC地址
6). RS可以是大多数常见的操作系统

7). RS的网关绝不允许指向DIP(因为我们不允许他经过director)
8). RS上的lo接口配置VIP的IP地址


 四 . 部署LVS-DR实例


实验目标 : 搭建LVS-DR模式负载均衡集群 , 部署LVS-DR服务器 和 两台apache后端服务器 .


实验拓扑图

image.png


实验准备:

客户端/服务器                          IP地址
Client
Directer  ServerDIP:192.168.11.11  VIP:192.168.10.100/24
Real  ServerRIP:192.168.11.12  VIP(lo:0):192.168.10.100/32
Real  ServerRIP:192.168.11.13  VIP(lo:0):192.168.10.100/32

实验需要解决的问题有:

两个http服务器除了有自己的rip以外还要拥有vip
    因为:数据包需从realServer返回 ,realServer返回的数据需要源IP为VIP
    解决:添加 lo接口(本地环路接口) ,lo:1   vip/32.
               ifconfig   lo:0   192.168.10.100/32     (up使用最好的ip来回应,什么是最好的ip?同一个网段内子网掩码最长的)

当GW(网关)向下广播vip的时候 要分发器的vip响应 而两个http的vip不要响应
    因为:realServer的vip有了,接着就是同一个网段中拥有两个vip, 客户端在网关发送arp广播需找vip时需要让realServer不接受响应.  
    解决:
       echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
       echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
       #arp_ignore 设置为1,意味着当别人的arp请求过来的时候,如果接收的设备没有这个ip,就不做出响应(这个ip在lo上,lo接收设备)
       echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce   
       echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
      

实验部署流程


关闭防火墙和selinux(3台服务器均执行)

systemctl  stop  firewalld          #关闭防火墙

setenforce   0                             #关闭selinux


部署后端服务器(192.168.11.12和192.168.11.13)

安装apache服务器(这里以脚本简单脚本方式进行部署)

[root@node12 ~]# vim apache.sh

rpm  -q  httpd || yum install  -y http >/dev/null            #查httpd软件是否安装 , 没有就安装

systemctl  restart  httpd && systemctl  enable  httpd   #启动httpd服务设置开机自启动

ifconfig lo:1 192.168.11.100 netmask 255.255.255.255    #设置虚拟接口IP为192.168.11.100(VIP) , 用于广播

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore          #关闭Linux内核功能 

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

ip  a                                                                                     #查看添加虚拟接口IP后的IP状态

echo  'www.node12.com'  >  /var/www/html/index.html

curl  192.168.11.12

将脚本传给主机192.168.11.13

scp  apache.sh  root@192.168.11.13:/root/

image.png

image.png

image.png


在192.168.11.13上运行脚本 , 查看IP信息并设置apache主页

image.png


部署LVS调度器(Director server  IP:192.168.11.11)

[root@node11 ~]# ifconfig ens33:0 192.168.11.100/24 up       #添加虚拟网卡IP为192.168.11.100/24

[root@node11 ~]# ip a                                                               #查看IP信息

 yum install -y ipvsadm > /dev/null                                           #安装ipvsadm软件

[root@node11 ~]# ipvsadm -A -t 192.168.11.100:80 -s wrr     #设置vip对应的后端apache群服务

[root@node11 ~]# ipvsadm -a -t 192.168.11.100:80 -r 192.168.11.12:80 -g -w 1     #设置权重为1

[root@node11 ~]# ipvsadm -a -t 192.168.11.100:80 -r 192.168.11.13:80 -g -w 3      #设置权重为3

[root@node11 ~]# ipvsadm -Ln                                             #查看ipvsadm设置的信息

[root@node11 ~]# curl 192.168.11.12                                     #访问192.168.11.12apache服务

[root@node11 ~]# curl 192.168.11.13                                     #访问192.168.11.13apache服务

image.png


windows客户端进行测试

image.png













原文地址:https://blog.51cto.com/14181896/2369030

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


现在给大家介绍一下如何查询MAC的生产日期,希望对你查询MAC的生产日期操作有所帮助。
1、点击【编辑虚拟机设置】,转到【CD/DVD (SATA)】,选中【使用 ISO 映像文件】复选框,点击【浏览】,找到已经准备好的 MacOS Ventura 镜像;4、客户机操作系统下,选择【Apple Mac OS X】,版本选择大家需要的【macOS版本】,再点击【下一步】;7、完成【抹掉】后,左上角关闭该窗口,返回上一界面,选择【Install macOS】,正式进入苹果系统安装流程;1、打开 Vmware Workstation,然后点击左上角的【文件】,打开的下拉项中,选择【新建虚拟机】;
注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本。一般情况 pip 对应的是 Python 2.7,pip3 对应的是 Python 3.x。pip介绍:pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。1.打开后输入python3确定电脑上是否已安装python3,如果输入python是查看mac上的自带版本。如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。如下图是已经成功安装pip的状态。
Mac 安装nvm
Mac(M1)安装VMware虚拟机及Linux系统
Mac 如何安装 Telnet,mac安装telnet命令
是不是对键盘输入厌烦了?那你可以试试语音输入。 你可以按照下面的步骤打开Mac的语音输入功能。 以 macOS Catalina 为例: Step 1. 点击屏幕左上角的图标,点击【系统偏好设置】。
1.clean my Mac x 2.Cleaner One Pro 3.App Cleaner
按caps lock键。 CapsLock键,短按切换中英文,长按切换大小写。
windows: 1.PowerToys 2.不用软件进行分屏 Windows 10技巧1:窗口1/4分屏 - Acer Community 介绍说明 从Win7时代开始,微软便引入了屏幕热区概念,即
https://zhuanlan.zhihu.com/p/111111684 下载地址: https://www.smoothscroll.net/mac/
https://support.apple.com/zh-cn/guide/imac/apd2e7352054/mac 浏览:24 英寸 iMac 24 英寸 iMac 比以往更个
在Mac自带的中文输入法中,“反斜杠”键(“\”)就是顿号。
1.系统偏好设置。 2和3步如下图: 注意:在设置后,启用capslock大写的时候,需要长按capslock键。
Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。简洁美观实时预览扩展语法跨平台免费Typora现在收费,但你仍然可以在官方网站上找到历史版本。虽然新版本仍然值得收费,但免费版本仍然可以使用。httpshttpshttpshttpshttpshttpshttpshttps。......
Mac M1安装Centos7
连接为官方下载链接, 直接复制MD5可迅雷下载亲测可用, 和付费版使用体验无差别.1. Windows 64bithttps://download.typora.io/windows/typora-setup-x64-0.11.18.exeMD5:12F96372BEE2951ACF5627EA28F8A389**2. Window 32bit **https://download.typora.io/windows/typora-setup-ia32-0.11.18.exeMD5:F5036
ubuntu22.04 、系统安装、win双系统、Ubuntu分区、Ubuntu优化、美化gnome tweaks,扩展、macos、搜狗输入法、wps字体、微信安装、navicat15、java开发环境搭建、idea 输入法问题处理、双系统问题、github慢等等。史上最全保姆级Ubuntu使用教程
MAC怎么获取文件路径 MAC获取文件路径的四种方法