1. 程式人生 > >F5 BIG-IP配置例項與Web管理介面體驗

F5 BIG-IP配置例項與Web管理介面體驗

轉載請註明出自:http://blog.s135.com/]

  前言:最近一直在對比測試F5 BIG-IP和Citrix NetScaler負載均衡器的各項效能,於是寫下此篇文章,記錄F5 BIG-IP的常見應用配置方法。

   目前,許多廠商推出了專用於平衡伺服器負載的負載均衡器,如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.245/https://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. }