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

相关推荐
蛊明1 小时前
下载CentOS 10
linux·运维·centos
北京-宏哥1 小时前
Linux系统安装MySQL5.7(其他版本类似)避坑指南
linux·运维·服务器
Aphelios3801 小时前
Linux 下 VIM 编辑器学习记录:从基础到进阶(下)
java·linux·学习·编辑器·vim
qw9491 小时前
Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复
linux·运维·服务器
丶只有影子1 小时前
【Nacos】从零开始启动Nacos服务(windows/linux)
linux·运维·windows·微服务·springcloud
青年vs阳光2 小时前
win10把c盘docker虚拟硬盘映射迁移到别的磁盘
运维·docker·容器
-SGlow-2 小时前
Linux相关概念和易错知识点(30)(线程互斥、线程同步)
linux·运维·服务器
技术小齐2 小时前
网络运维学习笔记 021 HCIA-Datacom新增知识点02 SDN与NFV概述
运维·网络·学习
茂茂在长安3 小时前
Linux 命令大全完整版(11)
java·linux·运维·服务器·前端·centos
songbaoxian3 小时前
ElasticSearch
java·linux·elasticsearch