-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No external IP addresses available
error when creating an instance with no external IPs
#4322
Comments
This is an unfortunate, but known, limitation in the current implementation of external IPs. For any instance which can reach external networks, we assign a source NAT address, in addition to any requested Ephemeral addresses. SNAT addresses are consumed at a lower rate than Ephemeral addresses, since they use 1/4 of the port range, while Ephemeral addresses take the entire range. But this currently means that one can create fewer instances than the size of the IP pool (assuming they all have external networking of some kind), since each gets roughly 1.25 addresses. |
Thank you for the information! That explains the behavior I was seeing where sometimes adding one more instance would trigger this error and other times adding a few more instances would trigger this error. In each of those cases there were other users creating and destroying instances with external IPs while I was testing. I'll leave this issue open so you all can decide what to do with it. For my own curiosity, are there specific RFD(s) one can read to learn more about how networking for instances works in the Oxide rack? |
You're welcome, I'm glad that was helpful. RFD 63 is the probably the best overview of networking in the product that's publicly available. Keep in mind that it's definitely the intended state of the product, and as you've discovered, we're still very much in the process of building it! Some of the features it describes are not completed, but it certainly captures the high-level design and intent very well. |
Hey there! Thanks a bunch for such a detailed issue and trying out our software 😊 . Please keep the feedback coming! I'll transfer this issue to the Omicron repo as this behaviour stems from there. |
Closing as dup of #4317 |
Summary
I was previewing an Oxide rack at All Things Open 2023 and spun up 125 16vCPU/256GB RAM instances in an attempt to load test the rack when I ran into the following error.
I spun up two classes of instances, bastion and worker. The bastion instance had an external IP address.
The worker instances did not have an external IP address.
I would not expect a
No external IP addresses available
error when creating instances without external IPs. The error itself seems to be coming fromomicron
here:omicron/nexus/db-queries/src/db/datastore/external_ip.rs
Lines 138 to 162 in 51b6b16
Reproduction
Get an Oxide host and API token.
Create a
main.tf
with the following content. Updatehost
andtoken
to your Oxide host and token.Apply the configuration. Increase the
num_instances
local until you exhaust your external IP address pool.The text was updated successfully, but these errors were encountered: