配置F5 负载均衡(转)
转自《网络运维与管理》201406-11
配置F5交换机的问题在于,与平时所学的交换机、路由器思路完全不同,拿到设备后,完全不知如何下手。
网络拓扑图如下:
两台web服务器对外提供服务,Ip地址为:192.168.192.10-20/24,外网地址192.168.27.100的80端口进行负载均衡的访问。
F5配置最简单负载均衡,需要配置的参数有Node(节点)、Pool(资源池)、和Virtual Server(虚拟服务器),它们的关系式,先配置Node,然后配置VS。Node是最基本的定义,如每个服务器就是一个Node,负载均衡Pool是一组Node接收和处理流量的一组设备,如web服务器集群。BIGIP系统将客户机流量请求发送到Pool成员中的任一服务器上(Node),然后将Pool与BIGIP系统中的Virtual server相关联,最后,BIGIP系统将进入Virtual Server中流量传输到Pool成员,Pool再传达给Node。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Virtual Server重要参数
F5的核心就是Virtual Server。
1、VS Type
在配置VS时,VS的Type有Performance L4、Standard VS、Forwarding IP 和 Fast Http。一般企业中常见的是前三种,考虑到尽量减少F5负载均衡引入对应用系统的影响,在可能的情况下,建议优先选用Performance L4类型的Virtual Server。在一些必须使用Standard的情况下,必然需要在F5设备上启用7层功能,包括Cookie会话保持、Session ID会话保持、Header会话保持、基于交易的长连接拆分等应用场景。另外,在应用系统需要使用F5实现Syn攻击防护时,可以采用 Standard Virtual Server。在明确后台应用基于HTTP协议时,建议在Standard的基础上关联BIGIP内置的标准HTTP Profile。对于非HTTP协议的应用,需要在VS上关联的其他Profile或者iRules根据实际的业务需求进行确定。
下面对每个VS的类型进行深入的说明:
第一种: Performance L4 模式(4层数据的转发)
Performance L4模式如图2所示,其中TMM只是负责客户端连接的分配和转发,不改变TCP连接中的任何参数,即客户端连接与服务器拦截是1:1的关系。一般企业中常是这种模式,因为转发速率快。但在一些7层数据包的情况下,如HTTP,建议使用Standard VS模式。
第二种 Standard VS模式
在这种模式下,客户端与服务器端的TCP连接完全独立,同时F5默认情况下以客户端源IP和后台建立连接,在打开SNAT的情况下用SNAT地址和后台建立连接。Standard VS的端口永远对外开放,无论后台是否有服务器在工作。也就是说,如果VS开放的端口是80,在Node A和Node B都down的情况下,虚IP的80端口还是可以telnet通的,只不过网页访问不了了。
第三种: Forwarding IP
一般用于内外网连接,没有Pool Member,转发完全取决于本地路由。默认情况下,F5没有路由功能,需要建立一个全0的VS去开启F5的路由功能,其中,如果想控制只有内网可以访问外网,而外网不能访问内网,可以通过调整“VLAN and Tunnel Traffic”参数来实现。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2. VS Profile
VS Profile 是依赖于VS的存在,是对于VS的流量进行格式化处理。如果VS上配置了TCP Profile,那么对于UDP的连接,F5是不会接受的。
tcp参数中Idel Timeout值(多长时间连接里面没有数据流量时就删除连接表)必须要与服务器相配合,否则会出现错误。如果F5上此值为150s,而IIs服务器为300s,就会产生大量错误。
3、 VS里面的Address Translation 和 Port Translation ,默认情况下都是 enabled。
Address Translation的含义是如果外面访问的主机和VS IP不一样,就需要开启此参数,比如VS IP地址是192.168.27.100,真实机器为192.168.27.10,那么需要开启Address Translation,而企业应用中,这参数一般是开启的,除非特殊的上面介绍的Fowarding IP模式不需要开启。
Port Translation 参数的意思是VS地址是192.168.27.100的8080端口对应真实地址的80端口,那么需要开启Port Translation
4、SNAT Pool ???
内网需要访问公网进行NAT转换。当配置SNAT AutoMap的时候,表示请求从哪个VLAN发出去,则SNAT的源地址为VLAN上的SelfIp,比如外网用户(192.168.27.1)访问内网服务器(192.168.192.10),在开启SNAT AutoMap的情况下,访问的源IP将转变为F5的内网SelfIP(192.168.192.2)去访问。当一个vlan上有多个SelfIP存在的时候,SNAT的源地址是在多个SelfIP之间轮询。
5、会话保持
在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中,一个客户与服务器经常经过多次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的,服务器在进行这些交互过程的某一个交互步骤时,往往需要了解上一次交互过程的处理结果,服务器进行下一步操作时需要,就要求所有这些相关的交互过程都由一台服务器完成,而不能被负载均衡器分散到不同的服务器上。
F5 BigIP支持多种的会话保持方式,其中包括:简单会话保持(源地址会话保持)、HTTP Header的会话保持,基于SSL Session ID的会话保持,I-Rules会话保持以及基于HTTP Cookie的会话保持,此外还有基于SIP ID以及Cache设备的会话保持等。下面重点介绍一下基于源地址会话保持和基于HTTP Cookie的会话保持。
源地址会话保持就是基于访问的源地址,如果一直是该IP在访问,则一直定向到一台服务器。比较重要的是会话保持时间,默认是180s,可以根据具体需要进行修改。
但是存在的问题就在于当多个客户是通过代理或者地址转换的方式来访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡。另外一种情况是客户机数量很少,但每个客户机都会产生多个并发访问,对这些并发访问也要求通过负载均衡器分配到多个服务器上,这时,基于客户机源地址的会话保持方法也会导致负载均衡失效。
这里就出现了第二种会话保持的功能基于Cookie的会话保持,这个常用于HTTP/HTTPs复杂均衡,即一个用户访问一个网站,在客户没有清除Cookie的情况下,F5总会命中同一台服务器,这就防止了比如用户访问网银时,需要跳转页面时,跳转到另外一台服务器上,导致交易失败的情况发生。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6、 One Connect
在使用VS Standard模式,并且一般和Cookie的会话保持一起使用时,One Connect实现连接聚合降低服务器的总连接数。
7、HA 介绍
实现Redundant机制。
两台BigIP 之间的通信机制可以共同两种方式进行:
串口数据线方式:通过互相检测对端的心跳信号,来判断对端设备的工作状态,在每一台BigIP设备内,都有专用的WatchDog芯片来产生心跳信号和检测对端的心跳信号。
网络数据线方式:两台BigIP距离较远的时候采用这种方式。通过System->High Availability 进行修改。当采用网络数学线方式进行心跳线时,需要开启Network Failover,注意Peer Management Address 需要填写Management端口的IP,不管此端口是否连线,而实际控制HA的地址可以在Unicast进行填写。
在启用Network Failover后,可以配置LAN Failsafe的功能,可以使BigIP检测到在相应VLAN没有流量(像对端交换机端口Down掉或者掉电停机)时,F5设备可以即时切换,进入High Availability -> Failsafe -> Vlan failsafe 即可对此进行配置。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
经验总结:
1、拿到F5首先就是要激活,通过向导可以很简单的进行激活,但是记住一定要能上网,最好在上架前完成激活工作。
2、打开浏览器使用https://192.168.1.245 设备管理ip可以登录到F5设备。默认用户名和密码均为admin。
3、创建相应的VLAN,并将接口加入相应的VLAN,Network -> VLANS 。
Name : 设置这个VLAN的名字;
Tag: 保留为空;
Interface:定义Avalilable 中显示的端口有选择性的划分到这个vlan中,指定端口后,单击<< 选人 Untagged 栏即可。
点击 Finished 完成。
4、在划分完VLAN后,即可对每个VLAN进行IP地址的定义,方法如下:点击左侧导航条中的 Networks -> Self IPs。
5、配置路由,点击左侧导航条中的 Networks -> Routes .
Type :定义配置的是默认网关还是静态路由。
Destination: 定义目标网段。
Netmask : 定义目标网段的掩码;
Resource : 定义网关地址。
点击 Finished 完成。
6、Pool 配置:点击左侧导航条中的Local Traffic -> Virtual Servers -> Pools;
Name 定义创建的Pool的名字。
Health Monitors 定义该Pool使用的健康检查机制,此处为TCP。
Load Balacing Method定义该Pool使用哪种负载均衡算法 --我们选用 observed-member(观察法)。
New Members 定义该pool下真实的服务器的IP和Port。
点击 Finished 完成。
7、Virtual Server 配置,Local Traffic -> Virtual Servers,这里面的参数可以参见之前介绍的进行填写,并将管理相应的Pool。并配置相应的F5轮询方式,常用的是轮询(RoundRobin)。
8、配置Monitor 的作用是检查服务器的健康状态,然后关联的相应的Pool,Local Traffic -> Monitors。
9、配置Redundant,这在前面已介绍。
配置F5 负载均衡(转)的更多相关文章
- F5负载均衡的初识和基本配置
目前全球范围内应用比较广泛的负载均衡设备为美国的F5.F5于2000年底进驻中国,在国内业界,F5负载均衡产品已经成为了主流负载均衡技术的代名词.下面我们对F5负载均衡设备做一个基本介绍,方便大家去认 ...
- F5负载均衡-配置指导手册(含IPv6)
F5负载均衡-配置手册 设备概况 图形化界面 通过网络形式访问F5任一接口地址,打开浏览器输入https://网络接口地址:或pc机直连F5的MGMT带外管理口,打开浏览器,输入https://192 ...
- 性能学习随笔(1)--负载均衡之f5负载均衡
负载均衡设计涉及软件负载和硬件负载,下文转自CSDN中一篇文章涉及f5硬负载知识 ----转载:https://blog.csdn.net/tvk872/article/details/8063489 ...
- Linux配置Nginx负载均衡
nginx配置负载均衡其实很简单,一直还以为负载均衡是个很高端人士玩的 首先先了解下负载均衡,假设一个场景,如果有1000个客户同时访问你服务器时,而你只有一台服务器的Nginx,且只有一个MySQL ...
- [原]F5负载均衡示例:轮寻
/** * lihaibo 欢迎转载,请保留原地址 */ 规划: F5 1600 BIG-IP 内网 192.168.100.0 255.255.255.0 外网 10.50.20.0 255.255 ...
- 关于F5负载均衡你认识多少?
关于F5负载均衡你认识多少? 2018年06月09日 18:01:09 tvk872 阅读数:14008 网络负载均衡(load balance),就是将负载(工作任务)进行平衡.分摊到多个操作单 ...
- F5负载均衡综合实例详解(转)
转载自:https://blog.csdn.net/weixin_43089453/article/details/87937994 女程序员就不脱发了吗来源于:<网络运维与管理>201 ...
- F5负载均衡_monitors(健康检查)
故障现象: 后端有5台服务器,每个服务器上跑着8个应用.使用F5做应用负载调度.这40个应用里面,3-10个应用在高峰期的时候weblogic的DOS窗口显示与数据库断开连接(端口通.业务断),但是F ...
- 配置nginx负载均衡
配置nginx负载均衡 执行命令:vi /usr/local/nginx/sbin/nginx/conf/nginx.conf 修改为: worker_processes 2; events { ...
随机推荐
- ajax的理解和运用
AJAX : Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 譬 ...
- iOS UIScrollview代理方法
方法&&属性: // 监控目前滚动的位置(默认CGPointZero) CGPoint contentOffset; - (void)setContentOffset:(CGPoint ...
- mac mysql下载
mysql下载地址:http://dev.mysql.com/downloads/mysql/,不需要账号的 mysql创建数据库,默认字符集是latin1,可以指定字符集. mac删除mysql c ...
- DataTable和DataSet有什么区别
DataTable和DataSet有什么区别 DataSet:数据集.一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable DataTab ...
- 眼睛跟踪 java
https://github.com/hosek/eyeTrackSample Simple sample, for eye tracking with OpenCV
- ios做的两个矩形相交叉
#import "ViewController.h" @interface ViewController (){ UIView *_gee; //定义的实例变量 UI ...
- PAC全自动脚本代理
Proxy 极低成本绕过GFW的一个PAC代理 Download proxy.zip Proxy 轻量级的FQ工具,不需要安装客户端.可以设置系统代理,也可以设置浏览器代理或者配合SS等插件使用. 免 ...
- 手机版WEB开发经验分享,手机版网站开发注意事项,网站自适应,手机版网站自适应,移动安卓APP自适应
转自 http://my.oschina.net/cart/blog/282477 做前端开发不短了,用过jQuery Mobile jqMobi 也纯手工写过.. 最后总结如下: jQuery Mo ...
- git clone 太慢怎么办?
Git 和 GitHub 的出现打开了开源世界的另一扇大门,版本控制变得更强大(也更复杂),项目的管理变得更加容易,项目的开发也变得更容易进行多人协作.GitHub 无疑是程序员的 Facebook ...
- eclipse关联源码的方法
1.在项目的libs目录下,新建一个android-support-v4.jar.properties文件 2.打开android-support-v4.jar.properties,编辑. 输入源码 ...