[转]F5 BIG-IP负载均衡器配置实例与Web管理界面体验
转载:http://www.zyan.cc/f5_big_ip/
前言:最近一直在对比测试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.zyan.cc被解析到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.zyan.cc/book/f5/vlan_create.htm
★VLAN列表演示页面:http://blog.zyan.cc/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.zyan.cc/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.zyan.cc/book/f5/routes_create.htm
1、创建默认网关路由
在“Network→Routes”页面点击“create”按钮:
①、Type栏选择:Default Gateway(默认值)
②、Resource栏选择:Use Gateeay...,在其后的输入框填写网关IP地址:61.1.1.1(这里假设此IP为外网网关地址)
五、创建服务器自定义健康检查
★创建服务器自定义健康检查演示页面:http://blog.zyan.cc/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.zyan.cc/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.zyan.cc/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.zyan.cc/book/f5/irules_create.htm
1、创建iRules规则:irules_apache
在“Local Traffic→Profiles”页面点击“create”按钮:
①、Name栏填写:irules_apache(填一个英文名称)
②、Definition栏填写以下脚本,将访问的域名为“blog.zyan.cc”,访问的网址以“.htm”结尾,或者以“/read.php”开头的请求全部转到服务器池“pool_apache_irules”:when HTTP_REQUEST {
if {[HTTP::host] equals "blog.zyan.cc" and [HTTP::uri] ends_with ".htm"} {
pool pool_apache_irules
}
elseif {[HTTP::host] equals "blog.zyan.cc" and [HTTP::uri] starts_with "/read.php"} {
pool pool_apache_irules
}
}
九、创建虚拟服务器(Virtual Servers)
★创建虚拟服务器演示页面:http://blog.zyan.cc/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.zyan.cc/book/f5/vs_properties.htm
★修改虚拟服务器演示页面2:http://blog.zyan.cc/book/f5/vs_resources.htm
十、创建SNAT安全网络地址转换,让真实服务器能够访问互联网、对外发邮件
★创建SNAT演示页面:http://blog.zyan.cc/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访问互联网、对外发邮件。
[转]F5 BIG-IP负载均衡器配置实例与Web管理界面体验的更多相关文章
- F5 BIG-IP负载均衡器配置实例与Web管理界面体验
[文章作者:张宴 本文版本:v1.0 最后修改:2008.05.22 转载请注明出自:http://blog.s135.com/f5_big_ip] 前言:最近一直在对比测试F5 BIG-IP和Cit ...
- Windows 配置 Aria2 及 Web 管理面板教程
今天闲来没事,想找点东西折腾下,然后看到个在 Debian 7 x64 系统环境下配置 Aria2 和 Web 管理面板的教程,针对 Linux 服务器用的.但很多人没服务器,也不知道什么是 Aria ...
- supervisor program配置实例
program 配置 上面我们已经把 supervisrod 运行起来了,现在可以添加我们要管理的进程的配置文件.可以把所有配置项都写到 supervisord.conf 文件里,但并不推荐这样做,而 ...
- 华为S5700S-52P-LI-AC千兆网管交换机web登录界面配置
研究一下午,包装附的说明书根本就是错误的,通过技术售后和官方的文档结合,总算可以登录交换机的web管理界面. 首先需要使用通讯控制线缆(包装中附)连接电脑和交换机,一头接交换机的Console口,一头 ...
- nginx下配置多个web服务
参考 nginx配置详解 nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...
- HAPROXY 配置项/配置实例
HAPROXY 配置项/实例 常用配置选项: OPTION 选项: option httpclose :HAProxy会针对客户端的第一条请求的返回添加cookie并返回给客户端,客户端发送后续请求时 ...
- AWS EC2服务器的HTTPS负载均衡器配置过程
AWS EC2服务器配置负载均衡器步骤: 1.普通负载均衡器 至少两台EC2实例,这里以Centos6.7系统为例 启动之后先安装个apache的httpd服务器默认80端口,或者使用其他服务 ...
- 二、Nginx配置实例
Nginx配置实例 一.反向代理 实例一 1.实现效果 打开浏览器,在浏览器地址栏输入地址 www.123.com ,跳转到linux系统tomcat主页面中. 2.准备工作 在linux系统中安装t ...
- Linux下双网卡绑定bond配置实例详解
本文源自:http://blog.itpub.net/31015730/viewspace-2150185/ 一.什么是bond? 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡冗余,带宽 ...
随机推荐
- phd文献阅读日志-博一上学期
为了记住并提醒自己阅读文献,进行了记录(这些论文都是我看过理解的),论文一直在更新中. 博一上学期: 1.week 6,2017.10.16 2014-Automatic Semantic Model ...
- unity3d Start执行不同时问题
1.一个Scene的场景里有许多的GameObject,很多GameObject上绑定了Script,每个Script上又都有Start函数 using UnityEngine; using Syst ...
- iOS: Sorted Array with Compare
Question(提问): What I want to do seems pretty simple, but I can't find any answers on the web. I have ...
- MyEclipse远程调试Tomcat
程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样.于是就灰常想看一下程序在远程运行时候的状态,希望让程序在远程运行,还可以在 ...
- 父组件中vuex方法更新state,子组件不能及时更新并渲染的解决方法
场景: 我实际用到的是这样的,我父组件引用子组件related,父组件调用获取页面详情的方法,更新了state值related,子组件根据该related来渲染相关新闻内容,但是页面打开的时候总是先加 ...
- ADCD 1.9 ZOS 配置 CTCI-W32 TCPIP 网络
试验步骤:两步走,第一步修改Hercules的配置文件 在hercules 配置文件末尾加上 0E20-0E21 CTCI -n 0A-00-27-00-00-00 192.168.5 ...
- Blender 移动、旋转、缩放
1.手动调整物体的属性 当我们添加了一个物体后,例如一个Torus物体. 在左侧下角部分能看到“Add Torus”面板,面板包含了Locatin.Rotation.Major Segments.Mi ...
- [转] NGUI自适应
很多做移动终端开发的童鞋都可能遇到一个问题,就是如何自适应其实NGUI已经能帮我们实现,下面就告诉大家怎么整这个自适应.1,create a new ui 2,uiroot下添加uipanel(scr ...
- 条件独立(conditional independence) 结合贝叶斯网络(Bayesian network) 概率有向图 (PRML8.2总结)
本文会利用到上篇,博客的分解定理,需要的可以查找上篇博客 D-separation对任何用有向图表示的概率模型都成立,无论随机变量是离散还是连续,还是两者的结合. 部分图为手写,由于本人字很丑,望见谅 ...
- [转]spring 官方下载地址(Spring Framework 3.2.x&Spring Framework 4.0.x)
SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径: h ...