Skip to content
ENExplore Calculators

Carrier-Grade NAT Capacity Calculator

Work out subscribers per public IPv4 address, total port-block demand and how many public addresses a CGNAT pool needs.

About Carrier-Grade NAT Capacity Calculator

A public IPv4 address has 65536 TCP or UDP ports, and deterministic CGNAT hands each subscriber a fixed block of them. Dividing the usable ports by the block size gives the sharing ratio, which in turn sets the pool size; the translation table entry count is a separate memory limit on the NAT device. Port-block sizing is a direct trade-off between IPv4 address cost and application breakage — too small a block and browsers with many parallel connections start failing while the address pool looks healthy.

Formula

Carrier-Grade NAT Capacity

subscribers per address = (65536 − reserved ports) ÷ ports per subscriber; addresses = ceil(subscribers ÷ subscribers per address).

ports per subscriber
Size of the deterministic port block each subscriber gets
reserved ports
Low and system ports excluded from allocation

Worked example

With the default values below, Carrier-Grade NAT Capacity Calculator returns Public Addresses Required of 635. Change any input above and every figure here is recalculated in your browser.

Inputs used

Subscribers behind CGNATaccepts 1–50,000,000 subscribers
40,000 subscribers
Ports allocated per subscriberaccepts 64–32,768 ports
1,024 ports
Ports reserved per public addressaccepts 0–10,000 ports
1,024 ports
Public IPv4 addresses in the poolaccepts 1–65,536 addresses
40 addresses
Concurrent sessions per subscriberaccepts 1–20,000 sessions
120 sessions

Results

Public Addresses Required
635
Subscribers per Public Address
63
Utilisation of the Configured Pool
1,587.5%
Translation Table Entries
4,800,000
Pool Status
Pool is short by 595 addresses

Step by step

  1. 1Values used
  2. 2Carrier-Grade NAT Capacity
  3. 3Public Addresses Required= 635
  4. 4Subscribers per Public Address= 63
  5. 5Utilisation of the Configured Pool= 1,587.5
  6. 6Translation Table Entries= 4,800,000
  7. 7Pool Status= Pool is short by 595 addresses

Assumptions and limits

  • The result is derived only from the 5 inputs listed above. Anything not among them is not part of the calculation.
  • In particular, this calculator does not take inflation, tax, fees or charges or compounding frequency into account.
  • Figures are rounded for display to 1 decimal place, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.

How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.

Frequently Asked Questions

How is Carrier-Grade NAT Capacity calculated?

subscribers per address = (65536 − reserved ports) ÷ ports per subscriber; addresses = ceil(subscribers ÷ subscribers per address). A public IPv4 address has 65536 TCP or UDP ports, and deterministic CGNAT hands each subscriber a fixed block of them. Dividing the usable ports by the block size gives the sharing ratio, which in turn sets the pool size; the translation table entry count is a separate memory limit on the NAT device.

Why does Carrier-Grade NAT Capacity matter?

Port-block sizing is a direct trade-off between IPv4 address cost and application breakage — too small a block and browsers with many parallel connections start failing while the address pool looks healthy.

What values do I need to enter?

This calculator takes 5 inputs: Subscribers behind CGNAT, Ports allocated per subscriber, Ports reserved per public address, Public IPv4 addresses in the pool, Concurrent sessions per subscriber. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Carrier-Grade NAT Capacity Calculator | Calcrivo