Skip to main content

VCN


In the previous post we saw how to create a Compute Instance in OCI. To do this it was necessary to place it on a network segment, so in today's post we are going to go into the networking part of OCI.

Networking is a very broad topic, with a lot of associated resources. Today we will start with the most basic and important one, as it will contain the rest of the networking resources, Virtual Cloud Network (or VCN).

A Virtual Cloud Network is a software-defined private network. You have access to the VCN but not to the hardware, as it is all software. 

A VCN allows resources to communicate securely with the Internet, other instances or on-premise data centers.

It resides in a single region and can have up to 5 CIDR Blocks (it is recommended to use the private IP ranges specified in RFC 1918 (10.0.0.0.0/8, 172.16/12 and 192.168/16).

In OCI the supported size is from /16 to /30. As the netmask gets larger, the network size gets smaller.
We stop at /30 (4 addresses) because a VCN reserves 3 addresses: the first 2 for the network and the last one for broadcast.

As in the previous posts, we will look at different ways of creating a VCN:

  • Manually from OCI Console
Select "Virtual Cloud Network" under Networking section:


Click on "Create VCN" button:


And fill the information required:


  • With Terraform code
Use Infrastructure as Code to deploy it:

resource "oci_core_vcn" "test_vcn" {
    #Required
    compartment_id = var.compartment_id

    #Optional
    byoipv6cidr_details {
        #Required
        byoipv6range_id = oci_core_byoipv6range.test_byoipv6range.id
        ipv6cidr_block = var.vcn_byoipv6cidr_details_ipv6cidr_block
    }
    cidr_block = var.vcn_cidr_block
    cidr_blocks = var.vcn_cidr_blocks
    defined_tags = {"Operations.CostCenter"= "42"}
    display_name = var.vcn_display_name
    dns_label = var.vcn_dns_label
    freeform_tags = {"Department"= "Finance"}
    ipv6private_cidr_blocks = var.vcn_ipv6private_cidr_blocks
    is_ipv6enabled = var.vcn_is_ipv6enabled
    is_oracle_gua_allocation_enabled = var.vcn_is_oracle_gua_allocation_enabled
}

Code obtained from the official Terraform documentation:

  • OCICLI
It is also to use the OCI API to create resources:

oci network vcn create -c [text]

To see all available options: