-
Notifications
You must be signed in to change notification settings - Fork 64
feat(oracle): Add steps to create IPv6 single stack instance #505
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
Open
Chandan-M-N
wants to merge
1
commit into
canonical:main
Choose a base branch
from
Chandan-M-N:ipv6-instance-creation
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+166
−1
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -426,3 +426,8 @@ xrdp | |
| XZ | ||
| YAML | ||
| zoneinfo | ||
| Ashburn | ||
| NSG | ||
| VCN's | ||
| NSGs | ||
| routable | ||
158 changes: 158 additions & 0 deletions
158
docs/oracle/oracle-how-to/deploy-single-stack-ipv6-instance.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,158 @@ | ||
| Deploy a single-stack IPv6 instance | ||
| ===================================== | ||
|
|
||
| Ubuntu images on Oracle Cloud support IPv6-only (single-stack) networking from **Ubuntu 24.04 LTS (Noble) onwards**. Ubuntu 22.04 LTS (Jammy) and earlier releases do not support this configuration. | ||
|
|
||
| No special image variant is required, the standard Ubuntu 24.04 LTS (Noble) and later images work with IPv6-only subnets. IPv6 address assignment and routing are handled by the OCI network infrastructure (VCN, subnet, and route table); no manual network configuration inside the instance is needed. | ||
|
|
||
| .. note:: | ||
| OCI single-stack IPv6 support is currently rolling out progressively. During the initial rollout phase, the feature may be in Limited Availability (LA) in select regions (such as Ashburn) before reaching General Availability (GA) across all commercial regions (like Phoenix). If the IPv6-only subnet option is not yet visible in your region's OCI Console, you will need to wait for the GA release in your specific region. | ||
|
|
||
| Prerequisites | ||
| ------------- | ||
|
|
||
| You'll need: | ||
|
|
||
| - A compartment to create the instance. | ||
|
|
||
| - A Virtual Cloud Network (VCN) with IPv6 addressing enabled. | ||
|
|
||
| .. warning:: | ||
| VCN IPv6 support can **only** be enabled at the time of VCN creation. You cannot retroactively enable IPv6 on an existing IPv4-only VCN. If you do not have an IPv6-enabled VCN, you must create a new one from scratch. Refer to Oracle's documentation on `Enabling IPv6 on a VCN`_. | ||
|
|
||
| - An IPv6-prefix-only subnet within that VCN, along with an IPv6-enabled route table (detailed in `Create an IPv6-only Subnet and Route Table`_). | ||
|
|
||
| - **Appropriate Security Rules:** Ensure your VCN's Security List or Network Security Group (NSG) allows ingress traffic on TCP port 22 (SSH) from your IPv6 source (e.g., ``::/0`` for anywhere). Default OCI rules often only allow IPv4 (``0.0.0.0/0``). | ||
|
|
||
| - A way to reach the instance over IPv6 after launch. Because single-stack IPv6 instances have no IPv4 address, you cannot SSH into them from an IPv4-only host. Options are: | ||
|
|
||
| - A host or jump box that already has a public IPv6 address. | ||
| - The OCI Bastion service (see :doc:`use-bastion-to-access-VM`). | ||
|
|
||
|
|
||
| Create an IPv6-only Subnet and Route Table | ||
| ------------------------------------------ | ||
|
|
||
| If you do not already have an IPv6-only subnet configured with outbound routing, follow these steps in the OCI Console: | ||
|
|
||
| 1. Navigate to :guilabel:`Networking` > :guilabel:`Virtual Cloud Networks` and select your IPv6-enabled VCN. | ||
|
|
||
| 2. **Create the Route Table:** On the menu list, select :guilabel:`Routing`, then click :guilabel:`Create Route Table`. | ||
|
|
||
| .. image:: ipv6-single-stack/create-route-table.png | ||
| :alt: Create Route Table | ||
|
|
||
| - Name the route table (e.g., ``ipv6-only-rt``). | ||
| - Click :guilabel:`+ Another Route Rule`. | ||
| - Select IPv6 as protocol version. | ||
| - For *Target Type*, choose your appropriate target based on your use case. **Internet Gateway** is used in this example for instances that should be publicly reachable over IPv6. For details regarding all supported target types, refer to Oracle's documentation on `Route rule targets`_. | ||
| - For *Destination CIDR Block*, enter ``::/0`` to route all outbound IPv6 traffic. | ||
|
|
||
| .. warning:: | ||
| Routing ``::/0`` to an Internet Gateway makes all instances in subnets associated with this route table globally routable via their public IPv6 addresses. Ensure your Security Lists or NSGs strictly limit inbound traffic to expected ports (like SSH). | ||
|
|
||
| - Select the target from your available options (e.g., ``<your-internet-gateway>``). | ||
|
|
||
| .. note:: | ||
| The selected target (Internet Gateway, NAT Gateway, Service Gateway, etc.) must already exist in your VCN before you can use it here. Refer to Oracle's documentation on `Route rule targets`_ for the full list of supported target types and their creation steps. | ||
|
|
||
| - Once you fill out all the fields, it will look something like this: | ||
|
|
||
| .. image:: ipv6-single-stack/route-table-example.png | ||
| :alt: Example IPv6 Route Table | ||
|
|
||
| - Click :guilabel:`Create`. | ||
|
|
||
| 3. **Create the Subnet:** | ||
|
|
||
| - On the menu list, select :guilabel:`Subnets`, then click :guilabel:`Create Subnet`. | ||
|
|
||
| .. image:: ipv6-single-stack/create-subnet.png | ||
| :alt: Create Subnet | ||
|
|
||
| - Name your subnet (e.g., ``ipv6-only-subnet``) | ||
| - In **CIDR blocks and prefixes**, choose the IP type as **Oracle-allocated IPv6 Prefix** and give an appropriate subnet prefix length. | ||
| - Under *Route Table*, select the IPv6 route table you created in Step 2. | ||
| - For Subnet access, DNS resolution and Security Lists, select the appropriate options for your use case to ensure the subnet is configured correctly. You can refer to Oracle's documentation on `Creating a subnet`_ for guidance. | ||
| - Once all the fields are filled out correctly, it will look something like this: | ||
|
|
||
| .. image:: ipv6-single-stack/subnet-data.png | ||
| :alt: Example IPv6 Subnet | ||
|
|
||
| - Click :guilabel:`Create Subnet`. | ||
|
|
||
|
|
||
| Create an IPv6-only instance | ||
| ---------------------------- | ||
|
|
||
| Create a new instance using :guilabel:`Compute` > :guilabel:`Instances` > :guilabel:`Create instance`. | ||
|
|
||
| 1. Under *Image and shape*, select :guilabel:`Change image` > :guilabel:`Ubuntu`. Choose **Ubuntu 24.04 LTS** or a later release. | ||
|
|
||
| 2. Under *Networking*, select the VCN that has IPv6 enabled, then select the IPv6-only subnet you created. | ||
|
|
||
| .. note:: | ||
| The option to assign an IPv4 address will not appear since the IPv6-only subnet has no IPv4 CIDR. | ||
|
|
||
| 3. Complete the remaining instance settings (SSH key, shape, boot volume, etc.). For more details, refer to Oracle's documentation on `Creating a Compute instance`_. Then click :guilabel:`Create`. | ||
|
|
||
| Once the instance is created, OCI assigns it an IPv6 address from the subnet prefix. | ||
|
|
||
|
|
||
| Access the IPv6-only instance | ||
| ----------------------------- | ||
|
|
||
| Because the instance has no IPv4 address, you must connect to it over IPv6. | ||
|
|
||
| **From a host with IPv6 connectivity**, SSH directly using the assigned IPv6 address: | ||
|
|
||
| .. code:: | ||
| ssh -i <path-to-key> ubuntu@<ipv6-address> | ||
| where ``<ipv6-address>`` is the IPv6 address listed on the instance details page in the OCI console. | ||
|
|
||
| **Without an IPv6-capable host**, use the OCI Bastion service to reach the instance over its private IPv6 address. Refer to :doc:`use-bastion-to-access-VM` for step-by-step instructions. | ||
|
|
||
|
|
||
| Verify the IPv6 configuration | ||
| ------------------------------ | ||
|
|
||
| After logging in, confirm that the instance has a working IPv6 address and default route: | ||
|
|
||
| .. code:: | ||
| ip -6 addr show | ||
| ip -6 route show | ||
| You should see the assigned IPv6 address on the primary network interface and a default route via the subnet gateway. You can also confirm outbound IPv6 connectivity by running: | ||
|
|
||
| .. code:: | ||
| ping -6 -c 4 ipv6.google.com | ||
| Ubuntu’s primary archive mirrors are IPv6-enabled, so standard ``apt update`` and ``apt upgrade`` commands will function normally over your IPv6 gateway. | ||
|
|
||
|
|
||
| Further references | ||
| ------------------ | ||
|
|
||
| For more information about IPv6 networking on Oracle Cloud, refer to the Oracle Cloud documentation: | ||
|
|
||
| * `IPv6 Addresses`_ | ||
| * `Enabling IPv6 on a VCN`_ | ||
| * `Creating a subnet`_ | ||
| * `Creating a VCN Route Table`_ | ||
| * `Route rule targets`_ | ||
| * `Creating an Internet Gateway`_ | ||
| * `Creating a NAT Gateway`_ | ||
| * `Creating a Compute instance`_ | ||
|
|
||
| .. _`IPv6 Addresses`: https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/ipv6.htm | ||
| .. _`Enabling IPv6 on a VCN`: https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/create_vcn.htm | ||
| .. _`Creating a subnet`: https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/create_subnet.htm | ||
| .. _`Creating a VCN Route Table`: https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/create-routetable.htm | ||
| .. _`Route rule targets`: https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingroutetables.htm#Overview_of_Routing_for_Your_VCN | ||
| .. _`Creating an Internet Gateway`: https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingIGs.htm | ||
| .. _`Creating a NAT Gateway`: https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/NATgateway.htm | ||
| .. _`Creating a Compute instance`: https://docs.oracle.com/en-us/iaas/Content/Compute/tutorials/first-linux-instance/overview.htm | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.