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

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


http://www.kler.cn/a/416877.html

相关文章:

  • 玩转 uni-app 静态资源 static 目录的条件编译
  • 【C++】LeetCode:LCR 026. 重排链表
  • 【娱乐项目】基于批处理脚本与JavaScript渲染视频列表的Web页面
  • 【数据资产】数据资产管理体系概述
  • 初窥 HTTP 缓存
  • 2411mfc,修改按钮颜色
  • Redis3——线程模型与数据结构
  • 数据结构 (20)二叉树的遍历与线索化
  • 【RL Base】强化学习:信赖域策略优化(TRPO)算法
  • python3 自动更新的缓存类
  • 多类别的大豆叶病识别模型复现
  • Flutter:页面滚动
  • 软件无线电(SDR)的架构及相关术语
  • 软通动力携子公司鸿湖万联、软通教育助阵首届鸿蒙生态大会成功举办
  • 数据结构——排序算法第一幕(插入排序:直接插入排序、希尔排序 选择排序:直接选择排序,堆排序)超详细!!!!
  • 40分钟学 Go 语言高并发:服务性能调优实战
  • nginx搭建直播推流服务
  • PHP和GD库如何根据像素绘制图形
  • 小车AI视觉交互--1.颜色追踪
  • 一个Python脚本
  • 网络安全开源组件
  • 用堆求解最小可用ID问题
  • C++ 之弦上舞:string 类与多样字符串操作的优雅旋律
  • 面向数字音视频的网络与操作系统技术研讨会 征稿通知
  • Qt 项目中同时使用 CMAKE_AUTOUIC 和 UiTools 的注意事项
  • 泷羽Sec-星河飞雪-BurpSuite之解码、日志、对比模块基础使用