亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

深入淺出 LVS 負(fù)載均衡系列(二):DR、TUN 模型原理

Tecode / 2556人閱讀

摘要:在網(wǎng)絡(luò)中,真實(shí)的綁定在負(fù)載均衡器上,用來接收客戶端的真實(shí)請(qǐng)求數(shù)據(jù)包。突破模式中真實(shí)服務(wù)器的默認(rèn)網(wǎng)關(guān)必須是負(fù)載均衡器的限制。

上篇從計(jì)算機(jī)間的通信說起,知道通信必要的六要素是 源 IP 地址、端口號(hào)、源 MAC 地址,目標(biāo) IP 地址、端口號(hào)、目標(biāo) MAC 地址。其中,端口號(hào)標(biāo)志了在應(yīng)用層的兩個(gè)具體應(yīng)用信息,即快遞的具體發(fā)送人和接收人,IP 地址表示在網(wǎng)絡(luò)層上兩個(gè)端點(diǎn)的地址,即快遞的發(fā)出地址和收貨地址,MAC 地址表示在數(shù)據(jù)鏈路層上節(jié)點(diǎn)間的地址,即快遞傳送中的各個(gè)驛站的地址。

在了解 LVS 的 NAT、FULLNAT 模型對(duì)數(shù)據(jù)包的修改方式以及它們的缺點(diǎn)之后,站在 NAT 模型的肩膀上,怎樣才能更好地優(yōu)化負(fù)載均衡器?

在 NAT 和 FULLNAT 模式中,不管是請(qǐng)求數(shù)據(jù)包還是響應(yīng)數(shù)據(jù)包,都要經(jīng)過負(fù)載均衡器。但是響應(yīng)數(shù)據(jù)包一般要比請(qǐng)求數(shù)據(jù)包大很多,這可能會(huì)成為系統(tǒng)的瓶頸。如果能夠?qū)⒄?qǐng)求數(shù)據(jù)包轉(zhuǎn)發(fā)到真實(shí)服務(wù)器之后,響應(yīng)數(shù)據(jù)包由真實(shí)服務(wù)器直接返回,這樣對(duì)負(fù)載均衡器的壓力就小很多。這種模式又應(yīng)該如何實(shí)現(xiàn)呢?

DR 模式

如果真的能夠由真實(shí)服務(wù)器直接響應(yīng)客戶端,而不經(jīng)過負(fù)載均衡器。那么這個(gè)由負(fù)載均衡器直接響應(yīng)回客戶端的數(shù)據(jù)包需要滿足什么條件,才能被客戶端正常接收?

真實(shí)服務(wù)器發(fā)出的數(shù)據(jù)包,在客戶端接收到的時(shí)候,一定要匹配得上從客戶端發(fā)出的數(shù)據(jù)包。如果不匹配的話,客戶端收到響應(yīng)數(shù)據(jù)包后會(huì)直接將數(shù)據(jù)包丟棄。

????客戶端發(fā)出的請(qǐng)求數(shù)據(jù)包:CIP ?? VIP,則收到的響應(yīng)數(shù)據(jù)包一定是 VIP ?? CIP。
????做個(gè)小思考,為什么沒有帶上 MAC 地址?后文有解釋~

但是 VIP 已經(jīng)綁定在負(fù)載均衡器上,真實(shí)服務(wù)器也有多個(gè),在連通的網(wǎng)絡(luò)里,如何能讓多個(gè)真實(shí)服務(wù)器和負(fù)載均衡器的 VIP 地址相同?并且真實(shí)服務(wù)器的 VIP 不能被其他設(shè)備訪問的到。也就是說在每臺(tái)真實(shí)服務(wù)器上的 VIP 地址,只能它們自己知道“我悄悄藏著 VIP”,別的設(shè)備壓根不知道。

這里不得不提另一個(gè)非常神奇的 IP 地址 127.0.0.1/0.0.0.0。仔細(xì)想一下,127.0.0.1 不就是每臺(tái)設(shè)備上都相同,“悄悄藏著”的 IP 地址嗎,除了自己的其他設(shè)備都沒辦法訪問。這個(gè)神奇的 IP 地址,叫做 Loopback 接口。它是一種純軟件性質(zhì)的虛擬接口,當(dāng)有請(qǐng)求數(shù)據(jù)包送達(dá)到 lo 接口,那么 lo 接口會(huì)將這個(gè)數(shù)據(jù)包直接 “掉頭”,返回給這個(gè)設(shè)備本身,這就是“環(huán)回”接口的由來。所以,如果將 VIP 綁定在 lo 接口上,是不是就可以完成“只有自己知道這個(gè) VIP,別的設(shè)備不知道”呢?

將 VIP 綁定在 lo 接口上,其實(shí)只完成了一半,只是做到了在多臺(tái)真實(shí)服務(wù)器上綁定相同的 VIP 地址。還記得上篇文章中所講的 ARP 協(xié)議嗎,ARP 協(xié)議會(huì)采集在當(dāng)前局域網(wǎng)中,除了自己之外的其他主機(jī)的 MAC 地址和 IP 地址的映射關(guān)系。而 VIP 是一個(gè)不能被別的設(shè)備采集到的地址,所以我們要對(duì)真實(shí)服務(wù)器的 ARP 協(xié)議做一些修改,讓 VIP 不會(huì)被其他設(shè)備采集到。很顯然,這不但要修改設(shè)備收到 ARP 請(qǐng)求之后的響應(yīng)(arp_ignore 參數(shù)),也要修改設(shè)備向外通告 ARP 的請(qǐng)求 (arp_announce 參數(shù))。

????arp_ignore:定義接收 ARP 請(qǐng)求時(shí)的響應(yīng)級(jí)別 0:響應(yīng)任意網(wǎng)卡上接收到的對(duì)本機(jī) IP 地址的 ARP 請(qǐng)求(包括環(huán)回網(wǎng)卡),不論目的 IP 地址是否在接收網(wǎng)卡上 1:只響應(yīng)目的 IP 地址為接收網(wǎng)卡地址的 ARP 請(qǐng)求 2:只響應(yīng)目的 IP 地址為接收網(wǎng)卡地址的 ARP 請(qǐng)求,且 ARP 請(qǐng)求的源 IP 地址必須和接收網(wǎng)卡的地址在同網(wǎng)段

????arp_announce:定義將自己地址向外通告時(shí)的通告級(jí)別 0:允許任意網(wǎng)卡上的任意地址向外通告 1:盡量?jī)H向目標(biāo)網(wǎng)絡(luò)通告與其網(wǎng)絡(luò)匹配的地址 2:僅向與本地接口上地址匹配的網(wǎng)絡(luò)進(jìn)行通告

可以看到,arp_ignore 為 1 并且 arp_announce 為 1 時(shí),lo 接口上綁定的 VIP 可以被藏在本機(jī)上,只有自己知道。

企業(yè)微信截圖_20211217141025.png

(如圖:紅色表示發(fā)出的數(shù)據(jù)包;綠色表示返回的數(shù)據(jù)包;黃色表示負(fù)載均衡器修改的內(nèi)容;虛線表示經(jīng)過 N 個(gè)下一跳,即可以不在同一局域網(wǎng)內(nèi);實(shí)線表示只能 “跳躍一次”,即必須在同一局域網(wǎng)內(nèi))

1.當(dāng)計(jì)算機(jī)發(fā)出一個(gè)請(qǐng)求的數(shù)據(jù)包到達(dá)負(fù)載均衡器后,負(fù)載均衡器修改請(qǐng)求數(shù)據(jù)包的 { 目標(biāo)MAC 地址 } 為 真實(shí)服務(wù)器的 MAC 地址,其余信息不變。負(fù)載均衡器和真實(shí)服務(wù)器必須在同一局域網(wǎng)內(nèi),否則負(fù)載均衡器無法替換請(qǐng)求數(shù)據(jù)包的 { 目標(biāo)MAC 地址 } 為 真實(shí)服務(wù)器的 MAC 地址

2.真實(shí)服務(wù)器收到請(qǐng)求的數(shù)據(jù)包,發(fā)現(xiàn)自己有一個(gè) “隱藏“ 的 VIP,于是接收這個(gè)數(shù)據(jù)包,并交由對(duì)應(yīng)的上層應(yīng)用處理

3.處理完成后,將響應(yīng)數(shù)據(jù)包直接返回給客戶端。此時(shí)在真實(shí)服務(wù)器上查看 TCP 連接為:VIP ?? CIP

?總結(jié)一下 DR 模式的特點(diǎn):
1.僅修改請(qǐng)求數(shù)據(jù)包的「目標(biāo) MAC 地址」,作用在數(shù)據(jù)鏈路層。因此負(fù)載均衡器必須和真實(shí)服務(wù)器在同一局域網(wǎng)內(nèi),且不能對(duì)端口進(jìn)行轉(zhuǎn)發(fā)
2.真實(shí)服務(wù)器中的 VIP,只能被自己 “看見”,其他設(shè)備不可知。因此 VIP 必須綁定在真實(shí)服務(wù)器的 lo 網(wǎng)卡上,并且不允許將此網(wǎng)卡信息經(jīng)過 ARP 協(xié)議對(duì)外通告
3.請(qǐng)求的數(shù)據(jù)包經(jīng)過負(fù)載均衡器后,直接由真實(shí)服務(wù)器返回給客戶端,響應(yīng)數(shù)據(jù)包不需要再經(jīng)過負(fù)載均衡器

TUN 模式

除了直接修改請(qǐng)求數(shù)據(jù)包的目標(biāo) MAC 地址,做一次 MAC 地址欺騙之外,還有沒有其他方式能夠?qū)㈨憫?yīng)數(shù)據(jù)包由真實(shí)服務(wù)器直接返回給客戶端呢?看看 VPN 是怎么能夠支持你遠(yuǎn)程辦公的吧~

我們已經(jīng)討論過,如果真實(shí)服務(wù)器直接將響應(yīng)數(shù)據(jù)包返回給客戶端,那么真實(shí)服務(wù)器必須有一個(gè) “隱藏” 的 VIP,即配置在 lo 網(wǎng)卡上并且不允許此 VIP 通過 ARP 協(xié)議對(duì)外通告。

企業(yè)微信截圖_20211217141105.png

(如圖:紅色表示發(fā)出的數(shù)據(jù)包;綠色表示返回的數(shù)據(jù)包;黃色表示負(fù)載均衡器修改的內(nèi)容;虛線表示經(jīng)過 N 個(gè)下一跳,即可以不在同一局域網(wǎng)內(nèi);實(shí)線表示只能 “跳躍一次”,即必須在同一局域網(wǎng)內(nèi))

1.當(dāng)計(jì)算機(jī)發(fā)出一個(gè)請(qǐng)求的數(shù)據(jù)包到達(dá)負(fù)載均衡器后,負(fù)載均衡器不改變?cè)磾?shù)據(jù)包,而是在源數(shù)據(jù)包上新增一層 IP 首部 { 分發(fā) IP、端口號(hào)、MAC 地址 } ?? { 真實(shí)服務(wù)器 IP、端口號(hào)、MAC 地址 }

2.真實(shí)服務(wù)器收到請(qǐng)求的數(shù)據(jù)包后,將最外層封裝的 IP 首部去掉,發(fā)現(xiàn)還有一層 IP 首部,并且目標(biāo) IP 地址能夠和 lo 上的地址匹配,于是收下請(qǐng)求數(shù)據(jù)包,并交由對(duì)應(yīng)的上層應(yīng)用處理

3.處理完成后,將響應(yīng)數(shù)據(jù)包直接返回給客戶端。此時(shí)在真實(shí)服務(wù)器上查看 TCP 連接為:VIP ?? CIP

?總結(jié)一下 TUN 模式的特點(diǎn):
1.不改變請(qǐng)求數(shù)據(jù)包,而是在請(qǐng)求數(shù)據(jù)包上新增一層 IP 首部信息。因此負(fù)載均衡器不能對(duì)端口進(jìn)行轉(zhuǎn)發(fā),但可以和真實(shí)服務(wù)器不在同一局域網(wǎng)內(nèi),且真實(shí)服務(wù)器需要支持能夠解析兩層 IP 首部信息,即需要支持“IP Tunneling”或“IP Encapsulation”協(xié)議
2.真實(shí)服務(wù)器中的 VIP,只能被自己 “看見”,其他設(shè)備不可知。因此 VIP 必須綁定在真實(shí)服務(wù)器的 lo 網(wǎng)卡上,并且不允許將此網(wǎng)卡信息經(jīng)過 ARP 協(xié)議對(duì)外通告
3.請(qǐng)求的數(shù)據(jù)包經(jīng)過負(fù)載均衡器后,直接由真實(shí)服務(wù)器返回給客戶端,響應(yīng)數(shù)據(jù)包不需要再經(jīng)過負(fù)載均衡器

NAT、FULLNAT、DR、TUN模式總結(jié)

在 DR 和 TUN 模式中,負(fù)載均衡器只轉(zhuǎn)發(fā)了請(qǐng)求數(shù)據(jù)包,響應(yīng)數(shù)據(jù)包不經(jīng)過負(fù)載均衡器,而是直接返回給客戶端。解決了在通常情況下響應(yīng)數(shù)據(jù)包比請(qǐng)求數(shù)據(jù)包大,如果請(qǐng)求和響應(yīng)數(shù)據(jù)包都經(jīng)過負(fù)載均衡器,在高并發(fā)下可能成為系統(tǒng)瓶頸的問題。

根據(jù)我們的推導(dǎo)過程,可以輕易地得出各種模式的特點(diǎn)和它們要解決的問題。
NAT 模式,通過修改數(shù)據(jù)包的「目標(biāo) IP 地址」和 「源 IP 地址」,將請(qǐng)求負(fù)載到多臺(tái)真實(shí)服務(wù)器,是四層負(fù)載均衡模式中最基礎(chǔ)的負(fù)載方式。因?yàn)樗菍?duì) IP 地址層面的修改,作用在網(wǎng)絡(luò)層,所以可以對(duì)端口進(jìn)行映射。真實(shí)服務(wù)器返回的響應(yīng)數(shù)據(jù)包必須經(jīng)過負(fù)載均衡器,所以要求真實(shí)服務(wù)器的默認(rèn)網(wǎng)關(guān)是負(fù)載均衡器。

FULLNAT 模式,是對(duì) NAT 模式的一種演進(jìn)。通過同時(shí)修改「源 IP 地址」和「目標(biāo) IP 地址」,突破 NAT 模式中真實(shí)服務(wù)器的默認(rèn)網(wǎng)關(guān)必須是負(fù)載均衡器的限制。但是由于同時(shí)修改了「源 IP 地址」和「目標(biāo) IP 地址」,真實(shí)服務(wù)器建立的真實(shí)連接和客戶端毫無關(guān)系,所以會(huì)丟失客戶端的信息。

DR 模式,是對(duì) NAT 模式的另一種演進(jìn)。由于真實(shí)請(qǐng)求中響應(yīng)數(shù)據(jù)包比請(qǐng)求數(shù)據(jù)包大很多的特點(diǎn),在高并發(fā)下會(huì)成為系統(tǒng)的瓶頸,于是將響應(yīng)數(shù)據(jù)包直接由真實(shí)服務(wù)器返回給客戶端。使用 MAC 地址欺騙來達(dá)到此目的,作用于數(shù)據(jù)鏈路層,所以不能對(duì)端口映射。并且在真實(shí)服務(wù)器上,必須有一個(gè)僅自己可見的 “隱藏” VIP。在網(wǎng)絡(luò)中,真實(shí)的 VIP 綁定在負(fù)載均衡器上,用來接收客戶端的真實(shí)請(qǐng)求數(shù)據(jù)包。而 “隱藏” 的 VIP 綁定在真實(shí)服務(wù)器的 lo 接口上,用來欺騙自己可以正常接收目標(biāo)地址是 VIP 的數(shù)據(jù)包。所以真實(shí)服務(wù)器的默認(rèn)網(wǎng)關(guān)也必須是負(fù)載均衡器。

TUN 模式,是對(duì) DR 模式的一種演進(jìn)。突破 DR 模式中真實(shí)服務(wù)器的默認(rèn)網(wǎng)關(guān)必須是負(fù)載均衡器的限制。TUN 模式不會(huì)對(duì)源數(shù)據(jù)包進(jìn)行修改,而是在源數(shù)據(jù)包上額外新增一條 IP 首部信息,所以不能對(duì)端口映射,且要求真實(shí)服務(wù)器必須能夠卸載掉兩層 IP 首部信息。

???? 回顧之前的小思考題:為什么在說真實(shí)服務(wù)器能夠正常接收負(fù)載均衡器轉(zhuǎn)發(fā)的數(shù)據(jù)包的必要條件時(shí),沒有帶上 MAC 地址?

在網(wǎng)絡(luò)通信部分介紹 ARP 協(xié)議和下一跳機(jī)制時(shí),我們提到數(shù)據(jù)包在網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)和快遞傳送中的驛站類似,每一次數(shù)據(jù)包的發(fā)送,會(huì)不斷地找到 “下一個(gè)目的地” 的 MAC 地址。所以,但凡涉及到物理端口的變遷,都涉及到源 MAC 地址的變化,這個(gè)變化是 IP 通信的特性,而并不是負(fù)載均衡的特點(diǎn)。

在對(duì)負(fù)載均衡的各個(gè)模式有一定的了解之后,下一篇我們來看看具體實(shí)踐和配置???? ~

關(guān)于UCloud負(fù)載均衡服務(wù)ULB

UCloud負(fù)載均衡服務(wù)ULB支持內(nèi)網(wǎng)和外網(wǎng)兩種場(chǎng)景,支持請(qǐng)求代理和報(bào)文轉(zhuǎn)發(fā)兩種轉(zhuǎn)發(fā)模式。ULB4是基于DPDK技術(shù)自研的,采用了類似于DR的轉(zhuǎn)發(fā)模式,單臺(tái)服務(wù)器可以提供超過3000萬(wàn)并發(fā)連接,1000萬(wàn) pps,10G線速轉(zhuǎn)發(fā)能力。采用集群部署,單個(gè)集群至少4臺(tái)服務(wù)器。利用ECMP+ BGP實(shí)現(xiàn)高可用。ULB7基于Haproxy開發(fā),也就是Fullnat模式,單個(gè)實(shí)例可以支持超過40w pps,2Gbps,以及至少40萬(wàn)并發(fā)連接。

相對(duì)于ULB7,ULB4轉(zhuǎn)發(fā)能力更強(qiáng),適合與追求轉(zhuǎn)發(fā)性能的場(chǎng)景。而ULB7則可以對(duì)七層數(shù)據(jù)進(jìn)行處理,可以進(jìn)行SSL的卸載,執(zhí)行域名轉(zhuǎn)發(fā)、路徑轉(zhuǎn)發(fā)等功能,并且后端節(jié)點(diǎn)不需要額外配置VIP(虛擬IP)。

                              文章來源:U-Star技術(shù)創(chuàng)作者

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/126469.html

相關(guān)文章

  • 深入淺出 LVS 負(fù)載均衡系列(一):NAT、FULLNAT 模型原理

    摘要:本系列按照負(fù)載均衡器對(duì)數(shù)據(jù)包的處理方式分類,從計(jì)算機(jī)間通信的角度出發(fā),淺談模型的實(shí)現(xiàn)原理。將請(qǐng)求分?jǐn)偨o多臺(tái)服務(wù)器的行為,就稱之為負(fù)載均衡。真實(shí)服務(wù)器返回的數(shù)據(jù)包的下一個(gè)目的地必須是負(fù)載均衡器。LVS(Linux Virtual Server)是一個(gè)虛擬服務(wù)器集群系統(tǒng)。工作在 OSI 模型的傳輸層,即四層負(fù)載均衡。LVS 本身實(shí)現(xiàn)了 NAT、DR、TUN 模型,這些模型僅做數(shù)據(jù)包的轉(zhuǎn)發(fā),而不會(huì)...

    Tecode 評(píng)論0 收藏0
  • 深入淺出 LVS 負(fù)載均衡系列(一):NAT、FULLNAT 模型原理

    摘要:本系列按照負(fù)載均衡器對(duì)數(shù)據(jù)包的處理方式分類,從計(jì)算機(jī)間通信的角度出發(fā),淺談模型的實(shí)現(xiàn)原理。將請(qǐng)求分?jǐn)偨o多臺(tái)服務(wù)器的行為,就稱之為負(fù)載均衡。真實(shí)服務(wù)器返回的數(shù)據(jù)包的下一個(gè)目的地必須是負(fù)載均衡器。LVS(Linux Virtual Server)是一個(gè)虛擬服務(wù)器集群系統(tǒng)。工作在 OSI 模型的傳輸層,即四層負(fù)載均衡。LVS 本身實(shí)現(xiàn)了 NAT、DR、TUN 模型,這些模型僅做數(shù)據(jù)包的轉(zhuǎn)發(fā),而不會(huì)...

    Tecode 評(píng)論0 收藏0
  • 深入淺出 LVS 負(fù)載均衡系列(一):NAT、FULLNAT 模型原理

    摘要:本系列按照負(fù)載均衡器對(duì)數(shù)據(jù)包的處理方式分類,從計(jì)算機(jī)間通信的角度出發(fā),淺談模型的實(shí)現(xiàn)原理。將請(qǐng)求分?jǐn)偨o多臺(tái)服務(wù)器的行為,就稱之為負(fù)載均衡。真實(shí)服務(wù)器返回的數(shù)據(jù)包的下一個(gè)目的地必須是負(fù)載均衡器。LVS(Linux Virtual Server)是一個(gè)虛擬服務(wù)器集群系統(tǒng)。工作在 OSI 模型的傳輸層,即四層負(fù)載均衡。LVS 本身實(shí)現(xiàn)了 NAT、DR、TUN 模型,這些模型僅做數(shù)據(jù)包的轉(zhuǎn)發(fā),而不會(huì)...

    Tecode 評(píng)論0 收藏0
  • 深入淺出 LVS 負(fù)載均衡系列(一):NAT、FULLNAT 模型原理

    摘要:本系列按照負(fù)載均衡器對(duì)數(shù)據(jù)包的處理方式分類,從計(jì)算機(jī)間通信的角度出發(fā),淺談模型的實(shí)現(xiàn)原理。將請(qǐng)求分?jǐn)偨o多臺(tái)服務(wù)器的行為,就稱之為負(fù)載均衡。真實(shí)服務(wù)器返回的數(shù)據(jù)包的下一個(gè)目的地必須是負(fù)載均衡器。LVS(Linux Virtual Server)是一個(gè)虛擬服務(wù)器集群系統(tǒng)。工作在 OSI 模型的傳輸層,即四層負(fù)載均衡。LVS 本身實(shí)現(xiàn)了 NAT、DR、TUN 模型,這些模型僅做數(shù)據(jù)包的轉(zhuǎn)發(fā),而不會(huì)...

    Tecode 評(píng)論0 收藏0
  • 深入淺出 LVS 負(fù)載均衡系列(一):NAT、FULLNAT 模型原理

    摘要:本系列按照負(fù)載均衡器對(duì)數(shù)據(jù)包的處理方式分類,從計(jì)算機(jī)間通信的角度出發(fā),淺談模型的實(shí)現(xiàn)原理。將請(qǐng)求分?jǐn)偨o多臺(tái)服務(wù)器的行為,就稱之為負(fù)載均衡。真實(shí)服務(wù)器返回的數(shù)據(jù)包的下一個(gè)目的地必須是負(fù)載均衡器。LVS(Linux Virtual Server)是一個(gè)虛擬服務(wù)器集群系統(tǒng)。工作在 OSI 模型的傳輸層,即四層負(fù)載均衡。LVS 本身實(shí)現(xiàn)了 NAT、DR、TUN 模型,這些模型僅做數(shù)據(jù)包的轉(zhuǎn)發(fā),而不會(huì)...

    Tecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<