f5学习笔记

一、先用一句话讲明白 F5

F5 就像一个"智能前台/流量调度员"。

用户访问业务时,不直接访问后端服务器,而是先访问 F5 的一个入口地址,也就是 VIP。F5 收到请求后,会根据规则把请求分发给后面的真实服务器。

可以这样理解:

用户

→ F5 的 VIP

→ 后端服务器池 Pool

→ 某一台真实服务器 Pool Member

面试时你可以这样说:

F5 主要承担四个作用:统一入口、流量分发、健康检查、故障摘除。它通过 Virtual Server 对外提供 VIP,通过 Pool 管理后端服务器,通过 Monitor 判断后端是否可用,再根据负载均衡算法把请求分发到合适的节点。

二、F5 的几个核心对象,用大白话理解

  1. Node 是什么?

Node = 一台真实服务器的 IP。

比如:

10.10.10.11

10.10.10.12

10.10.10.13

它只是服务器本身,不关心跑的是 80、443 还是 8080 端口。

  1. Pool Member 是什么?

Pool Member = 服务器 IP + 端口。

比如:

10.10.10.11:8080

10.10.10.12:8080

10.10.10.13:8080

一台服务器可以有多个服务端口,所以 Node 和 Pool Member 要区分。

  1. Pool 是什么?

Pool = 一组后端服务。

比如:

pool_app_8080

里面有:

10.10.10.11:8080

10.10.10.12:8080

10.10.10.13:8080

F5 会把请求分发到这个 Pool 里的成员。

  1. Virtual Server 是什么?

Virtual Server = 对外暴露的入口,也就是 VIP。

比如:

VIP: 192.168.1.100:443

绑定 Pool: pool_app_8080

用户访问的是 VIP,不直接访问后端服务器。

完整链路就是:

Client

→ Virtual Server / VIP

→ Pool

→ Pool Member

→ Real Server

三、用费曼方式讲 F5 配置流程

你可以把 F5 配置想成"开一家餐厅"。

VIP = 餐厅门口

Pool = 后厨团队

Pool Member = 每个厨师

Monitor = 检查厨师还能不能干活

Load Balancing Method = 前台怎么分配订单

Persistence = 老顾客固定找同一个厨师

SNAT = 让回信都经过前台

标准配置流程

第一步:添加后端服务器 Node

先告诉 F5 后面有哪些服务器:

10.10.10.11

10.10.10.12

10.10.10.13

第二步:创建 Pool

创建一个后端服务池:

pool_app_8080

加入成员:

10.10.10.11:8080

10.10.10.12:8080

10.10.10.13:8080

第三步:配置健康检查 Monitor

不能只看端口通不通,最好看应用是否真的正常。

比如检查:

GET /health

返回 OK

如果后端服务器端口还在,但应用已经假死,只做 TCP 检查可能发现不了。所以生产环境更推荐 HTTP / HTTPS 应用层健康检查。

面试回答:

我不会只用 TCP Monitor 判断端口是否存活。生产环境更推荐让研发提供 /health 或 /actuator/health 接口,F5 通过 HTTP Monitor 检查返回码和返回内容,只有业务真的正常才保留节点,否则自动摘除。

第四步:创建 Virtual Server

配置对外入口:

VIP: 192.168.1.100

Port: 443

Default Pool: pool_app_8080

用户访问:

https://业务域名

最终流量进入 F5,再分发给后端 Pool。

第五步:配置负载均衡算法

常见算法:

算法 大白话理解 适合场景

Round Robin 轮流分配 后端性能差不多

Least Connections 谁连接少给谁 长连接业务

Ratio 按权重分配 服务器配置不同

Priority Group 主备分组 主备容灾

Observed / Predictive 动态判断 更智能但复杂

面试回答:

如果后端服务器规格一致,我一般用 Round Robin;如果是长连接或者请求处理时间差异较大,我会优先用 Least Connections;如果后端服务器配置不同,就用 Ratio 按权重分流。

四、F5 会话保持怎么理解?

会话保持就是:同一个用户后续请求继续打到同一台后端服务器。

为什么需要?

比如用户登录后,登录状态存在某一台服务器内存里。如果下一次请求被分到另一台服务器,可能就变成"未登录"。

常见方式:

会话保持方式 解释 推荐程度

Cookie Insert F5 给浏览器插入 Cookie Web 业务最常用

Source Address 按客户端 IP 固定后端 简单但容易负载不均

SSL Session ID 按 SSL 会话保持 HTTPS 场景

Universal Persistence 按 Header、Token、URI 自定义 高级场景

最推荐回答:

Web 业务我优先使用 Cookie Persistence。Source Address 虽然简单,但如果用户经过公司出口 NAT、运营商代理或统一网关,大量用户会被识别成同一个源 IP,容易全部压到同一台后端,导致负载不均。

大白话:

Cookie 保持 = 按用户身份分配

Source Address 保持 = 按出口 IP 分配

所以 Cookie 更精准。

五、SNAT 怎么理解?

很多人面试 F5 会卡在 SNAT。

你用这个理解:

SNAT 是为了保证后端服务器回包还经过 F5。

正常访问应该是:

客户端 → F5 → 后端服务器

客户端 ← F5 ← 后端服务器

如果没有 SNAT 或路由设计不对,后端服务器可能直接把响应回给客户端,绕过 F5,导致连接异常。

常见 SNAT 方式:

SNAT 方式 适合场景

Auto Map 小流量,简单配置

SNAT Pool 大并发,高连接数

不启用 SNAT 后端默认网关指向 F5

面试回答:

如果后端服务器默认网关不是 F5,为了避免回程绕路,一般需要配置 SNAT。小流量可以使用 Auto Map,大流量建议使用 SNAT Pool,防止单个 SNAT 地址临时端口耗尽。

注意这个高级点:

单个 SNAT IP 可用端口有限

高并发短连接场景可能端口耗尽

所以大流量用 SNAT Pool

六、SSL 卸载怎么理解?

SSL 卸载就是让 F5 帮后端服务器处理 HTTPS 加解密。

原来:

客户端 HTTPS → 后端服务器解密

使用 F5 后:

客户端 HTTPS → F5 解密 → 后端 HTTP

或者更安全:

客户端 HTTPS → F5 解密 → F5 再加密 → 后端 HTTPS

优势:

证书集中管理

后端服务器 CPU 压力降低

方便统一做 TLS 策略

方便插入 X-Forwarded-For

面试回答:

HTTPS 业务通常可以在 F5 做 SSL Offload,把证书部署在 F5 上,统一管理证书和 TLS 策略。后端可以走 HTTP,也可以根据安全要求走 Server SSL 再加密。优化时会关注 TLS 版本、Cipher Suite、SSL Session Reuse 和证书过期监控。

七、F5 优化怎么讲?

F5 优化不是只调一个参数,而是从 算法、健康检查、TCP、HTTP、SSL、连接复用、日志监控 几个层面看。

  1. 算法优化
    短连接普通 Web:Round Robin
    长连接业务:Least Connections
    后端配置不同:Ratio
    主备架构:Priority Group

核心是:算法要匹配业务类型。

  1. 健康检查优化

不要太频繁,也不要太迟钝。

常见原则:

Interval = 5s 或 10s

Timeout ≈ Interval 的 3 倍

比如:

Interval: 5s

Timeout: 16s

或:

Interval: 10s

Timeout: 31s

高级回答:

Monitor 不能设置得太频繁,否则会增加后端压力;也不能设置得太宽松,否则故障摘除太慢。一般 Timeout 设置为 Interval 的 3 倍左右,并且优先用业务健康接口判断应用状态。

  1. TCP Profile 优化

客户端在公网,后端在内网时,可以拆开优化:

Client Side:tcp-wan-optimized

Server Side:tcp-lan-optimized

大白话:

公网慢、抖动大,所以客户端侧用适合 WAN 的 TCP 参数

内网快、延迟低,所以服务端侧用适合 LAN 的 TCP 参数

  1. HTTP Profile 优化

常见点:

开启 Keep-Alive

插入 X-Forwarded-For

控制 Header 大小

必要时开启压缩

短连接场景考虑 OneConnect

其中最常问的是:

后端如何获取真实客户端 IP?

答案:

F5 HTTP Profile 开启 X-Forwarded-For

后端 Nginx / 应用读取 X-Forwarded-For

Nginx 侧:

real_ip_header X-Forwarded-For;

set_real_ip_from F5_SELF_IP;

  1. OneConnect 怎么理解?

OneConnect = 复用 F5 到后端服务器的连接。

原来:

客户端每来一个请求

F5 都可能和后端新建连接

开启后:

F5 可以复用已有后端连接

减少 TCP 三次握手

降低后端连接压力

适合:

大量短连接 HTTP

API 请求

普通 Web 请求

不适合:

WebSocket

长连接

强状态绑定业务

面试回答:

对短连接 HTTP 业务,可以开启 OneConnect 复用服务端连接,降低后端连接数和建连成本。但长连接、WebSocket 或强会话状态业务不建议随意开启。

八、F5 常见故障怎么排查?

面试最常问的不是"你会不会配置",而是:

业务不通了,你怎么排?

你按这条链路回答:

VIP → Pool → Pool Member → Monitor → SNAT → 路由 → 防火墙 → 后端应用日志

场景 1:VIP 不通

排查顺序:

  1. Virtual Server 是否启用
  2. VIP 和端口是否正确
  3. Pool 是否绑定
  4. Pool Member 是否 Up
  5. Monitor 是否把节点摘掉
  6. SNAT 是否配置
  7. 回程路由是否经过 F5
  8. 防火墙是否放行
  9. 后端应用是否监听端口

高级表达:

我会先从 F5 对象状态看起,确认 Virtual Server、Pool、Pool Member 是否正常,再看 Monitor 状态。如果 F5 上看是正常的,再排查 SNAT、路由、防火墙和后端应用监听情况。排障时要先确认流量有没有到 F5,再确认 F5 有没有转发到后端,最后确认后端有没有正常响应。

场景 2:后端节点 Down

常见原因:

健康检查 URL 错了

Host 头不对

后端应用没启动

防火墙拦截 F5 Self IP

HTTPS Monitor 证书问题

后端返回内容不匹配

面试回答:

如果 Pool Member 被摘除,我会先看 Monitor 失败原因,然后用 curl 从 F5 或同网段机器模拟健康检查请求,看返回码和返回内容是否符合预期。很多时候不是服务真的挂了,而是健康检查路径、Host 头或返回内容变了。

场景 3:访问慢

排查方向:

客户端到 F5 慢

F5 到后端慢

后端应用慢

SSL 握手慢

连接数过高

SNAT 端口耗尽

网络重传

F5 上可以看:

tmsh show ltm virtual

tmsh show ltm pool

tmsh show sys connection

tmsh show sys performance

场景 4:负载不均

常见原因:

Source Address 会话保持导致用户集中

后端服务器性能不同

长连接占用不均

算法不合适

健康检查频繁抖动

部分节点响应慢

优化方式:

Cookie Persistence 替代 Source Address

Round Robin 改 Least Connections

后端配置 Ratio 权重

检查慢请求和长连接

九、把 F5 用一句完整面试话术讲出来

你可以直接这样回答:

F5 负载均衡配置一般从 Virtual Server、Pool、Pool Member、Monitor、Profile、SNAT、Persistence 几个核心对象入手。

首先创建后端 Node 和 Pool,把真实服务器 IP 和端口加入 Pool,然后根据业务类型选择负载均衡算法。普通短连接 Web 业务可以使用 Round Robin,长连接或请求耗时差异大的业务更适合 Least Connections,后端服务器规格不一致时可以用 Ratio 权重。

健康检查方面,我不会只做 TCP 端口探测,而是优先配置 HTTP 或 HTTPS Monitor,检查 /health 这类应用健康接口,并校验返回内容,避免应用假死但端口仍然存活。

对外通过 Virtual Server 暴露 VIP,根据业务配置 TCP Profile、HTTP Profile、Client SSL Profile、Server SSL Profile。HTTPS 业务可以在 F5 上做 SSL Offload,集中管理证书和 TLS 策略,降低后端服务器压力。

会话保持方面,Web 业务优先用 Cookie Persistence,避免 Source Address 在 NAT 场景下造成负载不均。SNAT 方面,如果后端回程路由不经过 F5,需要配置 SNAT;小流量可以用 Auto Map,高并发场景建议使用 SNAT Pool,防止端口耗尽。

优化方面,我会根据公网和内网选择 tcp-wan-optimized 和 tcp-lan-optimized,短连接 HTTP 可以考虑 OneConnect,开启 X-Forwarded-For 让后端获取真实客户端 IP,同时监控 VIP 连接数、Pool 状态、后端响应时间、SSL TPS、TMM 资源和 SNAT 端口使用率。

排障时我会按 VIP、Pool、Pool Member、Monitor、SNAT、路由、防火墙、后端应用日志这条链路逐层定位,先确认流量是否到 F5,再确认 F5 是否转发到后端,最后确认后端是否正常响应。

这段就是高级运维面试可以直接说的完整答案。

十、用费曼法自测

你现在可以自己回答下面 8 个问题。如果能用大白话说清楚,就基本掌握了。

  1. F5 的 VIP、Pool、Pool Member、Node 分别是什么?
  2. 为什么生产环境不建议只用 TCP 健康检查?
  3. Round Robin 和 Least Connections 有什么区别?
  4. 为什么 Source Address 会话保持可能导致负载不均?
  5. SNAT 是解决什么问题的?
  6. SSL Offload 的优点是什么?
  7. OneConnect 适合什么场景,不适合什么场景?
  8. VIP 不通时,你按什么顺序排查?

最关键的答案框架:

F5 = 智能流量调度员

VIP = 对外入口

Pool = 后端服务池

Monitor = 健康检查

Persistence = 会话保持

SNAT = 保证回包路径

Profile = 协议优化

iRule = 高级流量控制

十一、一句话最终总结

F5 不是简单的负载均衡器,而是业务流量入口。配置时要讲清楚 VIP 怎么接入、Pool 怎么分发、Monitor 怎么探活、Persistence 怎么保持会话、SNAT 怎么保证回包、SSL 怎么卸载、Profile 怎么优化、故障怎么排查。

相关推荐
环流_1 天前
nacos:负载均衡 3大核心操作
运维·nacos·负载均衡
TDengine (老段)2 天前
TDengine VNode 生命周期 — 从创建到销毁的完整旅程
大数据·数据库·重构·系统架构·负载均衡·tdengine·涛思数据
切糕师学AI2 天前
gRPC 负载均衡详解:从原理到最佳实践
架构·负载均衡·grpc
再战300年2 天前
nginx之负载均衡
运维·nginx·负载均衡
怀旧,3 天前
【C++项目】负载均衡式在线OJ
开发语言·c++·负载均衡
xingfujie3 天前
第2章:服务器规划与基础环境配置
linux·运维·微服务·云原生·容器·kubernetes·负载均衡
RoboWizard4 天前
DIY移动硬盘?2230能否堪大任!
数据库·人工智能·智能手机·性能优化·负载均衡
covco4 天前
AI 原生全域矩阵系统:智能任务调度与资源负载均衡技术实现
人工智能·矩阵·负载均衡