lvs负载均衡群集搭建(DR

1:之前有讲过使用NAT技术的lvs的群集搭建接下来使用DR的直接路由模式来搭建负载均衡群集

2:在DR模式中。lvs负载调度器作为群集的访问入口,但不作为网关使用,服务器池中的所有节点来自internet发送给客户端的web相应数据包不需要经过负载调度器;这种方式入站、出站访问数据分别被处理,因此lvs负载调度器和所有节点服务器都需要配置VIP地址,以便响应整个群集的访问。

VIP地址192.168.1.254 

 

 

 

 

   

 

 负载均衡服务器           web1服务器               web2服务器        nfs服务器

192.168.2.1        192.168.2.2      192.168.2.3   192.168.2.4

总体步骤与知识点准备:

说明:此模式lvs负载调度器作为群集的访问入口,但不作为网关使用,服务器池中的所有

节点都各自接入internet,发送给客户机(互联网)的web响应数据包不需要经过lvs负载调度器

一、步骤:

1.配置负载调度器:①配置虚拟ipVIP)地址,vip必须和物理网络在一个子网)②应该关闭linux内核重定向参数响,调整/proc响应③配置负载分配策略

1)首先配置调度器的VIP地址

lvs负载均衡群集搭建(DR)_互联网 

lvs负载均衡群集搭建(DR)_互联网_02 

2)关闭Linux的内核重定项参数

修改配置文件  vim /etc/sysctl.conf

lvs负载均衡群集搭建(DR)_服务器_03 

3)配置负载均衡调度器

通过yum安装 ipvsadm 配置负载分发

lvs负载均衡群集搭建(DR)_服务器_04 

lvs负载均衡群集搭建(DR)_服务器_05 

2.配置节点服务器:使用dr模式时候,节点服务器也需要配置vip地址,并调整内核的arp响应参数以阻止更新VIPmac地址,避免发生冲突

①配置虚拟ipVIP)地址)②调整/proc响应参数

1)配置webvip地址,以web1

lvs负载均衡群集搭建(DR)_服务器_06 

2)调整/proc的相应参数

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

3)为web节点配置不同的网页内容;从客户端进行验证

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

3:由于在单个web主页上进行配置,过于繁琐,而且在保持统一性容易出错,所以讲所有的web网页内容保存在同一的nfs服务器中

1)创建共享目录

lvs负载均衡群集搭建(DR)_互联网_10 

lvs负载均衡群集搭建(DR)_服务器_11 

2nfs的共享目录配置文件为 /etc/exports

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

3)重启nfsrpcbind两个服务

lvs负载均衡群集搭建(DR)_服务器_13 

4)将nfs服务器的共享目录挂在到web服务器的网页根目录之下

lvs负载均衡群集搭建(DR)_互联网_14 

(5) 客户端进行网页测试

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

二、知识点讲解

1.为什么需要lvs viprealserver 在同一个网段

             DR 模式因为只修改 packageMAC地址通过ARP广播的形势找到realserver,所以 要求LVS VIP realserverIP 必须在同一个网段内,也就是在挂载VIP 时先确认LVS的工作模式,如果是DR模式需要先确认这个IP 只是否能挂在这个LVS下面。

2.内核重定向:lvs负载调度器和各节点需要共用VIP地址,并且应该关闭linux内核重定向参数响应

  需要路由器向源发送ICMP重定向的情况有两种:

当路由器从某个接口收到数据包后,还要将数据包从同一个接口发往目的地,就是路由器收到数据包的接口正是去往目的地的出口时,则会向源发送ICMP重定向,通告对方直接将数据包发向自己的下一跳即可,不要再发给自己。

数据包的源IP和自己转发时的下一跳IP地址是同网段时,则会向源发送ICMP重定向,通告对方直接将数据包发向自己的下一跳。

注:路由器在向数据源发送ICMP重定向的同时,也会正常转发收到的数据包,并不会中断网络。

 

lvs负载均衡群集搭建(DR)_互联网_16 

过程分析如下:
1). server2如果要与internet通讯,首先是要把报文发送给server1的,因为server2的网关指向server1的。
2). server1收到报文并检查它的路由表,发现router是发送改报文的下一跳。当它把报文发送给router时,server1检测到这个报文的发送出去的接口与接收到的接口是相同的,这样ICMP重定向就触发了。
3). server1认为server2应该把默认路由指向router,所以就发送ICMP重定向报文给server2

3.在真实的节点服务器上要给lo:0设置vip并调整内核的arp响应参数以阻止更新VIPmac地址,避免发生冲突

lvs负载均衡群集搭建(DR)_互联网_17 

在配置LVS负载均衡架构的时候需要在RealServer上抑制ARP,具体是arp_ignore=1arp_announce=2

arp_ignore (回应ARP

0:回应任何网口上收到的对任何本机IP地址的ARP查询请求(默认) 

1:只回应Target IP是接收网口的IPARP查询请求 

2:只回应Target IP是接收网口的IPARP查询请求,Sender IP必须与该网口属于同一网段 

4-7:保留未使用  

8:不回应所有的arp查询 

 

arp_announce (选择ARP宣告时候使用的Sender IP

0:使用发送(或转发)的数据包的源IP作为发送ARP请求的Sender IP(默认) ;(可使用ping -I 验证)

1IP数据包的目的IP属于本地某个接口的网段时,Sender IP则使用IP数据包源IP,不属于则按2处理; 

2:忽略数据包的源IP,使用能与目标主机会话的最佳地址来作为发送ARPSender IP,优先选择对外接口的主IP;(loopback不是对外接口)

注:ARP表没有网关对应的条目时,在发送IP数据包前会触发 arp_announce

        Sender MAC跟系统无关,Sender MAC=MAC,源MAC由物理地址决定,网络攻击除外。

三、具体实现过程

1.配置负载调度器

1)配置虚拟ip地址(vip,采用虚接口的方式(eth0:),为网卡eth0绑定vip地址,以便响应群集访问---vip必须和物理网络在一个子网

#cd  /etc/sysconfig/network-scripts/

#cp  ifcfg-eth0  ifcfg-eth0:0

#vim ifcfg-eth0:0  

DEVICE=eth0:0

ONBOOT=yes

IPADDR=192.168.2.254   

NETMASK=255.255.255.0

2)调整/proc响应参数。关闭内核的重定向参数响应

#vim  /etc/sysctl.conf

net.ipv4.conf.all.send_redirects  =  0

net.ipv4.conf.default.send_redirects  =  0

net.ipv4.conf.eth0.send_redirects  = 0

#sysctl  -p

3)配置负载分配策略

#service  ipvsadm   stop  //清除原有策略

#ipvsadm  -A  -t  192.168.2.254:80  -s  rr

#ipvsadm  -a  -t  192.168.2.254:80  -r  192.168.2.2  -g  -w  1

#ipvsadm  -a  -t  192.168.2.254:80  -r  192.168.2.3  -g  -w  1

#service  ipvsadm  save  //保存策略

#service  ipvsadm  start

2.配置节点服务器

(1)配置虚拟ip地址

#cd  /etc/sysconfig/network-scripts/

#cp  ifcfg-lo   ifcfg-lo:0

#vim  ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.2.254

NETMASK=255.255.255.255  ---必须为32位掩码

ONBOOT=yes

#ifup  lo:0

#route  add  -host 192.168.2.254  dev  lo:0  //为本机添加一条路由记录,将访问vip的数据限制在本地,以避免通信混乱

(2)调整/proc响应参数,阻止更新vipmac地址,避免发生冲突(见附录:3

#vim  /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore  =  1

net.ipv4.conf.all.arp_announce  =  2

net.ipv4.conf.default.arp_ignore  =  1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore  =  1

net.ipv4.conf.lo.arp_announce  = 2

#sysctl  -p

4.配置web服务(同上略)

5.再次测试lvs群集

1.在客户机上使用浏览器访问web

http://192.168.1.1,多次刷新

2.[root@centos1 ~]# ipvsadm -ln