F5 BIG-IP

F5 BIG-IP 是业界常见的 ADC(Application Delivery Controller,应用交付控制器),在机房或云边界做 四层 / 七层流量转发、负载均衡、SSL 卸载、会话保持与健康检查。与 Nginx流量入口层 中的 L4/L7 角色同源,多见于金融、电信、大型政企对外入口。

返回网络框架


在流量链路中的位置

客户端
   │
   ▼
CDN / WAF(可选)
   │
   ▼
F5 BIG-IP(L4 或 L7 虚拟服务器)
   │  转发、负载均衡、SSL 终结、会话保持
   ▼
Nginx / Ingress / 应用 Pod
   │
   ▼
业务服务
  • L4 模式:按 IP:Port 转发 TCP/UDP,不解析 HTTP(性能高,类似 LVS / 云 NLB)。
  • L7 模式:解析 HTTP/HTTPS,按 Host、URI、Header 路由(能力接近 Nginx / HAProxy)。

详见 L7系统全貌 中的四层 LB 说明。


核心概念(Local Traffic Manager,LTM)

概念说明
Virtual Server(VS)对外监听的 VIP + 端口(如 203.0.113.10:443),流量入口
Pool后端服务器组,承载负载均衡策略
NodePool 成员,即真实后端 IP:Port
Profile协议与行为模板(HTTP、SSL、TCP、持久化等)
Monitor健康检查(HTTP GET、TCP、ICMP 等),剔除故障节点
iRule基于 TCL 的脚本,在转发前后改写/分支流量(类似 Nginx if + Lua 的运维版)
SNAT源地址转换,使后端看到的源 IP 为 F5 自身(便于回包路径一致)

关系示意:

Virtual Server (VIP:443)
        │
        ├── Profile: client-ssl / server-ssl
        ├── Persistence: cookie / source addr
        └── Pool: web-pool
                 ├── Node 10.0.1.11:8080
                 ├── Node 10.0.1.12:8080
                 └── Node 10.0.1.13:8080

网络转发怎么工作(Full Proxy)

BIG-IP 典型为 全代理(Full Proxy) 架构:客户端与 F5 建连,F5 再与后端建第二条连接,而不是单纯「包转发」。

Client ──TCP/HTTP──► BIG-IP ──TCP/HTTP──► Backend
         (VS)              (Pool Member)

带来的能力:

  • 连接级负载均衡:按连接数、最少连接、观察成员负载等算法选 Node。
  • SSL 卸载:在 F5 终结 HTTPS,回源可走 HTTP 或重新加密(减轻应用 CPU)。
  • HTTP 改写:插入 X-Forwarded-ForX-Forwarded-Proto,或按路径分流。
  • 会话保持(Persistence):同一用户固定到同一后端(Cookie、源 IP Hash 等),解决有状态会话问题(与 前后端会话 中的粘性会话思路一致)。

负载均衡与调度

算法 / 能力说明
Round Robin轮询(默认常见)
Least Connections最少连接数
Observed / Predictive根据成员负载观察或预测
Ratio / Priority权重、主备(Active/Standby 成员)
Priority Group主组全挂才切备用组

健康检查失败时,成员被标记为 Offline,流量不再转发,恢复后自动加回。


常见场景

1. HTTPS 入口 + 回源 HTTP(SSL Offload)

Internet --HTTPS--> VS:443 (证书在 F5)
                      --HTTP--> Pool:8080 (内网明文)

与 Nginx listen 443 ssl + proxy_pass http://backend 同类,证书集中运维在 F5。

2. 七层按路径分流

  • /api/* → API Pool
  • /static/* → 静态资源 Pool

可用 iRuleLocal Traffic Policy 根据 HTTP::uri 选择 Pool。

3. 四层透传(TCP 直通)

游戏、数据库、MQ 等非 HTTP 协议,VS 类型为 Performance (L4),只做 IP:Port 转发,不解析应用层。

4. 与 Kubernetes 并存

集群外仍用 F5 作南北向入口,VIP 指向 Ingress Controller 或 NodePort;东西向可用 Istio。云环境也可用厂商 LB 替代硬件 F5。


与 Nginx / LVS / 云 LB 对比

维度F5 BIG-IPNginxLVS云 NLB/ALB
形态硬件 / 虚拟化 / 云版软件内核模块托管服务
L4 转发✅ 高性能✅ stream✅ 极高
L7 HTTP✅ 成熟
运维界面GUI + iControl API配置文件命令行控制台
典型场景企业核心入口、合规通用反代、Ingress超大规模 L4云上默认

开发日常接触的「反向代理」多是 Nginx;F5 更偏 基础设施 / 网络团队 在边界做的统一转发与策略下发。


iRule 示例(理解用)

根据 URI 前缀选择不同 Pool(语法为 TCL 风格,仅示意):

when HTTP_REQUEST {
    if { [HTTP::uri] starts_with "/api/" } {
        pool api-pool
    } elseif { [HTTP::uri] starts_with "/admin/" } {
        pool admin-pool
    } else {
        pool web-pool
    }
}

生产变更需走变更窗口;逻辑复杂时可改用 Local Traffic Policy 降低脚本维护成本。


运维与可观测

  • 配置同步:主备设备 ConfigSync,避免单点。
  • HA:Active/Standby 或 Active/Active(视版本与许可)。
  • 日志:/request、AVR、HSL 等可将访问日志送到 SIEM。
  • API:iControl REST,可与 Ansible/Terraform 集成(F5 云版、BIG-IP Next 方向更偏 API 驱动)。

Prometheus / Grafana 集成时,通常通过 exporter 或 SNMP 拉取 VS/Pool 连接数、成员状态等指标。


和「网络转发」的关系(小结)

层级F5 做什么
网络层VIP 漂移、路由、VLAN/Trunk(与交换机协同)
传输层TCP/UDP 连接转发、NAT/SNAT
应用层HTTP 路由、TLS、Cookie 持久化、Header 改写

因此用户说「和网络转发有关」是准确的:BIG-IP 的核心就是 在正确的时间把连接 / 请求转到正确的后端,并附带高可用、安全与性能策略。


延伸阅读