Floating IPs
Coming from another cloud?
▸AWS·Elastic IP addresses
Elastic IP addresses
- AWS charges idle EIPs.
- OpenStack floating IPs free/pool-limited.
- AWS regional instance/ENI.
- OpenStack project port.
▸Azure·Public IP addresses
Public IP addresses
- Public IP is a dedicated ARM resource with SKUs (Basic/Standard); IPv4 billed, IPv6 free ().
- Static/dynamic allocation (Standard static only); zone-redundant option (Standard v2).
- Associated directly to NIC/LB/gateway vs via router DNAT in OpenStack.
- Dynamic outbound uses ephemeral IPs even without assoc; no pool allocation like Neutron external nets.
▸DigitalOcean·Reserved IPs (formerly Floating IPs)
Reserved IPs (formerly Floating IPs)
- Naming/API surface: DigitalOcean renamed Floating IPs to Reserved IPs; endpoints and fields change from `floating_ips` to `reserved_ips` (while legacy endpoints existed until a stated deprecation window), whereas OpenStack retains the “floatingip” resource in Neutron APIs ().
- Identity model: DigitalOcean’s resource identifier in the API path is the IP address itself (`/v2/reserved_ips/{reserved_ip}` where `{reserved_ip}` is an IPv4 address), whereas OpenStack commonly uses UUID identifiers for Neutron resources like floating IPs and ports ().
- Attachment model: creation requires either `droplet_id` or `region` and reassignment is conceptually “map to a Droplet”; OpenStack associates floating IPs to Neutron ports (and thus can be used with more complex networking constructs like routers), which is a different mental model for migrating users ().
- Region binding: DigitalOcean Reserved IPs are explicitly bound to a region, while OpenStack floating IP pools are usually defined per external network and can be consumed wherever that external network is reachable (implementation-specific) ().
▸Google Cloud·Static External IP
Static External IP
- GCP static IPs are regional or global resources, with unassociated IPs metered per-hour; OpenStack floating IPs are pool-based. See the GCP pricing page for current rates.
- GCP supports both ephemeral (auto-released on stop) and static IPs; OpenStack floating IPs are always explicit.
- GCP global static IPs used with global load balancers only; no direct OpenStack equivalent.
▸Hetzner·Floating IPs
Floating IPs
- Flat monthly billing €3/IPv4 or hourly equivalent, not usage-based per hour ().
- Locked to specific location/zone, cannot move across datacenters unlike global pools in OpenStack ().
- Hot-reassign without server reboot but requires manual OS config (e.g., ifupdown/netplan) post-change ().
- Limits: 10/account default, 20/server max; single assignment at a time ().
Floating IPs
The Network service (OpenStack Neutron) implements floating IPs as public addresses you attach to an instance on a private network when you need reachability from the internet or another external network. Neutron allocates them from a pool tied to a public or provider network; association uses one-to-one NAT so the guest keeps its fixed private address while the floating IP answers from outside.
You can move the same public address to a different instance after maintenance or failover without renaming DNS to a new private IP.
What floating IPs are for#
Private addresses are stable inside your project and work well for east-west traffic. When you run an API, bastion, or web front end that must be reached from outside the cloud, you allocate a floating IP and map it to the instance’s port. Inbound connections hit the public address; the platform translates to the instance’s fixed IP. Outbound flows from instances without floating IPs often use source NAT on a router; floating IPs carry inbound identity and optional symmetric return paths depending on topology.
Floating IPs also pair with reverse proxy instances: a single public address on the proxy can represent many private application backends.
Capabilities and constraints#
You get dynamic association and disassociation: return an address to the pool when you no longer need external access, or reattach it elsewhere. Quotas cap how many floating IPs a project may hold, because public IPv4 space is finite. Security groups and other firewall rules still filter traffic at the port; open only the ports your service requires.
The same conceptual model applies whether clients reach you over IPv4 or, where supported, IPv6: you still think in terms of a provider pool, association to a port, and filtered delivery to the instance.
How floating IPs fit the network model#
Projects see two broad network classes: private networks for instance-to-instance traffic inside the project, and public (or external) networks that reach outside. The external network exposes a pool of addresses; that pool feeds floating IP allocation.
Your instances keep fixed addresses on the private network for stable internal DNS and service discovery; the floating IP is an additional façade that can be remapped without renumbering the guest.
After allocation, you associate the address with an instance (through its port). Traffic to the floating IP is destination-NATted to the instance’s fixed address. When you disassociate, the address returns to the pool for reuse.
DNS and stable endpoints#
Floating IPs give you a stable address you can publish in DNS A or AAAA records while moving the backend instance behind maintenance. That indirection is simpler than updating records on every VM replacement, especially for bastions and small APIs. Pair DNS TTL choices with how fast failover must propagate when you reassociate an address.
Fixed vs. floating IPs#
Each instance on Quake AI receives at least one fixed IP: a private address assigned from the subnet where the instance's port lives. Fixed IPs are stable for the lifetime of the port, internal to your project, and reachable from outside the cloud only when you set up routing or NAT.
Floating IPs are public addresses drawn from an external pool and mapped to an instance's fixed IP through one-to-one NAT.
| Fixed IP | Floating IP | |
|---|---|---|
| Scope | Private: internal to the project network | Public: reachable from the internet |
| Assignment | Automatic when a port is created on a subnet | Manual: you allocate and associate explicitly |
| Lifetime | Tied to the port (deleted when the port is removed) | Independent: persists until you release it |
| Mobility | Stays with the port | Can be moved between instances |
| Use case | East-west traffic, service discovery, inter-instance communication | Inbound access, bastion hosts, public APIs, DNS endpoints |
Most architectures use fixed IPs for internal communication and add floating IPs only where external reachability is required. That limits public exposure while keeping stable public endpoints where you need them.
When to use each#
- Fixed IPs only: Database servers, internal microservices, workers that pull jobs from a queue. These instances talk to other instances on the same network and never need to be reached from outside.
- Fixed + floating IP: Web servers, bastion hosts, public APIs, mail servers. The floating IP provides the public address; the fixed IP handles internal traffic.
- Reverse proxy + floating IP: When multiple instances serve the same endpoint. The floating IP points to the proxy instance, and application backends use only fixed IPs.
Cost, security, and operations#
Public addresses are a quota-backed resource: plan for limits and any billing implications in your organization. Exposing instances increases attack surface, so combine floating IPs with tight security groups, patching, and authenticated services. Track which address is attached to which workload so you do not strand unused allocations or conflict with DNS records.
Release addresses you no longer need so other projects can use scarce IPv4 space and so your inventory stays honest during audits.
Further reading#
On this platform:
- Allocate floating IP addresses: step-by-step setup via Console, CLI, and API
- How to point a domain at a Quake AI resource: map a hostname at your registrar to a floating IP
- Floating IPs console: console reference for floating IP management
- Floating IP CLI reference: all
openstack floating ipcommands - Floating IP API reference: Neutron floating IP API endpoints
- Networks: how private and external networks work together
External resources:
- OpenStack Neutron floating IP documentation: upstream implementation details for floating IP and NAT behavior
- RFC 1918: Address Allocation for Private Internets: the standard that defines private IP address ranges
Related content
Pages
How-tos
How to allocate floating IP addresses
Network
How to Deploy a Containerized Application with Docker Compose on a Quake AI VM
Compute
How to deploy a multi-tier application with Terraform
Automation
How to front a Quake AI workload with a web application firewall
Network
How to issue and auto-renew a TLS certificate with Let's Encrypt
Network
How to point a domain at a Quake AI resource
Network
How to put a CDN in front of a Quake AI workload
Network
How to run blue/green or canary deployments on Quake AI
Network
How to self-host authoritative DNS on Quake AI
Network
How to set up a site-to-site or remote-access VPN to Quake AI
Network
How to set up SSH bastion access into a private subnet
Network
Tutorials
Explanations
Reference
migration
Migrate a Docker container app from AWS to Quake AI
Compute
Migrate a Kubernetes platform to Quake AI
Kubernetes
Migrate a web application to Quake AI
Automation
Migrate from AWS VPC to Quake AI
Network
Migrate from Azure VNet to Quake AI
Network
Migrate from DigitalOcean VPC to Quake AI
Network
Migrate from GCP VPC to Quake AI
Network
Migrate from Hetzner Cloud Networks to Quake AI
Network
Migrate from Linode VPC and Cloud Firewall to Quake AI
Network
Migrate from Vultr VPC 2.0 and Firewall Groups to Quake AI
Network
Network Migration Guides
Network
deployment
Build a private network with two virtual machines
Network
Deploy a bursty-GPU control plane with a queue and workers
Compute
Deploy a Next.js app with the nextjs-app template
Compute
Deploy a private container registry with OpenTofu
Automation
Deploy a regional edge cache with the edge-cache template
Automation
Deploy a self-hosted git forge and CI with OpenTofu
Automation
Deploy a self-hosted identity provider with the auth-oidc template
Automation
Deploy Airbyte with the airbyte template
Automation
Deploy Airflow with the airflow template
Automation
Deploy an API gateway with the api-gateway template
Automation
Deploy an edge reverse proxy with the edge-reverse-proxy template
Automation
Deploy an edge tunnel gateway with the edge-tunnel-gateway template
Automation
Deploy an edge WAF with the edge-waf template
Automation
Deploy an inference gateway with OpenTofu
Automation
Deploy Appsmith with the appsmith-internal-tools template
Automation
Deploy Cal.com with the calcom-scheduling template
Automation
Deploy ClickHouse with the clickhouse template
Automation
Deploy Coolify with the coolify-host template
Automation
Deploy edge functions with the edge-functions template
Automation
Deploy Excalidraw with the excalidraw-whiteboard template
Automation
Deploy Feast with the feast template
Automation
Deploy GlitchTip with the glitchtip template
Automation
Deploy Infisical with the infisical-secrets template
Automation
Deploy JupyterHub with the jupyterhub template
Compute
Deploy Mattermost with the mattermost-team-chat template
Automation
Deploy Metabase with the Metabase template
Compute
Deploy MinIO + Iceberg with the minio-iceberg template
Automation
Deploy MLflow with the mlflow template
Compute
Deploy n8n with the n8n-workflow template
Automation
Deploy Nextcloud with the nextcloud-files template
Automation
Deploy Outline with the outline-docs template
Automation
Deploy Plane with the plane-project-management template
Automation
Deploy Redpanda with the redpanda template
Automation
Deploy Selenium Grid with the selenium-grid-testing template
Automation
Deploy self-hosted Supabase with Docker Compose
Compute
Deploy Streamlit with the streamlit template
Automation
Deploy Supabase with the supabase-selfhost template
Automation
Deploy Superset with the superset template
Automation
Deploy the live RTMP/SRT ingest and restream template with OpenTofu
Automation
Deploy the Simple VM template with OpenTofu
Automation
Deploy Trino with the trino template
Automation
Deploy Umami with the analytics-umami template
Automation
Deploy Unleash with the unleash-feature-flags template
Automation
Deploy Uptime Kuma with the uptime-kuma template
Automation
Deploy your first app on Kubernetes
Kubernetes
Templates
Airbyte ingestion (ELT)
→Apache Airflow orchestration
→Apache Superset BI
→API gateway
→Appsmith internal tools
→Cal.com scheduling
→ClickHouse analytical column store
→Containerized App on Compute
→Coolify host
→Edge cache
→Edge functions
→Edge reverse proxy
→Edge tunnel gateway
→Edge web application firewall appliance
→Excalidraw whiteboard
→Feast feature store
→Forgejo Git and CI
→Full-Stack Application
→Harbor registry
→Inference gateway
→Infisical secrets management
→JupyterHub notebook server
→Live RTMP/SRT ingest and restream
→Mattermost team chat
→Metabase BI dashboards
→MinIO + Apache Iceberg lakehouse
→MLflow experiment tracking
→Monitoring Stack (Prometheus + Grafana)
→n8n workflow automation
→Next.js App on Compute
→Nextcloud files and collaboration
→Outline team knowledge base
→Plane project management
→Provision and configure with OpenTofu plus Ansible
→Redpanda Kafka-API streaming
→Selenium Grid testing
→Self-hosted error telemetry (GlitchTip)
→Self-hosted OIDC identity provider (Keycloak)
→Simple VM with Floating IP
→Streamlit data-app host
→Supabase self-host stack
→Trino federated query engine
→Umami self-hosted analytics
→Unleash feature flags
→Uptime Kuma status and monitoring
→Troubleshooting
- Instance connectivity failure Instance connectivity troubleshooting →