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

打印 上一主题 下一主题

主题 761|帖子 761|积分 2283

  1. LVS-DR工作模式简介(相对nat性能更高)
  2.                 1.工作原理:共享ip+修改mac(保证识别回包的mac地址)
  3.                         共享ip:虚拟网卡接口lo
  4.                         修改mac:内核参数
  5.                 在这种模式下,LVS调度器(也称为Director)和后端真实服务器(Real Server)都配置有相同的VIP(Virtual IP)地址,但客户端只向LVS调度器发送请求。LVS调度器根据配置的负载均衡算法选择一台后端真实服务器,并修改请求报文的目标MAC地址,将其改为选中的后端真实服务器的MAC地址,但源IP地址和目标IP地址保持不变。修改后的请求报文通过二层网络直接转发到选中的后端真实服务器。后端真实服务器处理请求并生成响应报文,然后将响应报文直接发送给客户端,绕过LVS调度器。
  6.                 MAC地址是网络设备网络通信中的唯一识别标识,MAC地址帮助网络设备在局域网内找到目标设备的物理位置,从而实现数据传输。当设备连接到局域网时,网络交换机和路由器使用MAC地址来转发数据包。通过MAC地址,网络中的设备可以相互识别和通信,确保数据能够准确传送到目标设备。       
  7.                 2.内核"参数":net.ipv4.conf.all.arp_ignore和net.ipv4.conf.all.arp_announce
  8.                         1)net.ipv4.conf.all.arp_ignore
  9.                                 发送ARP响应数据包的条件级别。
  10.                                 0(默认值):回应任何网络接口上对任何本机IP地址的ARP(地址解析协议)查询请求。也就是说,只要ARP请求数据包所请求的IP地址属于本机任何一个网络接口配置的IP地址,系统就会回应ARP响应数据包,无论该IP地址是否属于接收到ARP请求数据包的网卡。
  11.                                 1:回应目标IP地址是本机上来访网络接口IP地址的ARP查询请求。即,只有ARP请求数据包所请求的IP地址属于当前接收ARP请求数据包的网卡的IP地址时,系统才会回应ARP响应数据包。
  12.                                 2:回应目标IP地址是本机上来访网络接口IP地址的ARP查询请求,且来访IP必须与该网络接口上的IP在同一子网段内。
  13.                         2)net.ipv4.conf.all.arp_announce
  14.                                 发送ARP请求数据包时,如何选择数据包中的发送方IP地址。
  15.                                 0(默认值):在任意网络接口上使用任何本机地址进行ARP请求。也就是说,系统准备通过网卡发送一个IP数据包前,会发送ARP请求数据包来获取目标MAC地址,此时ARP请求数据包中的发送方IP地址通常就是待发送的IP数据包的源IP地址,无论该IP地址是否属于当前发送ARP请求数据包的网卡。
  16.                                 1:使用属于该网络接口子网的本地地址作为发送方IP地址。
  17.                                 2:使用与目标IP地址对应的最佳本地IP地址作为ARP请求的发送方IP地址。在此模式下,系统将忽略IP数据包的源IP地址,并尝试选择能与目标IP地址通信的本机地址作为ARP请求数据包的发送方IP地址。
  18.                 3.实验环境准备(机器在同一个ip网段下)
  19.                         LVS DR模式,LVS主机和web服务器都是单网卡,它们连在同一网络中
  20.                         (1)实验环境
  21.                                 client1:eth0-> 192.168.88.10
  22.                                 lvs1:eth0->192.168.88.5,删除eth1的IP
  23.                                 web1:eth0->192.168.88.100
  24.                                 web2:eth0->192.168.88.200
  25.                         (2)网卡相关配置
  26.                                 1)网卡虚拟接口配置:ifconfig eth0:0 192.168.88.241/24
  27.                                 2)关闭ifconfig eth0:0 down
  28.                                 3)激活虚拟网卡接口:ifup eth0:0
  29.                 3)NetworkManager和network
  30.                  NetworkManager:动态管理网络连接,可以在运行时动态地添加、删除、修改网络连接
  31.                  network:静态配置网络连接,需要手动编辑配置文件来更改网络设置,重启网络服务后,配置才会生效
  32.                         网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-名(eth0:0)
  33.                         eth0:0通常表示eth0这个网络接口的子接口或虚拟接口。
  34.                 4.LVS-DR配置操作步骤
  35.                         (1)lvs1,web1,web2安装network-scripts包ipvsadm包
  36.                         (2)lvs1,web1,web2主机配置网卡虚拟接口IP地址,激活虚拟网卡接口(实现共享ip)
  37.                                 /etc/sysconfig/network-scripts/ifcfg-名(eth0:0)
  38.                         (3)web1,web2调整内核参数设置是否启用ARP广播和arp宣告(真实服务器配置)
  39.                                 /etc/sysctl.conf
  40.                         (4)配置LVS-DR模式规则
  41.                         (5)curl 测试
  42.                         (1)lvs1,web1,web2安装network-scripts包ipvsadm包
  43.                                
  44.                                 网卡接口配置文件:/etc/sysconfig/network-scripts/ifcfg-
  45.                                 ---
  46.                                 - name: install soft        #安装network-scripts软件
  47.                                   hosts: lbs,webservers
  48.                                   tasks:
  49.                                     - name: install network-scripts     #安装软件
  50.                                       yum:
  51.                                         name: network-scripts
  52.                                         state: present
  53.                         (2)lvs1,web1,web2主机eth0配置网卡虚拟接口IP地址,激活虚拟网卡接口(实现共享ip)
  54.                                 /etc/sysconfig/network-scripts/ifcfg-名(eth0:0)
  55.                                 - name: config lvs vip      #配置lvs1主机eth0网卡虚拟接口IP地址
  56.                                   hosts: lbs
  57.                                   tasks:
  58.                                     - name: config file                 #生成ifcfg-eth0:0配置文件
  59.                                       copy:
  60.                                         content: |
  61.                                           TYPE=Ethernet
  62.                                           DEVICE=eth0:0  #设备名
  63.                                           NAME=eth0:0   
  64.                                           IPADDR=192.168.88.15
  65.                                           PREFIX=24      
  66.                                           BROADCAST=192.168.88.255
  67.                                           ONBOOT=yes    #是否自动连接
  68.                                         dest: /etc/sysconfig/network-scripts/ifcfg-eth0:0
  69.                                       notify: active vip
  70.                                   handlers:
  71.                                     - name: active vip                  
  72.                                       shell: ifup eth0:0 #激活虚拟网卡eth0:0
  73.                                 - name: config web vip      #配置webservers主机lo虚拟接口IP地址
  74.                                   hosts: webservers
  75.                                   tasks:
  76.                                     - name: config file                 #生成ifcfg-lo:0配置文件
  77.                                       copy:
  78.                                         content: |
  79.                                           DEVICE=lo:0
  80.                                           NAME=lo:0
  81.                                           IPADDR=192.168.88.15
  82.                                           PREFIX=32
  83.                                           NETWORK=192.168.88.15
  84.                                           BROADCAST=192.168.88.15
  85.                                           ONBOOT=yes
  86.                                         dest: /etc/sysconfig/network-scripts/ifcfg-lo:0
  87.                                       notify: active vip
  88.                                   handlers:
  89.                                     - name: active vip                  #激活lo:0
  90.                                       shell: ifup lo:0
  91.                         (3)web1,web2调整内核参数设置是否接收ARP请求(真实服务器配置)
  92.                          内核参数配置文件:/etc/sysctl.conf,写入四个参数
  93.                                    net.ipv4.conf.all.arp_ignore=1   #忽略arp广播
  94.                                   net.ipv4.conf.lo.arp_ignore=1
  95.                                   net.ipv4.conf.all.arp_announce=2 #忽略arp宣告
  96.                                   net.ipv4.conf.lo.arp_announce=2
  97.                        
  98.                                 ---
  99.                                 - name: config kernel args
  100.                                   hosts: webservers
  101.                                   tasks:
  102.                                     - name: config arp_ignore   #配置忽略arp广播
  103.                                       sysctl:
  104.                                         name: "{{ item }}"
  105.                                         value: "1"
  106.                                         sysctl_set: true
  107.                                         sysctl_file: /etc/sysctl.conf
  108.                                       loop:
  109.                                         - net.ipv4.conf.all.arp_ignore
  110.                                         - net.ipv4.conf.lo.arp_ignore
  111.                                       notify: flush args
  112.                                     - name: config arp_announce #配置禁止arp宣告
  113.                                       sysctl:
  114.                                         name: "{{ item }}"
  115.                                         value: "2"
  116.                                         sysctl_set: true
  117.                                         sysctl_file: /etc/sysctl.conf
  118.                                       loop:
  119.                                         - net.ipv4.conf.all.arp_announce
  120.                                         - net.ipv4.conf.lo.arp_announce
  121.                                       notify: flush args
  122.                                   handlers:
  123.                                     - name: flush args          #刷新sysctl.conf文件配置
  124.                                       shell: "sysctl -p"
  125.                        
  126.                         (4)配置LVS-DR模式规则
  127.                                 ipvsadm -A -t 192.168.88.15:80 -s wlc
  128.                                 ipvsadm -a -t 192.168.88.15:80 -r 192.168.88.100:80 -w 1 -g
  129.                                 ipvsadm -a -t 192.168.88.15:80 -r 192.168.88.200:80 -w 2 -g
  130.                                 ipvsadm -Ln #查看规则
  131.                         (5)curl 测试
  132. 三.LVS持久化规则
  133.        
  134.         ipvsadm-save:保存持久化规则到文件
  135.        
  136.         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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表