T Techclick ← All lessons
F5 BIG-IP · Evidence desk · Interactive lesson

Prove F5 — first tool + proof field

02:40. Finance HTTPS is blank. Someone already typed “please failover.” You do not rebuild the VIP. You pick the first tool, then paste one proof field into the ticket: virtual Availability, pool member Status, persist Node, or a tcpdump SYN with lis=.

20 min read · L2 primary · Quiz at end · Lab values only

After this page you can

Quick answer

show /ltm virtual is listener status — paste Availability, State, Destination, VLAN. show /ltm pool is member health — paste each member Status and the monitor Reason. show /ltm persistence persist-records is the pin — paste Mode + Node. tcpdump -nni 0.0:nnn is the wire — paste SYN in versus SYN out, and the lis= name. A green VIP is not user success. Deleting persist records is change-control.

Say this out loud

I name listener, member, persist, and packet as four layers. I will not failover until show virtual and show pool are on the active unit. If a cookie still names the down member, that is the close. If SYN never arrives, the HTTP monitor is the wrong layer.

1. Why prove beats rebuild

A night ticket is a VIP name plus a panicked paste. The last engineer already asked for failover. Your job is to prove what the pair already decided — listener, member, persist pin, or packet on the wire — before you touch change-control.

Hero · four proof monitors
Night evidence desk with four proof monitors: virtual, pool, persist, tcpdump
Notice the four desks, not one: virtual status, pool members, persist pin, captured packets. Failover is not a fifth tool.

BIG-IP is a listener that selects a pool member, optionally pins the client, and may rewrite the source. That is why one colour is never enough: the virtual can be available while a cookie still names a down member, and the pool can be green while SYN never arrives on the VLAN.

Lab values on this page

RFC 5737 / training only. Virtual vip_finance_443 destination 198.51.100.50:443 on VLAN external, partition /Common. Pool pool_finance_web members 10.20.30.11:443 and 10.20.30.12:443. Client 10.10.8.22. Confirm live syntax on your software train before you type on a customer box.

2. Four tools, four proof fields

Pre-train the vocabulary before the tickets. Each tool answers one question. Mixing them is how interviews fail.

Journey · virtual, pool, persist, capture
Four glass panels: Virtual, Pool, Persist, Capture
Read left to right. Virtual is the listener. Pool is member health. Persist is the pin. Capture is the wire.

show /ltm virtual

Listener status and stats. Official: show virtual [name] displays statistics and status. Proof field: Availability, State, Destination, VLAN. Then list virtual for persist, pool, and source-address-translation.

show /ltm pool

Pool status and stats. Official: show pool [name] displays statistics and status. Proof field: each member Status plus the monitor Reason. Available with 1 of 2 is still a story.

persist-records

Official module: show /ltm persistence persist-records. Filter with virtual, client-addr, node-addr, mode. Proof field: Mode + Node. delete persist-records is a write.

tcpdump

K411 packet trace on a VLAN, a numbered interface, or 0.0. K13637 adds TMM noise :n / :nn / :nnn. K20233108 :p follows the peer. Proof field: SYN in versus SYN out, and lis=.

Hard words, used once

Availability is object health, not user success. source-address-translation is the current SAT object — type automap, snat, lsn, or none (the old snat attribute is deprecated). lis= is the TMM annotation that names the virtual that claimed the packet. Empty lis= means no listener matched. Peer flow is the serverside half that :p follows after SNAT rewrites the address.

3. First-tool decision

Do not start every ticket on persist-records. Do not start on failover. Start from what the user already handed you. The diamond is the first tool. The box under it is the field you paste.

Feel · four paths
Decision diamond splitting into four proof paths
Caption in the SVG below names the real tools. The art is only the split.
Flow 1 · first tool
What did the ticket already give you? VIP name? pick first tool show virtual If they said “VIP down” and want failover. Proof: Availability + State + Destination Then list SAT / persist show pool If VIP is available and some users fail. Proof: member Status + monitor Reason 1 of 2 still available persist-records If a member is down and half still fail. Proof: Mode + Node cookie still at .12? delete = write tcpdump If no SYN / no return after a VLAN or SAT change. Proof: SYN + lis= then :p peer flow Filter 0.0 always

Read the diamond, then the green proof line. Ticket 5 re-uses tcpdump because the field that matters is the peer SYN, not a second VIP rebuild.

4. How to choose

Same VIP, same client, same unit. If you mix hosts, the desk fails. Confirm Active first with tmsh show /sys ha-status. Standby tables can be empty even when the pair is In Sync.

Ticket smellFirst toolProof field you pasteNot first
“VIP is down / please failover”tmsh show /ltm virtual vip_finance_443Availability + State + Destination + VLANFailover
VIP available, some users failtmsh show /ltm pool pool_finance_webMember Status + monitor ReasonRebuild the VIP
One member down, half still failtmsh show /ltm persistence persist-records virtual vip_finance_443Mode + Nodedelete persist-records
Outside red, members ping locallytcpdump -nni 0.0:nnn -s0 host 198.51.100.50 and port 443SYN in + lis=HTTPS monitor
Member selected, no returnlist /ltm virtual SAT, then tcpdump -nni 0.0:nnnpSAT type + serverside SYN / no SYN-ACKA new pool
Need the live tripletmsh show /sys connection cs-client-addr 10.10.8.22cs-client ↔ cs-server ↔ ss-serverUnfiltered delete connection
Wrong box suspiciontmsh show /sys ha-statusFailover State = activeAny write on standby
https://bigip-lab.example/tmui/Control/jspmap/tmui/locallb/virtual_server/properties.jsp
Training mock · not live

Local Traffic › Virtual Servers › Virtual Server List › vip_finance_443

vip_finance_443

PropertiesResourcesStatistics
Available (enabled)
198.51.100.50/32
443
Enabled on… external
Auto Map
cookie
pool_finance_web

Click next: do not press Update. CLI twin: tmsh show /ltm virtual vip_finance_443 then tmsh list /ltm virtual vip_finance_443 destination persist pool source-address-translation profiles vlans. Official show virtual is status. Official list virtual is config. SAT type lives on source-address-translation — the old snat attribute is deprecated.

https://bigip-lab.example/tmui/Control/jspmap/tmui/locallb/pool/resources.jsp
Training mock · not live

Local Traffic › Pools › Pool List › pool_finance_web › Members

pool_finance_web

PropertiesMembersStatistics
Available (1 of 2 members)
https
10.20.30.11:443availableConn 41
10.20.30.12:443offlinetimeout
DisableUpdate

Disable / Forced Offline is a write (member session / state). Isolate first with persist-records. Dummy lab — not a customer pool.

Click next: do not press Disable. Run tmsh show /ltm pool pool_finance_web, then tmsh show /ltm persistence persist-records virtual vip_finance_443. If a cookie still names 10.20.30.12:443, that is the close for Ticket 3.

5. Five tickets

Each ticket is first tool, proof field, dummy output, what you say, next tool. Lab output is training-shaped. Confirm live syntax from the cited F5 page before you type on a real pair.

Ticket 1P1show /ltm virtual

Ticket 1 — “The VIP is down, please failover”

Symptom: outside monitor is red. Manager wants failover. Nobody has printed the listener.

First tool

tmsh show /ltm virtual vip_finance_443 on the Active unit. Official: show virtual [name] displays statistics and status.

Proof field

Availability + State + Destination + VLAN. Lab: available / enabled / 198.51.100.50:443 / external.

Dummy · tmsh show /ltm virtual vip_finance_443
Ltm::Virtual Server: vip_finance_443
  Availability     available
  State            enabled
  Reason           The virtual server is available
  Destination      198.51.100.50:443
  VLAN             external
  Current Conns    41

What you say: The listener is available and enabled on external at 198.51.100.50:443. Availability is not user success. I am not failing over from a green virtual.

Next tool: tmsh list /ltm virtual vip_finance_443 destination persist pool source-address-translation profiles vlans so you can name SAT, persist, and the default pool. Then Ticket 2.

Trap

In Sync is config sync, not “this unit owns the traffic-group.” Quote Failover State from show /sys ha-status before you read any table. Writes on standby do not help users.

Ticket 2P2show /ltm pool

Ticket 2 — VIP green, some users fail

Symptom: virtual is available. App team pinged both nodes. Hypothesis: a member is down and the pool colour is still green.

First tool

tmsh show /ltm pool pool_finance_web. Official: show pool [name] displays statistics and status for the Local Traffic Manager pool.

Proof field

Each member Status + the monitor Reason. Lab: 10.20.30.12:443 offline, https timeout. Pool still available.

Dummy · tmsh show /ltm pool pool_finance_web
Ltm::Pool: pool_finance_web
  Availability     available
  State            enabled
  Reason           The pool is available
  Monitor          https
  +-> 10.20.30.11:443
        Availability  available    State enabled    Conn 41
        Reason        Pool member is available
  +-> 10.20.30.12:443
        Availability  offline      State enabled    Conn 0
        Reason        Monitor /Common/https : no successful responses before timeout

What you say: One of two members is offline on the HTTPS monitor. The pool can still be available. I am not rebuilding vip_finance_443.

Next tool: persist-records — Ticket 3. Do not Disable the member to “test” unless you have a change window. Official member session user-disabled drains new sessions; state user-down forces the member offline and overrides monitors.

Trap

Pool available is not “users cannot be broken.” Colour is 1 of 2. The down member is the sentence.

Ticket 3P2persist-records

Ticket 3 — Half of finance blank after lunch

Symptom: .12 is offline. Half the users still get a blank page. Hypothesis: a cookie still pins them to the dead member.

First tool

tmsh show /ltm persistence persist-records virtual vip_finance_443. Official module: display persist-records; filter virtual, client-addr, node-addr, mode.

Proof field

Mode + Node. Lab: cookie still at 10.20.30.12:443, age 62.

Dummy · tmsh show /ltm persistence persist-records virtual vip_finance_443
Sys::Persist
Mode     Value      Age  Virtual            Node
cookie   8f2a…c1    62   vip_finance_443    10.20.30.12:443
Dummy · tmsh show /sys connection cs-client-addr 10.10.8.22
Sys::Connections
10.10.8.22:51901  198.51.100.50:443  10.20.30.12:443  tcp  age 48

What you say: A live cookie still names the down member. Official persist-records can display or delete; delete is a write. I would show the down member and the cookie still pointing at it. I would not rebuild the VIP.

Next tool: Wait TTL, or open change-control and delete /ltm persistence persist-records virtual vip_finance_443 for that virtual — not a reboot. Then re-show persist-records. K000156942 also verifies cookie persist with a capture of the cookie on the wire.

Trap

Unfiltered delete persist-records or delete connection is a blast radius. Official sys connection: if you omit the address, the system deletes all connections including mirrored ones. Filter virtual / client-addr.

Ticket 4P1tcpdump

Ticket 4 — No SYN to the VIP

Symptom: outside monitor says VIP down. Members answer locally. Pool is green. Hypothesis: the packet never reached a listener — VLAN, destination, unit, or empty lis=.

First tool

tcpdump -nni 0.0:nnn -s0 host 198.51.100.50 and port 443 on Active. K411: 0.0 is all TMM interfaces and is not rate-limited — filter it. K13637: :nnn is high-detail TMM info.

Proof field

Client SYN count and the lis= name. Lab: zero packets, or SYN with empty lis=.

Dummy · tcpdump -nni 0.0:nnn -s0 host 198.51.100.50 and port 443
# attempt A — packet never arrived
(no packets captured)

# attempt B — arrived, no listener
12:41:08.102 IP 10.10.8.22.51901 > 198.51.100.50.443: Flags [S]
    in slot1/tmm0 lis=

What you say: If SYN never arrives, I troubleshoot listener / VLAN / self-IP / upstream route — not the HTTP monitor. If SYN arrives with empty lis=, no virtual claimed destination, port, protocol, route domain, or VLAN scope. K411: run tcpdump on a VLAN name, a numbered interface, or 0.0.

Next tool: Re-read Ticket 1 Destination + VLAN. Confirm Failover State is active. Do not bounce pool members.

Trap

K6546 / K411: 0.0 is not rate-limited and can create very large files. Always add a host/port filter. Hardware switch interfaces are rate-limited; 0.0 is not. Stop the capture when you have the SYN.

Ticket 5P2SAT + tcpdump :p

Ticket 5 — Member selected, no return

Symptom: virtual available, pool available, persist empty. Browser still spins after a cousin VIP was built with SAT None. Hypothesis: serverside SYN left with the original client IP and never came back.

First tool

tmsh list /ltm virtual vip_finance_443 source-address-translation, then tcpdump -nni 0.0:nnnp -s0 host 10.10.8.22. K20233108: beginning in 11.2.0, :p with the n modifier follows the peer flow.

Proof field

SAT type none + serverside SYN with the original client IP and no SYN-ACK.

Dummy · list SAT, then tcpdump 0.0:nnnp
ltm virtual vip_finance_443 {
    source-address-translation { type none }
    persist { cookie { default yes } }
    pool pool_finance_web
}

12:44:01.220 IP 10.10.8.22.51901 > 198.51.100.50.443: Flags [S]
    in slot1/tmm0 lis=/Common/vip_finance_443
12:44:01.221 IP 10.10.8.22.18422 > 10.20.30.11.443: Flags [S]
    out slot1/tmm0
(no SYN-ACK)

What you say: Official SAT type is none — no source translation. The peer SYN left with the original client IP. If members do not use the floating self-IP as default gateway, the SYN-ACK never returns. That is path, not a down pool.

Next tool: Change-control is SAT type automap or a named SNAT pool, then re-prove with the same :nnnp capture. Auto Map uses self-IP addresses for translation. Do not invent a SNAT pool name that is not on the virtual.

Trap

A capture on the client VLAN only will miss the serverside SYN after SAT. That is why Ticket 5 uses 0.0:nnnp, not tcpdump -i external alone. :p follows the peer so SNAT rewrite does not hide the other side.

6. Runtime path of one HTTPS flow

After go-live, one user packet walks this path. Each hop has a proof field. If you skip a hop, you will “fix” the wrong object.

Flow 2 · one HTTPS packet, four proofs
Client SYN tcpdump in Virtual lis= + SAT Persist Mode + Node Pool member Status + Reason Node SYN tcpdump :p out Where each proof sits show /ltm virtual → Availability, State, Destination, VLAN (listener) show /ltm persistence persist-records → Mode + Node (pin, if any) show /ltm pool → member Status + monitor Reason (who can take new traffic) tcpdump 0.0:nnnp → SYN in, lis=, peer SYN out, SYN-ACK back show /sys connection cs-client-addr → live triple after a flow exists.

If SYN never increments, stop talking about the HTTPS monitor. If a cookie names the down member, stop rebuilding the VIP. If SAT is none and the peer SYN has the original client IP, stop adding pool members.

Proof · ticket close
Operations desk closing a ticket with green health checks
Close is a pasted field, not a feeling. Virtual Availability, member Status, persist Node, or both sides of the capture.
  1. Side A — Confirm the unit and the 5-tuple

    Write client, VIP, port, and VLAN. tmsh show /sys ha-status — Failover State must be active. In Sync is not the same as mirrored connections for every virtual.

  2. Side B — First tool from the chooser

    “VIP down” → show virtual. “Some users fail” → show pool. “Member down + half fail” → persist-records. “No SYN” → tcpdump :nnn. “No return” → SAT type then tcpdump :nnnp.

  3. Side C — Paste the proof field, then decide change-control

    No named object, no write. Cookie at a down member → wait TTL or approved delete persist-records. Empty lis= → destination / VLAN / unit. SAT none + no SYN-ACK → automap or a SNAT pool. Green virtual + green pool is not a close.

Interview close

I pick the first tool from the symptom, then I paste one field: virtual Availability, pool member Status, persist Node, or SYN plus lis=. A green VIP is the start of the sentence. I would show the down member and the cookie still pointing at it. I would not rebuild the VIP.

7. Traps and proof

TrapDummy tellDesk move
Green VIP = users workAvailability availableSay listener only. Open show pool.
Pool available = nobody broken1 of 2 available, .12 offlinePaste member Status + Reason.
Reset persist on standbyFailover State standbyWrong box. Move to active.
delete persist-records is isolateOfficial delete syntaxWrite. Wait TTL or take a change.
No SYN = bounce the HTTPS monitorZero packets or empty lis=VLAN / destination / unit first.
tcpdump 0.0 with no filterHuge file, high TMM costK411 / K6546: always filter 0.0.
Client-VLAN capture proves SATOnly the inbound SYNUse 0.0:nnnp so :p follows the peer.
In Sync = connections mirroredConfig Sync In SyncMirror is per virtual. Failover is a write.
Proof checklist (paste into the ticket)

Knowledge check

Six desk judgments. First tool and proof field — not folklore. Check, then Reset if you miss any.

Q1

User says “the VIP is down.” Manager wants failover. No capture. What is the first tool?

Correct: b. Ticket 1 starts at show virtual. Official show virtual is status. Failover is a write. Re-read Ticket 1.
Q2

Pool is available. 10.20.30.12 is offline. A cookie still names .12. What do you paste?

Correct: c. That is the Ticket 3 proof field. Official persist-records displays the pin. Re-read Tickets 2 and 3.
Q3

delete /ltm persistence persist-records virtual vip_finance_443 is…

Correct: b. Official persist-records can display or delete. Delete is change-control. Re-read Ticket 3 and isolate vs write.
Q4

Outside monitor is red. Members answer locally. First isolate tool?

Correct: a. No SYN = listener / VLAN / unit before the pool. Empty lis= means no virtual claimed the packet. Re-read Ticket 4.
Q5

list virtual shows source-address-translation { type none }. tcpdump :nnnp shows a serverside SYN with the original client IP and no SYN-ACK. Close?

Correct: d. Proof field is SAT type plus the peer SYN. Change-control is automap or a named SNAT pool. Re-read Ticket 5.
Q6

Why must a tcpdump -nni 0.0 always carry a host or port filter?

Correct: c. Hardware switch interfaces are rate-limited; 0.0 is not. Always filter and stop the capture. Re-read Ticket 4 and the traps table.

Sources

Related: F5 session factory · LTM troubleshooting scenarios · Command ladder cheatsheet · Virtuals and pools · F5 practice dashboard

Every output block is fictional lab data. Confirm live syntax, permissions and privacy rules on the production release before you type anything on a live system.