oxidecomputer / oxidecomputer/omicron
Cannot attach both IPv4 and IPv6 IP addresses to internet gateway
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
Internet gateways support IP address attachments and IP pool attachments. Only a single IP address can be attached to an internet gateway whereas multiple IP pools can be attached, even the same IP pool multiple times as described in https://github.com/oxidecomputer/omicron/issues/7413.
Without the ability to attach multiple IP addresses, users cannot create a dual-stack internet gateway without using IP pool attachments.
> oxide internet-gateway address create --gateway example --vpc example --project example --name v4-ip --description 'An IPv4 attachment.' --address '172.21.254.99'
{
"address": "172.21.254.99",
"description": "An IPv4 attachment.",
"id": "920a2fd3-1a8e-4968-b6af-cf0c387f2a0c",
"internet_gateway_id": "4b0cd948-23ef-485a-825b-ef46d7c19c2a",
"name": "v4-ip",
"time_created": "2026-07-28T23:52:13.153324Z",
"time_modified": "2026-07-28T23:52:13.153324Z"
}
> oxide internet-gateway address create --gateway example --vpc example --project example --name v6-ip --description 'An IPv6 attachment.' --address 'fd17:2160:0000:0001::5'
error
Error Response: status: 400 Bad Request; headers: {"content-type": "application/json", "x-request-id": "97d0a8fb-13ca-4792-ab89-12102d274b49", "content-length": "167", "date": "Tue, 28 Jul 2026 23:53:49 GMT"}; value: Error { error_code: Some("ObjectAlreadyExists"), message: "already exists: internet-gateway-ip-address \"v6-ip\"", request_id: "97d0a8fb-13ca-4792-ab89-12102d274b49" }
This is likely due to the fact that internet gateways predated the dual-stack network interface and IP pool work to introduce IPv6 and have not yet been updated. Let's fix that.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the oxide internet-gateway address create commands shown in the issue, then trace the internet-gateway IP-address attachment validation and related API entry points. Done means an internet gateway accepts both an IPv4 and an IPv6 address attachment, while the existing attachment behavior remains covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100