• Virtual Private Cloud

vpc
  1. Help Center
  2. Virtual Private Cloud
  3. API Reference
  4. APIs
  5. Subnet
  6. Creating a Subnet

Creating a Subnet

Function

This interface is used to create a subnet.

URI

POST /v1/{project_id}/subnets
Table 1 Parameter description

Name

Mandatory

Description

project_id

Yes

Specifies the project ID.

Request Message

  • Request parameter
    Table 2 Request parameter

    Name

    Mandatory

    Type

    Description

    subnet

    Yes

    Dictionary data structure

    Specifies the subnet objects.

    Table 3 Description of the subnet field

    Name

    Mandatory

    Type

    Description

    name

    Yes

    String

    • Specifies the subnet name.
    • The value is a string of 1 to 64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.).

    cidr

    Yes

    String

    • Specifies the subnet CIDR block.
    • The value must be within the VPC CIDR block.
    • The value must be in CIDR format. The subnet mask cannot be greater than 28.

    gateway_ip

    Yes

    String

    • Specifies the gateway of the subnet.
    • The value must be an IP address in the subnet.
    • The value must be a valid IP address.

    dhcp_enable

    No

    Boolean

    • Specifies whether DHCP is enabled for the subnet.
    • The value can be true (enabled) or false (disabled).
    • If this parameter is left blank, the system automatically sets it to true by default. If this parameter is set to false, newly created ECSs cannot obtain IP addresses, and usernames and passwords cannot be injected using Cloud-init. Exercise caution when performing this operation.

    primary_dns

    No

    String

    • Specifies the IP address of DNS server 1 on the subnet.
    • The value must be a valid IP address.

    secondary_dns

    No

    String

    • Specifies the IP address of DNS server 2 on the subnet.
    • The value must be a valid IP address.

    dnsList

    No

    List

    • Specifies the DNS server address list of a subnet. This field is required if you need to use more than two DNS servers.
    • This parameter value is the superset of both DNS server address 1 and DNS server address 2.

    availability_zone

    No

    String

    • Identifies the AZ to which the subnet belongs.
    • The value must be an existing AZ in the system.

    vpc_id

    Yes

    String

    Specifies the ID of the VPC to which the subnet belongs.

    extra_dhcp_opts

    No

    List

    Specifies the NTP server address configured for the subnet. For details, see the extra_dhcp_opt object.

    Table 4 extra_dhcp_opt object

    Name

    Mandatory

    Type

    Description

    opt_value

    No

    String

    • Specifies the NTP server address configured for the subnet.
    • Constraints:

      The option ntp for opt_name indicates the NTP server configured for the subnet. Currently, only IPv4 addresses are supported. A maximum of four IP addresses can be configured, and each address must be unique. Multiple IP addresses must be separated using commas (,). The option null for opt_name indicates that no NTP server is configured for the subnet. The parameter value cannot be an empty string.

    opt_name

    Yes

    String

    • Specifies the NTP server address name configured for the subnet.
    • Currently, the value can only be set to ntp.
  • Example request
    {
        "subnet": {
            "name": "subnet",
            "cidr": "192.168.20.0/24",
            "gateway_ip": "192.168.20.1",
            "dhcp_enable": true,
            "primary_dns": "114.xx.xx.114",
            "secondary_dns": "114.xx.xx.115",
            "dnsList": [
                "114.xx.xx.114",
                "114.xx.xx.115"
            ],
            "availability_zone": "aa-bb-cc",//For example, the AZ is aa-bb-cc.
            "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
            "extra_dhcp_opts": [
                {
                    "opt_value": "10.100.0.33,10.100.0.34",
                    "opt_name": "ntp"
                }
        }
    }

Response Message

  • Response parameter
    Table 5 Response parameter

    Name

    Type

    Description

    subnet

    Dictionary data structure

    Specifies the subnet objects.

    Table 6 Description of the subnet field

    Name

    Type

    Description

    id

    String

    Specifies the resource identifier in the form of UUID.

    name

    String

    Specifies the subnet name.

    cidr

    String

    Specifies the subnet network segment.

    gateway_ip

    String

    Specifies the subnet gateway address.

    dhcp_enable

    Boolean

    Specifies whether the DHCP function is enabled for the subnet.

    primary_dns

    String

    Specifies the IP address of DNS server 1 on the subnet.

    secondary_dns

    String

    Specifies the IP address of DNS server 2 on the subnet.

    dnsList

    List

    Specifies the IP address list of DNS servers on the subnet.

    availability_zone

    String

    Identifies the AZ to which the subnet belongs.

    vpc_id

    String

    Specifies the ID of the VPC to which the subnet belongs.

    status

    String

    • Specifies the status of the subnet.
    • The value can be ACTIVE, UNKNOWN, or ERROR.
      • ACTIVE: indicates that the subnet has been associated with the router.
      • UNKNOWN: indicates that the subnet has not been associated with the router.
      • ERROR: indicates that the subnet is abnormal.
    • The system creates a subnet and then associates the subnet with the router in the threads.

      In the concurrent scenario, if the CIDR of the created subnet is the same as that of an existing subnet, the created subnet fails to attach to the router after underlying system verification. As a result, the subnet creation fails.

      In this scenario, the returned value of status is UNKNOWN.

    neutron_network_id

    String

    Specifies the ID of the corresponding network (OpenStack Neutron API).

    neutron_subnet_id

    String

    Specifies the ID of the corresponding subnet (OpenStack Neutron API).

    extra_dhcp_opts

    List

    Specifies the NTP server address configured for the subnet. For details, see the extra_dhcp_opt object.

    Table 7 extra_dhcp_opt object

    Name

    Mandatory

    Type

    Description

    opt_value

    No

    String

    • Specifies the NTP server address configured for the subnet.
    • Constraints:

      The option ntp for opt_name indicates the NTP server configured for the subnet. Currently, only IPv4 addresses are supported. A maximum of four IP addresses can be configured, and each address must be unique. Multiple IP addresses must be separated using commas (,). The option null for opt_name indicates that no NTP server is configured for the subnet. The parameter value cannot be an empty string.

    opt_name

    Yes

    String

    • Specifies the NTP server address name configured for the subnet.
    • Currently, the value can only be set to ntp.
  • Example response
    {
        "subnet": {
            "id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
            "name": "subnet",
            "cidr": "192.168.20.0/24",
            "dnsList": [
                "114.xx.xx.114",
                "1114.xx.xx.115"
            ],
            "status": "UNKNOWN",
            "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
            "gateway_ip": "192.168.20.1",
            "dhcp_enable": true,
            "primary_dns": "114.xx.xx.114",
            "secondary_dns": "114.xx.xx.115",
            "availability_zone": "aa-bb-cc",//For example, the AZ is aa-bb-cc.
            "neutron_network_id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
            "neutron_subnet_id": "213cb9d-3122-2ac1-1a29-91ffc1231a12"
            "extra_dhcp_opts": [
                {
                    "opt_value": "10.100.0.33,10.100.0.34",
                    "opt_name": "ntp"
                }
            ]
        }
    }

Status Codes

For details, see section Status Codes.

Error Codes

For details, see section Error Codes.