第十九周作業(yè)


一、簡述LVS四種集群特點(diǎn)及使用場景

1芋肠、LVS-NAT

多目標(biāo)IP的DNAT堂淡,通過將請求報(bào)文中的目標(biāo)地址和目標(biāo)端口修改為某挑選出的RS的RIP和PORT實(shí)現(xiàn)轉(zhuǎn)發(fā)

(1) RIP和DIP必須在同一個(gè)IP網(wǎng)絡(luò)然遏,且應(yīng)該使用私網(wǎng)地址;RS的網(wǎng)關(guān)要指向DIP取刃;

(2) 請求報(bào)文和響應(yīng)報(bào)文都必須經(jīng)由Director轉(zhuǎn)發(fā)蹋肮;Director易于成為系統(tǒng)瓶頸;

(3) 支持端口映射璧疗,可修改請求報(bào)文的目標(biāo)PORT坯辩;

(4) VS必須是Linux系統(tǒng),RS可以是任意系統(tǒng)病毡;

應(yīng)用場景:由于配置簡單濒翻,節(jié)省IP的特點(diǎn),一般用在并發(fā)量不大的中小企業(yè)啦膜;

2有送、LVS-DR

直接路由;通過為請求報(bào)文重新封裝一個(gè)MAC首部進(jìn)行轉(zhuǎn)發(fā)僧家,源MAC是DIP所在接口的MAC雀摘,目標(biāo)MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT以及目標(biāo)IP/PORT均保持不變八拱;

(1) 確保前端路由器將目標(biāo)IP的VIP的請求報(bào)文發(fā)往Director阵赠;

(a) 在前端網(wǎng)關(guān)做靜態(tài)綁定;

(b) 在RS上使用arptables肌稻;

(c) 在RS上修改內(nèi)核參數(shù)以限制arp通告及應(yīng)答級別清蚀;arp_ignore與arp_announce

(2) RS的RIP可以使用私網(wǎng)地址,也可以是公網(wǎng)地址爹谭;RIP與DIP在同一IP網(wǎng)絡(luò)枷邪;RIP的網(wǎng)關(guān)不指向DIP,以確保響應(yīng)報(bào)文不會經(jīng)由Director诺凡;

(3) RS跟Director要在同一個(gè)物理網(wǎng)絡(luò)东揣;

(4) 請求報(bào)文要經(jīng)由Director,但響應(yīng)不能經(jīng)由Director腹泌,而是由RS直接發(fā)往Client嘶卧;

(5) 不支持端口映射;

應(yīng)用場景:并發(fā)量非常大的情況下會用到此類型凉袱,DR模型的并發(fā)處理量能達(dá)到硬件級別的能力芥吟;

3、LVS-TUN

轉(zhuǎn)發(fā)方式:不修改請求報(bào)文的IP首部(源IP為CIP,目標(biāo)IP為VIP)运沦,而是在原IP報(bào)文之外再封裝一個(gè)IP首部(源IP是DIP泵额,目標(biāo)IP是RIP),將報(bào)文發(fā)往挑選出的目標(biāo)RS携添;RS直接響應(yīng)給客戶端(源IP是VIP,目標(biāo)IP是CIP)篓叶;

(1) DIP烈掠、VIP、RIP都應(yīng)該是公網(wǎng)地址缸托;

(2) RS的網(wǎng)關(guān)不能也不可指向DIP左敌;

(3) 請求報(bào)文要經(jīng)由Director,但響應(yīng)不能經(jīng)由Director俐镐;

(4) 不支持端口映射矫限;

(5) RS的OS得支持隧道功能;

應(yīng)用場景:如果環(huán)境要求DIP與RIP不在同一物理網(wǎng)絡(luò)(如災(zāi)備)時(shí)佩抹,就需要用到lvs-tun模型叼风;

4、LVS-FULLNAT

通過同時(shí)修改請求報(bào)文的源IP地址和目標(biāo)IP地址進(jìn)行轉(zhuǎn)發(fā)棍苹;

(1) VIP是公網(wǎng)地址无宿,RIP和DIP是私網(wǎng)地址,且通常不在同一IP網(wǎng)絡(luò)枢里;因此孽鸡,RIP的網(wǎng)關(guān)一般不會指向DIP;

(2) RS收到的請求報(bào)文源地址是DIP栏豺,因此彬碱,只能響應(yīng)給DIP;但Director還要將其發(fā)往Client奥洼;

(3) 請求和響應(yīng)報(bào)文都經(jīng)由Director巷疼;

(4) 支持端口映射;

應(yīng)用場景:與lvs-nat類似溉卓,解決了跨越網(wǎng)段部署lvs的問題

二皮迟、描術(shù)LVS-DR工作原理,并配置實(shí)現(xiàn)

LVS DR簡單原理

客戶端向目標(biāo)vip發(fā)出請求,lvs接收 桑寨,LVS根據(jù)負(fù)載均衡算法選擇一臺活躍的的節(jié)點(diǎn)伏尼,將此節(jié)點(diǎn)的ip所在網(wǎng)卡的mac地址作為目標(biāo)mac地址,發(fā)送到局域網(wǎng)里

節(jié)點(diǎn)在局域網(wǎng)中收到這個(gè)幀,拆開后發(fā)現(xiàn)目標(biāo)IP(VIP)與本地匹配,于是處理這個(gè)報(bào)文.隨后重新封裝報(bào)文,發(fā)送到局域網(wǎng).此時(shí)IP包的目標(biāo)ip是客戶端,源ip是自己的vip地址尉尾。


DR模式小結(jié):

1爆阶、通過在調(diào)度器LB上修改數(shù)據(jù)包的目的MAC地址實(shí)現(xiàn)轉(zhuǎn)發(fā)。注意源地址仍然是CIP,目的地址仍然是VIP地址辨图。

2班套、請求的報(bào)文經(jīng)過調(diào)度器,而RS響應(yīng)處理后的報(bào)文無需經(jīng)過調(diào)度器LB故河,因此并發(fā)訪問量大時(shí)使用效率很高(和NAT模式比)

3吱韭、因?yàn)镈R模式是通過MAC地址改寫機(jī)制實(shí)現(xiàn)轉(zhuǎn)發(fā),因此所有RS節(jié)點(diǎn)和調(diào)度器LB只能在一個(gè)局域網(wǎng)里面

4鱼的、RS主機(jī)需要綁定VIP地址在LO接口上理盆,并且需要配置ARP抑制。

5凑阶、RS節(jié)點(diǎn)的默認(rèn)網(wǎng)關(guān)不需要配置成LB猿规,而是直接配置為上級路由的網(wǎng)關(guān),能讓RS直接出網(wǎng)就可以宙橱。

6姨俩、由于DR模式的調(diào)度器僅做MAC地址的改寫,所以調(diào)度器LB就不能改寫目標(biāo)端口师郑,那么RS服務(wù)器就得使用和VIP相同的端口提供服務(wù)环葵。

環(huán)境搭建:四臺主機(jī),一臺VS服務(wù)器呕乎,二臺RS服務(wù)器积担,一臺客戶端服務(wù)器

網(wǎng)絡(luò)配置:VS服務(wù)器 DIP:192.168.17.7(eth0),RS1服務(wù)器RIP:192.168.17.17(eth0)猬仁,RS2服務(wù)器RIP:192.168.17.27(eth0)帝璧,VIP:192.168.17.100(lo:1),客戶端服務(wù)器CIP:192.168.17.37(eth1)

軟件包:keepalived湿刽,ipvsadm的烁,httpd

(1)在VS服務(wù)器上配置

[root@VS ~]# yum install -y ipvsadm

[root@VS ~]# ifconfig eth0:1 192.168.17.100/32

[root@VS ~]# ipvsadm -A -t 192.168.17.100:80 -s wrr

[root@VS ~]# ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.17 -g -w 1

[root@VS ~]# ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.27 -g -w 1

[root@VS ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

? -> RemoteAddress:Port? ? ? ? ? Forward Weight ActiveConn InActConn

TCP? 192.168.17.100:80 wrr

? -> 192.168.27.17:80? ? ? ? ? ? Route? 1? ? ? 0? ? ? ? ? 0? ? ? ?

? -> 192.168.27.27:80? ? ? ? ? ? Route? 1? ? ? 0? ? ? ? ? 0

(2)?在RS1服務(wù)器上配置

[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@RS1 ~]# ifconfig lo:1 192.168.17.100/32

[root@RS1 ~]# yum install -y httpd

[root@RS1 ~]# echo 192.168.17.17 RS1 > /var/www/html/index.html

[root@RS1 ~]# systemctl start httpd

(3)在RS2服務(wù)器上配置

[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@RS2 ~]# ifconfig lo:1 192.168.17.100/32

[root@RS2 ~]# yum install -y httpd

[root@RS2 ~]# echo 192.168.17.27 RS2 > /var/www/html/index.html

[root@RS2 ~]# systemctl start httpd

(4)在客戶端服務(wù)器上測試

[root@client ~]# while true; do curl 192.168.17.100 ;sleep 1; done

192.168.17.17 RS1

192.168.17.27 RS2

192.168.17.17 RS1

192.168.17.27 RS2

192.168.17.17 RS1

192.168.17.27 RS2

192.168.17.17 RS1

192.168.17.27 RS2

三、實(shí)現(xiàn)LVS+Keepalived高可用

四臺主機(jī)诈闺,兩臺LVS+Keepalived的主備服務(wù)器(lvs1:192.168.17.7渴庆,lvs2:192.168.17.17),兩臺RS服務(wù)器(RS1:192.168.17.37雅镊,RS2:192.168.17.47)

軟件包:keepalived襟雷,ipvsadm,httpd

(1)兩臺LVS+Keepalived的主備服務(wù)器安裝ipvsadm與keepalived

[root@lvs1 ~]# yum install -y ipvsadm keepalived

[root@lvs2 ~]# yum install -y ipvsadm keepalived

(2)?配置keepalived主備與lvs

[root@lvs1 ~]# cp /etc/keepalived/keepalived.conf{,.bak} #先備份

[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

? notification_email {

? ? root@localhost

? }

? notification_email_from keepalived@localhost

? smtp_server 127.0.0.1

? smtp_connect_timeout 30

? router_id node1

? vrrp_mcast_group4 224.100.100.100

}

vrrp_instance VI_1 {

? ? state MASTER

? ? interface eth0

? ? virtual_router_id 66

? ? priority 100

? ? advert_int 1

? ? authentication {

? ? ? ? auth_type PASS

? ? ? ? auth_pass 123456

? ? }

? ? virtual_ipaddress {

? ? ? ? 192.168.17.100 dev eth0 label eth0:1

? ? }

}

virtual_server 192.168.17.100 80 {

? ? delay_loop 6

? ? lb_algo wrr

? ? lb_kind DR

? ? protocol TCP

? ? sorry_server 127.0.0.1 80

? ? real_server 192.168.17.27 80 {

? ? ? ? weight 1

? ? ? ? HTTP_GET {

? ? ? ? ? ? url {

? ? ? ? ? ? ? path /

? ? ? ? ? ? ? status_code 200

? ? ? ? ? ? }

? ? ? ? ? ? connect_timeout 3

? ? ? ? ? ? nb_get_retry 3

? ? ? ? ? ? delay_before_retry 3

? ? ? ? }

? ? }

? ? real_server 192.168.17.37 80 {

? ? ? ? weight 1

? ? ? ? HTTP_GET {

? ? ? ? ? ? url {

? ? ? ? ? ? ? path /

? ? ? ? ? ? ? status_code 200

? ? ? ? ? ? }

? ? ? ? ? ? connect_timeout 3

? ? ? ? ? ? nb_get_retry 3

? ? ? ? ? ? delay_before_retry 3

? ? ? ? }?

? ? }

}

#從節(jié)點(diǎn)配置與以上大致一樣仁烹,只需修改三項(xiàng)

# router_id node1 ----> router_id node2

# state MASTER ----> state BACKUP

# priority 100? ---->? priority 80

(3)配置RS1與RS2服務(wù)器耸弄,先安裝httpd服務(wù),再配置RS服務(wù)器的VIP與內(nèi)核參數(shù)

#RS1

[root@rs1 ~]# yum install -y httpd

[root@rs1 ~]# echo 192.168.17.27 RS1 > /var/www/html/index.html

[root@rs1 ~]# systemctl start httpd

[root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

[root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@rs1 ~]# ifconfig lo:1 192.168.17.100/32

#RS2

[root@rs2 ~]# yum install -y httpd

[root@rs2 ~]# echo 192.168.17.37 RS1 > /var/www/html/index.html

[root@rs2 ~]# systemctl start httpd

[root@rs2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@rs2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@rs2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

[root@rs2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@rs2 ~]# ifconfig lo:1 192.168.17.100/32

(4)在Keepalived主節(jié)點(diǎn)與備節(jié)點(diǎn)啟動keepalived服務(wù)卓缰,使用ipvsadm查看LVS集群计呈,并查看VIP的綁定情況

[root@lvs1 ~]# systemctl start keepalived

[root@lvs2 ~]# systemctl start keepalived

[root@lvs1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

? -> RemoteAddress:Port? ? ? ? ? Forward Weight ActiveConn InActConn

TCP? 192.168.27.100:80 wrr

? -> 192.168.27.27:80? ? ? ? ? ? Route? 1? ? ? 0? ? ? ? ? 0? ? ? ?

? -> 192.168.27.37:80? ? ? ? ? ? Route? 1? ? ? 0? ? ? ? ? 0

[root@lvs1 ~]#? ip a |grep 192.168.27.100? ? #VIP綁定在主節(jié)點(diǎn)上

? ? inet 192.168.17.100/32 scope global eth0:1

(5) 在客戶端測試LVS的調(diào)度情況及故障轉(zhuǎn)移情況

[root@client ~]# while true;do curl 192.168.17.100 ;sleep 1;done

192.168.17.27 RS1

192.168.17.37 RS2

192.168.17.27 RS1

192.168.17.37 RS2

192.168.17.27 RS1

192.168.17.37 RS2

...

#下面先測試VS服務(wù)器(keepalived)的主備故障轉(zhuǎn)移

[root@lvs1 ~]# systemctl stop keepalived

[root@lvs1 ~]# ip a |grep 192.168.17.100? ? #主節(jié)點(diǎn)上的VIP已轉(zhuǎn)移

[root@lvs2 ~]# ip a |grep 192.168.17.100? ? #VIP已綁定在備節(jié)點(diǎn)上砰诵,而且訪問也未斷

? ? inet 192.168.17.100/32 scope global eth0:1

[root@lvs1 ~]# systemctl start keepalived? ? #重新啟動主節(jié)點(diǎn)

[root@lvs1 ~]#? ip a |grep 192.168.17.100? ? #主節(jié)點(diǎn)又取得VIP

? ? inet 192.168.17.100/32 scope global eth0:1

[root@lvs2 ~]# ip a |grep 192.168.17.100? ? #備節(jié)點(diǎn)VIP已釋放

#下面測試RS服務(wù)器故障時(shí),lvs的調(diào)度情況

#一開始是輪詢的調(diào)度的捌显,現(xiàn)在關(guān)掉RS1的httpd服務(wù)

[root@rs1 ~]# systemctl stop httpd

#短暫的失敗后茁彭,后續(xù)的訪問全調(diào)度給RS2了

[root@client ~]# while true;do curl 192.168.17.100 ;sleep 1;done

192.168.17.27 RS1

192.168.17.37 RS2

192.168.17.27 RS1

192.168.17.37 RS2

curl: (7) Failed connect to 192.168.17.100:80; Connection refused

192.168.17.37 RS2

curl: (7) Failed connect to 192.168.17.100:80; Connection refused

192.168.17.37 RS2

curl: (7) Failed connect to 192.168.17.100:80; Connection refused

192.168.17.37 RS2

curl: (7) Failed connect to 192.168.17.100:80; Connection refused

192.168.17.37 RS2

curl: (7) Failed connect to 192.168.17.100:80; Connection refused

192.168.17.37 RS2

curl: (7) Failed connect to 192.168.17.100:80; Connection refused

192.168.17.37 RS2

192.168.17.37 RS2

#恢復(fù)RS1的httpd服務(wù)

[root@rs1 ~]# systemctl start httpd

#等RS1重新連接正常后,可以看到后續(xù)也參與了調(diào)度

[root@client ~]# while true;do curl 192.168.17.100 ;sleep 1;done

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.37 RS2

192.168.17.27 RS1

192.168.17.37 RS2

...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扶歪,一起剝皮案震驚了整個(gè)濱河市理肺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌击罪,老刑警劉巖哲嘲,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異媳禁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)画切,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進(jìn)店門竣稽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人霍弹,你說我怎么就攤上這事毫别。” “怎么了典格?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵岛宦,是天一觀的道長。 經(jīng)常有香客問我耍缴,道長砾肺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任防嗡,我火速辦了婚禮变汪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蚁趁。我一直安慰自己裙盾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布他嫡。 她就那樣靜靜地躺著番官,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钢属。 梳的紋絲不亂的頭發(fā)上徘熔,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天,我揣著相機(jī)與錄音署咽,去河邊找鬼近顷。 笑死生音,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的窒升。 我是一名探鬼主播缀遍,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼饱须!你這毒婦竟也來了域醇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蓉媳,失蹤者是張志新(化名)和其女友劉穎譬挚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酪呻,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡减宣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玩荠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漆腌。...
    茶點(diǎn)故事閱讀 40,438評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖阶冈,靈堂內(nèi)的尸體忽然破棺而出闷尿,到底是詐尸還是另有隱情,我是刑警寧澤女坑,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布填具,位于F島的核電站,受9級特大地震影響匆骗,放射性物質(zhì)發(fā)生泄漏劳景。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一绰筛、第九天 我趴在偏房一處隱蔽的房頂上張望枢泰。 院中可真熱鬧,春花似錦铝噩、人聲如沸衡蚂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毛甲。三九已至,卻和暖如春具被,著一層夾襖步出監(jiān)牢的瞬間玻募,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工一姿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留七咧,地道東北人跃惫。 一個(gè)月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像艾栋,于是被迫代替她去往敵國和親爆存。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評論 2 359