F5 BIG-IP負載均衡器配置實例與Web管理界面體驗

目前,許多廠商推出了專用於平衡服務器負載的負載均衡器,如F5 Network公司的BIG-IP,Citrix公司的NetScaler。F5 BIG-IP LTM 的官方名稱叫做本地流量管理器,可以做4-7層負載均衡,具有負載均衡、應用交換、會話交換、狀態監控、智能網絡地址轉換、通用持續性、響應錯誤處理、 IPv6網關、高級路由、智能端口鏡像、SSL加速、智能HTTP壓縮、TCP優化、第7層速率整形、內容緩衝、內容轉換、連接加速、高速緩存、 Cookie加密、選擇性內容加密、應用***過濾、拒絕服務(DoS)***和SYN Flood保護、防火牆—包過濾、包消毒等功能。

  以下是F5 BIG-IP用作HTTP負載均衡器的主要功能:
  ①、F5 BIG-IP提供12種靈活的算法將所有流量均衡的分配到各個服務器,而面對用戶,只是一臺虛擬服務器。
  ②、F5 BIG-IP可以確認應用程序能否對請求返回對應的數據。假如F5 BIG-IP後面的某一臺服務器發生服務停止、死機等故障,F5會檢查出來並將該服務器標識爲宕機,從而不將用戶的訪問請求傳送到該臺發生故障的服務器上。這樣,只要其它的服務器正常,用戶的訪問就不會受到影響。宕機一旦修復,F5 BIG-IP就會自動查證應用已能對客戶請求作出正確響應並恢復向該服務器傳送。
  ③、F5 BIG-IP具有動態Session的會話保持功能。
  ④、F5 BIG-IP的iRules功能可以做HTTP內容過濾,根據不同的域名、URL,將訪問請求傳送到不同的服務器。



  下面,結合實例,配置F5 BIG-IP LTM v9.x:

  點擊在新窗口中瀏覽此圖片

  ①、如圖,假設域名blog.s135.com被解析到F5的外網/公網虛擬IP:61.1.1.3(vs_squid),該虛擬IP下有一個服務器池(pool_squid),該服務器池下包含兩臺真實的Squid服務器(192.168.1.11和192.168.1.12)。
  ②、如果 Squid緩存未命中,則會請求F5的內網虛擬IP:192.168.1.3(vs_apache),該虛擬IP下有一個默認服務器池(pool_apache_default),該服務器池下包含兩臺真實的Apache服務器(192.168.1.21和192.168.1.22),當該虛擬IP匹配iRules規則時,則會訪問另外一個服務器池(pool_apache_irules),該服務器池下同樣包含兩臺真實的Apache 服務器(192.168.1.23和192.168.1.24)。
  ③、另外,所有真實服務器的默認網關指向F5的自身內網IP,即192.168.1.2。
  ④、所有的真實服務器通過SNAT IP地址61.1.1.4訪問互聯網。


  詳細配置步驟:

  一、登錄到F5 BIG-IP管理界面:
  1、初次使用:
  ①、打開F5 BIG-IP電源,用一根網線(直連線和交叉線均可)連接F5 BIG-IP的3.1管理網口和筆記本電腦的網口,將筆記本電腦的IP地址配置爲“192.168.1.*”,子網掩碼配置爲“255.255.255.0”。
  ②、用瀏覽器訪問F5 BIG-IP的出廠默認管理IP地址https://192.168.1.245https://192.168.245.245
  ③、輸入出廠默認用戶名:admin,密碼:admin
  ④、點擊Activate進入F5 BIG-IP License申請與激活頁面,激活License。
  ⑤、修改默認管理密碼。

  2、以後登錄:
  通過F5 BIG-IP的自身外網IP登錄。
  ①、假設設置的F5自身外網IP爲61.1.1.2,就可以通過https://61.1.1.2/ 登錄。
  ②、還可以通過SSH登錄,用戶名爲root,密碼跟Web管理的密碼相同。


  二、創建兩個VLAN:internal和external,分別表示內網和外網。
  ★創建VLAN演示頁面: http://blog.s135.com/book/f5/vlan_create.htm
  ★VLAN列表演示頁面: http://blog.s135.com/book/f5/vlan_list.htm

  1、創建VLAN:internal(內網)
  在“Network→VLANs”頁面點擊“create”按鈕:
  ①、Name欄填寫:internal(填一個英文名稱)
  ②、Tag欄填寫:4093(填一個數字)
  ③、Interfaces欄:將Available列的“1.1”拉到Untagged列。1.1表示F5 BIG-IP的第一塊網卡。

  2、創建VLAN:external(外網)
  在“Network→VLANs”頁面點擊“create”按鈕創建VLAN:
  ①、Name欄填寫:internal(填一個英文名稱)
  ②、Tag欄填寫:4094(填一個數字)
  ③、Interfaces欄:將Available列的“1.2”拉到Untagged列。1.2表示F5 BIG-IP的第二塊網卡。


  三、創建F5 BIG-IP的自身IP:分別對應internal(內網)和external(外網)。
  ★創建自身IP演示頁面: http://blog.s135.com/book/f5/selfip_create.htm

  1、創建自身內網IP:192.168.1.2
  在“Network→Self IPs”頁面點擊“create”按鈕:
  ①、IP Address欄填寫:192.168.1.2(填內網IP地址)
  ②、Netmask欄填寫:255.255.255.0(填內網子網掩碼)
  ③、VLAN欄選擇:internal
  ④、Port Lockdown欄選擇:Allow Default(默認值)

  2、創建自身外網IP:61.1.1.2
  在“Network→Self IPs”頁面點擊“create”按鈕:
  ①、IP Address欄填寫:61.1.1.2(填外網IP地址)
  ②、Netmask欄填寫:255.255.255.0(填外網子網掩碼)
  ③、VLAN欄選擇:external
  ④、Port Lockdown欄選擇:Allow Default(默認值)


  四、創建默認網關路由
  ★創建默認網關路由演示頁面: http://blog.s135.com/book/f5/routes_create.htm

  1、創建默認網關路由
  在“Network→Routes”頁面點擊“create”按鈕:
  ①、Type欄選擇:Default Gateway(默認值)
  ②、Resource欄選擇:Use Gateeay...,在其後的輸入框填寫網關IP地址:61.1.1.1(這裏假設此IP爲外網網關地址)


  五、創建服務器自定義健康檢查
  ★創建服務器自定義健康檢查演示頁面: http://blog.s135.com/book/f5/monitors_create.htm

  1、創建自定義HTTP健康檢查:monitor_http
  在“Local Traffic→Monitors”頁面點擊“create”按鈕:
  ①、Name欄填寫:monitor_http(填一個英文名稱)
  ②、Type欄選擇:HTTP
  ③、Import Settings欄選擇:HTTP
  ④、Interval欄填寫:5(表示每5秒鐘進行一次健康檢查)
  ⑤、Timeout欄填寫:16(表示健康檢查的連接超時時間爲16秒)
  ⑥、Send String欄填寫:GET /(也可以根據自己的需求發送其他方法的請求,例如HEAD /或者GET /index.htm)
  ⑦、Receive String欄填寫:(填寫對應的返回字符串,默認不填寫)


  六、創建服務器池(pool)
  ★創建服務器池演示頁面: http://blog.s135.com/book/f5/pools_create.htm

  1、創建Squid服務器池:pool_squid
  在“Local Traffic→Pools”頁面點擊“create”按鈕:
  ①、Name欄填寫:pool_squid(填一個英文名稱)
  ②、Health Monitors欄:將第四步創建的自定義HTTP健康檢查“monitor_http”由Available列拉到Active列
  ③、Load Balancing Method欄選擇:Round Robin(這裏選擇的負載均衡方式是輪詢,也可以選擇其他方式)
  ④、New Members欄:先選擇New Address,再添加兩臺Squid服務器的IP地址192.168.1.11、192.168.1.12以及它們的端口80

  2、創建第一組Apache服務器池:pool_apache_default
  在“Local Traffic→Pools”頁面點擊“create”按鈕:
  ①、Name欄填寫:pool_apache_default(填一個英文名稱)
  ②、Health Monitors欄:將第四步創建的自定義HTTP健康檢查“monitor_http”由Available列拉到Active列
  ③、Load Balancing Method欄選擇:Round Robin(這裏選擇的負載均衡方式是輪詢,也可以選擇其他方式)
  ④、New Members欄:先選擇New Address,再添加第一組兩臺Apache服務器的IP地址192.168.1.21、192.168.1.22以及它們的端口80

  3、創建第二組Apache服務器池:pool_apache_irules
  在“Local Traffic→Pools”頁面點擊“create”按鈕:
  ①、Name欄填寫:pool_apache_irules(填一個英文名稱)
  ②、Health Monitors欄:將第四步創建的自定義HTTP健康檢查“monitor_http”由Available列拉到Active列
  ③、Load Balancing Method欄選擇:Round Robin(這裏選擇的負載均衡方式是輪詢,也可以選擇其他方式)
  ④、New Members欄:先選擇New Address,再添加第二組兩臺Apache服務器的IP地址192.168.1.23、192.168.1.24以及它們的端口80


  七、創建供七層負載均衡使用的Profiles配置
  ★創建Profiles演示頁面: http://blog.s135.com/book/f5/profiles_create.htm

  1、創建Profiles配置:profile_http
  在“Local Traffic→Profiles”頁面點擊“create”按鈕:
  ①、Name欄填寫:profile_http(填一個英文名稱)
  ②、Parent Profile欄選擇:HTTP
  ③、Insert XForwarded For欄:如果需要,可以選中方框,選擇Enable(在Header頭中插入x-forwarded-for標記,以便做七層負載均衡時能夠獲取用戶真實IP,本文中Squid服務器開啓了follow_x_forwarded_for allow all,因此F5無需設置此項)

  注:在此設置頁面中,還有壓縮等優化功能,可以根據需要進行設置。


  八、創建iRules規則
  ★創建iRules規則演示頁面: http://blog.s135.com/book/f5/irules_create.htm

  1、創建iRules規則:irules_apache
  在“Local Traffic→Profiles”頁面點擊“create”按鈕:
  ①、Name欄填寫:irules_apache(填一個英文名稱)
  ②、Definition欄填寫以下腳本,將訪問的域名爲“blog.s135.com”,訪問的網址以“.htm”結尾,或者以“/read.php”開頭的請求全部轉到服務器池“pool_apache_irules”:
  1. when HTTP_REQUEST {  
  2.   if  {[HTTP::host] equals  "blog.s135.com"  and [HTTP::uri] ends_with  ".htm" } {  
  3.   pool pool_apache_irules  
  4.   }  
  5.   elseif {[HTTP::host] equals "blog.s135.com"  and [HTTP::uri] starts_with  "/read.php" } {  
  6.   pool pool_apache_irules  
  7.   }  
  8. }  
C代碼 複製代碼
  1. when HTTP_REQUEST {   
  2.   if {[HTTP::host] equals "blog.s135.com" and [HTTP::uri] ends_with ".htm"} {   
  3.   pool pool_apache_irules   
  4.   }   
  5.   elseif {[HTTP::host] equals "blog.s135.com" and [HTTP::uri] starts_with "/read.php"} {   
  6.   pool pool_apache_irules   
  7.   }   
  8. }  


  九、創建虛擬服務器(Virtual Servers)
  ★創建虛擬服務器演示頁面: http://blog.s135.com/book/f5/vs_create.htm

  1、以“四層”負載均衡模式創建Squid虛擬服務器:vs_squid
  在“Local Traffic→Virtual Servers”頁面點擊“create”按鈕:
  ⑴、General Properties大類下:
  ①、Name欄填寫:vs_squid(填一個英文名稱)
  ②、Destination欄:選擇Host,填寫Squid服務器的外網虛擬IP(Virtual IP,簡稱VIP):61.1.1.3
  ③、Service Port欄填寫:80

  ⑵、Configuration大類下:
  ①、Configuration欄選擇: Advanced(選擇高級模式,這一步很重要)
  ②、Type欄選擇:Performance (Layer 4)
  ③、SNAT Pool欄選擇:None(注意:這一步很重要,四層模式下,請確保此項選擇爲None)

  ⑶、Resources大類下:
  ①、Default Pool欄選擇:pool_squid

  注意:F5的四層負載均衡由硬件芯片處理,不消耗CPU資源,能夠處理更大的訪問量。在四層負載均衡模式下,真實服務器的默認網關必須指向F5的自身內網IP,即192.168.1.2

  2、以“七層”負載均衡模式創建Apache虛擬服務器:vs_apache
  在“Local Traffic→Virtual Servers”頁面點擊“create”按鈕:
  ⑴、General Properties大類下:
  ①、Name欄填寫:vs_apache(填一個英文名稱)
  ②、Destination欄:選擇Host,填寫Apache服務器的內網虛擬IP(Virtual IP,簡稱VIP):192.168.1.3
  ③、Service Port欄填寫:80

  ⑵、Configuration大類下:
  Configuration欄選擇: Advanced(選擇高級模式,這一步很重要)
  ①、Type欄選擇:Standard(標準模式,即七層負載均衡模式)
  ②、HTTP Profile欄選擇:profile_http(注意:此項爲None時,不能使用iRules規則,因此必須選一個。在此選擇第六步創建的profile_http)
  ③、SNAT Pool欄選擇:Auto Map(注意:在本文的架構中必須選擇,原因如下)
  說明:當其中的一臺Squid服務器“192.168.1.11”緩存未命中時,會去訪問虛擬IP“192.168.1.3”。如果SNAT Pool選擇默認值None,虛擬IP“192.168.1.3”後端的Apache服務器,看到的將是Squid服務器的真實 IP“192.168.1.11”。由於Squid和Apache服務器的IP地址屬於在同一網段,Apache服務器將無需經過F5網關 “192.168.1.2”,直接通過交換機回包給Squid服務器“192.168.1.11”,這樣虛擬IP“192.168.1.3”就會收不到回包信息,HTTP請求無法完成。因此,需要選擇Auto Map,進行地址轉換,讓後端Apache服務器看到的是F5的自身內網IP,回包給F5。

  ⑶、Resources大類下:
  ①、iRules欄:將Available列的“irules_apache”拉到Enabled列。
  ②、Default Pool欄選擇:pool_apache_default

  ⑷、Apache虛擬服務器──vs_apache創建完成後,如需進行修改,在以下兩個配置頁完成:
  ★修改虛擬服務器演示頁面1: http://blog.s135.com/book/f5/vs_properties.htm
  ★修改虛擬服務器演示頁面2: http://blog.s135.com/book/f5/vs_resources.htm


  十、創建SNAT安全網絡地址轉換,讓真實服務器能夠訪問互聯網、對外發郵件
  ★創建SNAT演示頁面: http://blog.s135.com/book/f5/snat_create.htm

  1、創建SNAT:snat_all_server
  在“Local Traffic→SNATs”頁面點擊“create”按鈕:
  ①、Name欄填寫:snat_all_server(填一個英文名稱)
  ②、Translation欄選擇:IP Address,並填寫SNAT IP地址:61.1.1.4(此項也可以選擇Automap,使用F5的自身外網IP作爲SNAT IP)
  ③、Origin欄選擇:Address List
  ④、Address List欄:①Type欄選擇host,填寫要訪問互聯網、對外發郵件的內網IP地址。②或者Type欄選擇Network,填寫要訪問互聯網、對外發郵件的網段和子網掩碼。
  ⑤、VLAN Traffic欄選擇:Enabled on...
  ⑥、VLAN List欄:將Available列的“internal”拉到Selected列。

  注意:真實服務器的默認網關需要指向F5的自身內網IP,即192.168.1.2,才能通過SNAT訪問互聯網、對外發郵件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章