1. 程式人生 > >LVS中DR類型集群實現

LVS中DR類型集群實現

lvs中dr類型集群實現

LVS負載均衡集群中DR類型的架構圖示如下:

技術分享

圖中,客戶端發送的請求會由路由器和交換機轉發後直接達到director。再由director調度給指定的real server ,最後由real server直接響應給客戶端而不經過director,在此架構中directorreal server的網絡架構是此類型的重點。所以,配置

DR類型一定要註意以下兩點:

(1) RS要直接響應Client,因此,各RS均得配置VIP;但僅能夠讓Director上的VIP能夠與本地路由直接通信;

(2) Director不會拆除或修改請求報文的IP首部,而是通過封閉新的幀首部(源MACDirectorMAC,目標MAC為挑選出的RSMAC)完成調度。

要完成上述的要求,著實很難,因為RSDR都有VIP,而請求進入時必須最先發送給DR,所以,在DR類型中,首先通過ARP廣播確認DR主機,其他RS主機不響應,這就確定了哪一個是DR主機。

但是在linux主機中,IP地址不屬於網卡而是屬於內核,就是說無論一個linux主機有多少個IP地址,它在接入的各個網絡中都會公布它擁有的所有地址,這就給

ARP廣播的響應制造了困難,所以就需要修改內核參數來保證router發出ARP廣播時,DR會響應RS不予響應,這裏所說的內核參數分別為:

#arp_announce:定義arp通知級別;

0:默認級別,在各個網絡中通告本機所含有的所有地址

1:盡量不在各個網絡中通告本機中含有的不屬於該網絡的地址

2:不在各個網絡中通告本機中含有的不屬於該網絡的地址

#arp_ignore:定義arp忽略arp請求或arp通告的級別;

0(默認值): 回應任何網絡接口上對任何本地IP地址的arp查詢請求

1:只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求

2:只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求

,且來訪IP必須在該網絡接口的子網段內

3:不回應該網絡界面的arp請求,而只對設置的唯一和連接地址做出回應

4-7:保留未使用

8:不回應所有(本地地址)的arp查詢

舉例1VIPDIPRIP在同一網段時的DR類型負載均衡

首先設計網絡拓撲,我在這裏準備三個虛擬機,V1作為directorV2V3作為real server

技術分享

設計完拓撲,現在開始配置:

V1上更改IP地址

Ifconfigeth0 172.16.50.11 up

Ifconfig eth0:0 172.16.50.12 netmask255.255.255.255 broadcast 172.16.50.12 up

Routeadd –host 172.16.50.12 dev eth0:0

技術分享

V2V3上更改地址:

Ifconfigeth0 172.16.50.21 up

Ifconfiglo:0 172.16.50.12 netmask 255.255.255.255 broadcast 172.16.50.12 up

Route add –host 172.16.50.12 dev lo:0

Ifconfigeth0 172.16.50.31 up

Ifconfiglo:0 172.16.50.12 netmask 255.255.255.255 broadcast 172.16.50.12 up

Routeadd –host 172.16.50.12 dev lo:0

不留圖了

更改V2V3的內核參數(不更改的話會ping不通)

echo1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo2 > /proc/sys/net/ipv4/conf/all/arp_announce

如果覺得不放心的話,還可以再執行兩個命令

echo1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo2 > /proc/sys/net/ipv4/conf/lo/arp_announce

現在就可以添加規則了

V1上執行如下命令:

Ipvsadm–A –t 172.16.50.12:80 –s rr

Ipvsadm–a –t 172.16.50.12:80 –r 172.16.50.21 –g –w 1 這裏加權重是為了以後改算法省事

Ipvsadm–a –t 172.16.50.12:80 –r 172.16.50.31 –g –w 2

這樣就完成了同網段內DR類型的負載均衡配置。

舉例2VIPDIPRIP在不在同一網段時的DR類型負載均衡

首先設計網絡拓撲,我在這裏準備三個虛擬機,V1作為directorV2V3作為real server。環境中應有兩個網段172.16.0.1192.168.0.254且打開了路由間轉發功能。

技術分享


設計完拓撲,現在開始配置:

V1上更改IP地址

Ifconfigeth0 192.18.0.11 up

Routeadd default gw 192.168.0.254

Ifconfigeth0:0 172.16.50.12 netmask 255.255.255.255 broadcast 172.16.50.12 up

Routeadd –host 172.16.50.12 dev eth0:0

V2V3上更改地址:

Ifconfigeth0 192.168.0.21 up

Routeadd default gw 192.168.0.254

Ifconfiglo:0 172.16.50.12 netmask 255.255.255.255 broadcast 172.16.50.12 up

Routeadd –host 172.16.50.12 dev lo:0

Ifconfigeth0 192.168.0.31 up

Routeadd default gw 192.168.0.254

Ifconfiglo:0 172.16.50.12 netmask 255.255.255.255 broadcast 172.16.50.12 up

Routeadd –host 172.16.50.12 dev lo:0

不留圖了

更改V2V3的內核參數(不更改的話會ping不通)

echo1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo2 > /proc/sys/net/ipv4/conf/all/arp_announce

如果覺得不放心的話,還可以再執行兩個命令

echo1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo2 > /proc/sys/net/ipv4/conf/lo/arp_announce

現在就可以添加規則了

V1上執行如下命令:

Ipvsadm–A –t 172.16.50.12:80 –s rr

Ipvsadm–a –t 172.16.50.12:80 –r 192.168.0.21:80 –g –w 1 這裏加權重是為了以後改算法省事

Ipvsadm–a –t 172.16.50.12:80 –r 192.168.0.31:80 –g –w 2

這樣就完成了不通網段內DR類型的負載均衡配置。

註意:在普通電腦上實現這個負載均衡,訪問頁面時會反應比較慢,不要以為沒成功,是慢!慢!慢!


LVS中DR類型集群實現