天天看点

LVS

Director RIP 192.168.106.2 VIP 172.16.100.1
Real server1  RIP   192.168.106.3
Real server2  RIP    192.168.106.4

LVS 不能和iptables 一起使用。

LVS负载均衡分为三种模式。1、NAT,2、DR, 3、TUN

NAT模式关于web服务

一、下面我首先来配置负载均衡。

两台real虚拟机都得有web服务器并且开启

1首先有个director 和两个realserver。

Director必须要有两张网卡。一个是公网地址,另一个是提供私网地址。例如本实验的DIP是172.16.100.1.VIP是 192.168.106.2

R1ip 192.168.106.3

R2ip 192.168.106.4

2. 首先现在director服务器上配置,Ip配置好后,得安装ipvsadm。

再配置两个real1.配置ip 该网卡的网关必须指向derictor的私网地址。192.168.106.2

Route –n 查看一下网关

Route add default gw 192.168.106.254

Real2 的配置和real1一样。

3.在director虚拟机上。一定要能访问这两个real虚拟机的web服务。

Curl 192.168.106.3

Curl 192.168.106.4

都能够显示index.html即可。

4.关键步骤。安装好ipvsadm后执行以下命令

ipvsadm -A  –t 172.16.100.1:80 –s rr (轮询调度)

ipvsadm –a  -t 172.16.100.1:80  –r 192.168.106.3  –m

ipvsadm –a  -t 172.16.100.1 :80 –r192.168.106.4  –m

echo 1  >  /proc/sys/net/ipv4/ip_forward (网卡之间的转换)、

ipvsadm –ln 查看配置好的服务

如果出现

[root@sa ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port          Forward Weight ActiveConn InActConn

TCP 172.16.100.1:80 rr

 -> 192.168.106.3:80            Masq    1      0         0        

 -> 192.168.106.4:80            Masq    1      0         0     

说明real服务添加成功。。。。。

Curl 172.16.100.1

轮询调度。应该出现下面的结果。

^C

[root@sa ~]# curl172.16.100.1(在此我们一定要访问公网IP)

<h1> nginx works on192.168.221.4</h1>

[root@sa ~]# curl 172.16.100.1

<html>

<h1>nginx works on 192.168.221.3</h1>

</html>

[root@sa ~]# ipvsadm –ln(可以查看轮询情况)

 -> 192.168.106.3:80            Masq    1      0         2(连接数)        

 -> 192.168.106.4:80            Masq    1      0         2    

到此我们的nat负载均衡配置成功。

如果想重启服务器后还能使用的规则。就是用命令  service  ipvsadm save

加权轮询: ipvsadm  –A  –t 172.16.100.1:80 – s wrr

 Ipvsadm–a –t 172.16.100.1:80 –r 192.168.106.3 –m -w 权值

Ipvsadm –a –t 172.16.100.1:80 –r 192.168.106.4 –m  -w 权值

 即可。。。。。。。。

Ipvsadm –C 是清除所有的规则。在我们保存的前提下。

Service ipvsadm save 是用于保存规则的

Ipvsadm –R < /etc/sysconfig/ipvsadm

即可恢复

LVS-DR模型的配置

Ip规划

VIP 192.168.106.102
Real server 1  RIP 192.168.106.3
Real server 2 RIP 192.168.106.4 VIP   192.168.106.102

这个是降低了director的压力。当客户端请求发送到director时,会拆掉帧首部。不会动tcp报文。源ip和目的ip都不会改变。只会通过修改MAC地址。Ipvsadm针对DR模式的调度算法。分发给real server ,real server会有两个IP(RIP 和VIP)RIP是用来和其他主机进行通信。VIP是用来接受director发送过来的报文。在客户端发送请求时。大概是需要广播VIP的MAC地址。因为director和real server上都配有VIP所以都会做出响应。但是real server 不能做出响应。这样会失去负载均衡的作用。所以在real server 上要配置抑制arp解析。所以VIP是不能对外做出响应。但是当返回客户端时,是在报文源地址是VIP 目的地址是CIP,所以需要加上一条路由信息。无论什么报文出去。

VS/DR的工作流程如上图所示:它的连接调度和管理与VS/NAT和VS/TUN中的一样,它的报文转发方法又有不同,将报文直接路由给目标服务器。在VS/DR中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。

配置过程如下:

在director上配置  ifconfig eth0:0 192.168.106.11/32 up 配置VIP

Route  add –host192.168.106.102 dev eth0:0

开始添加ipvsadm的规则

Ipvsadm –A –t 192.168.106.102:80 –s rr

Ipvsadm –a –t 192.168.106.102:80 –r192.168.106.3:80 –g

Ipvsadm –a –t 192.168.106.102:80 –r192.168.106.4:80 –g

在real server上配置

在配置VIP之前需要配置arp的规则

Echo “1”>/proc/sys/net/ipv4/conf/lo/apr_ignore

Echo  “2”>/proc/sys/net/ipv4/conf/lo/apr_annonce

Echo “1”>/proc/sys/net/ipv4/conf/all/apr_ignore

Echo  “2”>/proc/sys/net/ipv4/conf/all/apr_annonce

Ifconfig lo:0 192.168.106.102/32 up

Route add –host 192.168.106.102 dev lo:0

关闭iptables 开启网络服务。

在real server2上的配置一样