Come creare e configurare una farm L4xNAT con ZAPI v1

Pubblicato da Zevenet | 16 ottobre, 2015 | Tecnici

Ciao Zen Masters, questo articolo presenta come creare e configurare una farm L4 (layer 4), un paio di backend (web server) e il guardian farm attraverso la nostra Zen Load Balancer API (ZAPI).

Profilo L4xNAT
Il profilo di farm L4xNAT consente di creare una farm L4 con prestazioni molto elevate e molte più connessioni simultanee rispetto ai core di bilanciamento del carico nel layer 7 come i profili di farm TCP, UDP o HTTP. Il miglioramento delle prestazioni 4 di questo livello contrasta la gestione avanzata del contenuto che i profili 7 del livello potevano gestire.

Inoltre, le farm L4xNAT potrebbero associare una gamma di porte, non solo una porta virtuale come viene utilizzata con altri profili di livello 7. Per poter selezionare un intervallo di porte virtuali o una porta virtuale specifica nelle farm L4xNAT, è obbligatorio selezionare un tipo di protocollo. In altri casi, la farm sarà in ascolto su tutte le porte dall'IP virtuale.

Inizializza ZAPI
Come discusso nell'ultimo articolo, è necessario abilitare l'utente zapi e impostare una chiave e una password per iniziare a utilizzare il nostro ZAPI.
Per i seguenti esempi, verranno utilizzati questi parametri:

Key: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5
Password: admin
Zen Load Balancer IP: 192.168.101.25
Zen Web Port: 444

Una volta che ZAPI è configurato ... iniziamo!

Come creare una farm L4xNAT con ZAPI
In primo luogo, è necessario creare una farm di profili L4xNAT con il comando corrispondente:

curl --tlsv1 -k -X POST -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin  -d '{"interface":"eth0","vip":"192.168.101.25","profile":"L4xNAT"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM

Verbo HTTP: POST, usato per creare farm, backend, servizi ...
Parametri JSON: interfaccia, vip e profilo (vport non è necessario nel profilo L4xNAT).
Parametri URI: farmname -> L4FARM, questo è il nome selezionato per la farm.

Una volta avviato questo comando, verrà mostrata la seguente risposta:

{
    "description" : "New farm L4FARM",
    "params" : [
        {
            "interface" : "eth0",
            "name" : "L4FARM",
            "profile" : "L4xNAT",
            "vip" : "192.168.101.25",
            "vport" : 0
        }
    ]
}

Questa risposta mostra i parametri principali della farm. Cosa significa vport: 0? Quando viene creata una farm L4xNAT, per impostazione predefinita è in ascolto su tutte le porte dall'IP virtuale e questo verrà visualizzato come 0 o *.

Come configurare una farm L4xNAT con ZAPI

Una volta creata la farm L4xNAT, sarai in grado di modificare i parametri della farm. È possibile modificare tutti i parametri, alcuni o solo uno.
Innanzitutto, otteniamo i parametri della farm con una richiesta GET:

curl --tlsv1 -k -X GET -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin  https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM

Verbo HTTP: GET, utilizzato per ottenere parametri di farm, backend, servizi ...
Parametri JSON: nessuno.
Parametri URI: farmname -> L4FARM.

Una volta avviato questo comando, verrà mostrata la seguente risposta:

{
    "backends" : [],
    "description" : "List farm L4FARM",
    "params" : [
        {
            "algorithm" : "weight",
            "fgenabled" : null,
            "fglog" : null,
            "fgscript" : null,
            "fgtimecheck" : 0,
            "nattype" : "dnat",
            "persistence" : "none",
            "protocol" : "all",
            "ttl" : 120,
            "vip" : "192.168.101.25",
            "vport" : 0
        }
    ]
}

Questa risposta mostra i parametri avanzati della farm. Questi parametri potrebbero essere modificati usando ZAPI. Cambiamo alcuni parametri:

curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin  -d '{"protocol":"tcp","nattype":"nat" ,"port":"80"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM

Verbo HTTP: PUT, utilizzato per modificare i parametri di farm, backend, servizi ...
Parametri JSON: protocollo, nattype e porta.
Parametri URI: farmname -> L4FARM.

Una volta avviato questo comando, verrà mostrata la seguente risposta:

{
    "description" : "Modify farm L4FARM",
    "params" : [
        {
            "protocol" : "tcp"
        },
        {
            "port" : "80"
        },
        {
            "nattype" : "nat"
        }
    ]
}

Se lanciamo un'altra richiesta GET, la risposta mostrerà tutti i parametri con nuove modifiche:

{
    "backends" : [],
    "description" : "List farm L4FARM",
    "params" : [
        {
            "algorithm" : "weight",
            "fgenabled" : null,
            "fglog" : null,
            "fgscript" : null,
            "fgtimecheck" : 0,
            "nattype" : "nat",
            "persistence" : "none",
            "protocol" : "tcp",
            "ttl" : 120,
            "vip" : "192.168.101.25",
            "vport" : 80
        }
    ]
}

I parametri nattype, port e protocol sono stati modificati con successo!

Come creare e modificare un back-end
Come possiamo creare e configurare un back-end della farm L4xNAT tramite ZAPI? Devi solo seguire gli stessi passi sopra usando diversi comandi con curl:

curl --tlsv1 -k -X POST -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin  -d '{"ip":"46.120.34.160","port":"80","priority":"1","weight":"1"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends

Verbo HTTP: POST, usato per creare farm, backend, servizi ...
Parametri JSON: ip, port, priority e weight (tutti i parametri sono obbligatori).
Parametri URI: farmname -> L4FARM, questo è il nome selezionato per la farm.

Una volta avviato questo comando, verrà mostrata la seguente risposta:

{
    "description" : "New backend 0",
    "params" : [
        {
            "id" : 0,
            "ip" : "46.120.34.160",
            "port" : 80,
            "priority" : 1,
            "weight" : 1
        }
    ]
}

Questa risposta mostra i parametri back-end e il suo ID.
Come possiamo modificare un backend della farm L4xNAT? Usando il verbo HTTP PUT con curl:

curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin  -d '{"ip":"46.120.101.65","port":"25","priority":"2","weight":"3"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends/0

Verbo HTTP: PUT, utilizzato per modificare i parametri di farm, backend, servizi ...
Parametri JSON: ip. porto, priorità e peso.
Parametri URI:
farmname -> L4FARM.
id backend -> 0.

Una volta avviato questo comando, verrà mostrata la seguente risposta:

{
    "description" : "Modify backend 0 in farm L4FARM",
    "params" : [
        {
            "ip" : "46.120.101.65"
        },
        {
            "weight" : "3"
        },
        {
            "priority" : "2"
        },
        {
            "port" : "25"
        }
    ]
}

Se lanciamo un'altra richiesta GET, la risposta mostrerà tutti i parametri con nuove modifiche:

{
    "backends" : [
        {
            "id" : 0,
            "ip" : "46.120.101.65",
            "port" : 25,
            "priority" : 2,
            "weight" : 3
        }
    ],
    "description" : "List farm L4FARM",
    "params" : [
        {
            "algorithm" : "weight",
            "fgenabled" : null,
            "fglog" : null,
            "fgscript" : null,
            "fgtimecheck" : 0,
            "nattype" : "nat",
            "persistence" : "none",
            "protocol" : "tcp",
            "ttl" : 120,
            "vip" : "192.168.101.25",
            "vport" : 80
        }
    ]
}

I parametri peso, priorità e porta sono cambiati con successo!

Come configurare Farm Guardian
Per chiudere, configuriamo il farm guardian della farm L4xNAT. Dobbiamo usare la seguente richiesta con curl:

curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin  -d '{"fgenabled":"true","fgscript":"check_tcp -w 10 -c 10 -H HOST -p PORT","fgtimecheck":"15","fglog":"false"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/fg

Verbo HTTP: PUT, utilizzato per modificare i parametri di farm, backend, servizi ...
Parametri JSON: fgenabled, fgscript, fgtimecheck e fglog.
Parametri URI: farmname -> L4FARM.

Una volta avviato questo comando, verrà mostrata la seguente risposta:

{
    "description" : "Modify farm L4FARM",
    "params" : [
        {
            "fglog" : "false"
        },
        {
            "fgenabled" : "true"
        },
        {
            "fgscript" : "check_tcp -w 10 -c 10 -H HOST -p PORT"
        },
        {
            "fgtimecheck" : "15"
        }
    ]
}

Cosa fanno questi parametri? Il parametro "fgenabled" abilita il guardiano della fattoria, il parametro "fgtimecheck" è il tempo tra i controlli (in secondi), "fglog" abilita i registri del guardiano della fattoria e "fgscript" è il comando da controllare.

A nome di Zen Team, speriamo davvero che questo articolo ti sia piaciuto. Ci vediamo nel prossimo!

CONDIVIDERE SU:

Blog correlati

Inserito da zenweb | 30 agosto 2022
L'assistenza sanitaria è altamente vulnerabile alle minacce alla sicurezza, proprio come qualsiasi altro settore. Al giorno d'oggi, gli attacchi informatici nel settore sanitario sono molto comuni e portano a molti rischi, in particolare i rischi per la sicurezza sono...
10 PiaceCommenti disabilitati sull'importanza dei quadri di sicurezza informatica nel settore sanitario
Inserito da zenweb | 02 agosto 2022
7 motivi ZEVENET è il miglior software di bilanciamento del carico nel 2022 La soluzione di bilanciamento del carico non è più quella di una volta. Con il miglioramento della tecnologia, anche le minacce...
58 PiaceCommenti disabilitati su 7 motivi ZEVENET è il miglior software di bilanciamento del carico nel 2022
Inserito da zenweb | 20 luglio 2022
Un centro operativo di rete (NOC) è una posizione centrale in cui i team IT di un'organizzazione monitorano le prestazioni di una rete. Il NOC fornisce server, database, spazio su disco rigido e...
53 PiaceCommenti disabilitati su Network Operations Center, Definizione e Top 4 Best Practices