負載均衡之數據鏈路層

在TCP/IP協議中數據鏈路層處於最底層,以幀的形式傳輸和接受數據。在這一層中MAC(Media Access Control)尋址是主要功能。在網絡中MAC又稱之爲MAC地址,用於表示互聯網上每個網卡的標識符,採用十六進制表示,共6個字節(48位),燒錄在網卡內部。更形象的說MAC地址就像身份證號碼,全球唯一。以太網中數據幀之間是通過MAC尋址來到達對應的計算機網卡或者路由的,因此,服務器集羣可以充分利用這一特性來進行負載均衡。
數據鏈路層負載均衡通過修改通信協議數據包的mac地址進行負載均衡,集羣可以通過如下圖的部署來達到負載均衡:

在這裏插入圖片描述

這種數據傳輸方式又稱爲三角傳輸,負載均衡數據分發過程中不修改IP地址,只修改目的MAC地址,通過配置真實物理服務器集羣所有機器虛擬IP和負載均衡服務器IP一致,從而達到不修改數據包的源地址和目的地址就可以進行數據分發的目的,由於實際處理請求的真實物理服務器IP和數據請求目的IP一致,不需要通過負載均衡服務器進行地址交換,可將響應數據包直接返回給用戶瀏覽器,避免負載均衡服務器網卡帶寬成爲瓶頸。這種負載均衡方式又稱之爲直接路由方式(DR).

如上圖所示,用戶請求到達負載均衡服務器114.100.20.200後,負載均衡服務器將數據包的目的MAC地址更改爲00:1e:ec:bc:5e:03,並不修改數據包目的IP,由於服務器集羣所有服務器的虛擬IP地址和負載均衡服務器IP地址一致,因此數據可以正常傳輸到達MAC地址爲00:1e:ec:bc:5e:03的機器上,該服務器處理完之後,將響應數據包發送到網關服務器,網關服務器直接將數據包發送給用戶瀏覽器,響應數據不需要通過負載均衡服務器,這樣就避免了負載均衡服務器成爲傳輸瓶頸的可能。

使用三角傳輸模式的鏈路層負載均衡是目前大型網站使用最爲廣泛的一種負載均衡手段。在Linux平臺上最好的鏈路層負載均衡開源產品是LVS(Linux Virtual Server)。

參考:
[1] 《大型網站技術架構——核心原理與案例分析》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章