Log Dejargonizer

Cisco ASA / Firepower Threat Defense · Event 305011

Cisco ASA 305011: A NAT translation was created

The firewall assigned an internal address and port a public one. This is the message that lets you answer 'which internal machine was 203.0.113.10 port 45392 at 14:07 last Tuesday' — the single question NAT otherwise makes unanswerable.

Also written as %ASA-6-305011ASA 305011Built dynamic TCP translationasa nat translation built

What it means for you

On a personal computer

Your router does this constantly and does not usually tell you about it. When many devices share one public address, the firewall has to keep a table mapping each internal conversation to a different port on that shared address. This message records one of those mappings being created.

For an analyst

This is your attribution log, and most sites discover they were not keeping it at the moment an abuse complaint or a law-enforcement request arrives naming a public address, a port, and a timestamp. Without 305011 and 305012 you can identify the firewall and nothing else. Volume is the real constraint: on a busy edge these can outnumber connection events, so decide the retention deliberately rather than by accident.

What it looks like

Sanitised. Addresses come from the RFC 5737 documentation ranges.

Sample
Sep 07 2026 14:07:22 fw-edge-01 : %ASA-6-305011: Built dynamic TCP translation from inside:192.0.2.44/51993 to outside:203.0.113.10/45392

The fields that decide it

Everything else in the log line is context.

Translation type
Dynamic or static.
  • dynamicAssigned from a pool or by port address translation. Short-lived and only meaningful with the timestamp.
  • staticA fixed one-to-one mapping. Recorded once and then persistent, so far less interesting after the first entry.
Protocol
TCP, UDP, or ICMP. ICMP translations use the query ID in place of a port, which is why an ICMP entry's 'port' number looks arbitrary.
Real address / port
The inside host and port as it exists on your network. This is the answer to the attribution question.
Mapped address / port
The address and port as the outside world sees them. This is what an external complainant will quote at you.
Interface names
Which interface each side belongs to. Both sides naming the same interface is normal for hairpin and U-turn traffic and confuses people the first time they see it.

Ordinary reasons this happens

Most of the time it is one of these.

  • Every outbound connection from a network behind port address translation. This is the ordinary case and it is the vast majority.
  • A static NAT entry being installed when a rule is applied or the firewall reloads.
  • Identity NAT and NAT exemption rules being logged even though the addresses do not actually change.
  • Hairpin traffic where an internal host reaches another internal host by its public name, producing translations with the same interface on both sides.
  • A backup or replication job opening thousands of connections in a burst, each with its own translation.

When it is not ordinary

An internal host generating an abnormal number of translations, which is what scanning and worm-like behaviour look like from the NAT table's point of view.

What gives it awayOne real address holding a disproportionate share of translations over a short window, usually with many distinct mapped ports and few completed connections.

ATT&CK T1046

Translation exhaustion used or caused as a denial of service.

What gives it awayA steep rise in translation creation paired with 305006 translation-creation failures, after which new outbound connections stop working for everyone.

ATT&CK T1499

Data being moved out by a host that should not be initiating outbound sessions at all.

What gives it awaySustained translations from a server or an appliance that normally only receives connections.

ATT&CK T1041

What to do next

  1. For an attribution request, search on the mapped address and mapped port together, then bound it by the timestamp. The port is reused within minutes, so a match without the time is worthless.
  2. Note the direction of the request: an external party gives you the mapped side, and you are looking for the real side.
  3. Pair it with the teardown record for the same translation to get the window during which the mapping was valid — 305012 when the translation timed out, 305010 when it was deleted explicitly. That interval is what you defend if the attribution is questioned.
  4. Check your clock source before relying on any of it. NAT attribution is only as good as the firewall's time, and an unsynchronised firewall makes the whole exercise unusable.
  5. For an internal host generating unusual volume, count translations per real address rather than connections — a host that is scanning creates translations far faster than it completes connections.
  6. If translations are failing rather than building, check the pool: `show nat pool` and `show xlate count` tell you whether you have run out of ports rather than out of addresses.

Queries to run

grep The attribution search. Always add a time bound — a mapped port is reused within minutes.
grep '305011' asa.log | grep '203.0.113.10/45392'
splunk Which internal hosts are consuming the translation table. The top of this list is either your busiest server or your problem.
index=firewall "%ASA-6-305011" | rex "from (?<real_if>\w+):(?<real_ip>[\d\.]+)/(?<real_port>\d+) to (?<map_if>\w+):(?<map_ip>[\d\.]+)/(?<map_port>\d+)" | stats count by real_ip | sort - count
elastic Attribution against a mapped address and port over a bounded window.
event.code:305011 and destination.nat.ip:"203.0.113.10" and destination.nat.port:45392 and @timestamp >= "now-7d"
grep On the device itself: how many translations are in use against the maximum. The number to look at before assuming the log is the problem.
show xlate count

Common questions

Why should I log ASA 305011 if it is so noisy?

Because it is the only record that maps a public address and port back to an internal machine at a point in time. When an abuse report, a threat intelligence hit, or a legal request arrives quoting your public IP and a port, this is what turns that into an actual host. Without it, NAT has erased the information permanently — you cannot reconstruct it later.

How long should I keep NAT translation logs?

Long enough to cover how late these requests arrive, which in practice is months rather than days. Abuse reports and law-enforcement requests routinely reference activity weeks old. Storage is the trade-off: on a busy edge these messages can exceed connection logs in volume, so many sites keep 305011 and its teardown messages in cheaper long-term storage than the rest of the firewall log.

What is the difference between ASA 305011 and 302013?

305011 records the address translation — which internal address and port became which public address and port. 302013 records the connection itself — which endpoints are talking and over what. They fire together for the same traffic, but only 305011 answers the attribution question, and only 302013 gives you the far end of the conversation.

Why do both sides of the translation show the same interface?

That is hairpinning: an internal host reached another internal host, or itself, by way of a public address, so the traffic left and re-entered on the same interface. It is normal on networks where internal clients use public DNS names for internally hosted services, and it requires 'same-security-traffic permit intra-interface' to work at all.

Read next

Vendor documentation

Last reviewed 7 September 2026