LVS-DR工作模式简介(相对nat性能更高)

LVS-DR工作模式简介(相对nat性能更高)1.工作原理:共享ip+修改mac(保证识别回包的mac地址)共享ip:虚拟网卡接口lo修改mac:内核参数在这种模式下,LVS调度器(也称为Director)和后端真实服务器(Real Server)都配置有相同的VIP(Virtual IP)地址,但客户端只向LVS调度器发送请求。LVS调度器根据配置的负载均衡算法选择一台后端真实服务器,并修改请求报文的目标MAC地址,将其改为选中的后端真实服务器的MAC地址,但源IP地址和目标IP地址保持不变。修改后的请求报文通过二层网络直接转发到选中的后端真实服务器。后端真实服务器处理请求并生成响应报文,然后将响应报文直接发送给客户端,绕过LVS调度器。MAC地址是网络设备网络通信中的唯一识别标识,MAC地址帮助网络设备在局域网内找到目标设备的物理位置,从而实现数据传输。当设备连接到局域网时,网络交换机和路由器使用MAC地址来转发数据包。通过MAC地址,网络中的设备可以相互识别和通信,确保数据能够准确传送到目标设备。	2.内核"参数":net.ipv4.conf.all.arp_ignore和net.ipv4.conf.all.arp_announce1)net.ipv4.conf.all.arp_ignore发送ARP响应数据包的条件级别。0(默认值):回应任何网络接口上对任何本机IP地址的ARP(地址解析协议)查询请求。也就是说,只要ARP请求数据包所请求的IP地址属于本机任何一个网络接口配置的IP地址,系统就会回应ARP响应数据包,无论该IP地址是否属于接收到ARP请求数据包的网卡。1:回应目标IP地址是本机上来访网络接口IP地址的ARP查询请求。即,只有ARP请求数据包所请求的IP地址属于当前接收ARP请求数据包的网卡的IP地址时,系统才会回应ARP响应数据包。2:回应目标IP地址是本机上来访网络接口IP地址的ARP查询请求,且来访IP必须与该网络接口上的IP在同一子网段内。2)net.ipv4.conf.all.arp_announce发送ARP请求数据包时,如何选择数据包中的发送方IP地址。0(默认值):在任意网络接口上使用任何本机地址进行ARP请求。也就是说,系统准备通过网卡发送一个IP数据包前,会发送ARP请求数据包来获取目标MAC地址,此时ARP请求数据包中的发送方IP地址通常就是待发送的IP数据包的源IP地址,无论该IP地址是否属于当前发送ARP请求数据包的网卡。1:使用属于该网络接口子网的本地地址作为发送方IP地址。2:使用与目标IP地址对应的最佳本地IP地址作为ARP请求的发送方IP地址。在此模式下,系统将忽略IP数据包的源IP地址,并尝试选择能与目标IP地址通信的本机地址作为ARP请求数据包的发送方IP地址。3.实验环境准备(机器在同一个ip网段下)LVS DR模式,LVS主机和web服务器都是单网卡,它们连在同一网络中(1)实验环境client1:eth0-> 192.168.88.10lvs1:eth0->192.168.88.5,删除eth1的IPweb1:eth0->192.168.88.100web2:eth0->192.168.88.200(2)网卡相关配置1)网卡虚拟接口配置:ifconfig eth0:0 192.168.88.241/242)关闭ifconfig eth0:0 down3)激活虚拟网卡接口:ifup eth0:03)NetworkManager和networkNetworkManager:动态管理网络连接,可以在运行时动态地添加、删除、修改网络连接network:静态配置网络连接,需要手动编辑配置文件来更改网络设置,重启网络服务后,配置才会生效网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-名(eth0:0)eth0:0通常表示eth0这个网络接口的子接口或虚拟接口。4.LVS-DR配置操作步骤(1)lvs1,web1,web2安装network-scripts包ipvsadm包(2)lvs1,web1,web2主机配置网卡虚拟接口IP地址,激活虚拟网卡接口(实现共享ip)/etc/sysconfig/network-scripts/ifcfg-名(eth0:0)(3)web1,web2调整内核参数设置是否启用ARP广播和arp宣告(真实服务器配置)/etc/sysctl.conf(4)配置LVS-DR模式规则(5)curl 测试(1)lvs1,web1,web2安装network-scripts包ipvsadm包网卡接口配置文件:/etc/sysconfig/network-scripts/ifcfg----- name: install soft        #安装network-scripts软件hosts: lbs,webserverstasks:- name: install network-scripts     #安装软件yum: name: network-scriptsstate: present(2)lvs1,web1,web2主机eth0配置网卡虚拟接口IP地址,激活虚拟网卡接口(实现共享ip)/etc/sysconfig/network-scripts/ifcfg-名(eth0:0)- name: config lvs vip      #配置lvs1主机eth0网卡虚拟接口IP地址hosts: lbstasks:- name: config file                 #生成ifcfg-eth0:0配置文件copy: content: |TYPE=EthernetDEVICE=eth0:0  #设备名NAME=eth0:0    IPADDR=192.168.88.15PREFIX=24       BROADCAST=192.168.88.255ONBOOT=yes    #是否自动连接dest: /etc/sysconfig/network-scripts/ifcfg-eth0:0notify: active viphandlers:- name: active vip                  shell: ifup eth0:0 #激活虚拟网卡eth0:0- name: config web vip      #配置webservers主机lo虚拟接口IP地址hosts: webserverstasks:- name: config file                 #生成ifcfg-lo:0配置文件copy:content: |DEVICE=lo:0NAME=lo:0IPADDR=192.168.88.15PREFIX=32NETWORK=192.168.88.15BROADCAST=192.168.88.15ONBOOT=yesdest: /etc/sysconfig/network-scripts/ifcfg-lo:0notify: active viphandlers:- name: active vip                  #激活lo:0shell: ifup lo:0(3)web1,web2调整内核参数设置是否接收ARP请求(真实服务器配置)内核参数配置文件:/etc/sysctl.conf,写入四个参数net.ipv4.conf.all.arp_ignore=1   #忽略arp广播net.ipv4.conf.lo.arp_ignore=1net.ipv4.conf.all.arp_announce=2 #忽略arp宣告net.ipv4.conf.lo.arp_announce=2---- name: config kernel argshosts: webserverstasks:- name: config arp_ignore   #配置忽略arp广播sysctl:name: "{{ item }}"value: "1"sysctl_set: truesysctl_file: /etc/sysctl.confloop: - net.ipv4.conf.all.arp_ignore- net.ipv4.conf.lo.arp_ignorenotify: flush args- name: config arp_announce #配置禁止arp宣告sysctl:name: "{{ item }}"value: "2"sysctl_set: truesysctl_file: /etc/sysctl.confloop:- net.ipv4.conf.all.arp_announce- net.ipv4.conf.lo.arp_announcenotify: flush argshandlers:- name: flush args          #刷新sysctl.conf文件配置shell: "sysctl -p"(4)配置LVS-DR模式规则ipvsadm -A -t 192.168.88.15:80 -s wlcipvsadm -a -t 192.168.88.15:80 -r 192.168.88.100:80 -w 1 -gipvsadm -a -t 192.168.88.15:80 -r 192.168.88.200:80 -w 2 -gipvsadm -Ln #查看规则(5)curl 测试三.LVS持久化规则ipvsadm-save:保存持久化规则到文件ipvsadm-restore:调用文件启用持久化规则  

LVS-DR工作模式简介(相对nat性能更高)

        1.工作原理:共享ip+修改mac(保证识别回包的mac地址)

            共享ip:虚拟网卡接口lo
            修改mac:内核参数

        在这种模式下,LVS调度器(也称为Director)和后端真实服务器(Real Server)都配置有相同的VIP(Virtual IP)地址,但客户端只向LVS调度器发送请求。LVS调度器根据配置的负载均衡算法选择一台后端真实服务器,并修改请求报文的目标MAC地址,将其改为选中的后端真实服务器的MAC地址,但源IP地址和目标IP地址保持不变。修改后的请求报文通过二层网络直接转发到选中的后端真实服务器。后端真实服务器处理请求并生成响应报文,然后将响应报文直接发送给客户端,绕过LVS调度器。

        MAC地址是网络设备网络通信中的唯一识别标识,MAC地址帮助网络设备在局域网内找到目标设备的物理位置,从而实现数据传输。当设备连接到局域网时,网络交换机和路由器使用MAC地址来转发数据包。通过MAC地址,网络中的设备可以相互识别和通信,确保数据能够准确传送到目标设备。    

        2.内核"参数":net.ipv4.conf.all.arp_ignore和net.ipv4.conf.all.arp_announce

            1)net.ipv4.conf.all.arp_ignore

                发送ARP响应数据包的条件级别。

                0(默认值):回应任何网络接口上对任何本机IP地址的ARP(地址解析协议)查询请求。也就是说,只要ARP请求数据包所请求的IP地址属于本机任何一个网络接口配置的IP地址,系统就会回应ARP响应数据包,无论该IP地址是否属于接收到ARP请求数据包的网卡。

                1:回应目标IP地址是本机上来访网络接口IP地址的ARP查询请求。即,只有ARP请求数据包所请求的IP地址属于当前接收ARP请求数据包的网卡的IP地址时,系统才会回应ARP响应数据包。


                2:回应目标IP地址是本机上来访网络接口IP地址的ARP查询请求,且来访IP必须与该网络接口上的IP在同一子网段内。

            2)net.ipv4.conf.all.arp_announce

                发送ARP请求数据包时,如何选择数据包中的发送方IP地址。

                0(默认值):在任意网络接口上使用任何本机地址进行ARP请求。也就是说,系统准备通过网卡发送一个IP数据包前,会发送ARP请求数据包来获取目标MAC地址,此时ARP请求数据包中的发送方IP地址通常就是待发送的IP数据包的源IP地址,无论该IP地址是否属于当前发送ARP请求数据包的网卡。

                1:使用属于该网络接口子网的本地地址作为发送方IP地址。

                2:使用与目标IP地址对应的最佳本地IP地址作为ARP请求的发送方IP地址。在此模式下,系统将忽略IP数据包的源IP地址,并尝试选择能与目标IP地址通信的本机地址作为ARP请求数据包的发送方IP地址。

        3.实验环境准备(机器在同一个ip网段下)
            LVS DR模式,LVS主机和web服务器都是单网卡,它们连在同一网络中
            (1)实验环境
                client1:eth0-> 192.168.88.10
                lvs1:eth0->192.168.88.5,删除eth1的IP
                web1:eth0->192.168.88.100
                web2:eth0->192.168.88.200

            (2)网卡相关配置

                1)网卡虚拟接口配置:ifconfig eth0:0 192.168.88.241/24
                2)关闭ifconfig eth0:0 down
                3)激活虚拟网卡接口:ifup eth0:0

        3)NetworkManager和network

         NetworkManager:动态管理网络连接,可以在运行时动态地添加、删除、修改网络连接

         network:静态配置网络连接,需要手动编辑配置文件来更改网络设置,重启网络服务后,配置才会生效
            网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-名(eth0:0)
            eth0:0通常表示eth0这个网络接口的子接口或虚拟接口。

        4.LVS-DR配置操作步骤

            (1)lvs1,web1,web2安装network-scripts包ipvsadm包

            (2)lvs1,web1,web2主机配置网卡虚拟接口IP地址,激活虚拟网卡接口(实现共享ip)
                /etc/sysconfig/network-scripts/ifcfg-名(eth0:0)

            (3)web1,web2调整内核参数设置是否启用ARP广播和arp宣告(真实服务器配置)
                /etc/sysctl.conf

            (4)配置LVS-DR模式规则

            (5)curl 测试

            (1)lvs1,web1,web2安装network-scripts包ipvsadm包
                
                网卡接口配置文件:/etc/sysconfig/network-scripts/ifcfg-

                ---
                - name: install soft        #安装network-scripts软件
                  hosts: lbs,webservers
                  tasks:
                    - name: install network-scripts     #安装软件
                      yum: 
                        name: network-scripts
                        state: present

            (2)lvs1,web1,web2主机eth0配置网卡虚拟接口IP地址,激活虚拟网卡接口(实现共享ip)
                /etc/sysconfig/network-scripts/ifcfg-名(eth0:0)

                - name: config lvs vip      #配置lvs1主机eth0网卡虚拟接口IP地址
                  hosts: lbs
                  tasks:
                    - name: config file                 #生成ifcfg-eth0:0配置文件
                      copy: 
                        content: |
                          TYPE=Ethernet
                          DEVICE=eth0:0  #设备名
                          NAME=eth0:0    
                          IPADDR=192.168.88.15
                          PREFIX=24       
                          BROADCAST=192.168.88.255
                          ONBOOT=yes    #是否自动连接
                        dest: /etc/sysconfig/network-scripts/ifcfg-eth0:0
                      notify: active vip
                  handlers:
                    - name: active vip                  
                      shell: ifup eth0:0 #激活虚拟网卡eth0:0

                - name: config web vip      #配置webservers主机lo虚拟接口IP地址
                  hosts: webservers
                  tasks:
                    - name: config file                 #生成ifcfg-lo:0配置文件
                      copy:
                        content: |
                          DEVICE=lo:0
                          NAME=lo:0
                          IPADDR=192.168.88.15
                          PREFIX=32
                          NETWORK=192.168.88.15
                          BROADCAST=192.168.88.15
                          ONBOOT=yes
                        dest: /etc/sysconfig/network-scripts/ifcfg-lo:0
                      notify: active vip
                  handlers:
                    - name: active vip                  #激活lo:0
                      shell: ifup lo:0

            (3)web1,web2调整内核参数设置是否接收ARP请求(真实服务器配置)

             内核参数配置文件:/etc/sysctl.conf,写入四个参数
                   net.ipv4.conf.all.arp_ignore=1   #忽略arp广播
                      net.ipv4.conf.lo.arp_ignore=1
                      net.ipv4.conf.all.arp_announce=2 #忽略arp宣告
                      net.ipv4.conf.lo.arp_announce=2
            
                ---
                - name: config kernel args
                  hosts: webservers
                  tasks:
                    - name: config arp_ignore   #配置忽略arp广播
                      sysctl:
                        name: "{{ item }}"
                        value: "1"
                        sysctl_set: true
                        sysctl_file: /etc/sysctl.conf
                      loop: 
                        - net.ipv4.conf.all.arp_ignore
                        - net.ipv4.conf.lo.arp_ignore
                      notify: flush args
                    - name: config arp_announce #配置禁止arp宣告
                      sysctl:
                        name: "{{ item }}"
                        value: "2"
                        sysctl_set: true
                        sysctl_file: /etc/sysctl.conf
                      loop:
                        - net.ipv4.conf.all.arp_announce
                        - net.ipv4.conf.lo.arp_announce
                      notify: flush args
                  handlers:
                    - name: flush args          #刷新sysctl.conf文件配置
                      shell: "sysctl -p"
            
            (4)配置LVS-DR模式规则

                ipvsadm -A -t 192.168.88.15:80 -s wlc
                ipvsadm -a -t 192.168.88.15:80 -r 192.168.88.100:80 -w 1 -g
                ipvsadm -a -t 192.168.88.15:80 -r 192.168.88.200:80 -w 2 -g
                ipvsadm -Ln #查看规则

            (5)curl 测试


三.LVS持久化规则
    
    ipvsadm-save:保存持久化规则到文件
    
    ipvsadm-restore:调用文件启用持久化规则  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Libevent库-http通信不同请求方式的处理

做项目的时候用到了http通信&#xff0c;同事用libevent库写的&#xff0c;特此记录后端从前端拿到消息后的处理方式 void CHTTPTest::request(const std::any & data) {// data 是从前端拿到的数据void *obj std::any_cast<void *>(data); // std::any是C17新标准…

qt QToolBox详解

1、概述 QToolBox是Qt框架中的一个控件&#xff0c;它提供了一个带标签页的容器&#xff0c;用户可以通过点击标签页标题来切换不同的页面。QToolBox类似于一个带有多页选项卡的控件&#xff0c;但每个“选项卡”都是一个完整的页面&#xff0c;而不仅仅是标签。这使得QToolBo…

跨UI发送信号

如何自定义信号 1.使用signals声明 2.返回值是void 3.在需要发送的地方使用 emit 信号名字(参数); 进行发送 4.在需要链接的地方使用connect进行链4 接 signals:void sig_addOne(int value); connect(&dlg,&SetDialog::sig_addOne,[](int value){ui->lineEdit…

【LeetCode每日一题】——189.轮转数组

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【题目进阶】八【解题思路】九【时空频度】十【代码实现】十一【提交结果】 一【题目类别】 数组 二【题目难度】 中等 三【题目编号】 189.轮转数组 四【题目描述】 …

Spring Boot英语知识网站:架构与开发

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

java-分而治之算法

分而治之&#xff08;Divide and Conquer&#xff09;算法是一种解决问题的策略&#xff0c;它将一个复杂的问题分解成若干个相同或相似的子问题&#xff0c;递归地解决这些子问题&#xff0c;然后将它们的解合并以解决原始问题。这种算法通常用于排序、搜索、数学计算等领域。…

Mac 系统上控制台常用性能查看命令

一、top命令显示 在macOS的控制台中&#xff0c;top命令提供了系统当前运行的进程的详细信息以及整体系统资源的利用情况。下面是对输出中各个字段的解释&#xff1a; Processes: 483 total: 系统上总共有483个进程。 2 running: 当前有2个进程正在运行。 481 sleeping: 当前有…

捉虫笔记(七)-再探谁把系统卡住了

捉虫笔记&#xff08;七&#xff09;-再探谁把系统卡住 1、内核调试 在实体物理机上&#xff0c;内核调试的第一个门槛就是如何建立调试链接。 这里我选择的建立网络连接进行内核调试。 至于如何建立网络连接后续文章再和大家分享。 2、如何分析 在上一篇文章中&#xff0c;我们…

C++设计模式-享元模式

动机(Motivation) 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中&#xff0c;从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时&#xff0c;让外部客户程序仍然能够透明地使用面向对象的方式来进行操作…

SpringBoot(四十三)SpringBoot集成xxl-job分布式任务调度平台

这里我来记录一下Springboot项目集成xxl-job分布式任务调度平台及使用的过程。 一:xxl-job介绍 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 xxl-job是一个开源的分布式定时…

Rook入门:打造云原生Ceph存储的全面学习路径(下)

文章目录 六.Rook部署云原生CephFS文件系统6.1 部署cephfs storageclass6.2 创建容器所需cephfs文件系统6.3创建容器pod使用rook-cephfs提供pvc6.4 查看pod是否使用rook-cephfs 七.Ceph Dashboard界面7.1 启用dashboard开关7.2 ceph-dashboard配置外部访问7.3 Dashboard web ad…

java:aqs实现自定义锁

aqs采用模板方式设计模式&#xff0c;需要重写方法 package com.company.aqs;import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.AbstractQueuedSynchronizer; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock;…

Centos 使用宝塔安装mysql详细步骤

安装宝塔 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh输入y 2直接在网页访问下载安装3.安装mysql 如图 输入 mysql -u root -p 然后输入密码 密码如何可以设置默认有一个可以直接用修改密…

电动工具领域可推荐的一些调速控制电路,运算放大器芯片等相关型号

电动工具调速控制电路芯片 GS069&#xff1a;该芯片是专门为电动工具调速控制而设计的芯片&#xff0c;通过调节电机的转速&#xff0c;满足不同工作场景下对电动工具转速的需求&#xff0c;从而实现诸如钻孔、拧紧螺丝等不同操作的速度控制. 运算放大器芯片 D8541/2&#xff…

ZooKeeper 基础知识总结

先赞后看&#xff0c;Java进阶一大半 ZooKeeper 官网这样介绍道&#xff1a;ZooKeeper 是一种集中式服务&#xff0c;用于维护配置信息、命名、提供分布式同步和提供组服务。 各位hao&#xff0c;我是南哥&#xff0c;相信对你通关面试、拿下Offer有所帮助。 ⭐⭐⭐一份南哥编写…

MySQL 用户与权限管理

MySQL 是一种广泛使用的关系型数据库管理系统,支持多用户访问和权限控制。在多用户环境下,数据库安全至关重要,而用户和权限管理是数据库管理中最基础也是最重要的一部分。通过合理地创建和管理用户、分配和管理权限、使用角色权限,可以有效地保护数据库,确保数据的安全性…

玩转 Burp Suite (1)

内容预览 ≧∀≦ゞ 玩转 Burp Suite (1)声明Burp Suite 简介Dashboard&#xff08;仪表盘&#xff09;1. 默认任务管理2. 暂停任务3. 新建扫描任务4. 使用总结 Target&#xff08;目标&#xff09;1. SIte Map &#xff08;站点地图&#xff09;2. Scope&#xff08;范围&#…

heapq模块常用方法

heapq.heapify(x) import heapq# heapq.heapify(x)将列表x转换为堆 # 在堆数据结构中&#xff0c;最小元素总是位于根节点&#xff08;索引为 0&#xff09; # 这个操作是在原列表上进行的&#xff0c;会改变列表的顺序 my_list [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] heapq.hea…

BGP协议路由黑洞

一、实验环境 1、分公司与运营商AS自治系统内运行IGP路由协议OSPF、RIP或静态路由&#xff0c;AS自治系统内通过IBGP路由协议建立BGP邻居关系。 2、公司AS自治系统与运营商AS自治系统间运行EBGP路由协议。 3、通过loopback建立IBGP与EBGP邻居关系&#xff0c;发挥loopback建立…

ThinkPHP Nginx 重写配置

目录 NGINX 重写 Admin项目隐藏入口文件&#xff0c;且禁用Admin模块&Admin.php 1️⃣配置仅用模块 2️⃣新增admin_xyz.php文件&#xff08;自定义入口文件名&#xff09;&#xff0c;并绑定admin模块 3️⃣配置nginx 重写规则 NGINX 重写 在Nginx低版本中&#xff0…