Quotas and limits
This document lists the quotas and system limits that apply to
Cloud NAT.
- Quotas specify the amount of a countable, shared resource that you
can use. Quotas are defined by Trusted Cloud by S3NS services such as
Cloud NAT.
- System limits are fixed values that cannot be changed.
A given quota or limit is calculated per resource. Quotas and limits may be
per project, per network, per region, or per another resource. NAT IP
addresses can't be shared between NAT gateways.
Trusted Cloud by S3NS uses quotas to help ensure fairness and reduce
spikes in resource use and availability. A quota restricts how much of a
Trusted Cloud resource your Trusted Cloud project can use. Quotas
apply to a range of resource types, including hardware, software, and network
components. For example, quotas can restrict the number of API calls to a
service, the number of load balancers used concurrently by your project, or the
number of projects that you can create. Quotas protect the community of
Trusted Cloud users by preventing the overloading of services. Quotas also
help you to manage your own Trusted Cloud resources.
The Cloud Quotas system does the following:
In most cases, when you attempt to consume more of a resource than its quota
allows, the system blocks access to the resource, and the task that
you're trying to perform fails.
Quotas generally apply at the Trusted Cloud project
level. Your use of a resource in one project doesn't affect
your available quota in another project. Within a Trusted Cloud project, quotas
are shared across all applications and IP addresses.
There are also system limits on Cloud NAT resources.
System limits can't be changed.
Quotas
For quotas that affect Cloud NAT, see the Cloud Router
quotas page.
Limits
Item |
Limit |
Notes |
NAT gateways |
50 per Cloud Router |
Each network supports up to 5 Cloud Router instances per
region, so you can have up to 250 Cloud NAT gateways per
region per Virtual Private Cloud (VPC) network. For Cloud Router quotas,
see the Cloud Router
documentation. |
NAT IP addresses per gateway |
300 manual addresses
2500 auto-allocated addresses |
The maximum number of external IP addresses that you can have on a
NAT gateway. However, this value depends on the static IP addresses
and in-use IP addresses
VPC per-project quotas. |
Subnet ranges |
50 per gateway |
The maximum number of subnets that you can associate with a gateway when
you configure a custom list of subnet ranges. The number of subnet ranges
might be more than the limit because each subnet can have a primary IPv4 range
and one or more secondary ranges.
If you have configured NAT for primary ranges for all subnets or primary
and secondary ranges for all subnets, this limit doesn't apply. |
NAT rules |
50 per gateway |
If this limit is exceeded, the API returns an error. |
Active IP addresses per NAT rule |
300 |
|
Characters in CEL expressions per rule |
2,048 |
|
Characters in CEL expressions per Cloud Router instance |
500,000 |
|
Limitations
Some servers such as legacy DNS servers require UDP port randomization among
64,000 ports for enhanced security. Because Cloud NAT selects a random
port from one of 64 or a user-configured number of ports, it is best to assign
an external IP address to these servers instead of using Cloud NAT.
Because Cloud NAT doesn't allow connections initiated from outside,
most of these servers are required to use an external IP address anyway.
Cloud NAT isn't available for legacy networks.
Cloud NAT doesn't provide application-level gateway (ALG)
capabilities—Cloud NAT doesn't update the IP address and port
information in the packet data for application layer protocols such as
FTP and SIP.
Cloud NAT gateways implement NAT connection tracking tables for each
VM network interface on which it provides NAT services. Entries in each
connection tracking table are 5-tuple hashes for the gateway's supported
protocols.
Entries in each connection tracking table persist for about as long as the
relevant NAT timeout. For more information about NAT timeouts, see
NAT timeouts.
The maximum number of connection tracking table entries for all NAT
connections associated with a VM is 65,535. This maximum covers connections,
in aggregate, for all protocols that the gateway supports, across all network
interfaces of the VM.
Small idle connection timeouts might not work.
NAT mappings are checked every 30 seconds for expiration and configuration
change. Even if a connection timeout value of 5 seconds is used, the
connection may not be available for up to 30 seconds in the worst case, and
15 seconds in the average case.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-25 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[],[],null,["# Quotas and limits\n=================\n\nThis document lists the quotas and system limits that apply to\nCloud NAT.\n\n- *Quotas* specify the amount of a countable, shared resource that you can use. Quotas are defined by Google Cloud services such as Cloud NAT.\n- *System limits* are fixed values that cannot be changed.\n\nA given quota or limit is calculated per resource. Quotas and limits may be\n*per project* , *per network* , *per region* , or per another resource. NAT IP\naddresses can't be shared between NAT gateways. To change a quota, see\n[requesting additional quota](#requesting-additional-quota).\n\nGoogle Cloud uses quotas to help ensure fairness and reduce\nspikes in resource use and availability. A quota restricts how much of a\nGoogle Cloud resource your Google Cloud project can use. Quotas\napply to a range of resource types, including hardware, software, and network\ncomponents. For example, quotas can restrict the number of API calls to a\nservice, the number of load balancers used concurrently by your project, or the\nnumber of projects that you can create. Quotas protect the community of\nGoogle Cloud users by preventing the overloading of services. Quotas also\nhelp you to manage your own Google Cloud resources.\n\nThe Cloud Quotas system does the following:\n\n- Monitors your consumption of Google Cloud products and services\n- Restricts your consumption of those resources\n- Provides a way to [request changes to the quota value](/docs/quotas/help/request_increase) and [automate quota adjustments](/docs/quotas/quota-adjuster)\n\nIn most cases, when you attempt to consume more of a resource than its quota\nallows, the system blocks access to the resource, and the task that\nyou're trying to perform fails.\n\nQuotas generally apply at the Google Cloud project\nlevel. Your use of a resource in one project doesn't affect\nyour available quota in another project. Within a Google Cloud project, quotas\nare shared across all applications and IP addresses.\n\n\nThere are also *system limits* on Cloud NAT resources.\nSystem limits can't be changed.\n\nQuotas\n------\n\nFor quotas that affect Cloud NAT, see the Cloud Router\n[quotas](/network-connectivity/docs/router/quotas) page.\n\nLimits\n------\n\nLimitations\n-----------\n\n- Some servers such as legacy DNS servers require UDP port randomization among\n 64,000 ports for enhanced security. Because Cloud NAT selects a random\n port from one of 64 or a user-configured number of ports, it is best to assign\n an external IP address to these servers instead of using Cloud NAT.\n Because Cloud NAT doesn't allow connections initiated from outside,\n most of these servers are required to use an external IP address anyway.\n\n- Cloud NAT isn't available for legacy networks.\n\n- Cloud NAT doesn't provide application-level gateway (ALG)\n capabilities---Cloud NAT doesn't update the IP address and port\n information in the packet data for application layer protocols such as\n FTP and SIP.\n\n- Cloud NAT gateways implement NAT connection tracking tables for each\n VM network interface on which it provides NAT services. Entries in each\n connection tracking table are 5-tuple hashes for the gateway's supported\n protocols.\n\n Entries in each connection tracking table persist for about as long as the\n relevant NAT timeout. For more information about NAT timeouts, see\n [NAT timeouts](/nat/docs/tune-nat-configuration#nat-timeouts).\n\n The maximum number of connection tracking table entries for all NAT\n connections associated with a VM is 65,535. This maximum covers connections,\n in aggregate, for all protocols that the gateway supports, across all network\n interfaces of the VM.\n- Small idle connection timeouts might not work.\n\n NAT mappings are checked every 30 seconds for expiration and configuration\n change. Even if a connection timeout value of 5 seconds is used, the\n connection may not be available for up to 30 seconds in the worst case, and\n 15 seconds in the average case.\n\nManage quotas\n-------------\n\nCloud NAT enforces quotas on resource usage for various reasons.\nFor example, quotas protect the community of Google Cloud users by\npreventing unforeseen spikes in usage. Quotas also help users who are exploring\nGoogle Cloud with the\n[free tier](/free/docs/gcp-free-tier)\nto stay within their trial.\n\nAll projects start with the same quotas, which you can change by\n[requesting additional quota](#requesting-additional-quota). Some quotas might increase\nautomatically based on your use of a product.\n\n### Permissions\n\nTo view quotas or request quota increases, Identity and Access Management (IAM) principals need one of the\nfollowing roles.\n\n### Check your quota\n\n### Console\n\n1. In the Google Cloud console, go to the **Quotas** page.\n\n [Go to Quotas](https://console.cloud.google.com/iam-admin/quotas)\n2. To search for the quota that you want to update, use the **Filter table**. If you don't know the name of the quota, use the links on this page instead.\n\n### gcloud\n\nUsing the Google Cloud CLI, run the following command to\ncheck your quotas. Replace \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e with your own project ID. \n\n```\n gcloud compute project-info describe --project PROJECT_ID\n```\n\nTo check your used quota in a region, run the following command: \n\n```\n gcloud compute regions describe example-region\n \n```\n\n### Errors when exceeding your quota\n\nIf you exceed a quota with a `gcloud` command,\n`gcloud` outputs a `quota exceeded` error\nmessage and returns with the exit code `1`.\n\nIf you exceed a quota with an API request, Google Cloud returns the\nfollowing HTTP status code: `413 Request Entity Too Large`.\n\n### Request additional quota\n\nTo adjust most quotas, use the Google Cloud console.\nFor more information, see\n[Request a quota adjustment](/docs/quotas/help/request_increase).\n\n### Resource availability\n\nEach quota represents a maximum number for a particular type of resource that you can create,\nif that resource is available. It's important to note that quotas *don't*\nguarantee resource availability. Even if you have available quota, you can't create\na new resource if it is not available.\n\nFor example, you might have sufficient quota to create a new regional, external IP address\nin a given region. However, that is not possible if there are no\navailable external IP addresses in that region. Zonal resource\navailability can also affect your ability to create a new resource.\n\nSituations where resources are unavailable in an entire region are rare. However, resources\nwithin a zone can be depleted from time to time, typically without impact to the service level\nagreement (SLA) for the type of resource. For more information, review the relevant SLA for the\nresource."]]