LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义

LVS(Linux  Virtual Server)Linux服务器集群系统

针对高可伸缩,高可用服务的需求,给予IP层和内容请求分发的负载均衡调度解决方法,并在Linux的内核中实现,将一组服务器构成一个实现可伸缩,高可用网络服务的虚拟服务器 负载均衡1.大量的兵法访问或数据流量分担到多态节点设备分别处理,减少用户的等待时间2.单个重负载的运算分担到多态节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户 负载调度器一组服务器通过高速的局域网或者地理分布的广域网相互相连,在他们的前端有一个负载均衡调度器(Load Balancer),负载均衡调度器能无缝的将网络请求调度到真实的服务器上,从而使得服务器集群的结构对用户是透明的,用户通过访问集群系统提供的网络服务,就像访问一台高性能,高可用的服务器。

IP负载均衡技术(三种)

1.VS/NAT(网络地址转换)通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分发给后端的真实服务器,真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回到客户端,完成整个调度的过程

2.VS/TUN(IP隧道模式)调度器将请求的报文通过IP隧道转发至真实服务器,而真实的服务器直接将结果返回给用户,调度器只处理请求报文,由于一般网路服务的应答大于请求,采用IP隧道模式,集群系统的最大吞吐量可以提高10倍。

3.VS/DR(直接路由)通过改写请求报文的MAC地址,将请求发送到真是服务器,真实服务器将响应直接返回给用户,之际额路由模式可以极大的提高集群系统的伸缩性,这种方法没有IP隧道的开销,集群中真实的服务器也没有必要必须支持IP隧道协议,只是需要调度器与真实服务器有一块网卡连在同一物理网段上。 其中在这三种IP负载均衡的技术中,DR和TUN模式都需要在真实服务器上对arp_ignore和arp_announce参数进行配置,主要是实现禁止响应对VIP的ARP请求。

在lvs环境中,需要设定以下的参数


echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

先来看看关于arp_ignore和arp_announce的有关介绍

有关arp_ignore的相关介绍:

arp_ignore - INTEGER	Define different modes for sending replies in response to	received ARP requests that resolve local target IP addresses:	0 - (default): reply for any local target IP address, configured	on any interface	1 - reply only if the target IP address is local address	configured on the incoming interface	2 - reply only if the target IP address is local address	configured on the incoming interface and both with the	sender‘s IP address are part from same subnet on this interface	3 - do not reply for local addresses configured with scope host,	only resolutions for global and link addresses are replied	4-7 - reserved	8 - do not reply for all local addresses	The max value from conf/{all,interface}/arp_ignore is used	when ARP request is received on the {interface}

arp_ignore:定义对目标地址为本地IP的ARP询问不同的应答模式0

0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求

1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求

2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内

3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应

4-7 - 保留未使用

8 -不回应所有(本地地址)的arp查询

有关arp_announce的相关介绍:

arp_announce - INTEGER	Define different restriction levels for announcing the local	source IP address from IP packets in ARP requests sent on	interface:	0 - (default) Use any local address, configured on any interface	1 - Try to avoid local addresses that are not in the target‘s	subnet for this interface. This mode is useful when target	hosts reachable via this interface require the source IP	address in ARP requests to be part of their logical network	configured on the receiving interface. When we generate the	request we will check all our subnets that include the	target IP and will preserve the source address if it is from	such subnet. If there is no such subnet we select source	address according to the rules for level 2.	2 - Always use the best local address for this target.	In this mode we ignore the source address in the IP packet	and try to select local address that we prefer for talks with	the target host. Such local address is selected by looking	for primary IP addresses on all our subnets on the outgoing	interface that include the target IP address. If no suitable	local address is found we select the first local address	we have on the outgoing interface or on all other interfaces,	with the hope we will receive reply for our request and	even sometimes no matter the source IP address we announce.	The max value from conf/{all,interface}/arp_announce is used.	Increasing the restriction level gives more chance for	receiving answer from the resolved target while decreasing	the level announces more valid sender‘s information.

arp_announce:对网络接口上,本地IP地址的发出的,ARP回应,作出相应级别的限制: 确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口

0 - (默认) 在任意网络接口(eth0,eth1,lo)上的任何本地地址

1 -尽量避免不在该网络接口子网段的本地地址做出arp回应. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.

2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送.

关于对arp_announce 理解的一点补充


Assume that a linux box X has three interfaces - eth0, eth1 and eth2. Each interface has an IP address IP0,

IP1 and IP2. When a local application tries to send an IP packet with IP0 through the eth2.  Unfortunately,

the target node’s mac address is not resolved. Thelinux box X will send the ARP request to know

the mac address of the target(or the gateway). In this case what is the IP source address of the

“ARP request message”? The IP0- the IP source address of the transmitting IP or IP2 - the outgoing

interface?  Until now(actually just 3 hours before) ARP request uses the IP address assigned to

the outgoing interface(IP2 in the above example) However the linux’s behavior is a little bit

different. Actually the selection of source address in ARP request is totally configurable

bythe proc variable “arp_announce”

If we want to use the IP2 not the IP0 in the ARP request, we should change the value to 1 or 2.

The default value is 0 - allow IP0 is used for ARP request.

时间: 2024-10-14 05:25:37

LVS负载均衡中arp_ignore和arp_annonuce参数配置的含义的相关文章

LVS负载均衡之LVS-NAT实例部署(配置篇)

前面我们了解了关于LVS三种模式(LVS/NAT,LVS/DR,LVS/TUN)的工作原理,以及它们间区别和优势,下面我们逐一介绍关于这三种模式的实例部署,本节主要介绍LVS/NAT实例部署,如下: LVS/NAT实例部署 如图所示为整体的拓扑图: 一.部署前说明: (1)系统版本: centos 6.6 (2)角色及ip相关信息: CIP:192.168.10.13/24VIP:192.168.10.100/24 DIR:eth0:192.168.1.100/24 Eth1:192.168.1

【中级篇】Linux中部署LVS负载均衡群集

LVS负载均衡群集 1.          实验需求: 1)     2台服务器部署HTTPD服务 2) 1台做负载调度器 3) 搭建负载均衡,测试其效果. 2.          实验环境: Linux服务器系统版本:CentOS-6.5 -S02 IP:192.168.10.15  ( httpd ) Linux服务器系统版本:CentOS-6.5 -S03 IP : 192.168.10.18  ( httpd ) Linux服务器系统版本:  RedHat6.5     IP1 :192

CentOS7Linux中服务器LVS负载均衡、高可用集群搭建(NAT、DR)

目录 集群 声明 集群概念 集群特性 Web服务器并发相应瓶颈 集群的分类 LB实现方法: LVS集群 负载调度器 服务器池 共享存储 LVS负载均衡的三种模式 负载均衡 集群 声明 文档不断更新中... 集群概念 一组相互独立又相互依赖的,通过网络连接的由计算机组,以单一的模式进行管理,为对方提供服务,对于用户来说,用户会认为对方是一个服务. DIP:用来和后端服务器进行数据交互的IP CIP:客户端的IP VIP:是域名解析的IP,是集群对外的公网IP RIP:真实服务器的IP 节点:一组计

lvs负载均衡群集搭建(DR)

lvs负载均衡群集搭建(DR) 1:之前有讲过使用NAT技术的lvs的群集搭建接下来使用DR的直接路由模式来搭建负载均衡群集 2:在DR模式中.lvs负载调度器作为群集的访问入口,但不作为网关使用,服务器池中的所有节点来自internet.发送给客户端的web相应数据包不需要经过负载调度器:这种方式入站.出站访问数据分别被处理,因此lvs负载调度器和所有节点服务器都需要配置VIP地址,以便响应整个群集的访问. VIP地址192.168.1.254 负载均衡服务器           web1服务

LVS负载均衡架设,DR模式

lvs-dr模型 : 直接路由 Director在实现转发时不修改请求报文的IP首部,而是通过直接封装MAC首部来完成转发,目标MAC是Director根据调度方法挑选出的某RS的MAC地址 拓扑结构有别于NAT类型 架构特性: (1) 保证前端路由器将目标地址为VIP的请求报文通过ARP地址解析后送往Director 解决方案: 1.静态绑定:在前端路由直接将VIP对应的目标MAC静态配置为Director的MAC地址,不靠谱也不常用 2.arptables:在各RS上,通过arptables

LVS 负载均衡集群

说明:在学习LVS负载均衡集群时,最好对网络通信原理,尤其是ARP通信原理有所了解,否则,将无法理解LVS的工作原理. LVS工作原理和安装配置#################工作模式及其原理####################VS/NAT模式(即Virtual Server via Network Address Translation): 此种模式是通过网络地址转换技术来实现虚拟服务器. ##实现原理:  1.请求: 客户端发送请求到调度器,调度器将请求报文的目的地址(即虚拟IP地址)

Linux CentOs集群LVS负载均衡的实现

准备工作 环境:Win10下Centos6.4虚拟机. 负载均衡:两台(一主一备)  LVS + Keepalived. HTTP服务器:3台. 给每台服务器配置IP 1.VIP(virtual ip):用来提供Virtual Server服务的ip地址.分别绑定在Director一个物理网卡上(对外接收请求包)和RS的回环设备上(回环设备需要绑定两个ip,一个是127.0.0.1,另一个就是vip). 粗俗的讲,负载均衡就是Linux虚拟服务器,也就是再加一个虚拟机,虚拟机有一个IP,也就称之

LVS负载均衡DR工作流程

LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链 (c) IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链. 此时的源IP和目的IP均未修改,仅

LVS负载均衡简单配置

LVS的安装与使用 第1章 LVS原理及介绍 1.1 LVS简介 LVS是Linux Virtual Server的简写,意思就是Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能.该项目在1998年5月由章文嵩博士组织成立,是中国国内最早出现的自由软件项目之一. LVS项目介绍: LVS项目主页:http://www.linuxvirtualserver.org/ LVS项目介绍:http://www.linuxvirtualserver.o