七層代理與四層負載區別


layer4與layer7

四層:IP+PORT轉發
七層:協議+內容交換

四層負載

在四層負載設備中,把client發送的報文目標地址(原來是負載均衡設備的IP地址),根據均衡設備設置的選擇web服務器的規則選擇對應的web服務器IP地址,這樣client就可以直接跟此服務器建立TCP連接並發送數據。

七層代理

七層負載均衡服務器起了一個反向代理服務器的作用,服務器建立一次TCP連接要三次握手,而client要訪問webserver要先與七層負載設備進行三次握手后建立TCP連接,把要訪問的報文信息發送給七層負載均衡;然后七層負載均衡再根據設置的均衡規則選擇特定的webserver,然后通過三次握手與此台webserver建立TCP連接,然后webserver把需要的數據發送給七層負載均衡設備,負載均衡設備再把數據發送給client;所以,七層負載均衡設備起到了代理服務器的作用。

七層代理與四層負載區別

七層:會將請求報文拆開至應用層,分析用戶請求的資源,然后haproxy會代替用戶請求后端服務器的資源;后端服務器把資源返還給haproxy,haproxy會對資源再次 
      進行封裝,然后返還給客戶端;七層代理是由haproxy進行處理的,並且需要建立兩次TCP連接,一次是客戶端,一次是后端的服務器。
四層:會把請求報文拆開至傳輸層,根據請求的服務器的IP加端口號進行轉發;四層代理是由后端服務器進行處理,包括報文的封裝都是后端服務器進行封裝;四層代  
      理相當於是一個路由器。

七層與四層的請求過程

當用戶訪問一個網站的域名時,DNS會把域名解析成公網IP,並且會把用戶的報文進行封裝,因為是跨網絡,會把報文的目標地址指為要訪問網站的公網IP,源地址為客戶端的IP地址,路由器先會對用戶請求的IP做與運算,發現不在同一個網段,所以會把報文進行轉發,指定路由器的下一跳的地址,請求的過程中會經過多個路由器,最終到達網站的IP(企業防火牆上的公網IP);最終目標的IP地址就為網站的公網IP,訪問到防火牆上的公網IP后,會把報文再次轉發,源地址就為企業的內網地址,目標地址就為haproxy所對應的IP地址,然后會基於haproxy是四層負載還是七層負載來決定;如果是四層負載,則haproxy會根據調度算法,把用戶的請求調度到一台后端的webserver上,報文的源地址就為haproxy的地址,目標地址為webserver的地址(修改源地址和目標地址是為了回復報文准確的返還給haproxy,防止發送給別的服務器);如果haproxy是七層負載,則haproxy會再次通過TCP三次握手,與后端的webserver建立連接,而不是作為轉發。

oxy四層負載的區別

LVS:LVS的DR模式,做四層負載時,是不能做端口映射的;因為LVS的DR模式,報文傳遞過程中,是不會修改用戶的源地址和目標地址的(LVS的RD模式是通過一次次的修改mac地址來實現的),用戶請求的是80端口,並且回復報文是不會經過LVS的,所以無法把端口映射回80端口;webserver指定的網關是企業內部交換機的網關,而不是LVS的地址,所以不經過LVS,就無法把端口再映射回80端口;回復報文源地址的端口如果不是80端口,報文是不會被接收的;但LVS的壓力也因此少了一半,所以LVS的四層負載性能優於haproxy。

haproxy:haproxy的四層負載,回復報文也是要經過haproxy的,所以支持端口映射,但是haproxy的壓力也將變大,所以haproxy的四層負載能力低於LVS;haproxy
         為了保證數據報文准確的返還,不會亂發給其他服務器,會修改報文的源地址為haproxy的地址,目標地址為webserver的地址;LVS的nat模式是不會修改用戶
         請求的源地址的,因為后端webserver的網關指定的是LVS的地址,並且在LVS上配置了IPVS規則。

小提示:當訪問一個網站時,假設加載一個頁面需要發送500個請求,這500個請求會根據haproxy的調度算法,分別調度到不同的后端服務器上,而不是把500個請求都
       調度到一台服務器上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM