Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

F5 Bigip

ASecurity

Expert coverage of F5 BIG-IP across all versions: TMM/TMOS architecture, LTM virtual servers, pools, health monitors, persistence, iRules, SSL profiles, GTM/BIG-IP DNS for GSLB, ASM/Advanced WAF, APM, AFM, iControl REST API, HA, and BIG-IQ management. Use for \"F5 BIG-IP\", \"BIG-IP\", \"LTM\", \"GTM\", \"iRules\", \"ASM\", \"APM\", \"AFM\", \"TMOS\", \"TMM\", \"iControl\", \"BIG-IQ\", \"F5 WAF\". Do NOT use for cross-vendor comparison, platform selection, or category-wide architecture -- use...

4 stars
0 votes
0 copies
2 views
Added 9/24/2026
devopsrustgosqlnodeterraformapidatabasebackendsecurityperformance

Works with

cliapi

Security Analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned 9/24/2026

$npx -y skills add chrishuffman5/domain-expert --skill f5-bigip --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of F5 Bigip?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for F5 Bigip
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chrishuffman5-f5-bigip/badge)](https://www.skillsdirectory.com/skills/chrishuffman5-f5-bigip)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: f5-bigip
description: "Expert coverage of F5 BIG-IP across all versions: TMM/TMOS architecture, LTM virtual servers, pools, health monitors, persistence, iRules, SSL profiles, GTM/BIG-IP DNS for GSLB, ASM/Advanced WAF, APM, AFM, iControl REST API, HA, and BIG-IQ management. Use for \"F5 BIG-IP\", \"BIG-IP\", \"LTM\", \"GTM\", \"iRules\", \"ASM\", \"APM\", \"AFM\", \"TMOS\", \"TMM\", \"iControl\", \"BIG-IQ\", \"F5 WAF\". Do NOT use for cross-vendor comparison, platform selection, or category-wide architecture -- use the `load-balancing` skill."
license: MIT
---

# F5 BIG-IP

This skill covers F5 BIG-IP across all supported versions (15.1 through 17.5). Areas of expertise include:

- TMM (Traffic Management Microkernel), CMP (Clustered Multiprocessing), TMOS architecture
- LTM (Local Traffic Manager): virtual servers, pools, nodes, health monitors, profiles, persistence
- GTM / BIG-IP DNS: Wide-IPs, GSLB pools, topology records, iQuery
- ASM / Advanced WAF: security policies, attack signatures, bot defense, DataSafe
- APM (Access Policy Manager): access policies, SSL-VPN, SAML IdP/SP, SSO
- AFM (Advanced Firewall Manager): network firewall, DoS/DDoS protection, IP intelligence
- iRules: TCL-based event-driven traffic scripting
- SSL/TLS profiles, cipher management, certificate handling
- iControl REST API for automation
- HA: device groups, traffic groups, config sync, failover
- BIG-IQ centralized management
- F5 Distributed Cloud (XC) integration
- Terraform provider for infrastructure-as-code

When a question is version-specific, consult the matching `references/versions/` file. When the version is unknown, provide general guidance and note where behavior differs.

## How to Approach Tasks

1. **Classify** the request:
   - **Troubleshooting** -- Load `references/diagnostics.md` for TMSH commands, tcpdump, iHealth, pool/node status
   - **Virtual server design** -- Load `references/best-practices.md` for VS types, profile selection, pool configuration
   - **Architecture** -- Load `references/architecture.md` for TMM, CMP, module processing order, HA
   - **iRules** -- Apply iRule event model and performance guidance below
   - **Automation** -- Apply iControl REST API patterns
   - **Security** -- ASM/WAF policy design, APM access policy, AFM firewall rules

2. **Identify version** -- Determine BIG-IP software version. If unclear, ask. Version matters for feature availability and TMOS behavior.

3. **Load context** -- Read the relevant reference file for deep knowledge.

4. **Analyze** -- Apply F5-specific reasoning, not generic load balancer advice.

5. **Recommend** -- Provide actionable guidance with TMSH commands, iRules code, or API calls.

6. **Verify** -- Suggest validation steps (`show ltm virtual`, `show ltm pool`, `tmsh show sys performance`).

## Core Architecture

### TMM (Traffic Management Microkernel)
- Custom high-performance packet processing engine (not Linux kernel networking)
- Handles all traffic: SSL termination, load balancing, iRules, persistence, compression, caching
- Runs as userspace process; bypasses kernel network stack for performance
- Each TMM thread handles a subset of connections
- Cores dedicated exclusively to TMM processing

### CMP (Clustered Multiprocessing)
- Scales TMM across multiple CPU cores on multi-blade chassis (VIPRION) and high-core appliances
- Flow-distribution algorithm distributes traffic across TMM instances
- Connection state synchronized across TMM instances

### TMOS (Traffic Management Operating System)
- Based on CentOS Linux with F5 custom kernel and TMM
- Management plane: TMSH CLI, iControl REST API, GUI (Configuration Utility)
- Modules licensed and activated on top of TMOS base

### Module Processing Order
```
Ingress Interface
    -> Packet Filter (rate-based rules)
    -> AFM (Advanced Firewall Manager)
    -> iRule FLOW_INIT event
    -> LTM / GTM-DNS (load balancing, virtual servers)
    -> APM (Access Policy Manager)
    -> ASM / Advanced WAF (application security)
Egress toward pool members
```

## LTM (Local Traffic Manager)

### Virtual Server Types

| Type | Description | Use Case |
|---|---|---|
| Standard | Full proxy; terminates client, initiates to pool | Most HTTP/HTTPS applications |
| Performance (Layer 4) | FastL4; minimal processing, passes TCP/UDP | High-PPS forwarding, non-HTTP |
| Performance (HTTP) | FastHTTP; optimized HTTP | High-volume simple HTTP |
| Forwarding (IP) | Routes without load balancing | Transparent forwarding |
| Reject | Drops traffic with RST/ICMP | Explicit denial |

### Pool Configuration

Pools group backend servers (nodes/members) with a load-balancing algorithm and health monitor:
```
create ltm pool POOL_APP {
    members add {
        192.168.10.11:8080 { priority-group 1 }
        192.168.10.12:8080 { priority-group 1 }
    }
    load-balancing-mode least-connections-member
    monitor http_head_f5
}
```

### Load Balancing Methods

| Method | Description |
|---|---|
| Round Robin | Distribute in order |
| Least Connections (member) | Fewest active connections per member |
| Least Connections (node) | Fewest active connections per node (across pools) |
| Fastest | Member with fastest response time |
| Observed | Combines connection count and response time |
| Predictive | Predictive scoring based on observed trends |
| Ratio (member/node) | Weight-based distribution |
| Dynamic Ratio (SNMP) | Weights updated via SNMP from servers |

### Health Monitors

| Monitor | Use Case |
|---|---|
| ICMP (gateway_icmp) | Basic reachability |
| TCP | Port availability |
| HTTP/HTTPS | Web server response (GET, HEAD) |
| TCP Half Open | Firewall-friendly L4 check |
| MSSQL / MySQL / PostgreSQL | Database health |
| LDAP | Directory service |
| External | Custom script-based checks |
| Inband | Passive monitoring of production traffic |

**Best practice**: Always use the most specific monitor possible. HTTP monitor with expected response string is far better than TCP monitor for web services.

### Persistence

| Type | Mechanism |
|---|---|
| Source Address | Client IP to member mapping |
| Cookie | BIG-IP inserts or reads HTTP cookie |
| SSL Session ID | TLS session identifier |
| Universal | iRule sets custom persistence key |
| Hash | Hash of URL, header, or custom data |

### Profiles

Profiles define protocol behavior attached to virtual servers:
- **TCP Profile**: Congestion control, buffers, keepalive, slow-start
- **HTTP Profile**: OneConnect (connection multiplexing), header manipulation, compression
- **SSL/TLS Profile**: Cipher suites, TLS versions, cert/key bindings, SNI, OCSP stapling
- **Compression**: gzip/deflate for HTTP responses
- **Analytics**: Per-VS application analytics

## iRules

### Event Model
iRules respond to events at specific traffic processing points:

| Event | Trigger Point |
|---|---|
| `CLIENT_ACCEPTED` | New TCP connection from client |
| `HTTP_REQUEST` | HTTP request headers received |
| `HTTP_RESPONSE` | HTTP response headers received |
| `LB_SELECTED` | Pool member selected |
| `LB_FAILED` | All pool members down |
| `SERVER_CONNECTED` | Connection to pool member established |

### Key Commands
```tcl
# Route to pool
pool POOL_APP

# Header manipulation
HTTP::header insert "X-Forwarded-Proto" "https"
HTTP::header remove "Server"

# Redirect
HTTP::redirect "https://[HTTP::host][HTTP::uri]"

# Datagroup lookup
if { [class match [IP::client_addr] equals BLOCKLIST_IPs] } { drop }

# Custom persistence
persist uie [HTTP::cookie "SESSIONID"] 3600

# Logging
log local0. "Client [IP::client_addr] requested [HTTP::uri]"
```

### iRules Performance
- iRules add CPU overhead per transaction
- Minimize event subscriptions (don't use HTTP_REQUEST if not needed)
- Use `class match` for large lists (O(log n) datagroup lookup)
- Avoid `regexp` in hot paths; use `string match` where possible
- Consider iRules LX (Node.js) for complex string processing

## GTM / BIG-IP DNS (GSLB)

### Wide-IP
A FQDN resolved using intelligent GSLB logic:
```
create gtm wideip a APP.EXAMPLE.COM {
    pools add { POOL_DC1 { order 0 } POOL_DC2 { order 1 } }
    pool-lb-mode topology
}
```

### GSLB Methods
| Method | Description |
|---|---|
| Round Robin | DNS round-robin |
| Topology | Geolocation-based selection |
| Least Connections | Prefer DC with fewest connections |
| Performance | Prefer DC with best measured performance |
| Static Persist | DNS persistence via hash |

### iQuery
Proprietary protocol between GTM and LTM instances exchanging real-time load and availability data for informed GSLB decisions.

## ASM / Advanced WAF

### WAF Policy Model
Positive security (whitelist) + negative security (attack signatures):
- Attack Signatures (OWASP Top 10, server-type-specific, CVE-based)
- Entity lists: URLs, parameters, file types, headers
- Bot Detection: proactive bot defense, JS challenges, CAPTCHA
- DataSafe: form field encryption against credential harvesting
- Brute Force Protection and L7 DDoS mitigation

### Deployment Modes
- **Transparent**: Inspect only, no blocking (learning mode)
- **Blocking**: Block requests matching attack signatures
- **Selective Blocking**: Per-violation or per-entity decisions

## APM (Access Policy Manager)

Visual workflow-based authentication and authorization:
- Endpoint inspection, multi-factor authentication
- LDAP, RADIUS, SAML, Kerberos, OTP, client certificate
- SSL-VPN with split tunneling
- SAML IdP and SP capabilities
- Per-session and per-request access policies

## AFM (Advanced Firewall Manager)

Stateful L3-L7 network firewall before LTM processing:
- Rule lists with accept/deny/reject actions
- Applied at global, route-domain, virtual-server, or self-IP context
- DoS/DDoS protection (SYN flood, UDP flood, DNS DoS)
- IP Intelligence threat feeds

## iControl REST API

Base URL: `https://<bigip>/mgmt/tm/`

Key patterns:
- `GET /mgmt/tm/ltm/virtual` -- List virtual servers
- `POST /mgmt/tm/ltm/pool/~Common~POOL/members` -- Add pool member
- `PATCH .../members/~Common~IP:port` with `{"session":"user-disabled"}` -- Drain member
- Transactions: `POST /mgmt/tm/transaction` for atomic batch operations

Authentication: Basic auth or token-based (`X-F5-Auth-Token`).

## HA (High Availability)

### Device Groups and Trust
- **Device Trust**: Cryptographic trust between BIG-IP devices
- **Device Group**: Trusted devices that synchronize configuration

### HA Modes
| Mode | Description |
|---|---|
| Active-Standby | One active, one standby; VIP floats on failover |
| Active-Active | Both active with different traffic groups |
| Sync-Only | Config replication only, no failover |

### Traffic Groups
Collections of floating IPs that move between devices during failover. Optional MAC masquerade address reduces ARP delay on failover.

### Config Sync
- Incremental sync (default, efficient)
- Full sync (used after device replacement)

## Common Pitfalls

1. **OneConnect without persistence** -- OneConnect multiplexes connections. Without persistence, subsequent requests from the same client may go to different pool members. Enable cookie persistence when using OneConnect with stateful applications.

2. **iRule complexity causing CPU bottleneck** -- Complex iRules (especially with `regexp`) on high-traffic virtual servers consume significant TMM CPU. Profile iRule performance with `tmsh show ltm rule <name> stats`.

3. **Monitor interval too short** -- Aggressive health check intervals (1 second) across many pool members generates significant backend probe traffic. Default 5-second interval is appropriate for most use cases.

4. **Forgetting to sync configuration** -- Changes made on one device are not automatically pushed to the peer. Always sync after configuration changes in HA pairs.

5. **FastL4 when you need L7** -- FastL4 (Performance Layer 4) provides maximum throughput but cannot inspect HTTP content, apply iRules HTTP events, or perform SSL offload. Use Standard virtual server for HTTP/HTTPS applications.

6. **SNAT automap exhausting ports** -- SNAT automap uses self-IP ports. At very high connection rates, port exhaustion causes connection failures. Use a SNAT pool with multiple IPs for high-traffic VS.

7. **ASM in transparent mode permanently** -- Transparent mode is for learning. After tuning, switch to blocking mode. A WAF in transparent mode provides monitoring but zero protection.

8. **Not using traffic groups for HA** -- Default traffic-group-1 contains all floating IPs. For active-active, create separate traffic groups and assign VIPs appropriately.

## Version-Specific Guidance

| Version | Reference | What's version-specific |
|---|---|---|
| 17.5 | `references/versions/17.5.md` | BIG-IP 17.5, latest LTS, TLS 1.2 minimum for management, ML-based bot detection, CGNAT improvements |

## Reference Files

Load these when you need deep knowledge:

- `references/architecture.md` -- TMM internals, CMP, TMOS, module processing order, HA mechanics, traffic groups. Read for "how does X work" questions.
- `references/diagnostics.md` -- TMSH show commands, tcpdump, iHealth, pool/node status, connection table, logs. Read when troubleshooting.
- `references/best-practices.md` -- Virtual server design, iRules patterns, monitor selection, HA deployment, SSL best practices, F5 XC integration. Read for design and operations questions.

Attribution

chrishuffman5chrishuffman5
View sourceSee grades on GitHubMore from chrishuffman5 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Terraform Module Library

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

401991 votes

sematext-otel

Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.

01 votes

Deployment Patterns

Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.

2699140 votes

Babysit

Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

971540 votes

V7 Roster

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953190 votes
View all in devops →