设备规划信息

简单网络拓扑

实施方案 - 图1

设备系统版本

本次F5实施环境建议采用BIGIP-11.5.4 Build 1.0.286 HF1系统版本部署。

网络层配置

配置Trunks(Port Channel)

Network > Trunks > Trunk List > Create:
实施方案 - 图2
在Name栏输入相应的名称,如trunk_internal;在下面的Configuration区域,Interfaces右边的Available栏让需要进行端口捆绑的接口拖动到Members栏;如果需要开启LACP协议,可以勾选LACP右边的勾选框,完成后点击Finished。

划分VLANs

Network > VLANs > VLAN List > Create:
实施方案 - 图3

在Name栏输入相应的名称如:vlan_fw,如果需要为该vlan打上tag标签,可以在Tag栏输入相应的Tag ID,并将Interfaces栏右边的Available中的指定接口拖动到Tagged框,如果需要打Tag标签,那么拖动到Untagged即可,完成后点击Finished。

实施方案 - 图4

配置Self IPs

Network > Self IPs > Create:
实施方案 - 图5

在Name栏输入相应的名称如:selfip_fw,分别在IP Address和Netmask栏输入相应的IP地址和掩码,在VLAN/Tunnel栏选择要将该Self IP分配给哪个VLAN,

Port Lockdown如果需要开启带外管理,可以选择Allow Default,如果为了安全考虑不开放任何端口可以选择Allow None,也可选择Allow Custom开放指定的端口,Traffic Group栏如果是本地的IP(非浮动),选择traffic-group-local-only(non-floating),如果是浮动IP,那么选择traffic-group-1(floating),如下图所示:
实施方案 - 图6

实施方案 - 图7

配置路由

Network > Routes > Create:
实施方案 - 图8

主备双机配置

指定双机同步地址

点击Device Management > Devices > 选择对应的设备 > 在上面的菜单栏点击Device Connectivity选择ConfigSync: (在Local address栏选择对应的VLAN用于配置同步)
实施方案 - 图9

指定网络Failover地址

点击Device Management > Devices > Device Connectivity > Network Failover: (指定对应的VLAN用作网络心跳监测,如果两台设备的管理口地址能够互通,建议将管理口地址也添加到里面)
实施方案 - 图10

指定Mirror镜像表地址

点击Device Management > Devices > Device Connectivity > Mirroring:(指定对应的VLAN用作Mirror镜像表,该配置的作用是,如果VS的应用是有状态的,当主机遇到问题发生主备切换将流量切换到备机,可以将原来的主机上会话镜像到备机上对应的VS上,如果要开启指定VS的镜像功能,除了在这里指定VLAN用作两台设备间的连接镜像外,还需要在VS的configuration区域另外开启镜像功能,但是一旦开启该功能会对设备的性能造成一定的消耗。)
实施方案 - 图11

建立设备互信

建立两台设备的互相信任,点击Device Management > Device Trust > Peer List > Add: (在Device IP Address栏输入对端设备的地址,然后输入admin 账户和密码,并点击Retrieve Device Information,两台设备交换证书进行设备互信)
实施方案 - 图12

建立设备同步组

Device Management > Device Groups > Create:
实施方案 - 图13
在Name栏输入设备组的名称,Group Type选择Sync Failover,在下面的Members区域从Available列表中将两台设备移动到Includes列,并勾选Network Failover,完成后点击Finished

此时左上角F5 logo处会出现Awaiting Initial Sync的字样提示进行一次同步:
实施方案 - 图14

实施方案 - 图15
选中有最新配置的设备,选择Sync Device to Group,初次同步需要勾选Overwrite Configuration,并点击Sync,等待主备同步;
实施方案 - 图16

业务层配置

负载均衡相关概念介绍

在配置之前,您需要了解以下几个概念:

Node:Node是指负载均衡器所管理的集群中的节点,如单机集群中的每一台机器,每个节点都是一个任务处理单位
实施方案 - 图17
对于主备服务端为双机的状况,一个Node即为提供某一服务的双机浮动IP加端口

Pool:Pool又称负载均衡池,它里面装载多个Node。Pool可以看做是接收和处理流量的一组设备的集合
实施方案 - 图18
如果系统存在多个业务部件提供不同的服务,因此,需要为每个服务添加一个Pool

Monitor:Monitor负责监控Pool中各个Node的连接和服务信息,包括健康监控和性能监控。当某个Node的性能下降时,负载均衡器将会把流量重定向到其他Node

Virtual Server:Virtual Server又称虚拟服务器,是负载均衡器的核心组件,用于接收并分发任务。它里面可装载1个Pool,在收到任务后会将任务分发给Pool中的Node上

实施方案 - 图19服务器负载均衡器的设置只需要在一台BIG-IP1上进行设置,设置好以后,可以通过双机配置同步的方式将配置更新到BIG-IP2上。

配置Pools资源池

Local Traffic > Pools > Create:
实施方案 - 图20
在Name栏输入相应的资源池的名称如:Pool_cat_db,Health Monitors如果是针对tcp的应用可以选择默认的tcp健康检查,检查相应服务的应用端口是否正常,也可以建立自定义的tcp健康检查;如果是真的http协议的应用,Health Monitor可以选择系统默认的http健康检查,检查http服务是否开启,也也可以建立自定的http健康检查;负载均衡算法默认为Round Robin轮询,也可根据情况选择其他的算法;

针对某些服务比如Redis服务器,有主备两台,当前只要求一台(主的)接收流量,当主的Redis服务器不可用时,再将流量切换到备的Redis服务器,可以通过Priority Group优先级的方式来实现,如上图所示,将Priority Group Activation选为Less than 1那么当前只允许一台设备接收流量(优先级高的那台);在下面的New Members区域的Address和Service Port栏分别输入需要负载的服务器的IP地址和应用端口,Priority栏输入相应的优选级值如一个是10(优选级高),一个是5(优选级低),并点击Add 完成后点击Finished.

如果服务器没有特殊要求,想让每台服务器都能接收流量,由F5来进行负载均衡,那么默认Priority Group是disable的,如下图所示:

实施方案 - 图21

配置自定义健康检查

建立自定义的TCP健康检查: Local Traffic > Monitors > Create:
实施方案 - 图22

在Name栏输入相应的健康检查的名称方便给Pools调用,Parent Monitor选择tcp,以Redis服务为例,服务器端口设置了脚本,客户端发送PING的报文,如果服务器端能够回PONG的话就认为该服务的应用是好的,通过tcpdump进行抓包并通过软件如wireshark进行分析,截取出发送的报文和返回的报文:

上图是发送的数据报文,下图是收到的数据报文:
实施方案 - 图23
通过\x将相应的报文16进制数进行转义并分别填写到Send String和Receive String栏。

对于某个选项需要注意一下,将Configuration由basic选为Advanced;其中Manual Resume默认是选为No的(意思为当某个Pool member出现问题,健康检查没有通过时F5会将其标记为unavailable,暂时不让它接收流量,但是当该Pool member又恢复的时候,即健康检查通过了,F5又会将其标记为available,又让其接收流量),但是如果将Manual Resume这一项选为Yes的话,那么当该之前出问题Pool member恢复的时候,系统会将其进行disable的处理,让其不再接收流量,相应的Pool member的状态会变成黑色,需要人为手动选中该Pool member并点击Enable让其重新接收流量。

实施方案 - 图24

建立自定义的http健康检查: Local Traffic > Monitors > Create:
实施方案 - 图25
在Name栏输入相应的健康检查的名称方便给Pools调用,Parent Monitor选择http,在Send String栏输入相应的http请求字段,建议参考如下的格式:

HTTP 0.9的格式: “GET /\n” or “GET /\r\n”
HTTP 1.0 的格式:”GET / HTTP/1.0\r\n\r\n” or “GET / HTTP/1.0\n\n”
HTTP 1.1的格式: “GET / HTTP/1.1\r\nHost:server.com\r\n\r\n” or “GET /
HTTP/1.1\r\nHost:server.com\r\nConnection:close\r\n\r\n”

配置Virtual Servers

Local Traffic > Virtual Server > Create:
实施方案 - 图26
实施方案 - 图27
实施方案 - 图28

(1) 在Name栏输入相应的vs名称Type类型建议选择Standard模式,开启全代理架构,基于应用层的转发,如果只需要F5进行四层转发也可以选择Performace (Layer4)加快四层处理速度,在destination栏右边的Type选择Host,并在Address栏和Service Port栏分别输入对外提供应用的地址和端口,如果是针对HTTP的应用,建议在HTTP Profile栏选择http的profile(配置Standard类型的VS处理http的流量);Source Address Translation选择Auto Map开启源地址转换(auto map的意思是将访问VS的客户端的源IP转换成F5的接口地址与后端服务器访问);最后在下面Resourcs区域的Default Pool栏选择关联的资源池;根据应用情况来看是否需要配置会话保持Persistence Profile(会话保持的意思是,如果F5对Pools资源池进行负载均衡,比如有四个Pool member,每台都能接收流量,如果一个客户端发起请求,根据负载均衡算法访问到Pool member1,如果在一定的时间内比如5分钟,该客户端又发起访问,在超时时间内是否要求F5根据会话保持记录还是将请求转发到Pool member1,还是说转发到Pool member2 3 4都可以?)

如果应用需要进行Session保持的话,可以在Default Persistence Profile栏选择相应的会话保持Profile,一般常用的有源地址会话保持。

(2)以下是一些VS的参数可以进行一些参考:

Virtual Server参数说明

参数名 如何理解…… 如何设置……
Name 虚拟服务器的名称。 根据规划在文本框中输入。
WEB_server
Destination 虚拟服务器对外提供服务的IP地址或网络地址。 在Type中选择“Host”单选按钮。
根据规划在“Address”文本框中输入IP地址。
Service Port 虚拟服务器对外提供服务的端口号。 根据规划在文本框中输入。
Type 配置类型,包括:
- Standard


- Forwarding(Layer 2)
- Forwarding(IP)
- Performance(HTTP)Performance(Layer 4)
- Reject
| 在下拉列表框中选择。
[默认值]
Standard
[说明]
- 此配置一般不需要更改。
- 如果虚拟服务器只用于内部一个节点服务器1:1方式访问时,可以选用“Forwarding (IP)”方式。
- 如果负载均衡器仅用于4层交换,可以采用“Performance (Layer 4)”方式,以提高四层处理性能。
- 如果虚拟服务器用于HTTP服务,可以采用“Performance (HTTP)”方式,以提升HTTP请求处理性能。
| | Protocal | Virtual Server的协议类型。
- TCP
- UDP
- SCTP
| 根据Pool的协议类型,在下拉列表中选择相应的协议类型。
[默认值]
TCP | | Source Address Translation | 类型:
- NONE
- Auto Map
- SNAT
| 在下拉列表框中选择。
默认是None,不做地址转换。
选择SNAT,关联相对应的SNAT Pool | | Default Pool | 默认使用的Pool。 |
- 在下拉列表框中选择。
- 单击“
实施方案 - 图29
”添加新的Pool。 | | Default Persistence Profile | 默认使用会话保持profile |
- 在下拉列表框中选择。
- 添加会话保持profile
|

  • 实施方案 - 图30

表示对象正常。

  • 实施方案 - 图31

表示对象离线。

  • 实施方案 - 图32

表示对象不可用。

  • 实施方案 - 图33

表示对象状态未知。

  • 实施方案 - 图34

表示对象被禁用。

(3)以下是VS Type类型为Performance (Layer4)的截图:
实施方案 - 图35
实施方案 - 图36
实施方案 - 图37

创建自定义的会话保持

Local Traffic > Profile > Persistence > Create:
实施方案 - 图38
以源地址会话保持为例,在Name栏输入相应的名称,方便进行被VS进行调用,Parent Profile选source_addr;源地址会话保持的超时时间默认是是180秒,可以根据应用情况进行自定义,完成后点击Finished.

配置iRule

Local Traffic > iRules > iRule list > Create:

实施方案 - 图39
以上iRule为之前针对红包业务限流编写的iRule,可以设置VS最大可以接收的连接数,并返回Json静态业务给客户,可以将该iRule关联给相应红包业务的VS进行高流量时的限流应急处理。

日常运维

Platform设备信息管理

System > Platform:
实施方案 - 图40
此处包括设备的管理口信息,以及管理账号和密码,可以在这里修改Root账户(CLI命令行界面)和Admin账号(WEB GUI管理界面)的密码。如果不允许开启SSH访问权限的话,可以将SSH Access右边的Enabled勾去掉,或者通过SSH IP Allow指定允许哪些网络有SSH管理权限,不同网段可以通过空格区分;

备份配置文件

System > Archives > Create:
实施方案 - 图41
在File Name栏输入相应的名称,最好带上具体的时间方便日常管理。完成后会生成以UCS为文件名的配置备份文件,点击相应的文件名即可Download下载到本地。

日常主备配置同步

如果日常在某台F5上进行过配置修改,F5会提示进行主备同步,在WEB管理界面左上角change pending的提示:点击Changes pending即可跳转到同步界面,如下图所示在有配置变化的设备右边会显示Change pending的提示,告知该设备有新的配置,如果要把配置同步到对端,点击选中有最新配置的设备,
实施方案 - 图42
如果要把配置同步到对端,点击选中有最新配置的设备,如下图所示,在Sync Options区域选择Sync Device to Group(即将该选中设备的配置同步到设备组中),确认同步点击Sync,等待配置同步。
实施方案 - 图43
同步成功左上角会显示In Sync的字样,此时主备配置已同步,如下图所示。
实施方案 - 图44