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

相关推荐
AI探索先锋7 分钟前
Ubuntu 20.04下MySQL 8.4.3 LTS离线安装全攻略
linux·服务器·mysql·ubuntu
开心呆哥19 分钟前
【python翻译软件V1.0】
java·服务器·python
喵先生!40 分钟前
ubuntu NVIDIA 驱动程序安装指南
linux·chrome·ubuntu
Jonathan Star1 小时前
fastgpt 调用api 调试 写 localhost, 127.0.0.1不行,要 ipconfig 找到本机ip
服务器·网络协议·tcp/ip
大小先生1 小时前
CentOS 系统中防火墙相关命令
linux·centos
勉强勉强1 小时前
centos systemd方式配置jar开机自启
linux·centos·jar
知识鱼丸1 小时前
【杂记】qt
linux·运维·windows
xiaopzi1231231 小时前
宝塔安装mongodb后,写脚本监控运行状态,关闭后自动重启
linux·运维·服务器
大象机器人2 小时前
自动化机械臂视觉跟踪和手眼校准
运维·python·机器人·自动化·硬件工程·制造
朝九晚五ฺ2 小时前
【Linux探索学习】第二十五弹——动静态库:Linux 中静态库与动态库的详细解析
linux·运维·学习