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

news/2024/11/30 6:32:14/
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.ppmy.cn/news/1551127.html

相关文章

电销卡风控管理系统

开发背景: 1、很多业务场景下为确保服务质量,需要对手机呼出的电话进行录音备份管理,在线试听,AI质检过滤风险关键词以及话术进行预警,防止挂羊头卖猪肉。 2、对于风险客户和在跟进客户进行拦截呼叫,一个团…

Flutter 1.2:flutter配置gradle环境

1、在android的模块中进行gradle环境配置 ①在 gradle-wrapper.properties文件中将url配置为阿里云镜像,因为gradle的服务器在国外,国内下载非常慢,也可在官网进行下载 gradle版本下载 gradle版本匹配 阿里云镜像gradle下载 可以通过复制链…

原生js上传图片

无样式上传图片 创建一个 FormData 对象:这个对象可以用于存储数据。 将文件添加到 FormData 对象:通过 append() 方法,将用户选择的文件添加到 formData 对象中。 使用 fetch 发送请求:使用 fetch API 或者其他方法将 FormDat…

C语言 qsort及应用

qsort及应用 qsort:快速排序函数,需要引用stdlib.h文件. void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *, const void *) ); 参数: base:需要排序的数组 num:数据个数(数组长度) width:每个数据的字节数(sizeof(数据类型)) compa…

docker从入门到入土

卸载旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ …

HtmX 表达的创建和交互

HTMX 提供了强大的功能&#xff0c;使得开发者能够创建可交互的表单元素&#xff0c;并提供更好的用户体验。以下是如何使用 HTMX 创建可交互表单元素的步骤&#xff1a; 1. 创建表单元素: 使用 HTML 创建基本的表单元素&#xff0c;例如 <input>、<select> 和 <…

go结构体匿名“继承“方法冲突时继承优先顺序

在 Go 语言中&#xff0c;匿名字段&#xff08;也称为嵌入字段&#xff09;可以用来实现继承的效果。当你在一个结构体中匿名嵌入另一个结构体时&#xff0c;嵌入结构体的方法会被提升到外部结构体中。这意味着你可以直接通过外部结构体调用嵌入结构体的方法。 如果多个嵌入结…

从技术视角看AI在Facebook全球化中的作用

在全球化日益加深的今天&#xff0c;人工智能&#xff08;AI&#xff09;作为一种变革性技术&#xff0c;正在深刻影响全球互联网巨头的发展方向。Facebook作为全球最大的社交媒体平台之一&#xff0c;正通过AI技术突破语言、文化和技术的障碍&#xff0c;推动全球化战略的实现…