溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DR(直接路由)模式負(fù)載均衡配置詳細(xì)介紹

發(fā)布時(shí)間:2020-04-17 16:27:57 來(lái)源:億速云 閱讀:431 作者:三月 欄目:系統(tǒng)運(yùn)維

下文給大家?guī)?lái)DR(直接路由)模式負(fù)載均衡配置詳細(xì)介紹,希望能夠給大家在實(shí)際運(yùn)用中帶來(lái)一定的幫助,負(fù)載均衡涉及的東西比較多,理論也不多,網(wǎng)上有很多書(shū)籍,今天我們就用億速云在行業(yè)內(nèi)累計(jì)的經(jīng)驗(yàn)來(lái)做一個(gè)解答。

DR(直接路由)是三種負(fù)載均衡模式其中之一,也是使用最多的一種模式,關(guān)于該模式的介紹,可以參考博文:https://blog.51cto.com/14227204/2436891
環(huán)境如下:
DR(直接路由)模式負(fù)載均衡配置詳細(xì)介紹
1、所有web節(jié)點(diǎn)和調(diào)度器都配置上VIP:客戶端訪問(wèn)VIP(群集的虛擬IP地址)時(shí),若是

調(diào)度器將請(qǐng)求轉(zhuǎn)發(fā)給web節(jié)點(diǎn),然后由web節(jié)點(diǎn)直接去響應(yīng)客戶端,那么客戶端在收到

數(shù)據(jù)包后,發(fā)現(xiàn)收到的數(shù)據(jù)包源地址不是200.0.0.254,那么就會(huì)直接丟棄web云服務(wù)器返回

的數(shù)據(jù)包,為了解決這一問(wèn)題,所以需要在所有web節(jié)點(diǎn)和調(diào)度器的虛接口上配置上200.0.0.254

這個(gè)地址,并且通過(guò)添加一條路由,將訪問(wèn)VIP的數(shù)據(jù)限制在本地,以避免通信紊亂。
.
2、解決關(guān)于web節(jié)點(diǎn)ARP響應(yīng)的問(wèn)題:在所有web節(jié)點(diǎn)和調(diào)度器上配置上200.0.0.254

這個(gè)地址后,當(dāng)client訪問(wèn)200.0.0.254這個(gè)地址時(shí),所有的web節(jié)點(diǎn)都有這個(gè)地址,所以

都會(huì)去進(jìn)行ARP響應(yīng),那么這樣一來(lái),可能就造成了client略過(guò)調(diào)度器直接去訪問(wèn)web節(jié)點(diǎn)

了,這樣一來(lái),調(diào)度器就沒(méi)有存在的意義了,自然也就達(dá)不到負(fù)載均衡的效果了,所以需要

關(guān)閉web節(jié)點(diǎn)的部分ARP應(yīng)答,在廣播200.0.0.254這個(gè)地址時(shí),只讓調(diào)度器去響應(yīng),web

節(jié)點(diǎn)不響應(yīng)該廣播。
.

3、解決調(diào)度器內(nèi)核自帶的ICMP的重定向優(yōu)化問(wèn)題:Linux內(nèi)核有一個(gè)ICMP優(yōu)化功能,

就是在client第一次訪問(wèn)調(diào)度器時(shí),調(diào)度器會(huì)將請(qǐng)求轉(zhuǎn)發(fā)給某一個(gè)web節(jié)點(diǎn),在這時(shí),Linux

自帶的ICMP優(yōu)化功能會(huì)發(fā)現(xiàn),客戶端可以直接和web節(jié)點(diǎn)通信,然后就會(huì)發(fā)送一個(gè)數(shù)據(jù)

包,告訴client,之后所有訪問(wèn)200.0.0.254的數(shù)據(jù)包,直接發(fā)給那個(gè)web節(jié)點(diǎn)即可,這樣之

后所有的訪問(wèn)請(qǐng)求都將直接發(fā)送給某一個(gè)web節(jié)點(diǎn),而不再經(jīng)過(guò)調(diào)度器,這樣肯定也是不可

以的,無(wú)法達(dá)到負(fù)載均衡的效果了。所以需要關(guān)閉Linux內(nèi)核的ICMP重定向參數(shù)響應(yīng)。
準(zhǔn)備工作:
1、自行配置除 VIP 以外的地址
2、準(zhǔn)備相關(guān)軟件包
配置如下:
一、配置負(fù)載調(diào)度器:
采用虛接口的方式為網(wǎng)卡 ens33 綁定 VIP 地址,以便響應(yīng)群集訪問(wèn)。

[root@localhost /]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0          
[root@localhost network-scripts]# vim ifcfg-ens33:0              # 修改ens33:0,配置VIP
....................
IPADDR=200.0.0.254                                # 修改如下四條,注意網(wǎng)卡名稱一致
NETMASK=255.255.255.0
NAME=ens33:0
DEVICE=ens33:0
....................
[root@localhost network-scripts]# ifup ens33:0                 # 啟動(dòng)虛接口
[root@localhost network-scripts]# ifconfig ens33:0                 # 查看相關(guān)配置是否成功
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 200.0.0.254  netmask 255.255.255.0  broadcast 200.0.0.255
        ether 00:0c:29:f1:61:28  txqueuelen 1000  (Ethernet)
root@localhost network-scripts]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 200.0.0.1  netmask 255.255.255.0  broadcast 200.0.0.255
        inet6 fe80::595f:84d:a379:7b6e  prefixlen 64  scopeid 0x20<link>

調(diào)整/proc響應(yīng)參數(shù)(關(guān)閉 Linux 內(nèi)核的重定向參數(shù)響應(yīng)):

[root@localhost /]# vim /etc/sysctl.conf                   # 寫(xiě)入如下三行
................
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost /]# sysctl -p                      # 刷新配置使之生效
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

配置負(fù)載均衡策略:

[root@localhost /]# modprobe ip_vs                         # 加載 ip_vs 模塊
[root@localhost /]# yum -y install ipvsadm                # 安裝 ipvsadm 工具
[root@localhost /]# ipvsadm -C                                  # 清除原有策略
[root@localhost /]# ipvsadm -A -t 200.0.0.254:80 -s rr           # 配置群集VIP及添加相關(guān)節(jié)點(diǎn)
[root@localhost /]# ipvsadm -a -t 200.0.0.254:80 -r 200.0.0.2:80 -g -w 1
[root@localhost /]# ipvsadm -a -t 200.0.0.254:80 -r 200.0.0.3:80 -g -w 1
[root@localhost /]# ipvsadm-save                             # 保存策略
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 200.0.0.2:http -g -w 1
-a -t localhost.localdomain:http -r 200.0.0.3:http -g -w 1
[root@localhost /]# ipvsadm-save > /etc/sysconfig/ipvsadm             # 導(dǎo)出以備份
[root@localhost /]# ipvsadm -ln                                # 確認(rèn)群集當(dāng)前策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  200.0.0.254:80 rr
  -> 200.0.0.2:80                 Route   1      0          0         
  -> 200.0.0.3:80                 Route   1      0          0         

二、配置web節(jié)點(diǎn)服務(wù)器
y因?yàn)?web 節(jié)點(diǎn)服務(wù)器的VIP地址僅用來(lái)發(fā)送web響應(yīng)數(shù)據(jù)包的源地址,并不需要監(jiān)聽(tīng)客戶機(jī)的訪問(wèn)請(qǐng)求(由調(diào)度器監(jiān)聽(tīng)并分發(fā))。因此使用虛接口lo:0來(lái)承載VIP地址,并添加一條路由記錄,將訪問(wèn)VIP的數(shù)據(jù)包限制在本地。

[root@web1 /]# cd /etc/sysconfig/network-scripts/
[root@web1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@web1 network-scripts]# vim ifcfg-lo:0              # 編輯此文件
.................
DEVICE=lo:0                             # 切記修改網(wǎng)卡名稱
IPADDR=200.0.0.254               # 配置 VIP 
NETMASK=255.255.255.255                  # 子網(wǎng)掩碼需全為1
ONBOOT=yes
[root@web1 network-scripts]# ifup lo:0                # 啟動(dòng)虛接口
[root@web1 network-scripts]# ifconfig lo:0           # 確認(rèn)以生效
lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 200.0.0.254  netmask 255.255.255.255
        loop  txqueuelen 1  (Local Loopback)
[root@web1 /]# route add -host 200.0.0.254 dev lo:0               # 添加 VIP 本地訪問(wèn)路由
[root@web1 /]# route -n
200.0.0.254     0.0.0.0         255.255.255.255 UH    0      0        0 lo
[root@web1 /]# vim /etc/rc.local                         #設(shè)置為開(kāi)機(jī)自動(dòng)添加此條路由
/sbin/route add -host 200.0.0.254 dev lo:0

調(diào)整 /proc 響應(yīng)參數(shù):

[root@web1 /]# vim /etc/sysctl.conf 
................
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@web1 /]# sysctl -p              # 刷新使配置生效
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

安裝 httpd 并創(chuàng)建測(cè)試網(wǎng)頁(yè):

[root@web1 /]# yum -y install httpd              # 安裝httpd
[root@web1 /]# echo test1.com > /var/www/html/index.html         # 創(chuàng)建測(cè)試文件
[root@web1 /]# systemctl start httpd
[root@web1 /]# systemctl enable httpd

重復(fù)以上步驟,配置其他節(jié)點(diǎn)服務(wù)器,一樣的虛接口,一樣的/proc,一樣的httpd(為了方便驗(yàn)證是否成功,這里我將另一個(gè)首頁(yè)文件改為了test2.com)
DR(直接路由)模式負(fù)載均衡配置詳細(xì)介紹
DR(直接路由)模式負(fù)載均衡配置詳細(xì)介紹
若訪問(wèn)到的是同一頁(yè)面,在排除配置上錯(cuò)誤的情況下,可以打開(kāi)多個(gè)網(wǎng)頁(yè),或者稍等一會(huì)再刷新,因?yàn)樗赡苡幸粋€(gè)保持連接的時(shí)間,所以會(huì)存在延遲
四、配置NFS共享存儲(chǔ):

看了以上關(guān)于DR(直接路由)模式負(fù)載均衡配置詳細(xì)介紹,如果大家還有什么地方需要了解的可以在億速云行業(yè)資訊里查找自己感興趣的或者找我們的專業(yè)技術(shù)工程師解答的,億速云技術(shù)工程師在行業(yè)內(nèi)擁有十幾年的經(jīng)驗(yàn)了。

 

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI