Vai al contenuto

Reti

Le reti sono importanti strumenti che permettono la di collegare i propri server virtuali attraverso un canale sicuro, privato e isolato in maniera semplice e astratta.

Creare una rete

Per poter connettere i propri server a una rete, è innanzitutto necessario crearne una, per fare ciò è possibile utilizzare la seguente richiesta:

Richiesta HTTP

POST /ecs/v2/networks

Risposta HTTP

{
    "status": "created",
    "network": {
        "id": 37,
        "network_id": 17,
        "name": "net000017", //nome identificativo della network
        "active": true,
        "created_at": "2024-11-19T08:12:13.884Z",
        "deactivated_at": null,
        "user": "admin" //utente a cui appartiene la network
    }
}

Visualizzare le reti

È poi possibile visualizzare tutte le reti attive con la richiesta:

Richiesta HTTP

GET /ecs/v2/networks

Risposta HTTP

{
  "status": "ok",
  "networks": [
    {
      "id": 35,
      "network_id": 15,
      "name": "net000015",
      "active": true,
      "created_at": "2024-11-15T16:03:45.822Z",
      "deactivated_at": null,
      "user": "admin"
    },
    {
      "id": 36,
      "network_id": 16,
      "name": "net000016",
      "active": true,
      "created_at": "2024-11-18T09:05:59.322Z",
      "deactivated_at": null,
      "user": "admin"
    }
  ]
}

Visulizzare una rete specifica

In alternativa per visualizzare una rete specifica è possibile utilizzare la chiamata:

Richiesta HTTP

GET /ecs/v2/networks/{name}

Risposta HTTP

{
    "status": "ok",
    "network": {
        "id": 37,
        "network_id": 17,
        "name": "net000017",
        "active": true,
        "created_at": "2024-11-19T08:12:13.884Z",
        "deactivated_at": null,
        "user": "admin"
    }
}

Rimuovere una rete

La possibilità di rimuovere una rete è abilitata esclusivamente se non sono presenti collegamenti attivi a essa. Per rimuovere uno script è possibile utilizzare la seguente chiamata API:

Richiesta HTTP

DELETE /ecs/v2/networks/net000017

Risposta HTTP

{
    "status": "no_content"
}

Potresti ricevere i seguenti errori

Status Code Messaggio Spiegazione
400 can't delete network until there are vlan attached to it impossibile rimuovere una rete fino a quando ci sono collegamenti attivi ad essa

vlans

Per connettere un server a una rete è necessario generare un vlan tra il server e la rete desiderata.

server-vlan-example.svg

La creazione del primo "collegamento" o in altre parole la creazione della prima vlan tra un server e una rete comporterà il riavvio del server.

Il riavvio sarà anche necessario per rimuovere ogni vlan presente tra una rete e un server.

Creare una vlan

Per poter utilizzare una vlan è necessario crearla utilizzando la seguente richiesta:

Richiesta HTTP

POST /ecs/v2/servers/{servername}/networks/{networkname}/vlans
{
  "vlan_id": 1, //l'id della vlan
  "pvid": true  //se la vlan è pvid dell'interfaccia su cui è ospite
}

Risposta HTTP

{
    "status": "creating",
    "action": {
        "id": 1552,
        "status": "in-progress",
        "user": "admin",
        "created_at": "2024-11-20T09:59:46.353012+00:00",
        "started_at": null,
        "completed_at": null,
        "resource": "ec200322-net000022",
        "resource_type": "network",
        "type": "add_vlan",
        "progress": 0
    }
}

Potresti ricevere i seguenti errori:

Status Code Messaggio Spiegazione
400 vlan with id {vlan_id} already exists in network '{vxlanname}' la vlan che si deridera creare già esiste
400 vlan with id {vlan_id} not in 1-4094 l'id della vlan è fuori dal range consentito

Info

La configurazione presa in esempio è la più classica e viene generata tramite pannello all'aggiunta di una nuova interfaccia.

Creare un vlan range

Nel caso si voglio creare velocemente un intervallo di vlan è disponibile la seguente richiesta:

Richiesta HTTP

POST /ecs/v2/servers/{servername}/networks/{networkname}/vlans
{
  "vlans": "1-100",
}

Risposta HTTP

{
    "status": "creating",
    "action": {
        "id": 1552,
        "status": "in-progress",
        "user": "admin",
        "created_at": "2024-11-20T09:59:46.353012+00:00",
        "started_at": null,
        "completed_at": null,
        "resource": "ec200322-net000022",
        "resource_type": "network",
        "type": "add_vlan",
        "progress": 0
    }
}

Potresti ricevere i seguenti errori:

Status Code Messaggio Spiegazione
400 when using vlans range, vlans_range field must be a string il campo 'vlans' deve essere una stringa
400 when using vlans range, must use '-' as divider il campo 'vlans' deve contenere '-'
400 invalid range format using vlans range, only one divider '-' must be inserted il campo 'vlans' deve contenere solo un '-'
400 invalid range format using vlans range, start and end must be digits nel campo 'vlans' il valore precendente e successivo ad '-' deve esse un numero
400 invalid range format using vlans range, end must be greater than start nel campo 'vlans' il valore successivo ad '-' deve essere maggiore del valore precedente
400 invalid range format using vlans range, start must be greater than 0 and less than 4093 nel campo 'vlans' il valore precedente a '-' deve essere maggiore di 0 e minore uguale di 4093
400 invalid range format using vlans range, end must be greater than 1 and less than 4094 nel campo 'vlans' il valore successivo a '-' deve essere maggiore uguale di 1 e minore uguale di 4094
400 when using vlans range, 'pvid' field is not supported quando si utilizza il campo 'vlans' il campo 'pvid' non è supportato
400 when using vlans range, 'vlan_id' field is not supported quando si utilizza il campo 'vlans' il campo 'vlan_id' non è supportato

Ottenere tutte le vlan di un server su una rete

Dopo aver creato delle vlan è possibile visualizzarle con la seguente richiesta:

Richiesta HTTP

GET /ecs/v2/servers/{servername}/networks/{networkname}/vlans

Risposta HTTP

{
    "status": "ok",
    "vlans": [
        {
            "id": 132021,
            "vlan_id": 1,
            "pvid": true,
            "status": "ok",
            "active": true,
            "created_at": "2024-11-20T09:59:46.347Z",
            "deactivated_at": null,
            "mac_address": "52:54:00:14:f9:1e",
            "network": "net000022",
            "server": "ec200322"
        },
        {
            "id": 132022,
            "vlan_id": 2,
            "pvid": false,
            "status": "ok",
            "active": true,
            "created_at": "2024-11-20T10:17:52.338Z",
            "deactivated_at": null,
            "mac_address": "52:54:00:14:f9:1e",
            "network": "net000022",
            "server": "ec200322"
        }
    ]
}

Aggiornare una vlan

Per aggiornare una vlan e definire un nuovo PVID è disponibile la seguente richiesta:

Richiesta HTTP

PATCH /ecs/v2/servers/{servername}/networks/{networkname}/vlans/{vlan_id}
{
  "pvid": true
}

Risposta HTTP

{
    "status": "updating",
    "vlan": {
        "id": 132022,
        "server": "ec200322",
        "network": "net000022",
        "vlan_id": 2,
        "status": "updating",
        "active": true,
        "created_at": "2024-11-20T10:17:52.338Z",
        "deactivated_at": null,
        "mac_address": "52:54:00:14:f9:1e",
        "pvid": true,
        "user": "admin"
    },
    "action": {
        "id": 1554,
        "status": "in-progress",
        "user": "admin",
        "created_at": "2024-11-20T10:24:57.106901+00:00",
        "started_at": null,
        "completed_at": null,
        "resource": "ec200322-net000022",
        "resource_type": "network",
        "type": "update_vlan",
        "progress": 0
    }
}

Attenzione

Una vlan deve avere come stato ok per poter essere aggiornata o rimossa

Rimuovere una vlan

Ovviamente è anche possibile rimuovere una vlan, per fare ciò è disponibile la seguente richiesta:

Richiesta HTTP

DELETE /ecs/v2/servers/{servername}/networks/{networkname}/vlans/{vlan_id}

Rimuovere un range di vlan

Allo stesso modo è possibile rimuovere un range di vlan con la seguente chiamata:

Richiesta HTTP

DELETE /ecs/v2/servers/{servername}/networks/{networkname}/vlans/{vlan_id_start}-{vlan_id_end}

Potresti ricevere i seguenti errori:

Status Code Messaggio Spiegazione
400 when using vlans range, vlans_range field must be a string il campo 'vlans' deve essere una stringa
400 when using vlans range, must use '-' as divider il campo 'vlans' deve contenere '-'
400 invalid range format using vlans range, only one divider '-' must be inserted il campo 'vlans' deve contenere solo un '-'
400 invalid range format using vlans range, start and end must be digits nel campo 'vlans' il valore precendente e successivo ad '-' deve esse un numero
400 invalid range format using vlans range, end must be greater than start nel campo 'vlans' il valore successivo ad '-' deve essere maggiore del valore precedente
400 invalid range format using vlans range, start must be greater than 0 and less than 4093 nel campo 'vlans' il valore precedente a '-' deve essere maggiore di 0 e minore uguale di 4093
400 invalid range format using vlans range, end must be greater than 1 and less than 4094 nel campo 'vlans' il valore successivo a '-' deve essere maggiore uguale di 1 e minore uguale di 4094