F5 BIG-IP 学习路线:一张图理清核心技术与架构关系

一句话先搞懂 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、监控等模块的文章。欢迎关注交流。