annonuce参数配置的含义

先简单的介绍下关于LVS负载均衡

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.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/38c08dfa3dfcd7e9da1b55b0c2d25c2a.html