Private Network (Virtual Switch)
Layanan Private Network (sebelumnya dikenal sebagai Virtual Switch atau VSwitch) memungkinkan pelanggan untuk membuat jaringan lokal murni (L2/L3 Network) yang terisolasi dari internet.
Fitur ini ideal untuk memfasilitasi komunikasi aman dan cepat antar Virtual Machine atau sistem komputasi lainnya (misalnya koneksi antara Web Server dan Database Server) tanpa mengekspos trafik keluar.
1. Membuat Private Network Baru
Alokasi jaringan Switch Virtual baru untuk akun Anda pada datacenter pilihan.
POST /api/network/private
Content-Type: application/json
Request Body:
{
"name": "Database Cluster Network",
"location_id": 1,
"cidr": 24
}
Catatan Parameter:
name(Wajib): Label/nama pengenal Private Network.location_id(Wajib): ID Datacenter.cidr(Wajib): Rentang subnet jaringan lokal (Range diizinkan:16hingga24).
Respons (201 Created):
{
"message": "Private Network sedang dibuat. Sinkronisasi dengan datacenter akan memakan waktu beberapa saat.",
"data": {
"id": 45,
"uuid": "priv-1234abcd-5678-efgh-9012-ijklmnop3456",
"name": "Database Cluster Network",
"location_id": 1,
"customer_id": 123,
"network_ip": "10.0.1.0",
"cidr": 24,
"status": "Creating",
"created_at": "2026-05-15T15:00:00Z"
}
}
[!NOTE] Aturan Validasi & Asynchronous Provisioning
- Kuota & Saldo: Pelanggan dibatasi maksimal 5 Private Network. Pelanggan juga tidak diperbolehkan memiliki saldo di bawah nol (minus) saat melakukan pembuatan.
- Asynchronous: Pembuatan jaringan fisik secara aktual dilakukan oleh sistem di latar belakang (background worker). Sesaat setelah request berhasil, status jaringan adalah
Creating. Status ini akan otomatis berubah menjadiActivesetelah sinkronisasi dengan Datacenter Proxmox selesai.
2. Melihat Daftar Private Network
Mendapatkan seluruh Virtual Switch yang dimiliki oleh pelanggan.
GET /api/network/private
Respons (200 OK):
{
"message": "Successfully retrieved private networks",
"data": [
{
"id": 45,
"uuid": "priv-1234abcd-5678-efgh-9012-ijklmnop3456",
"name": "Database Cluster Network",
"location_id": 1,
"customer_id": 123,
"network_ip": "10.0.1.0",
"cidr": 24,
"status": "ACTIVE",
"created_at": "2026-05-15T15:00:00Z"
}
]
}
3. Detail Private Network
Melihat informasi lengkap jaringan Private Network tertentu.
GET /api/network/private/{uuid}
Respons (200 OK):
{
"message": "Successfully retrieved private network detail",
"data": {
"id": 45,
"uuid": "priv-1234abcd-5678-efgh-9012-ijklmnop3456",
"name": "Database Cluster Network",
"location_id": 1,
"customer_id": 123,
"network_ip": "10.0.1.0",
"cidr": 24,
"status": "ACTIVE",
"created_at": "2026-05-15T15:00:00Z"
}
}
4. Melihat Daftar Alokasi Private IP
Menampilkan daftar alamat IP yang sudah dikeluarkan dari DHCP/Pool jaringan Private Network ini, beserta Instance yang menggunakannya.
GET /api/network/private/{uuid}/ips
Respons (200 OK):
{
"message": "Successfully retrieved private IPs",
"data": [
{
"id": 100,
"ip": "10.0.1.2",
"ip_description": "Auto-assigned to VM DB-Master",
"instance_id": 12,
"instance_type": "VM",
"pos_x": 10,
"pos_y": 20,
"is_registered": true,
"created_at": "2026-05-15T15:05:00Z"
}
]
}
5. Menugaskan (Assign) Instance ke Private Network
Menyambungkan mesin (seperti Virtual Machine) ke sakelar jaringan (Virtual Switch) ini. Sistem akan secara otomatis mengalokasikan satu Private IP yang kosong untuk antarmuka mesin tersebut.
POST /api/network/private/{uuid}/assign
Content-Type: application/json
Request Body:
{
"instance_id": 12,
"instance_type": "VM"
}
Respons (200 OK):
{
"message": "Instance berhasil ditambahkan ke Private Network. Sinkronisasi IP sedang berjalan."
}
[!IMPORTANT] Prasyarat Instance hanya dapat dihubungkan jika Private Network sudah berstatus Active.
6. Topologi Jaringan (Network Graph)
Mengambil data grafis Node dan Edge jaringan untuk memvisualisasikan bagaimana rute Private Network saling terhubung.
GET /api/network/private/{uuid}/graph
Respons (200 OK):
{
"message": "Graph data retrieved",
"data": {
"private_network_id": 45,
"nodes": [
{
"id": "node-1",
"label": "DB-Master (10.0.1.2)"
}
],
"edges": [
{
"from": "switch-45",
"to": "node-1"
}
]
}
}
7. Menghapus Private Network
Menghapus fasilitas Virtual Switch. Jaringan yang dihapus TIDAK BOLEH memiliki satu pun anggota Instance yang masih tersambung. Anda harus melepas (unassign) seluruh Instance terlebih dahulu.
DELETE /api/network/private/{uuid}
Respons (200 OK):
{
"message": "Private Network berhasil dihapus"
}
[!NOTE] Asynchronous Soft Delete Penghapusan dari database bersifat soft delete dan akan dikerjakan di latar belakang (background worker) untuk sinkronisasi pembersihan jaringan (vswitch) di level Datacenter secara aktual.
[!WARNING] Aturan Validasi Penghapusan akan ditolak (Response HTTP 400 atau 409) apabila masih terdapat Private IP yang aktif digunakan (Assigned) dalam blok subnet ini.