Chuyển tới nội dung chính

Tạo subnet

POST/v2.0/subnets

Tạo subnet trong một mạng.

OpenStack Networking không tự suy ra phiên bản IP từ CIDR. Nếu bạn không chỉ định thuộc tính gateway_ip, OpenStack Networking sẽ cấp một địa chỉ trong CIDR làm gateway cho subnet.

Để tạo subnet không có gateway, đặt thuộc tính gateway_ip thành null trong request body. Nếu bạn không chỉ định thuộc tính allocation_pools, OpenStack Networking tự động cấp các pool bao phủ toàn bộ địa chỉ IP trong CIDR, trừ địa chỉ dành cho gateway của subnet. Khi chỉ định cả allocation_pools và gateway_ip, hãy đảm bảo IP gateway không trùng với các allocation pool; nếu không, request sẽ trả về 409 Conflict.

Một subnet có thể có một hoặc nhiều name server và host route. Các host trong subnet này sử dụng các name server đó. Các thiết bị có địa chỉ IP thuộc subnet này, không tính route của subnet cục bộ, sẽ sử dụng các host route.

Chỉ định các thuộc tính ipv6_ra_mode và ipv6_address_mode để tạo subnet hỗ trợ cấu hình IPv6 như SLAAC, DHCPv6 stateful và DHCPv6 stateless.

Tuỳ chọn, bạn có thể liên kết subnet với một network segment khi tạo bằng cách chỉ định segment_id của một segment hợp lệ trên mạng đã chỉ định (routed network).

info

Nguồn: create-subnet

Request​

Tham số body​

subnetobjectbắt buộc

Object subnet.

tenant_idstring

ID của project sở hữu tài nguyên. Admin/advsvc có thể chỉ định project khác.

project_idstring

ID của project sở hữu tài nguyên. Admin/advsvc có thể chỉ định project khác.

namestring

Tên dễ đọc của subnet.

descriptionstring

Mô tả dễ đọc.

enable_dhcpboolean

DHCP có được bật cho subnet hay không. Mặc định: true.

network_idstringbắt buộc

ID của mạng mà subnet thuộc về.

dns_nameserversarray

Danh sách DNS name server liên kết với subnet.

allocation_poolsarray

Các allocation pool với địa chỉ IP bắt đầu và kết thúc cho subnet này. Nếu bỏ trống, pool được tự động cấp (trừ gateway).

host_routesarray

Các route bổ sung. Mỗi phần tử có destination và nexthop.

ip_versionintegerbắt buộc

Phiên bản giao thức IP. 4 hoặc 6.

gateway_ipstring

IP gateway của subnet này. Dùng null để tạo không có gateway. Nếu bỏ trống, một địa chỉ trong CIDR sẽ được cấp.

cidrstringbắt buộc

CIDR của subnet.

prefixleninteger

Độ dài prefix dùng để cấp phát từ subnet pool.

ipv6_address_modestring

Chế độ gán địa chỉ IPv6: slaac, dhcpv6-stateful, dhcpv6-stateless.

ipv6_ra_modestring

Chế độ router advertisement IPv6: slaac, dhcpv6-stateful, dhcpv6-stateless.

segment_idstring

ID của network segment mà subnet liên kết.

subnetpool_idstring

ID của subnet pool liên kết với subnet.

use_default_subnetpoolboolean

Có cấp subnet này từ default subnet pool hay không.

service_typesarray

Các service type liên kết với subnet.

dns_publish_fixed_ipboolean

Có publish bản ghi DNS cho các IP thuộc subnet này hay không. Mặc định: false.

Request mẫu​

Dùng curl (tạo subnet trên mạng riêng)​

curl -ks -H 'Content-Type: application/json' \
-H 'X-Auth-Token: gAAAAA<...>' -d '
{
"subnet": {
"enable_dhcp": true,
"network_id": "170546a1-a70a-40af-93e2-9261c7c05b77",
"dns_nameservers": [
"10.30.0.27",
"10.30.0.28"
],
"allocation_pools": [
{
"start": "192.168.10.2",
"end": "192.168.10.254"
}
],
"ip_version": 4,
"gateway_ip": "192.168.10.1",
"cidr": "192.168.10.0/24"
}
}' https://api.vietnix.cloud:9696/v2.0/subnets

HTTP request​

POST https://api.vietnix.cloud:9696/v2.0/subnets

Response​

Tham số response​

subnetobjectbắt buộc

Object subnet.

idstringbắt buộc

ID của subnet.

tenant_idstringbắt buộc

ID của project.

project_idstringbắt buộc

ID của project.

namestringbắt buộc

Tên dễ đọc của tài nguyên.

descriptionstringbắt buộc

Mô tả dễ đọc.

enable_dhcpbooleanbắt buộc

DHCP có được bật cho subnet hay không.

network_idstringbắt buộc

ID của mạng mà subnet thuộc về.

dns_nameserversarraybắt buộc

Danh sách DNS name server liên kết với subnet.

allocation_poolsarraybắt buộc

Các allocation pool với địa chỉ IP bắt đầu và kết thúc.

host_routesarraybắt buộc

Các route bổ sung với destination và nexthop.

ip_versionintegerbắt buộc

Phiên bản giao thức IP. 4 hoặc 6.

gateway_ipstringbắt buộc

IP gateway của subnet này, hoặc null.

cidrstringbắt buộc

CIDR của subnet.

created_atstringbắt buộc

Thời điểm tạo (ISO 8601).

updated_atstringbắt buộc

Thời điểm cập nhật gần nhất (ISO 8601) hoặc null.

ipv6_address_modestringbắt buộc

Chế độ địa chỉ IPv6 hoặc null.

ipv6_ra_modestringbắt buộc

Chế độ router advertisement IPv6 hoặc null.

revision_numberintegerbắt buộc

Revision number.

segment_idstringbắt buộc

ID network segment liên kết, nếu có.

subnetpool_idstringbắt buộc

ID subnet pool, nếu có.

service_typesarraybắt buộc

Các service type liên kết với subnet.

tagsarraybắt buộc

Danh sách tag trên tài nguyên.

dns_publish_fixed_ipbooleanbắt buộc

Có publish bản ghi DNS cho các IP thuộc subnet này hay không.

Response mẫu​

Subnet cho mạng riêng​

Response body
{
"subnet": {
"id": "d3f93e1c-f59d-40f8-a46c-ea6285f3a069",
"name": "",
"tenant_id": "f33507157a634f1cac71e06a70fb558e",
"network_id": "170546a1-a70a-40af-93e2-9261c7c05b77",
"ip_version": 4,
"subnetpool_id": null,
"enable_dhcp": true,
"ipv6_ra_mode": null,
"ipv6_address_mode": null,
"gateway_ip": "192.168.10.1",
"cidr": "192.168.10.0/24",
"allocation_pools": [
{
"start": "192.168.10.2",
"end": "192.168.10.254"
}
],
"host_routes": [],
"dns_nameservers": [
"10.30.0.27",
"10.30.0.28"
],
"description": "",
"service_types": [],
"tags": [],
"created_at": "2025-09-23T07:00:56Z",
"updated_at": "2025-09-23T07:00:56Z",
"revision_number": 0,
"project_id": "f33507157a634f1cac71e06a70fb558e"
}
}

Mã trạng thái​

Thành công​

MãMô tả
201 - CreatedTài nguyên đã được tạo và sẵn sàng sử dụng.

Lỗi​

MãMô tả
400 - Bad RequestNội dung request không hợp lệ.
401 - UnauthorizedCần xác thực trước khi gửi request.
403 - ForbiddenPolicy không cho phép user hiện tại thực hiện thao tác này.
404 - Not FoundKhông tìm thấy tài nguyên.
409 - ConflictThao tác xung đột với một thao tác khác trên tài nguyên.