Tạo virtual router
/v2.0/routersTạo một logical router.
Thao tác này tạo một logical router. Logical router không có interface nội bộ và không gắn với subnet nào. Bạn có thể tuỳ chọn chỉ định external gateway cho router ngay khi tạo. External gateway của router phải được gắn vào một mạng external. Mạng external có trường mở rộng router:external được đặt là true. Để chỉ định external gateway, truyền ID của mạng external vào tham số network_id của thuộc tính external_gateway_info trong request body.
Nguồn: create-router
Request
Tham số
routerobjectbắt buộcObject router.
tenant_idstringID của project sở hữu tài nguyên. Chỉ admin và user có role advsvc mới có thể chỉ định project ID khác project của mình. Bạn không thể thay đổi giá trị này qua policy uỷ quyền.
project_idstringID của project sở hữu tài nguyên. Chỉ admin và user có role advsvc mới có thể chỉ định project ID khác project của mình. Bạn không thể thay đổi giá trị này qua policy uỷ quyền.
namestringTên dễ đọc của tài nguyên. Mặc định là chuỗi rỗng.
descriptionstringMô tả dễ đọc của tài nguyên. Mặc định là chuỗi rỗng.
admin_state_upbooleanTrạng thái quản trị của tài nguyên: up (true) hoặc down (false). Mặc định là true.
external_gateway_infoobjectThông tin external gateway của router. Nếu router có external gateway, đây là dictionary gồm network_id, enable_snat và external_fixed_ips. Ngược lại là null.
network_idstringbắt buộcID mạng mà gateway của router kết nối tới.
enable_snatbooleanThuộc tính Enable Source NAT (SNAT). Mặc định là true. Để giữ nguyên giá trị thuộc tính này, đặt tuỳ chọn enable_snat_by_default trong file neutron.conf. Có hiệu lực khi extension ext-gw-mode được bật.
external_fixed_ipsarrayĐịa chỉ IP của interface external gateway của router. Dùng ip_version để tự động cấp địa chỉ IP từ bất kỳ subnet nào thuộc loại được chỉ định.
1 trường
ip_versionintegerbắt buộcbodyPhiên bản giao thức IP. Giá trị là 4 hoặc 6.
distributedbooleantrue biểu thị router phân tán. Có hiệu lực khi extension dvr được bật.
habooleantrue biểu thị router highly-available. Có hiệu lực khi extension l3-ha được bật.
service_type_idstringID của service type liên kết với router.
flavor_idstringID của flavor liên kết với router.
Request mẫu
Dùng curl
curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' -d '{
"router": {
"name": "R01",
"external_gateway_info": {
"network_id": "79cab11a-122d-43a7-9427-3575d9512413",
"enable_snat": true,
"external_fixed_ips": [
{
"ip_version": 4
}
]
}
}
}' https://api.vietnix.cloud:9696/v2.0/routers
HTTP request
POST https://api.vietnix.cloud:9696/v2.0/routers
Content-Type: application/json
X-Auth-Token: gAAAAA<...>
{
"router": {
"name": "R01",
"external_gateway_info": {
"network_id": "79cab11a-122d-43a7-9427-3575d9512413",
"enable_snat": true,
"external_fixed_ips": [
{
"ip_version": 4
}
]
}
}
}
Response
Tham số response
routerobjectbắt buộcObject router.
idstringbắt buộcID của router.
tenant_idstringbắt buộcID của project.
project_idstringbắt buộcID của project.
namestringbắt buộcTên dễ đọc của tài nguyên.
descriptionstringbắt buộcMô tả dễ đọc của tài nguyên.
admin_state_upbooleanbắt buộcTrạng thái quản trị của tài nguyên: up (true) hoặc down (false).
statusstringbắt buộcTrạng thái router.
external_gateway_infoobjectbắt buộcThông tin external gateway của router. Nếu router có external gateway, đây là dictionary gồm network_id, enable_snat và external_fixed_ips. Ngược lại là null.
network_idstringbắt buộcID mạng mà gateway của router kết nối tới.
enable_snatbooleanbắt buộcThuộc tính Enable Source NAT (SNAT). true nghĩa là Network Address Translation (NAT) được bật cho lưu lượng do các subnet gắn với router tạo ra khi gửi đến/nhận từ mạng external. false nghĩa là không áp dụng NAT cho lưu lượng đến/từ mạng external. Có hiệu lực khi extension ext-gw-mode được bật.
external_fixed_ipsarraybắt buộcĐịa chỉ IP của external gateway của router. Là danh sách địa chỉ IP. Mỗi phần tử là dictionary gồm ip_address và subnet_id.
revision_numberintegerbắt buộcRevision number của tài nguyên.
routesarraybắt buộcCấu hình extra route cho L3 router. Danh sách dictionary gồm tham số destination và nexthop. Có hiệu lực khi extension extraroute được bật.
destinationstringbắt buộcCIDR đích.
nexthopstringbắt buộcĐịa chỉ IP của next hop tương ứng với destination. Địa chỉ IP next hop phải thuộc một trong các subnet mà interface của router kết nối tới.
distributedbooleanbắt buộctrue biểu thị router phân tán. Có hiệu lực khi extension dvr được bật.
habooleanbắt buộctrue biểu thị router highly-available. Có hiệu lực khi extension l3-ha được bật.
availability_zone_hintsarraybắt buộcCác availability zone ứng viên cho router. Có hiệu lực khi extension router_availability_zone được bật. Phiên bản Virtuozzo Hybrid Infrastructure hiện tại không hỗ trợ availability zone. Response trả về availability zone mặc định hoặc null.
availability_zonesarraybắt buộcCác availability zone cho router. Có hiệu lực khi extension router_availability_zone được bật. Phiên bản Virtuozzo Hybrid Infrastructure hiện tại không hỗ trợ availability zone. Response trả về availability zone mặc định hoặc null.
service_type_idstringbắt buộcID của service type liên kết với router.
flavor_idstringbắt buộcID của flavor liên kết với router.
created_atstringbắt buộcNgày giờ tạo tài nguyên. Định dạng timestamp ISO 8601: CCYY-MM-DDThh:mm±hh. Ví dụ: 2015-08-27T09:49:58-05:00. Giá trị ±hh, nếu có, là múi giờ so với UTC. Trong ví dụ này, offset là -05:00.
updated_atstringbắt buộcNgày giờ cập nhật tài nguyên. Nếu tài nguyên chưa được cập nhật, field này là null. Định dạng timestamp ISO 8601: CCYY-MM-DDThh:mm±hh. Ví dụ: 2015-08-27T09:49:58-05:00. Giá trị ±hh, nếu có, là múi giờ so với UTC. Trong ví dụ này, offset là -05:00.
tagsarraybắt buộcDanh sách tag trên router.
conntrack_helpersarraybắt buộcCác tài nguyên conntrack helper liên kết với router. Nếu router có nhiều tài nguyên conntrack helper, field này có nhiều phần tử. Mỗi phần tử gồm netfilter conntrack helper (helper), giao thức mạng (protocol), port mạng (port).
Mã trạng thái
Thành công
| Mã | Mô tả |
|---|---|
| 201 - Created | Tài nguyên đã được tạo và sẵn sàng sử dụng. |
Lỗi
| Mã | Mô tả |
|---|---|
| 400 - Bad Request | Nội dung request không hợp lệ. |
| 401 - Unauthorized | Cần xác thực trước khi gửi request. |
Response mẫu
Response body
{
"router": {
"id": "a3b4012b-303d-404d-972f-ce7ad0ec6053",
"name": "R01",
"tenant_id": "f33507157a634f1cac71e06a70fb558e",
"admin_state_up": true,
"status": "ACTIVE",
"external_gateway_info": {
"network_id": "79cab11a-122d-43a7-9427-3575d9512413",
"external_fixed_ips": [
{
"subnet_id": "54ca4e27-7dfd-4504-a36b-8c47527f7a23",
"ip_address": "45.115.16.136"
}
],
"enable_snat": true
},
"description": "",
"availability_zones": [],
"availability_zone_hints": [],
"routes": [],
"flavor_id": null,
"tags": [],
"created_at": "2025-09-24T04:10:41Z",
"updated_at": "2025-09-24T04:10:42Z",
"revision_number": 3,
"project_id": "f33507157a634f1cac71e06a70fb558e"
}
}