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

DR模式介绍

DR模式

lvs的三种模式

nat:地址转换

DR模式:直接路由模式

tun:隧道模式

DR模式的特点

调度器在整个lvs集群当中是最重要的,在nat模式下,即负责接受请求,同时根据负载均衡的算法转发流量,响应发送给客户端

DR模式:调度器依然负责接收请求,同时也根据负载均衡算法转发到流量到RS,响应直接由RS响应给客户端

直接路由 Direct Routing 是一种二层转发模式,二层转发的是数据帧。根据原mac地址和目的mac地址进行转发

不会修改数据包源ip和目的ip,根据数据包mac地址进行转发

DR模式下,lvs也是维护一个虚拟的IP地址,所有请求都是发送到这个vip,既然是走二层转发,当客户端请求到达调度之后,根据负载均衡的算法选择一个RS,修改vip服务器的目的mac地址,RS处理完请求之后,根据报文当中客户端的源mac地址直接把响应发送到客户端即可,不需要走调度器了

1、调度器配置了vip,RS上也配置了vip地址

vip地址冲突,调度器和RS都在同一网段,ARP通信紊乱,因为整个局域网广播,所有设备都收到了

怎么把lo这个回环的响应把它屏蔽掉,只有本机的物理ip地址响应

修改内核参数

arp_ignore=1

系统的物理IP地址才会响应ARP请求,咯不会响应ARP请求

2、返回报文时,VIP地址还在,怎么样让客户端来接收到响应

arp_announce=2

系统不适用IP数据包的源地址来响应ARP请求,直接发送物理接口的IP地址。

节点服务器的配置:

DR模式的实现:

需要两台服务器

一个vip

一个调度器地址

一个客户端

在这里插入图片描述

安装ipvsadm

修改网卡

在这里插入图片描述

在这里插入图片描述

关闭转发功能

修改配置文件

etc/sysctl.cof

在这里插入图片描述
在这里插入图片描述

编辑的内容
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

设置策略

先保存再重启

在这里插入图片描述

修改配置文件重新导出

在这里插入图片描述

在原有的基础上修改

修改vip的轮询算法和权重

在这里插入图片描述

修改两台服务器的显示内容

修改回环地址

在这里插入图片描述

在这里插入图片描述

route add-host 20.0.0.100 dev lo:0

设置ip地址为20.0.0.100添加到回环接口,作为lvs的vip。通过路由的模式转发到RS.能让vip识别到真实的服务器

在这里插入图片描述

-p让它生效

在这里插入图片描述

简述lvs的三种模式和他们的区别

lvs的三种工作模式:

NAT*DR*TUN
优点地址转换,配置简单性能最好WAN,可以实现较远距离数据包转送
缺点性能瓶颈不支持跨网段专用通道需要开通VPN(花钱)
RS要求无限制必须要禁止非物理接口的ARP响应要支持隧道模式
RS数量10-20台100台100台

在原有的基础上修改

修改vip的轮询算法和权重

lvs和nginx做负载均衡的区别

lvs是四层转发 内核态 ip+端口 四层代理

nginx 四层转发 也可以七层代理

lvs(DR模式)+nginx+tomcat

lvs实现四层转发+nginx实现四层转发(动态)

访问lvs的vip地址可以实现动静分离

在这里插入图片描述

实验

在这里插入图片描述

实现一主一备

两台机器

systemctl stop firewalld
[root@test2 ~]# setenforce 0
[root@test2 ~]# vim /etc/sysctl.conf 
[root@test2 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
安装两个服务
yum -y install ipvsadm keepalived

添加策略更改权重

vim /etc/sysconfig/ipvsadm
[root@test2 ~]# systemctl restart ipvsadm
ipvsadm -e -t 20.0.0.100:80 -r 20.0.0.80:80 -w 3
[root@test2 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  20.0.0.100:80 rr-> 20.0.0.80:80                 Route   3      0          0         -> 20.0.0.85:80                 Route   1      0          0         

修改配置文件

 pwd
/etc/keepalived
[root@test2 keepalived]# ls
keepalived.conf
[root@test2 keepalived]# 

可将58行以下全部删除

 8    }9    notification_email_from Alexandre.Cassen@firewall.loc10    smtp_server 192.168.200.111    smtp_connect_timeout 3012    router_id lvs_01   修改名字可任意13    vrrp_skip_check_adv_addr14    vrrp_strict15    vrrp_garp_interval 016    vrrp_gna_interval 019 vrrp_instance VI_1 {20     state MASTER21     interface ens33   修改网卡22     virtual_router_id 10   主备保持一致23     priority 120    设置优先级24     advert_int 125     authentication {26         auth_type PASS27         auth_pass 111128     }   29     virtual_ipaddress {30         20.0.0.100   修改vip地址31     }   32 }   
34 virtual_server 20.0.0.100 80 {   修改到服务器端口35     delay_loop 636     lb_algo rr 37     lb_kind DR   将模式修改为DR38     persistence_timeout 5039     protocol TCP    

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++20中的基于范围的for循环(range-based for loop)
  • leetcode165.解密数字
  • 矩阵分析与应用1-矩阵代数基础
  • 热词分析与维度人物构建
  • HarmonyOS Next应用开发之系统概述
  • Flink 提交作业的方式
  • dataX入门
  • 科研绘图系列:R语言双侧条形图(bar Plot)
  • STM32的独立看门狗详解
  • 玄机——第五章 linux实战-CMS01 wp
  • GEE代码实例教程详解:降水量分类分析
  • Memcached 介绍与详解及在Java Spring Boot项目中的使用与集成
  • 开发个人Ollama-Chat--5 模型管理 (二)
  • Java数据结构-链表与LinkedList
  • 触摸屏虚拟键盘组件 jQuery Virtual Keyboard使用 自定义键盘
  • ECMAScript入门(七)--Module语法
  • js继承的实现方法
  • learning koa2.x
  • WePY 在小程序性能调优上做出的探究
  • 闭包--闭包之tab栏切换(四)
  • 对象管理器(defineProperty)学习笔记
  • 后端_ThinkPHP5
  • 基于axios的vue插件,让http请求更简单
  • 聊一聊前端的监控
  • 前端之Sass/Scss实战笔记
  • MPAndroidChart 教程:Y轴 YAxis
  • #### golang中【堆】的使用及底层 ####
  • #nginx配置案例
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $$$$GB2312-80区位编码表$$$$
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (五)MySQL的备份及恢复
  • (学习日记)2024.02.29:UCOSIII第二节
  • (译)计算距离、方位和更多经纬度之间的点
  • .bat批处理(一):@echo off
  • .Mobi域名介绍
  • .net core + vue 搭建前后端分离的框架
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .net开发日常笔记(持续更新)
  • .Net下的签名与混淆
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • /usr/bin/env: node: No such file or directory
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • @Transient注解
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
  • [000-002-01].数据库调优相关学习
  • [16/N]论得趣
  • [24年新算法]NRBO-XGBoost回归+交叉验证基于牛顿拉夫逊优化算法-XGBoost多变量回归预测