集群及LVS簡(jiǎn)介 、 LVS-NAT集群 并淋、 LVS-DR集群

案例

鏈接

ipvsadm命令用法

1.1 問題

準(zhǔn)備一臺(tái)Linux服務(wù)器碴萧,安裝ipvsadm軟件包乙嘀,練習(xí)使用ipvsadm命令,實(shí)現(xiàn)如下功能:

  • 使用命令添加基于TCP一些的集群服務(wù)
  • 在集群中添加若干臺(tái)后端真實(shí)服務(wù)器
  • 實(shí)現(xiàn)同一客戶端訪問破喻,調(diào)度器分配固定服務(wù)器
  • 會(huì)使用ipvsadm實(shí)現(xiàn)規(guī)則的增虎谢、刪、改
  • 保存ipvsadm規(guī)則

1.2 方案

安裝ipvsadm軟件包曹质,關(guān)于ipvsadm的用法可以參考man ipvsadm資料婴噩。

常用ipvsadm命令語法格式如表-1及表-2所示。

表-1 ipvsadm命令選項(xiàng)

image

表-2 ipvsadm語法案例

image

1.3 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行羽德。

步驟一:使用命令增几莽、刪、改LVS集群規(guī)則

1)創(chuàng)建LVS虛擬集群服務(wù)器(算法為加權(quán)輪詢:wrr)

[root@proxy ~]# yum -y install ipvsadm
[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr
[root@proxy ~]# 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.4.5:80 wrr

2)為集群添加若干real server

[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 
[root@proxy ~]# 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.4.5:80 wrr
-> 192.168.2.100:80             router    1      0          0
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -m -w 2
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.201 -m -w 3
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.202 -m -w 4

3)修改集群服務(wù)器設(shè)置(修改調(diào)度器算法宅静,將加權(quán)輪詢修改為輪詢)

[root@proxy ~]# ipvsadm -E -t 192.168.4.5:80 -s rr
[root@proxy ~]# 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.4.5:80 rr
-> 192.168.2.100:80             router    1      0          0         
-> 192.168.2.200:80             masq      2      0          0         
-> 192.168.2.201:80             masq      2      0          0         
-> 192.168.2.202:80             masq      1      0          0

4)修改read server(使用-g選項(xiàng)章蚣,將模式改為DR模式)

[root@proxy ~]# ipvsadm -e -t 192.168.4.5:80 -r 192.168.2.202 -g

5)查看LVS狀態(tài)

[root@proxy ~]# ipvsadm -Ln

6)創(chuàng)建另一個(gè)集群(算法為最少連接算法;使用-m選項(xiàng)姨夹,設(shè)置工作模式為NAT模式)

[root@proxy ~]# ipvsadm -A -t 192.168.4.5:3306 -s lc
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.100 -m
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:3306 -r 192.168.2.200 -m

7)永久保存所有規(guī)則(非必須的操作)

[root@proxy ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm

注意:永久規(guī)則需要確保ipvsadm服務(wù)為開機(jī)啟動(dòng)服務(wù)才可以纤垂。

(systemctl enable ipvsadm)。

8)清空所有規(guī)則

[root@proxy ~]# ipvsadm -C

部署LVS-NAT集群

2.1 問題

使用LVS實(shí)現(xiàn)NAT模式的集群調(diào)度服務(wù)器磷账,為用戶提供Web服務(wù):

  • 集群對(duì)外公網(wǎng)IP地址為192.168.4.5
  • 調(diào)度器內(nèi)網(wǎng)IP地址為192.168.2.5
  • 真實(shí)Web服務(wù)器地址分別為192.168.2.100峭沦、192.168.2.200
  • 使用加權(quán)輪詢調(diào)度算法,真實(shí)服務(wù)器權(quán)重任意

2.2 方案

實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)主機(jī)配置細(xì)節(jié)如表-3所示逃糟,注意下面的網(wǎng)卡名稱僅為參考吼鱼,不能照抄。

表-3

image

使用4臺(tái)虛擬機(jī)绰咽,1臺(tái)作為Director調(diào)度器菇肃、2臺(tái)作為Real Server、1臺(tái)客戶端取募,拓?fù)浣Y(jié)構(gòu)如圖-1所示琐谤,注意:web1和web2必須配置網(wǎng)關(guān)地址。

image

圖-1

2.3 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行矛辕。

步驟一:配置基礎(chǔ)環(huán)境

1)設(shè)置Web服務(wù)器

[root@web1 ~]# yum -y install httpd        #安裝軟件
[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html    #創(chuàng)建網(wǎng)頁文件
[root@web1 ~]# firewall-cmd --set-default-zone=trusted            #設(shè)置防火墻
[root@web1 ~]# setenforce  0
[root@web1 ~]# sed -i  '/SELINUX/s/enforcing/permissive/'  /etc/selinux/config  

[root@web2 ~]# yum -y install httpd        #安裝軟件
[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html    #創(chuàng)建網(wǎng)頁文件
[root@web2 ~]# firewall-cmd --set-default-zone=trusted            #設(shè)置防火墻
[root@web2 ~]# setenforce  0
[root@web2 ~]# sed -i  '/SELINUX/s/enforcing/permissive/'  /etc/selinux/config

2)啟動(dòng)Web服務(wù)器軟件

[root@web1 ~]# systemctl restart httpd
[root@web2 ~]# systemctl restart httpd

如何驗(yàn)證?

完成后可以使用proxy主機(jī)測(cè)試下是否可以訪問web1和web2

[root@proxy ~]# curl http://192.168.2.100
[root@proxy ~]# curl http://192.168.2.200

3)配置網(wǎng)關(guān)付魔,將web1和web2的網(wǎng)關(guān)設(shè)置為192.168.2.5(不能照抄網(wǎng)卡名稱)

如果有4網(wǎng)段的IP聊品,則臨時(shí)將該網(wǎng)卡關(guān)閉nmcli con down 網(wǎng)卡名稱

[root@web1 ~]# nmcli connection modify eth1 \
ipv4.method manual ipv4.gateway 192.168.2.5
#備注:網(wǎng)卡名稱不能照抄,需要自己查看下2.100的網(wǎng)卡名稱
[root@web1 ~]# nmcli connection up eth1
[root@web1 ~]# ip route show                #查看默認(rèn)網(wǎng)關(guān)
default via 192.168.2.5 dev eth1          #提示:這里default后面的IP就是默認(rèn)網(wǎng)關(guān)
#英語詞匯:default(默認(rèn),預(yù)設(shè)值)
… …
[root@web2 ~]# nmcli connection modify eth1 \
ipv4.method manual ipv4.gateway 192.168.2.5
#備注:網(wǎng)卡名稱不能照抄,需要自己查看下2.200的網(wǎng)卡名稱
[root@web2 ~]# nmcli connection up eth1
[root@web2 ~]# ip route show        #查看默認(rèn)網(wǎng)關(guān)几苍,default后面的IP就是默認(rèn)網(wǎng)關(guān)

為什么需要配置網(wǎng)關(guān)翻屈?

實(shí)驗(yàn)拓?fù)淙鐖D-2所示。

image

圖-2

為了方便下面所有的IP都采用簡(jiǎn)寫,如4.10代表192.168.4.10妻坝,2.100代表192.168.2.100伸眶。

英語詞匯:source(src)代表源地址惊窖,destination(dest或dst)代表目標(biāo)地址。

LVS采用的是路由器的NAT通訊原理厘贼!通訊流程如下:

1.客戶端發(fā)送請(qǐng)求數(shù)據(jù)包(src:4.10,dst:4.5)

2.數(shù)據(jù)包被發(fā)送給LVS調(diào)度器界酒,調(diào)度器做NAT地址轉(zhuǎn)換(外網(wǎng)轉(zhuǎn)內(nèi)網(wǎng),內(nèi)網(wǎng)轉(zhuǎn)外網(wǎng))

a)數(shù)據(jù)包被修改為src:4.10,dst:2.100(dst也有可能被修改為2.200嘴秸,隨機(jī)的)

b)LVS調(diào)度器把數(shù)據(jù)包轉(zhuǎn)發(fā)給后端真正的web服務(wù)器(2.100)

3.web1收到數(shù)據(jù)包開始回應(yīng)數(shù)據(jù)(rsc:2.100毁欣,dst:4.10)

備注:誰訪問就給誰回復(fù)數(shù)據(jù),因?yàn)閟rc是4.10岳掐,所以應(yīng)該給4.10回應(yīng)數(shù)據(jù)凭疮!

但是,自己是2.100串述,對(duì)方是4.10执解,跨網(wǎng)段默認(rèn)無法通訊,如何解決纲酗?衰腌??

Web1和web2都需要設(shè)置默認(rèn)網(wǎng)關(guān)(也就是192.168.2.5)

4)web1想發(fā)送數(shù)據(jù)給4.10但是又無法與其通訊耕姊,所以數(shù)據(jù)包被交給默認(rèn)網(wǎng)關(guān)

5)LVS調(diào)度器(軟路由)收到后端web發(fā)送過來的數(shù)據(jù)后桶唐,再次做NAT地址轉(zhuǎn)換

a)數(shù)據(jù)包被修改為src:4.5,dst:4.10

b)LVS調(diào)度器把數(shù)據(jù)包轉(zhuǎn)發(fā)給客戶端主機(jī)

6)客戶端接收網(wǎng)頁數(shù)據(jù)內(nèi)容

注意:客戶端訪問的是4.5,最后是4.5給客戶端回復(fù)的網(wǎng)頁數(shù)據(jù)\岳肌S仍蟆!规脸!

步驟二:部署LVS-NAT模式調(diào)度器

1)確認(rèn)調(diào)度器的路由轉(zhuǎn)發(fā)功能(如果已經(jīng)開啟坯约,可以忽略)

[root@proxy ~]# echo 1 > /proc/sys/net/ipv4/ip_forward     #開啟路由轉(zhuǎn)發(fā),臨時(shí)有效
[root@proxy ~]# cat /proc/sys/net/ipv4/ip_forward          #查看效果
1
[root@proxy ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
#修改配置文件莫鸭,設(shè)置永久規(guī)則闹丐,英語詞匯:forward(轉(zhuǎn)寄,轉(zhuǎn)發(fā)被因,發(fā)送卿拴,向前)

2)創(chuàng)建集群服務(wù)器

[root@proxy ~]# yum -y install ipvsadm
[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr
# -A(add)是創(chuàng)建添加虛擬服務(wù)器集群
# -t(tcp)后面指定集群VIP的地址和端口,協(xié)議是tcp協(xié)議
# -s后面指定調(diào)度算法梨与,如rr(輪詢)堕花、wrr(加權(quán)輪詢)捣炬、lc(最少連接)雕擂、wlc(加權(quán)最少連接)等等

3)添加真實(shí)服務(wù)器

[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m
[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
#-a(add)往虛擬服務(wù)器集群中添加后端真實(shí)服務(wù)器IP,指定往-t 192.168.4.5:80這個(gè)集群中添加
#-r(real)后面跟后端真實(shí)服務(wù)器的IP和端口,這里不寫端口默認(rèn)是80端口
#-w(weight)指定服務(wù)器的權(quán)重员串,權(quán)重越大被訪問的次數(shù)越多,英語詞匯:weight(重量壕曼,分量)
#-m指定集群工作模式為NAT模式苏研,如果是-g則代表使用DR模式,-i代表TUN模式

4)查看規(guī)則列表(L是list查看腮郊,n是number數(shù)字格式顯示)

[root@proxy ~]# ipvsadm -Ln

5)設(shè)置防火墻摹蘑,SELinux

[root@proxy ~]# firewall-cmd --set-default-zone=trusted
[root@proxy ~]# setenforce  0
[root@proxy ~]# sed -i  '/SELINUX/s/enforcing/permissive/'  /etc/selinux/config

步驟三:客戶端測(cè)試

客戶端client主機(jī)使用curl命令反復(fù)連接http://192.168.4.5,查看訪問的頁面是否會(huì)輪詢到不同的后端真實(shí)服務(wù)器伴榔。

部署LVS-DR集群

3.1 問題

使用LVS實(shí)現(xiàn)DR模式的集群調(diào)度服務(wù)器纹蝴,為用戶提供Web服務(wù):

  • 客戶端IP地址為192.168.4.10
  • LVS調(diào)度器VIP地址為192.168.4.15
  • LVS調(diào)度器DIP地址設(shè)置為192.168.4.5
  • 真實(shí)Web服務(wù)器地址分別為192.168.4.100、192.168.4.200
  • 使用加權(quán)輪詢調(diào)度算法踪少,權(quán)重可以任意

說明:

CIP是客戶端的IP地址塘安;

VIP是對(duì)客戶端提供服務(wù)的IP地址;

RIP是后端服務(wù)器的真實(shí)IP地址援奢;

DIP是調(diào)度器與后端服務(wù)器通信的IP地址(VIP必須配置在虛擬接口)兼犯。

3.2 方案

使用4臺(tái)虛擬機(jī),1臺(tái)作為客戶端集漾、1臺(tái)作為Director調(diào)度器切黔、2臺(tái)作為Real Server,拓?fù)浣Y(jié)構(gòu)如圖-3所示具篇。實(shí)驗(yàn)拓?fù)浣Y(jié)構(gòu)主機(jī)配置細(xì)節(jié)如表-4所示纬霞。

image

圖-3

表-4

image

為什么本實(shí)驗(yàn)中web1和web2要采用4網(wǎng)段IP?如圖-4所示驱显。

image

圖-4

LVS NAT實(shí)驗(yàn)請(qǐng)求數(shù)據(jù)包從LVS調(diào)度器進(jìn)诗芜,web的相應(yīng)數(shù)據(jù)包也從LVS調(diào)度器出,那么LVS調(diào)度器就需要承載所有數(shù)據(jù)的壓力埃疫,會(huì)成為整個(gè)集群的瓶頸7帧!

本實(shí)驗(yàn)LVS DR模式的核心需求是希望web1和web2可以不走調(diào)度器返回?cái)?shù)據(jù)栓霜!

但是如圖-4所示翠桦,如果web1和web2采用2.100和2.200這樣2網(wǎng)段的IP,又不希望給4.10回復(fù)數(shù)據(jù)走LVS調(diào)度器(也就是不給web1和web2配置默認(rèn)網(wǎng)關(guān)為2.5)胳蛮,最后是無法跨網(wǎng)段通訊的O铡!仅炊!

怎么辦斗幼?核心需求是希望web1和web2可以直接返回?cái)?shù)據(jù)給客戶端!C鳌孟岛!

想讓web1和web2可以直接返回?cái)?shù)據(jù)給客戶端,可以給web1和web2配置4網(wǎng)段IP督勺,如圖-5所示渠羞。

image

圖-5

這樣就可以了嗎?答案是否定的V前А4窝!網(wǎng)絡(luò)中的基本原則是A訪問B瓷叫,必須是B返回?cái)?shù)據(jù)給A屯吊,現(xiàn)在4.10訪問4.5,最終4.100給4.10返回網(wǎng)頁數(shù)據(jù)摹菠,所有數(shù)據(jù)包都會(huì)被丟棄:行丁!次氨!

那怎么辦呢蔽介?地址欺騙!

image

圖-6

如圖-6所示煮寡,我們給web1和web2再額外添加一個(gè)偽裝的IP地址虹蓄,這個(gè)IP地址因?yàn)槭怯脕碜龅刂菲垓_用的,假的就是假的幸撕,不能暴露(必須配置在lo本地回環(huán)網(wǎng)卡上面)薇组。

lo網(wǎng)卡上面默認(rèn)配置的IP是127.0.0.1。

如果你家里有非法的1000W坐儿,你會(huì)天天出去跟別人說你有1000W嗎?

3.3 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行律胀。

說明:

CIP是客戶端的IP地址;

VIP是對(duì)客戶端提供服務(wù)的IP地址(本案例為192.168.4.15)挑童;

VIP必須配置在虛擬接口(目的是防止地址沖突)累铅;

RIP是后端服務(wù)器的真實(shí)IP地址(本案例為192.168.4.100和192.168.4.200);

DIP是調(diào)度器與后端服務(wù)器通信的IP地址(本案例為192.168.4.5)站叼。

步驟一:配置實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境

1)設(shè)置Proxy服務(wù)器的VIP和DIP

注意:為了防止沖突娃兽,VIP必須要配置在網(wǎng)卡的虛擬接口,網(wǎng)卡名稱不能照抄>⌒āM洞ⅰ!

[root@proxy ~]# cd /etc/sysconfig/network-scripts/
[root@proxy ~]# cp ifcfg-eth0  ifcfg-eth0:0
[root@proxy ~]# vim ifcfg-eth0:0
TYPE=Ethernet
#網(wǎng)卡類型為:以太網(wǎng)卡
BOOTPROTO=none
#none手動(dòng)配置IP阔馋,或者dhcp自動(dòng)配置IP
NAME=eth0:0
#網(wǎng)卡名稱
DEVICE=eth0:0
#設(shè)備名稱
ONBOOT=yes
#開機(jī)時(shí)是否自動(dòng)激活該網(wǎng)卡
IPADDR=192.168.4.15
#IP地址
PREFIX=24
#子網(wǎng)掩碼
[root@proxy ~]# systemctl restart network        #重啟網(wǎng)絡(luò)服務(wù)
[root@proxy ~]# ip  a  s             #會(huì)看到一個(gè)網(wǎng)卡下面有兩個(gè)IP地址

常見問題:RHEL7和Centos7系統(tǒng)中有兩個(gè)管理網(wǎng)絡(luò)的服務(wù)玛荞,有可能沖突?

解決方法: 關(guān)閉NetworkManager服務(wù)后重啟network即可呕寝。

2)設(shè)置Web1服務(wù)器網(wǎng)絡(luò)參數(shù)(不能照抄網(wǎng)卡名稱)

[root@web1 ~]# nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.4.100/24 connection.autoconnect yes
[root@web1 ~]# nmcli connection up eth0

接下來給web1配置VIP地址勋眯。

注意:這里的子網(wǎng)掩碼必須是32(也就是全255),網(wǎng)絡(luò)地址與IP地址一樣,廣播地址與IP地址也一樣客蹋。

[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 ~]# cp ifcfg-lo  ifcfg-lo:0
[root@web1 ~]# vim ifcfg-lo:0
DEVICE=lo:0
#設(shè)備名稱
IPADDR=192.168.4.15
#IP地址
NETMASK=255.255.255.255
#子網(wǎng)掩碼
NETWORK=192.168.4.15
#網(wǎng)絡(luò)地址
BROADCAST=192.168.4.15
#廣播地址
ONBOOT=yes
#開機(jī)是否激活本網(wǎng)卡
NAME=lo:0
#網(wǎng)卡名稱

防止地址沖突的問題:

這里因?yàn)閣eb1也配置與調(diào)度器一樣的VIP地址塞蹭,默認(rèn)肯定會(huì)出現(xiàn)地址沖突;

sysctl.conf文件寫入這下面四行的主要目的就是訪問192.168.4.15的數(shù)據(jù)包讶坯,只有調(diào)度器會(huì)響應(yīng)番电,其他主機(jī)都不做任何響應(yīng),這樣防止地址沖突的問題辆琅。

[root@web1 ~]# vim /etc/sysctl.conf
#文件末尾手動(dòng)寫入如下4行內(nèi)容,英語詞匯:ignore(忽略漱办、忽視),announce(宣告婉烟、廣播通知)
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#當(dāng)有arp廣播問誰是192.168.4.15時(shí)娩井,本機(jī)忽略該ARP廣播,不做任何回應(yīng)(防止進(jìn)站沖突)
#本機(jī)不要向外宣告自己的lo回環(huán)地址是192.168.4.15(防止出站沖突)
[root@web1 ~]# sysctl -p

重啟網(wǎng)絡(luò)服務(wù)

[root@web1 ~]# systemctl restart network        #重啟網(wǎng)絡(luò)服務(wù)
[root@web1 ~]# ip  a   s           #會(huì)看到一個(gè)網(wǎng)卡下面有兩個(gè)IP地址

常見錯(cuò)誤:如果重啟網(wǎng)絡(luò)后未正確配置lo:0似袁,有可能是NetworkManager和network服務(wù)有沖突撞牢,關(guān)閉NetworkManager后重啟network即可。(非必須的操作)

[root@web1 ~]# systemctl stop NetworkManager
[root@web1 ~]# systemctl restart network

3)設(shè)置Web2服務(wù)器網(wǎng)絡(luò)參數(shù)(不能照抄網(wǎng)卡名稱)

[root@web2 ~]# nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.4.200/24 connection.autoconnect yes
[root@web2 ~]# nmcli connection up eth0

接下來給web2配置VIP地址

注意:這里的子網(wǎng)掩碼必須是32(也就是全255)叔营,網(wǎng)絡(luò)地址與IP地址一樣屋彪,廣播地址與IP地址也一樣。

[root@web2 ~]# cd /etc/sysconfig/network-scripts/
[root@web2 ~]# cp ifcfg-lo  ifcfg-lo:0
[root@web2 ~]# vim ifcfg-lo:0
DEVICE=lo:0
#設(shè)備名稱
IPADDR=192.168.4.15
#IP地址
NETMASK=255.255.255.255
#子網(wǎng)掩碼
NETWORK=192.168.4.15
#網(wǎng)絡(luò)地址
BROADCAST=192.168.4.15
#廣播地址
ONBOOT=yes
#開機(jī)是否激活該網(wǎng)卡
NAME=lo:0
#網(wǎng)卡名稱

防止地址沖突的問題:

這里因?yàn)閣eb1也配置與調(diào)度器一樣的VIP地址绒尊,默認(rèn)肯定會(huì)出現(xiàn)地址沖突畜挥;

sysctl.conf文件寫入這下面四行的主要目的就是訪問192.168.4.15的數(shù)據(jù)包,只有調(diào)度器會(huì)響應(yīng)婴谱,其他主機(jī)都不做任何響應(yīng)蟹但,這樣防止地址沖突的問題。

[root@web2 ~]# vim /etc/sysctl.conf
#手動(dòng)寫入如下4行內(nèi)容谭羔,英語詞匯:ignore(忽略华糖、忽視),announce(宣告瘟裸、廣播通知)
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#當(dāng)有arp廣播問誰是192.168.4.15時(shí)客叉,本機(jī)忽略該ARP廣播,不做任何回應(yīng)(防止進(jìn)站沖突)
#本機(jī)不要向外宣告自己的lo回環(huán)地址是192.168.4.15(防止出站沖突)
[root@web2 ~]# sysctl -p

重啟網(wǎng)絡(luò)服務(wù)

[root@web2 ~]# systemctl restart network        #重啟網(wǎng)絡(luò)服務(wù)
[root@web2 ~]# ip a  s                 #會(huì)看到一個(gè)網(wǎng)卡下面有兩個(gè)IP地址

常見錯(cuò)誤:如果重啟網(wǎng)絡(luò)后未正確配置lo:0话告,有可能是NetworkManager和network服務(wù)有沖突兼搏,關(guān)閉NetworkManager后重啟network即可。(非必須的操作)

[root@web1 ~]# systemctl stop NetworkManager
[root@web1 ~]# systemctl restart network

步驟二:proxy調(diào)度器安裝軟件并部署LVS-DR模式調(diào)度器

1)安裝軟件(如果已經(jīng)安裝沙郭,此步驟可以忽略)

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

2)清理之前實(shí)驗(yàn)的規(guī)則佛呻,創(chuàng)建新的集群服務(wù)器規(guī)則

[root@proxy ~]# ipvsadm -C                                #清空所有規(guī)則
[root@proxy ~]# ipvsadm -A -t 192.168.4.15:80 -s wrr
## -A(add)是創(chuàng)建添加虛擬服務(wù)器集群
# -t(tcp)后面指定集群VIP的地址和端口,協(xié)議是tcp協(xié)議
# -s后面指定調(diào)度算法病线,如rr(輪詢)吓著、wrr(加權(quán)輪詢)鲤嫡、lc(最少連接)、wlc(加權(quán)最少連接)等等

3)添加真實(shí)服務(wù)器(-g參數(shù)設(shè)置LVS工作模式為DR模式绑莺,-w設(shè)置權(quán)重)

[root@proxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.100 -g -w 1
[root@proxy ~]# ipvsadm -a -t 192.168.4.15:80 -r 192.168.4.200 -g -w 1
#-a(add)往虛擬服務(wù)器集群中添加后端真實(shí)服務(wù)器IP,指定往-t 192.168.4.15:80這個(gè)集群中添加
#-r(real)后面跟后端真實(shí)服務(wù)器的IP和端口泛范,這里不寫端口默認(rèn)是80端口
#-w(weight)指定服務(wù)器的權(quán)重,權(quán)重越大被訪問的次數(shù)越多紊撕,英語詞匯:weight(重量,分量)
#-m指定集群工作模式為NAT模式赡突,如果是-g則代表使用DR模式对扶,-i代表TUN模式

4)查看規(guī)則列表(L代表list查看規(guī)則,n代表number數(shù)字格式顯示)

[root@proxy ~]# ipvsadm -Ln
TCP  192.168.4.15:80 wrr
-> 192.168.4.100:80             Route   1      0          0         
-> 192.168.4.200:80             Route   1      0          0

步驟三:客戶端測(cè)試

客戶端使用curl命令反復(fù)連接http://192.168.4.15惭缰,查看訪問的頁面是否會(huì)輪詢到不同的后端真實(shí)服務(wù)器浪南。

注意:本實(shí)驗(yàn)不可以在proxy主機(jī)(LVS調(diào)度器)使用curl訪問網(wǎng)頁驗(yàn)證!J堋络凿!

為什么?請(qǐng)思考圖-7示意圖昂羡。

image

圖-7

擴(kuò)展知識(shí):默認(rèn)LVS不帶健康檢查功能絮记,需要自己手動(dòng)編寫動(dòng)態(tài)檢測(cè)腳本,實(shí)現(xiàn)該功能:(參考腳本如下虐先,僅供參考)

[root@proxy ~]# vim check.sh
#!/bin/bash
VIP=192.168.4.15:80
RIP1=192.168.4.100
RIP2=192.168.4.200
while :
do
  for IP in $RIP1 $RIP2
  do
    curl -s http://$IP &>/dev/null
    if [ $? -eq 0 ];then
      ipvsadm -Ln | grep -q $IP || ipvsadm -a -t $VIP -r $IP
    else
      ipvsadm -Ln | grep -q $IP && ipvsadm -d -t $VIP -r $IP
    fi
  done
  sleep 1
done

附加思維導(dǎo)圖怨愤,如圖-7所示:

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蛹批,隨后出現(xiàn)的幾起案子撰洗,更是在濱河造成了極大的恐慌,老刑警劉巖腐芍,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件差导,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡猪勇,警方通過查閱死者的電腦和手機(jī)设褐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泣刹,“玉大人络断,你說我怎么就攤上這事∠盥辏” “怎么了貌笨?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)襟沮。 經(jīng)常有香客問我锥惋,道長(zhǎng)昌腰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任膀跌,我火速辦了婚禮遭商,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捅伤。我一直安慰自己劫流,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布丛忆。 她就那樣靜靜地躺著祠汇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪熄诡。 梳的紋絲不亂的頭發(fā)上可很,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音凰浮,去河邊找鬼我抠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛袜茧,可吹牛的內(nèi)容都是我干的菜拓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼笛厦,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼尘惧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起递递,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤喷橙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后登舞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贰逾,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年菠秒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疙剑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡践叠,死狀恐怖言缤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情禁灼,我是刑警寧澤管挟,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站弄捕,受9級(jí)特大地震影響僻孝,放射性物質(zhì)發(fā)生泄漏导帝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一穿铆、第九天 我趴在偏房一處隱蔽的房頂上張望您单。 院中可真熱鬧,春花似錦荞雏、人聲如沸虐秦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悦陋。三九已至,卻和暖如春别洪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背柳刮。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國打工挖垛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秉颗。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓痢毒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親蚕甥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哪替,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容