一句话先搞懂 F5 是什么:
它是一台专门做流量分发 + 应用交付 + 安全卸载的硬件设备(也可虚拟化部署),放在所有后端服务器的前面,站在流量的入口处。
为什么要学 F5?
如果你做运维或 SRE,大概率会碰到 F5 ------ 银行、券商、运营商、央企的核心业务入口几乎都在用它。和 Nginx/HAProxy 这类软件负载均衡不同的是,F5 有专用硬件芯片处理 7 层流量,单台吞吐几十 Gbps,SSL 卸载靠硬件加密引擎不消耗 CPU,主备切换毫秒级。
不是说软件 LB 不好,而是在某些场景下,F5 就是必选项。
先把五个核心技术的"关系"搞清
F5 最常被谈到的五个技术模块是:
| 模块 | 一句话 |
|---|---|
| Virtual Server (VS) | 入口 VIP,所有流量的匹配点 |
| Pool | 后端服务器集合,决定流量发给谁 |
| Profile | 协议处理模板,决定流量怎么处理 |
| Monitor | 健康检查,决定后端谁能用 |
| iRules | TCL 脚本引擎,做自定义流量处理 |
它们的关系可以浓缩成一句话:
VS = 门牌号(入口),Profile = 接待流程(怎么处理),Pool = 具体的人(后端)。
数据流全路径
客户端请求
↓
① F5 设备(HA 主备、Partition 租户隔离)
↓
② Virtual Server —— 匹配 VIP:Port,决定谁来处理
↓
③ Profile 栈 —— 按顺序处理协议层
├─ TCP Profile → TCP 连接 / 优化
├─ HTTP Profile → HTTP 解析 / 头处理
├─ SSL Profile → TLS 卸载(解密)
└─ OneConnect → 后端连接复用
↓
🧩 iRules 插入 —— 在 Profile 处理中执行自定义逻辑
↓
④ Pool —— 选哪个后端服务器(负载均衡算法)
├─ Member A ✔ (Monitor up)
├─ Member B ✔ (Monitor up)
└─ Member C ✘ (Monitor down → 自动摘除)
↓
🔄 SNAT —— 源地址转换,让后端能回包
↓
⑤ 后端服务器(Nginx / Tomcat / 应用)
VS 是"胶水",把所有的东西粘在一起
┌── TCP Profile
├── HTTP Profile
Monitor ── ├── SSL Profile ← Profile 决定"怎么处理"
│ └── OneConnect
│
Pool ──────┤ ┌── iRules ← 自定义逻辑(可选)
Member A ├── VS (VIP:Port)
Member B │ │ ← VS 是组装点
Member C │ ├── SNAT Policy ← 回包路由策略
│ └── Persistence ← 会话保持
│
└── Monitor 检测 Members 是否存活
每一个 VS 绑定一个 Pool(转发目标)+ 多个 Profile(协议模板)+ 可选的 iRules(自定义逻辑)。
各模块间的关系速查
VS ↔ Pool(最核心的一对一绑定)
-
VS 不直接转发到服务器,它指向一个 Pool
-
Exchange Pool = 流量切到另一组后端(蓝绿部署的核心)
VS ↔ Profile(多对多绑定)
-
一个 VS 可以挂 TCP + HTTP + SSL + OneConnect 多个 Profile
-
Profile 是可复用的,多个 VS 可以共用同一个 Profile 模板
Pool ↔ Monitor(一对一绑定)
-
每个 Pool 必须绑定一个 Monitor
-
Monitor 决定 Member 是 up(可用)还是 down(踢出)
VS ↔ iRules(可选,威力最大)
-
iRules 是 TCL 脚本,在流量经过 Profile 时触发
-
能做 URL 改写、按 UA 分流、插入请求头、强制跳转 HTTPS
VS ↔ SNAT(经常被忽略但很重要)
-
SNAT 把客户端源 IP 换成 F5 自身的 IP
-
绝大多数生产环境都开 SNAT(否则后端路由表要配回程路由,很麻烦)
学习路线建议
我给自己定的学习顺序是:
阶段① Pool / VS / Profile 三板斧
→ 能独立完成一个新 VIP 从创建到上线的全流程
阶段② Monitor 健康检查
→ 根据业务选择 TCP/HTTP/HTTPS Monitor,配置合理参数
阶段③ SSL Profile 证书卸载
→ 理解 RSA vs ECC、证书链、双向认证
阶段④ iRules TCL 脚本
→ 写 URL 改写 / 分流 / 请求头插入
阶段⑤ 监控指标
→ CPU / 连接数 / QPS / 吞吐量 / 错误率
搞完前两个阶段就能干日常 80% 的活了。
F5 vs Nginx / HAProxy 的本质差异
| 维度 | F5(硬件 LB) | HAProxy / Nginx(软件 LB) |
|---|---|---|
| 性能 | 专用 ASIC 芯片处理 7 层流量,几十 Gbps | 依赖 CPU/网卡,一般 1-10 Gbps |
| 单台成本 | 几万~几十万人民币 | 免费,服务器成本 |
| SSL 卸载 | 专用加密芯片,不消耗主 CPU | 吃 CPU,通常要绑硬件加速卡 |
| 故障切换 | Active/Standby 毫秒级,硬件心跳线 | Keepalived + VRRP,秒级切换 |
| 定制能力 | iRules(TCL)非常灵活但学习曲线陡 | Lua/OpenResty 或 C 扩展 |
| 可视化运维 | BIG-IP Web UI + tmsh CLI | 配置文件 + 命令行 |
| 适用场景 | 银行、运营商、证券、央企核心入口 | 互联网公司、云原生、中小规模 |
不是说软件 LB 不好。 在互联网公司,Nginx/HAProxy 撑住了绝大多数场景,而且扩展灵活。但你如果在金融或运营商体系里,F5 就是绕不开的那道坎。
写在最后
这篇算是 F5 学习的开篇,理清整体框架和核心概念的关系。下一篇会直接进实操:《F5 VIP 上线全流程:Pool / VS / Profile 三板斧》,从创建到验证一步步拆解。
后续还会陆续出 Monitor、SSL Profile、iRules、监控等模块的文章。欢迎关注交流。