天天看點

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上的配置一樣