梦见你的名字 发表于 2024-12-1 02:33:34

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_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:调用文件启用持久化规则 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:调用文件启用持久化规则  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: LVS-DR工作模式简介(相对nat性能更高)