馬 維(云南開放大學云南干部在線學習學院,云南昆明,650223)
?
基于F5負載均衡應用交付網絡技術在干部在線的應用
馬 維
(云南開放大學云南干部在線學習學院,云南昆明,650223)
摘要:應用交付網絡技術的理念就是把網絡及應用深度結合在一起。安全、快速、高可用是應用交付網絡的三大要素。應用交付網絡技術由服務器負載均衡、鏈路負載均衡、應用安全管理、應用加速等多種技術組成。目的是提高用戶體驗,保證網絡安全的前提下解決用戶關鍵網絡應用訪問瓶頸的問題。根據干部在線學習平臺遇到的隨機大流量、高并發、及網絡安全等問題,我們就需要引入應用交付網絡技術。F5是當今業界首推的一款應用交付網絡控制器。本文在介紹應用交付網絡技術的基礎上,把F5的功能和應用交付技術相關知識融合在一起,并且實際地應用到干部在線平臺網絡架構。解決了平臺在線人數階梯式增長所帶來的問題。讓在線學習平臺更加安全、高效、靈活、有序的運轉。
關鍵詞:應用交付網絡;負載均衡;高可用;安全
近幾年國內互聯網領域中,在線教育發展的趨勢日漸高漲,干部在線學院自2007年成立以來,每年在線學習人數迅猛成倍增長,截止到2012年,在線注冊人數高達80000人。平均每天在線學習用戶達到10000余人。干部在線平臺是7×24全開放服務學習平臺,與日俱增的在線學習人數對系統平臺的響應壓力增大、服務響應時間延時過長、從而導致用戶體驗降低甚至影響干部學習進度。同時平臺數據庫中有著全省干部敏感信息,一旦平臺遭受網絡攻擊,導致服務中斷或干部信息泄露,后果將不堪設想。要能應對各種客觀突發情況、客觀上要求搭建一個具有高可用、快速、安全的應用交付網絡平臺。
1.1應用交付網絡技術
1.1.1應用交付網絡概念理解
應用交付網絡(Application Delivery Networking,簡稱ADN),是一個高可用、快速、安全的網絡,它利用相應的網絡優化/加速設備,確保用戶的業務應用能夠快速、安全、可靠地交付給內部員工和外部服務群。其目的是通過構建在傳統網絡(L1~L3)之上,從L4(TCP Layer)到L7(ApplicationLayer)對基于網絡的應用數據進行分析,判別,導向,負載,加速和加密。它的解決方案所面對的不再是傳統的網絡數據包,而是應用在網絡中的傳遞和交付。關于應用交付網絡的理解,其實可以照字面意思看成是將企業的關鍵應用交付到網絡上,也就是通過綜合多種4~7層上的“應用交換”技術將關鍵應用與基礎設施關聯起來。這相當于是對傳統優化手段的升級——從簡單的偏重于負載均衡單一方案,到如今全面的、從邊緣到核心的一系列優化解決方案,用來改善用戶應用體驗,數據安全和保障應用的可靠性。

圖1 應用交付網絡各環節
1.1.2應用發布的各個環節
應用交付網絡技術體現在應用發布的每一個環節,應用發布的所有中間環節就是讓最終用戶可以存取數據。通過不同的展現手段,提供給終端用戶不同的內容。見圖1
由圖1我們可以看到在應用發布的整個過程中面臨以下問題:
●服務器整合
●安全攻擊
●用戶分散加劇
●SOA(面向服務的體系結構)建設
●應用系統復雜性
●終端種類增加
●文件存儲空間增長
1.1.3F5基于應用交付網絡在各個應用發布環節起到的作用
針對應用交付的各個環節中的薄弱點,F5提供了端到端的解決方案。
●服務器整合:通過使用本地負載均衡、應用優化設備,實現服務器的高可用性、高安全 性和可擴充性。
●安全攻擊:通過網絡層安全防護、應用層安全防護和傳輸通道加密技術,提高系統的整 體安全性。
●用戶分散加劇:通過廣域網用戶引導、多鏈路用戶引導等技術,引導用戶選擇最佳的數 據中心,通過最佳的鏈路到達應用服務器。
●SOA(面向服務的體系結構)建設:通過多協議、多平臺的支持,對應用中的各種協議流量進行分析,實現精確 引導和應用分布。
●應用系統復雜性增大:通過對應用系統的深層次識別和各種應用加速技術,提高應用系 統的訪問效率和響應速度。
●終端種類增加:應用交付網絡通過對各種終端的識別,根據終端的類型對用戶進行引導, 并通過對各種終端接入設備的支持。增強系統的容錯特性和安全性,優化各類終端的訪 問速度和效率。
1.2F5基于應用交付網絡要素的重要體現
●F5負載均衡工作原理及其分配策略
傳統的負載均衡解決方案一般是在一臺或多臺服務器相應的操作系統上安裝一個或多個附加軟件來實現負載均衡,如 DNS LoadBalance,在DNS域服務器中新建主機,然后填寫相同的域名名稱,只是IP地址不同,當客戶端要求訪問web系統時,DNS服務器會把請求分發給2臺web服務器,實現了系統的負載均衡。DNS 負載均衡的優點是經濟、簡單、易行;但它不能區分服務器的差異,也不能反映服務器的當前運行狀態,不能做到為性能較好的服務器多分配請求,甚至會出現客戶請求集中在某一臺服務器上的情況。

圖2 F5負載均衡結構圖
F5對應用的負載均衡:F5作為一個全代理,對外提供一個虛擬的應用服務(Virtual Server),接收所有的客戶端請求, 這些請求通過預先設定好的負載均衡算法處理,分發到后臺的多個應用實例(Application)。于此同時F5用過自身的健康檢查,準確的判斷應用實例的工作和服務狀態,一旦發現應用實例不能提供服務,則將其從負載均衡組(pool)中摘除。
F5進行四層負載均衡的最小元素為TCP連接,所有分配策略均以TCP連接為最小單位,而在七層負載均衡中,最小的元素為每一個完整的交易數據包,如一個HTTP 請求,因此以為最小單位進行分配。根據每一個連接,F5通過地址轉換功能,將連接分配到不同的服務器上。負載分配策略算法主要包含以下幾種:
1)靜態負載均衡算法:輪詢,比率,優先權
2)動態負載均衡算法: 最少連接數,最快響應速度,觀察方法,預測法,動態性能分配
3)可編程控制的負載均衡策略:通過編程控制應用流量的導向。
●F5對鏈路的負載均衡(Link Controller)
F5將所有提供某種應用的鏈路放在一個隊列中,把用戶通過DNS服務器得到的地址訪問請求的流量導向該隊列中相對應營運商鏈路,當該鏈路到達連接限制或者出現故障時,自動將流量導向另一個營運商可用鏈路。這種機制策略解決了鏈路單點故障帶來的服務中斷問題,保證了不管屬于哪家營運商的用戶都能夠訪問網站。
●Monitor Server 服務器健康檢查
1)基于ICMP的健康檢查Ping
F5可以定期通過ICMP包對后臺服務器的IP地址進行檢測,如果在設定的時間內能收到該地址的ICMP回應,則認為該服務器能提供服務。
2)基于TCP端口的健康檢查 Port-Connect
在基于TCP協議的應用中,每個應用系統都會綁定一個TCP端口,應用通過偵聽這個端口接受客戶端的請求。判斷這些應用系統是否在工作最簡單的方法就是從F5和對應的服務器端口做一次完整的TCP握手,如果TCP握手成功,則認為服務器正常工作,如果在超過一定的檢查次數均握手失敗的情況下,BIG-IP LTM則將失敗的服務器標記為Down,而將新的客戶端請求都發送到其他仍然正常工作的服務器上。
3)可擴展的應用驗證(EAV)
用于確認運行在某個服務器上的應用能否對客戶請求做出相應。
4)可擴展的內容驗證(ECV)
除了可以通過EAV對服務進行檢查,還可以通過ECV對服務器的相應作進一步分析,通過分析讀取服務器回應中的指定內容來判斷服務器上服務的運行情況。
通過 F5 靈活自定義方式的 ECV 健康檢查方式,用戶可以檢查常見的應用如 HTTP、SMTP、POP3 等。而通過 EAV 健康檢查方式,更可自行編寫腳本,實現更加復雜的健康檢查方式,全面的檢測后臺服務器的運行狀態,保證系統運行的高效,可靠。
●會話保持
會話保持是F5上的一種機制,用以識別客戶與服務器可以識別做客戶與服務器之間交互過程的關連性,在作負載均衡的同時,還保證一系列相關連的訪問請求會保持分配到一臺服務器上。
1)源地址會話保持
源地址會話保持是最常用到的一種會話保持,就是將一個源地址認為是一個用戶,凡是同一個源地發送過來的連接,則認為是同一個用戶發起的多個請求,根據會話保持策略,將這些連接或者請求都轉發到同一臺服務器。
2)Cookie的會話保持
當客戶進行第一次請求時,客戶HTTP請求(不帶cookie)進入BIGIP, BIGIP根據負載平衡算法策略選擇后端一臺服務器,并將請求發送至該服務器,后端服務器進行HTTP回復(不帶cookie)被發回BIGIP,然后BIGIP插入cookie,將HTTP回復返回到客戶端。當客戶請求再次發生時,客戶HTTP請求(帶有上次BIGIP插入的cookie)進入BIGIP,然后BIGIP讀出cookie里的會話保持數值,將HTTP請求(帶有與上面同樣的cookie)發到指定的服務器,然后后端服務器進行請求回復,由于服務器并不寫入cookie,HTTP回復將不帶有cookie,回復流量再次經過進入BIGIP時,BIGIP再次寫入更新后的會話保持cookie。
3)SSL ID會話保持
在用戶的SSL訪問系統的環境里,當SSL對話首次建立時,用戶與服務器進行首次信息交換以:(1)交換安全證書,(2)商議加密和壓縮方法,(3)為每條對話建立Session ID。由于該Session ID在系統中是一個唯一數值,由此,BIGIP可以應用該數值來進行會話保持。當用戶想與該服務器再次建立連接時,BIGIP可以通過會話中的 SSL Session ID識別該用戶并進行會話保持。
4)可編程控制的會話保持
使用F5自身所擁有的irules可編程邏輯控制器,用TCL語音進行編程控制的會話保持方式。
5)基于HTTP Header的會話保持
F5可以根據用戶HTTP訪問里http包頭信息信息進行會話保持,HTTP包頭里包含以下信息,BIGIP可以將用戶訪問里這些信息通過表達式來獲得相應的數值從而進行會話保持。
●F5對應用的優化
1)HTTP靜態內容的緩存(RamCache)
F5內置RamCache功能,可以緩存諸如首頁元素之類的大訪問量請求.
2)HTTP動態內容的緩存(Web Accelerator)
通過F5的Web Accelerator模塊來實現動態緩存,在Web Accelerator上可以通過配置本地的緩存有效時間,來保持頁面內容的刷新度。比如設置Web Accelerator本地緩存2小時有效,則在每2個小時之內,對于同樣查詢參數的請求,在后臺只有一次數據庫查詢動作,從而大大的減輕了數據庫的壓力。
3)HTTP壓縮
硬件上F5通過內置的HTTP硬件壓縮芯片來實現壓縮處理。軟件上F5使用工業標準的GZIP和Deflate壓縮算法來壓縮HTTP流量,降低帶寬消耗、縮短最終用戶在慢速或者低帶寬連接條件下的下載時間。在開啟HTTP壓縮功能后,對于HTML頁面,CSS等文本類型的數據,通常可以取得80%左右的壓縮率。
●F5(ASM)對7層應用的安全保護
隨著網絡攻擊的數量和復雜程度不斷升級,4層安全防護已經遠遠不能保證應用交互平臺的安全,大量的網絡攻擊來源于對第7層應用層的攻擊。F5內嵌的應用安全管理模塊(ASM)是最靈活的web 應用7層防火墻,可為傳統、虛擬和私有云環境中的web 應用提供保護。
ASM 可為客戶端操作產生的所有參數提供保護并驗證登錄參數和應用流程以防止出現強迫瀏覽和邏輯漏洞。BIG-IP ASM可識別HTTP 參數污染(HPP)攻擊,并阻止這些請求,從而提供精細的攻擊保護。此外,BIG-IP ASM 還可幫助抵御OWASP 十大應用安全風險,包括第7 層的拒絕服務(DoS)、SQL 注入、跨站腳本(XSS)、暴力及零日web 應用攻擊。其獨特的保護能力可降低DoS對某個URL 的重壓力攻擊,防止欺詐性交易的執行,并阻止瀏覽器內的會話劫持。甚至,管理員還可更有效地檢測預設等級和測量度限制之下的攻擊,并幫助確定可疑請求和欺詐性交易轉移的來源。
通過上面所討論的章節,我們了解了F5基于應用交付網絡特性的重要功能,接下來,就要運用F5這些功能,具體應用到實際的生產環境當中。通過F5后臺管理系統監控到的平臺業務網絡數據結果,進一步證實了F5在應用交付網絡中起到快速、安全、高可用的作用。
1)對Web應用的負載均衡和加速優化
在F5應用交付控制器中建立服務器節點Node,也就是提供干部在線Web應用的6臺服務器。接下來,新建Web服務池(Pool),這里我們新建了兩個Pool,一個表示電信的Pool,一個表示聯通的Pool。
健康檢查選項里,我們選擇Monitors方式為ICMP-Ping,成員選項里,以此添加之前新建的6個Web服務Node,因為私有IP地址為局域網內部,比較安全,所以每個Node服務端口號全部開放,全為0。負載均衡的算法我們采用F5的Round Robin輪詢算法。
這里需要注意:因為干部在線平臺用戶大部分是電信用戶,只有少部分是聯通用戶,所以之前我們在電信Web服務Pool里的節點設置6個Node優先級都是一樣的(都為20)。而聯通Web服務Pool里節點設置我們挑選了兩個Node為主要服務節點,優先級為20,如果有聯通鏈路的請求首先是這兩個Node做主要響應。剩下4個Node做副響應,優先級為則為1。

圖3 新建電信Web服務Pool
最后在F5的Virtuai Servers項目里新建一個VS,也就是Web應用的虛擬服務地址,面向公網IP。因為是雙鏈路提供服務,因此要創建兩個VS,一個電信鏈路VS、一個聯通鏈路VS,填寫VS的名稱、VS的公網IP、Web應用開放的服務端口號:80,Soure全0代表了任何源地址都可以訪問。把之前所建立的電信Web服務Pool與此VS關聯對應。Web服務是http協議,屬于是TCP/IP協議簇,采用http Profile,因為只有選擇http Profile才能使用基于Cookies的會話保持。干部在線平臺都是以干部用戶名和密碼作為驗證,才能登錄到平臺學習。所以我們基于Cookies的會話保持比較適合現實場景。聯通VS的配置和電信一樣。

圖4 電信Web服務Pool里添加Node

圖5 新建電信鏈路的Web應用VS

圖6 Pool與VS關聯、基于Cookie會話保持
通過以上配置,把F5放到實際生產環境,通過F5后臺管理監控系統我們獲取了F5對在線平臺響應的相關數據和負載均衡效果。
當在線人數達到6000人左右,前端6臺Web服務器平均CUP占用達到10%,內存占用20%。對于10000余人的在線學習,毫無壓力。
在Web服務池里可以看到每個Node采用輪詢負載均衡算法后,進出的流量和連接并發數平均分擔到了每一個節點,負載均衡效果非常明顯。
我們在F5后臺頁面管理系統里的HTTP profile或者Web Accelerator模塊中通過相應配置,可以靈活的定義哪些內容需要壓縮,哪些類型不進行壓縮,甚至可以定義到特定的URI來進行壓縮處理。在開啟壓縮優化功能后進行對干部在線平臺的網頁打開時間對比,可以清晰的看到頁面的打開時間被明顯的縮短了很多。
干部在線平臺中應用F5壓縮優化的功能可針對每個用戶的連接條件,以最佳方式調整每個 HTTP 和 TCP 會話,為用戶保持較高的性能水平。而且使用了適應性 TCP 優化,融合了會話級應用感知、速率調整、擁塞控制算法、糾錯和優化的 TCP 窗口。這可幫助干部在線平臺實時適應于廣域網鏈路和移動網絡的延遲、數據包丟失和擁塞特征,完全利用可用的帶寬并加速應用流量。
針對于干部在線平臺目前應用到以下的加速優化方式。
●級聯:將內容類型相同的多個外部文件組合至單個文件,以減少往返次數,加快頁面加載的速度。
●內容重排序:優化 JavaScript 和級聯樣式表(CSS)的加載順序,加快頁面渲染的速度。
●內容直接嵌入:通過將 JavaScript、CSS 和圖像直接嵌入至 HTML,減少請求的數量,無需實施更多的 GET 請求。該優化有益于僅需查看一次的內容,或高速緩存大小受限的移動設備。
●圖像優化:通過降低質量,刪除不必要的元數據并轉換圖像格式(包括全新的 WebP 和JPEG-XR 格式),減小圖像尺寸。
●縮小化:從 JavaScript 和 CSS 中刪除空格和評論,減小文件的大小。
●動態緩存:緩存看似動態(包含查詢參數、cookies 或會話 ID),實際為靜態或以可識別方式變化的數據。通過全面檢查HTTP 請求的每個要素,控制緩存行為,并廢棄緩存的數據,從動態 web 應用緩存中緩存百分比較高的數據,同時保持適當的應用行為。
●動態壓縮:壓縮 web 應用中的動態數據,并確保只在有利于提升性能的情況下進行壓縮。動態壓縮與標準壓縮實施不同,因為它具備較高的效率,而且能夠避免常見的瀏覽器壓縮問題。
2)對雙運營商鏈路訪問的負載均衡
在具備了雙聯路暢通的前提下,干部在線平臺依托F5應用交付控制器做到了入站訪問的鏈路智能選擇。真正的讓學員在任何網絡環境下都能最優最快最穩定的訪問學習平臺。通過在上面創建的兩個運營商地址。能夠讓電信的用戶通過干部在線系統網絡接入的電信網絡進行平臺的訪問和學習,聯通用戶則會通過聯通線路訪問。與此同時也做到了平臺的高可用性。
一旦電信或者聯通其中一條運營商線路出現故障的情況下。干部在線平臺可以通過F5設備講所有流量都引導到正常的運營商線路上。同時還鏡像了用戶的會話信息。保證用戶的視頻學習不會中斷,登陸狀態不會改變。這樣在線平臺的快速和高可用會24小時流暢高效的保證學員的學習。
3)干部在線應用的安全保護
目前的國內互聯網環境看似安全,但是每天針對于網站的攻擊卻從未停止而且層出不窮。干部在線平臺有防火墻來防護網絡攻擊。但是防火墻只能幫助平臺抵御來自4層的攻擊行為及4層的DDos攻擊。對于web應用的7層安全防護,干部在線利用F5 的ASM安全模塊進行防御。
上文已經提到針對于7層應用的攻擊目前才是干部在線平臺的主要威脅。干部在線平臺依托ASM安全防御模塊功能目前已經阻擋了上千種攻擊行為,以及互聯網發起的DDos攻擊。ASM模塊可以根據干部在線平臺的后臺應用組成元素信息,配比出最優最適合后臺應用的安全防護策略。在擁有強大的攻擊匹配庫的同時,也可以自動學習攻擊類型。
我們從其中一份日志信息來分析。F5設備幫我們定位出攻擊源的地址,在阻斷攻擊的同時。會給出詳細的攻擊行為及自身的阻斷安全策略信息。來幫助管理員更好的運營干部在線平臺應用。

圖7 負載均衡Node數據統計

圖8 F5沒有開啟優化功能下訪問網站的打開時間及信息
本文針對平臺在線人數突增所帶來的高并發、大流量、安全等問題,通過對F5基于應用交付網絡的重要特性功能以及此類功能在干部在線的平臺的應用進行分析介紹。提出解決面臨問題的方法,運用F5的應用負載均衡、鏈路負載均衡、網絡7層安全防護等技術,構造了一個高可用、安全、快速的應用交付網絡平臺,提高了在線學員的用戶體驗,營造了一個更加完善的網絡學習環境。
參考文獻
[1] 應用交付之BIG-IP LTM篇[EB/OL].http://down.51cto. com/data/1113699,2014-04-02.
[2] 劉元峰.基于應用交付網絡技術的網絡負載均衡研究與實現[D]. 吉林大學碩士學位論文,2008.
[3] 應用交付網絡f5使用總結[EB/OL].http://wenku.baidu. com,2014-06-07.

圖9 截取一段時間干部在線利用F5設備阻擋的攻擊

圖10 攻擊的源地址與IP所屬國家以及攻擊的類型

圖11 攻擊行為包含的一些特征元素一覽無余的呈現
Based on load balancing F5 application delivery networking technology in cadres onlineplatform
Ma Wei
(Yunnan Open University,Kunming,650223,Yunnan)
Abstract:Application delivery network technology is the concept of the network and application depth together.Safe,rapid, high availability is the three elements of application delivery network. Application delivery network technology by the server load balancing,link load balancing,the application of safety management,use of a variety of techniques such as acceleration.The purpose is to improve the user experience,to guarantee the network security under the premise of solving the user key network application access bottleneck problem.Cadres according to the online learning platform of large flow, high concurrency,and the problem of network security,we need to introduce the application delivery network technology.F5 is today one of the first industry an application delivery network controller.This paper introduces the application delivery,on the basis of network technology,the function and application of the F5 delivery technology related knowledge together, and practically applied to the cadres online platform network architecture.To solve the platform online step growth brought about by the population.Make the online learning platform more secure,efficient, flexible and orderly operation.
Keywords:Application delivery network;load balancing;high availability;security