CDN簡介
CDN的全稱是Content Delivery Network,即內容分發網絡。CDN是構建在現有網絡基礎之上的智能虛擬網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。CDN的關鍵技術主要有內容存儲和分發技術。
簡而言之,就是將數據部署在各地的服務器中,通過負載均衡技術,讓用戶就近獲取服務器中的數據。
CDN原理
CDN的基本原理是廣泛采用各種緩存服務器,將這些緩存服務器分布到用戶訪問相對集中的地區或網絡中,在用戶訪問網站時,利用全局負載技術將用戶的訪問指向距離最近的工作正常的緩存服務器上,由緩存服務器直接響應用戶請求。
全局負載均衡主要用于在多個區域擁有自己服務器的站點,為了使全球用戶只以一個IP地址或域名就能訪問到離自己最近的服務器,從而獲得最快的訪問速度。
CDN的基本思路是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
CDN功能 歸納起來,CDN具有以下主要功能:
節省骨干網帶寬,減少帶寬需求量;
提供服務器端加速,解決由于用戶訪問量大造成的服務器過載問題;
服務商能使用Web Cache技術在本地緩存用戶訪問過的Web頁面和對象,實現相同對象的訪問無須占用主干的出口帶寬,并提高用戶訪問因特網頁面的相應時間的需求;
能克服網站分布不均的問題,并且能降低網站自身建設和維護成本;
降低“通信風暴”的影響,提高網絡訪問的穩定性。
CDN服務模式
簡單地說,內容分發網絡(CDN)是一個經策略性部署的整體系統,包括分布式存儲、負載均衡、網絡請求的重定向和內容管理4個要件,而內容管理和全局的網絡流量管理(Traffic Management)是CDN的核心所在。通過用戶就近性和服務器負載的判斷,CDN確保內容以一種極為高效的方式為用戶的請求提供服務。總的來說,內容服務基于緩存服務器,也稱作代理緩存(Surrogate),它位于網絡的邊緣,距用戶僅有"一跳"(Single Hop)之遙。
同時,代理緩存是內容提供商源服務器(通常位于CDN服務提供商的數據中心)的一個透明鏡像。這樣的架構使得CDN服務提供商能夠代表他們客戶,即內容供應商,向最終用戶提供盡可能好的體驗,而這些用戶是不能容忍請求響應時間有任何延遲的。
全局負載均衡
全局負載均衡(Global Server Load Balance, GSLB),全局負載均衡是指對分別放置在不同的地理位置的服務器群間作負載均衡。服務器負載均衡是指對本地的服務器群做負載均衡。主要用于在多個區域擁有自己服務器的站點,為了使全球用戶只以一個IP地址或域名就能訪問到離自己最近的服務器,從而獲得最快的訪問速度。
服務器群選擇
對于全局負載均衡而言,其核心就是服務器群的選擇。對于某個特定的客戶,應該將其定向到哪一個服務群?應該使用什么標準來進行這種選擇?一般情況下,主要考慮兩個因素:臨近程度和負載大小。
臨近機制主要考察服務器群與用戶之間的物理距離。選擇地理位置最接近用戶的服務器集群,可以減少服務響應到達用戶所經過的中轉次數,從而降低中轉節點對服務質量的影響。常見的有兩種方式,一種是靜態配置,例如根據靜態的IP地址配置表進行IP地址到服務器群的映射。另一種方式是動態的檢測,例如實時地探測到目標IP的距離(可以采用到達目標IP經過的跳數作為度量單位),然后比較探測結果進行選擇。
負載機制比較各個服務器群的負載,確定由哪一個服務器群來響應請求。在全局負載均衡中,考察的是服務器群的負載,而不是單個服務器的負載,因此,需要更多地考慮普遍的問題,比如,需要考慮站點的最大連接數、站點的平均響應時間、服務質量等。
常見的GSLB實現方式有三種:DNS輪詢、HTTP重定向、IP欺騙(又稱三角傳輸)。這三種實現方式都是在用戶通過域名來訪問目標服務器時,由GSLB設備進行智能決策,將用戶引導到一個最佳的服務IP。
基于DNS的GSLB
用戶訪問某個網站時,需要首先通過域名解析服務(DNS)獲得網站的IP。域名解析通常不是一次性完成的,常常需要查詢若干不同的域名服務器才能找到對應的IP。如下圖所示,用戶首先在本地配置一個本地DNS服務器地址,本地DNS服務器收到DNS請求后若不能解析,會將請求轉發給更高一級的DNS服務器直到找到域名對應的IP或確定域名不存在。
對于加入了GSLB的情況,一個GSLB設備(可能是一個4層交換機)會最終代替DNS服務器完成域名解析。下圖展示兩種流程的不同。
基于DNS的GSLB優缺點
優點是:實現簡單、實施容易、成本低。
缺點是:當GSLB設備采用“用戶就近訪問”的原則作為選擇最優服務器的策略時,會存在判斷不準的現象。原因是在這種策略下,GSLB設備是根據用戶IP地址和內容服務器IP地址比較來判斷其就近性的,但由于DNS響應是通過本地DNS服務器到達用戶的,GSLB設備實際上只能得到用戶的本地DNS服務器地址,若用戶指定的DNS服務器IP不能正確代表用戶的實際位置,就會出現判斷不準的現象。
基于HTTP重定向的GSLB
為了解決基于DNS實現方式判斷不準的問題,又出現了基于HTTP重定向的GSLB。這種方案中GSLB使用HTTP重定向技術,將用戶訪問重定向到最合適的服務器上。
使用基于HTTP重定向方案,首先在DNS中將GSLB設備的IP地址登記為域名的A記錄(既域名對應的IP)。如上圖所示,用戶首先通過DNS得到GSLB設備的IP地址,此時用戶以為這就是站點服務器的IP,并向其發送HTTP請求。GSLB設備收到HTTP請求后使用一定策略選擇一個最合適的服務器,然后GSLB設備向用戶發送一個HTTP重定向指令(HTTP302),并附上選出的服務器的IP地址。最后,用戶根據重定向IP訪問站點的服務器。
基于HTTP重定向的GSLB優缺點
優點:由于直接向用戶發送HTTP重定向指令,可以得到用戶的真實IP,從而解決了判斷不準確的問題。
缺點是只能為HTTP訪問重定向。
基于IP欺騙的GSLB
HTTP重定向方案解決了判斷不準確的問題,但只能針對HTTP協議應用使用。對于HTTP協議以外的訪問,就需要使用基于IP欺騙(又稱三角傳輸)的GSLB。
基于IP欺騙的方案同樣需要首先將GSLB設備的IP地址在DNS中登記為域名的A記錄,這樣用戶對該域名的請求包都會先發送到GSLB設備。如上圖所示,GSLB設備首次收到服務請求包后,會選擇一個最合適的服務器,并將服務請求包發送到該服務器。服務器在向用戶發送響應包時,將其源IP地址字段改為GSLB設備的IP,發送給用戶。
這樣,整個過程對用戶來說,感覺到的只是GSLB設備在為其提供服務,并不知道其中經歷這樣一個三角傳輸的過程。而且這種方案可以對所有類型的訪問如HTTP、FTP等進行重定向,但其速度和效率相對比前兩種方案要差一點,因為用戶所有的訪問請求都通過三個點才能響應,經歷了更多的路徑和處理,所以其主要作為HTTP重定向方案的補充方案在同一GSLB設備中實現。
服務器群選擇策略
上文中介紹的三種方案,解決了如何將用戶引導到指定服務器群的問題,而在此之前首先需要使用某種方式選出最適合用戶的服務器群,也就是GSLB在選擇服務器群時所采用的策略。接下來介紹一些常用的GSLB策略。
1)地理區域或用戶自定義區域:將若干條IP地址前綴劃分一個區域為。根據用戶本地DNS的IP地址,將特定IP范圍的用戶優先分配到某個通過健康檢查的站點。
2)IP地址權重:可以為DNS應答中的每個IP地址分配權重,權重決定與其他候選IP相比分配到該IP的流量比例。
3)往返時間(Round Trip Time, RTT):RTT策略是基于區域之外最常用的策略。有兩種模式的RTT測量:Active RTT測量與Passive RTT測量。在實際部署中,由于網絡限制和性能原因,Active RTT往往無法使用,Passive RTT更實用一些。
a) Active RTT 測量:
當GSLB Controller收到來自LDNS的DNS請求時,GSLB Controller會通知所有站點負載均衡設備對該LDNS進行RTT測量。根據采集到的RTT值,GSLB Controller會選擇RTT值最小的站點的VIP返回給LDNS。
由于Active RTT采用DNS Query或ICMP進行RTT測量,在有些網絡中可能會被安全策略所過濾而無法工作。
Active RTT測量會產生額外的DNS Query或ICMP流量,在有些網絡中用戶不希望有太多類似的非用戶流量。
b) Passive RTT測量:
Passive RTT測量指從內容站點收到一個用戶發出連接請求(發送TCN SYN)到接收到用戶的確認(收到TCP ACK)所經歷的時間。而不是簡單的PING的響應時間,可以更精確的衡量訪問最快的站點。
Passive RTT測量不會主動去進行測量,也不會產生額外的數據流量,而是在用戶向返回的VIP建立連接時進行采集。
Passive RTT的測量值真正反映了用戶的上網感受,在運營商網絡中也不會產生額外流量。也不會受到其他運營商或網絡的安全策略的影響。
審核編輯:湯梓紅
-
服務器
+關注
關注
12文章
9123瀏覽量
85324 -
CDN
+關注
關注
0文章
313瀏覽量
28789 -
負載均衡
+關注
關注
0文章
110瀏覽量
12364
原文標題:全局負載均衡與CDN內容分發
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論