lvs系列之dr(二)

負載集羣LVS_DR模型原理:算法

客戶端CIP請求WEB資源,必須通過Director轉發給RS,而RS響應請求給客戶端CIP必定不能通過Director,因爲客戶端的請求是發給VIP的,要響應客戶端的請求,這就要求DirectorRS之間要共享VIPDirectorDIPRS1RIP1RS2RIP2必須在同一網段,能夠是公網,也能夠是私網,他們之間的通訊基於MAC地址。RS上最好都有公網IP,或者出去的網關有多個,不然單網關容易成爲集羣的瓶頸。因爲DirectorRS擁有一樣的VIP,因此要對RS作一些ARP限制,使它們不能應答ARP廣播,只是把VIP用來封包數據響應CIP,以保障全部對RS上的資源的請求必須通過Director的負載均衡分配。瀏覽器

模擬過程:服務器

客戶端CIP發送訪問WEB資源的請求到DirectorVIP;請求到達switch時會先ARP廣播一下:who is VIP?此時因爲RS上經過一些手段做了ARP限制使之不能應答,因此只有Director做了應答:I am VIP,因而switch將數據幀發給了Directorapp

IP負載均衡

目標IPide

CIP測試

DirectorVIP:172.16.58.1spa

 

Director通過負載均衡算法挑選出RS1,由於DirectorDIPRS1RIP1在同一網段,他們之間能夠經過MAC地址通訊,因而將數據幀的目的MAC地址改成RS1MAC地址,這樣數據幀就發送到了RS1,源IP和目標IP並不改變ip

 

RS1將請求的WEB資源封裝直接響應給CIP,再也不通過Director,不過此時的源IPRIP1,因此須要將數據先從RS1本機的lo:0轉發一下,使源IP變爲VIP才能響應給客戶端CIPci

IP

目標IP

RS1lo:0上的VIP172.16.58.1

CIP

這樣就完成了一次通訊

 

實驗環境準備:

須要一個能夠與外網通訊的物理路由主機172.16.0.1。三臺虛擬機,一個Director,一個RS1,一個RS2,網卡鏈接方式都選擇橋接。

 

Director:負載均衡調度器

         VIP172.16.58.1

         DIP172.16.58.2

RS1:真實WEB服務器1

         RIP1172.16.58.7

VIP172.16.58.1

RS2:真實WEB服務器2

         RIP1172.16.58.8

VIP172.16.58.1

 

實戰配置:

RS1的配置:

#設置RIP1

ifconfig eth0 172.16.58.7 up

#設置VIP

ifconfig lo:0 172.16.58.1 netmask 255.255.255.255 broadcast172.16.58.1 up

#查看

ifconfig

#ARP設置響應級別和通告級別

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

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

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

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

#添加路由

route add –host 172.16.58.1 devlo:0

#從服務器上同步時間

ntpdate 172.16.0.1

 

RS2的配置:

#設置RIP2

ifconfig eth0 172.16.58.8 up

#設置VIP

ifconfiglo:0 172.16.58.1 netmask 255.255.255.255 broadcast172.16.58.1 up

#查看

ifconfig

#ARP設置響應級別和通告級別

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

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

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

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

永久生效需修改配置文件:/etc/sysctl.conf

net.ipv4.conf.eth0.app_ignore = 1

net.ipv4.conf.eth0.app_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

sysctl –p 使配置生效

#添加路由

route add –host 172.16.58.1 devlo:0

#從服務器上同步時間

ntpdate 172.16.0.1

 

Director的設置:

#設置VIP

ifconfig eth0:0 172.16.58.1 gw 172.16.0.1 up

#設置DIP

ifconfig eth0 172.16.58.2 up

#清除iptables規則

iptales -F

service iptales save

#添加集羣服務

ipvsadm –A –t 172.16.58.1:80 –s wlc

#添加真實服務器RS1RS2

ipvsadm –a –t 172.16.58.1:80–r 172.16.58.7 –g –w 2

ipvsadm –a –t 172.16.58.1:80–r 172.16.58.8 –g –w 1

#從服務器上同步時間

ntpdate 172.16.0.1

#瀏覽器訪問測試

瀏覽器訪問172.16.58.1,不斷刷新

相關文章
相關標籤/搜索