前言:最近一直在对比测试F5BIG-IP和CitrixNetScaler负载均衡器的各项性能,于是写下此篇文章,记录F5BIG-IP的常见应用配置方法。
目前,许多厂商推出了专用于平衡服务器负载的负载均衡器,如F5Network公司的BIG-IP,Citrix公司的NetScaler。
F5BIG-IPLTM的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYNFlood保护、防火墙—包过滤、包消毒等功能。
以下是F5BIG-IP用作HTTP负载均衡器的主要功能:①、F5BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
②、F5BIG-IP可以确认应用程序能否对请求返回对应的数据。
假如F5BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。
这样,只要其它的服务器正常,用户的访问就不会受到影响。
宕机一旦修复,F5BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
③、F5BIG-IP具有动态Session的会话保持功能。
④、F5BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。
下面,结合实例,配置:①、如图,假设域名被解析到F5的外网/公网虚拟IP:(vs_squid),该虚拟IP下有一个服务器池(pool_squid),该服务器池下包含两台真实的Squid服务器(和)。
②、如果Squid缓存未命中,则会请求F5的内网虚拟IP:(vs_apache),该虚拟IP下有一个默认服务器池(pool_apache_default),该服务器池下包含两台真实的Apache服务器(和),当该虚拟IP匹配iRules规则时,则会访问另外一个服务器池(pool_apache_irules),该服务器池下同样包含两台真实的Apache服务器(和)。
③、另外,所有真实服务器的默认网关指向F5的自身内网IP,即。
④、所有的真实服务器通过SNATIP地址访问互联网。
详细配置步骤:一、登录到F5BIG-IP管理界面:1、初次使用:①、打开F5BIG-IP电源,用一根网线(直连线和交叉线均可)连接F5BIG-IP的管理网口和笔记本电脑的网口,将笔记本电脑的IP地址配置为,子网掩码配置为。
②、用浏览器访问F5BIG-IP的出厂默认管理IP地址或③、输入出厂默认用户名:admin,密码:admin④、点击Activate进入F5BIG-IPLicense申请与激活页面,激活License。
⑤、修改默认管理密码。
2、以后登录:通过F5BIG-IP的自身外网IP登录。
①、假设设置的F5自身外网IP为,就可以通过登录。
②、还可以通过SSH登录,用户名为root,密码跟Web管理的密码相同。
二、创建两个VLAN:internal和external,分别表示内网和外网。
★创建VLAN演示页面:★VLAN列表演示页面:1、创建VLAN:internal(内网)在“Network→VLANs”页面点击“create”按钮:①、Name栏填写:internal(填一个英文名称)②、Tag栏填写:4093(填一个数字)③、Interfaces栏:将Available列的“”拉到Untagged列。
表示F5BIG-IP的第一块网卡。
2、创建VLAN:external(外网)在“Network→VLANs”页面点击“create”按钮创建VLAN:①、Name栏填写:internal(填一个英文名称)②、Tag栏填写:4094(填一个数字)③、Interfaces栏:将Available列的“”拉到Untagged列。
表示F5BIG-IP的第二块网卡。
三、创建F5BIG-IP的自身IP:分别对应internal(内网)和external(外网)。
★创建自身IP演示页面:1、创建自身内网IP:在“Network→SelfIPs”页面点击“create”按钮:①、IPAddress栏填写:(填内网IP地址)②、Netmask栏填写:(填内网子网掩码)③、VLAN栏选择:internal④、PortLockdown栏选择:AllowDefault(默认值)2、创建自身外网IP:在“Network→SelfIPs”页面点击“create”按钮:①、IPAddress栏填写:(填外网IP地址)②、Netmask栏填写:(填外网子网掩码)③、VLAN栏选择:external④、PortLockdown栏选择:AllowDefault(默认值)四、创建默认网关路由★创建默认网关路由演示页面:1、创建默认网关路由在“Networ k→Routes”页面点击“create”按钮:①、Type栏选择:DefaultGateway(默认值)②、Resource栏选择:UseGateeay...,在其后的输入框填写网关IP地址:(这里假设此IP为外网网关地址)五、创建服务器自定义健康检查★创建服务器自定义健康检查演示页面:1、创建自定义HTTP健康检查:monitor_http在“LocalTraffic→Monitors”页面点击“create”按钮:①、Name栏填写:monitor_http(填一个英文名称)②、Type栏选择:HTTP③、ImportSettings栏选择:HTTP④、Interval栏填写:5(表示每5秒钟进行一次健康检查)⑤、Timeout栏填写:16(表示健康检查的连接超时时间为16秒)⑥、SendString栏填写:GET/(也可以根据自己的需求发送其他方法的请求,例如HEAD/或者GET/)⑦、ReceiveString栏填写:(填写对应的返回字符串,默认不填写)六、创建服务器池(pool)★创建服务器池演示页面:1、创建Squid服务器池:pool_squid在“LocalTraffic→Pools”页面点击“create”按钮:①、Name栏填写:pool_squid(填一个英文名称)②、HealthMonitors栏:将第四步创建的自定义HTTP健康检查“monitor_http”由Available列拉到Active列③、LoadBalancingMethod栏选择:RoundRobin(这里选择的负载均衡方式是轮询,也可以选择其他方式)④、NewMembers栏:先选择NewAddress,再添加两台Squid服务器的IP地址、以及它们的端口802、创建第一组Apache服务器池:pool_apache_default在“LocalTraffic→Pools”页面点击“create”按钮:①、Name栏填写:pool_apache_default(填一个英文名称)②、HealthMonitors栏:将第四步创建的自定义HTTP健康检查“monitor_http”由Available列拉到Active列③、LoadBalancingMethod栏选择:RoundRobin(这里选择的负载均衡方式是轮询,也可以选择其他方式)④、NewMembers栏:先选择NewAddress,再添加第一组两台Apache服务器的IP地址、以及它们的端口803、创建第二组Apache服务器池:pool_apache_irules在“LocalTraffic→Pools”页面点击“create”按钮:①、Name栏填写:pool_apache_irules(填一个英文名称)②、HealthMonitors栏:将第四步创建的自定义HTTP健康检查“monitor_http”由Available列拉到Active列③、LoadBalancingMethod栏选择:RoundRobin(这里选择的负载均衡方式是轮询,也可以选择其他方式)④、NewMembers栏:先选择NewAddress,再添加第二组两台Apache服务器的IP地址、以及它们的端口80七、创建供七层负载均衡使用的Profiles配置★创建Profiles演示页面:1、创建Profiles配置:profile_http在“LocalT raffic→Profiles”页面点击“create”按钮:①、Name栏填写:profile_http(填一个英文名称)②、ParentProfile栏选择:HTTP③、InsertXForwardedFor栏:如果需要,可以选中方框,选择Enable(在Header头中插入x-forwarded-for标记,以便做七层负载均衡时能够获取用户真实IP,本文中Squid服务器开启了follow_x_forwarded_forallowall,因此F5无需设置此项)注:在此设置页面中,还有压缩等优化功能,可以根据需要进行设置。
八、创建iRules规则★创建iRules规则演示页面:1、创建iRules规则:irules_apache在“LocalTraffic→Profiles”页面点击“create”按钮:①、Name栏填写:irules_apache(填一个英文名称)②、Definition栏填写以下脚本,将访问的域名为,访问的网址以“.htm”结尾,或者以“/”开头的请求全部转到服务器池“pool_apache_irules”:viewplainprint1.whenHTTP_REQUEST{2.if{[HTTP::host]equalsand[HTTP::uri]ends_with".htm"}{3.poolpool_apache_irules4.}5.elseif{[HTTP::host]equalsand[HTTP::uri]starts_with"/"}{6.poolpool_apache_irules7.}8.}九、创建虚拟服务器(VirtualServers)★创建虚拟服务器演示页面:1、以“四层”负载均衡模式创建Squid虚拟服务器:vs_squid在“LocalTraffic→VirtualServers”页面点击“create”按钮:⑴、GeneralProperties大类下:①、Name栏填写:vs_squid(填一个英文名称)②、Destination栏:选择Host,填写Squid服务器的外网虚拟IP(VirtualIP,简称VIP):③、ServicePort栏填写:80⑵、Configuration大类下:①、Configuration栏选择:Advanced(选择高级模式,这一步很重要)②、Type栏选择:Performance(Layer4)③、SNATPool栏选择:None(注意:这一步很重要,四层模式下,请确保此项选择为None)⑶、Resources大类下:①、DefaultPool栏选择:pool_squid注意:F5的四层负载均衡由硬件芯片处理,不消耗CPU资源,能够处理更大的访问量。