NAV Navbar
Logotipo
enrolar zcli

Referência do Zevenet API v4.0

ZAPI (Zevenet APplicação PROGRAMAÇÃO Interface) é a ferramenta para administradores de sistemas controlarem o comportamento do balanceador de carga do Zevenet.

É necessário ativar o usuário root zapi na interface da web antes de usá-lo, Sistema> Usuários.

Depois que o usuário ZAPI for criado, é possível enviar solicitações para o servidor HTTP. Uma solicitação de URI se parece com:

HTTP verb https://zevenet_server: 444 / zapi / v4.0 / zapi.cgi /URI_path,

onde zevenet_server é o IP em que o serviço HTTP está atendendo, a interface de gerenciamento HTTP e o URI_path define o objeto que será solicitado. Como acessar e modificar cada objeto Zevenet será definido dentro de cada seção de documentação.

A HTTP verbs aceito para o ZAPI são:

Parâmetros ZAPI

Parâmetros ZAPI

Exemplo de solicitação:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-H 'Content-Type: application/json' -d ''
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms

A PUT e assim POST as solicitações sempre precisam de quase um parâmetro, embora a chamada ZAPI não precise de nenhum parâmetro obrigatório (obrigatório). Se uma solicitação PUT ou POST for enviada sem parâmetros, a ZAPI retornará a lista de parâmetros esperados e suas possíveis opções.

Exemplo de resposta:

{
   "description" : "No parameter has been sent. Please, try with:",
   "params" : [
      {
         "name" : "profile",
         "options" : [
            "required"
         ],
         "possible_values" : [
            "http",
            "gslb",
            "l4xnat",
            "datalink"
         ]
      },
      {
         "format" : "ip_addr",
         "name" : "vip",
         "options" : [
            "required"
         ]
      },
      {
         "description" : "expects a port",
         "name" : "vport",
         "options" : [
            "required"
         ]
      },
      {
         "description" : "The farm name is required to have alphabet letters, numbers or hypens (-) only.",
         "format" : "farm_name",
         "name" : "farmname",
         "options" : [
            "required"
         ]
      }
   ]
}

Parâmetros de resposta

A resposta é uma lista de campos que descreve o parâmetro e as possíveis opções de configuração:

Descrição do parâmetro:

Campo Tipo Descrição
nome Tanga É o chave para o valor aceito. Os seguintes parâmetros são usados ​​para defini-lo.
descrição Tanga É informação sobre o valor esperado.
intervalo Tanga O parâmetro deve ter um valor numérico respeitando os limites baixo, alto ou ambos. Os valores usados ​​como limites são considerados válidos.
formato Tanga Pode ser uma pista com o formato esperado do parâmetro, pode ser uma expressão regular ou uma chave que identifica os dados.
valores possíveis Corda[] É a lista de valores possíveis que o parâmetro deve ter.
opções Corda[] Ele mostra mais configurações para ter em mente.

Lista de opções:

Campo Descrição
requeridos Esta opção indica que o parâmetro é obrigatório, tem que ser enviado no pedido.
non_blank Esta opção permite enviar um corda vazia como o valor do parâmetro. Pode ser útil não definir o parâmetro.

códigos de erro

O ZAPI pode responder um dos seguintes códigos de erro:

Erro de código breve Descrição
400 Pedido ruim Algum parâmetro de solicitação está incorreto.
401 Não autorizado Sua chave ZAPI está errada.
402 Certificado não válido O balanceador de carga precisa de um certificado válido para processar a solicitação.
403 proibido O proprietário do usuário da chave ZAPI não tem permissões para a solicitação ou o objeto usado nela.
404 Não encontrado O URI usado ou um objeto usado na chamada não existe.
405 Método não permitido O verbo HTTP não existe ou não está implementado para a chamada ZAPI atual.
406 Não aceitável Esse recurso não tem temporalidade disponível.
409 conflito A solicitação é válida, mas não pôde ser processada, a nova configuração criou um conflito com a atual. O syslog poderia oferecer mais informações.
410 Ido Este recurso foi removido.
500 Internal Server Error Ocorreu um erro no servidor.
504 Timeout gateway O tempo limite de resposta do servidor foi atingido e a solicitação não terminou seu processamento.

Log de alterações

Esta é a lista de alterações que foram incluídas em cada versão. A lista de lista de alterações em uma versão ZAPI é sempre relativa ao anterior.

API 4.0.2

Esta versão ZAPI é uma extensão da versão 4.0.1. Alguns parâmetros e URIs foram adicionados, mas nenhum deles foi removido.

Novo módulo VPN:

Adicionado GET|POST|PUT|DELETE /vpns/*

Novos parâmetros:

erroWAF, rewritelocation (adicionadas novas opções apenas para zproxy), reescrever URL, conexão fixa, política de roteamento, connection_limit:

modificada: GET|PUT /farms/<farmname>. Modificado: GET|PUT /farms/<farmname>/services/<id>.

Novas APIs para adicionar rewriteurl:

Adicionado ADD|DELETE /farms/<farmname>/service/<servicename>/rewriteurl/*

Novas APIs para adicionar regras de reescrita de cabeçalhos:

Adicionado ADD|DELETE /farms/MyHttpFarm/replacerequestheader/* Adicionado ADD|DELETE /farms/MyHttpFarm/replaceresponseheader/*

Solicitações adicionadas para gerenciar sessões estáticas (somente zproxy):

Adicionado GET|POST|DELETE /farms/<farmname>/services/<servicename>/sessions/*

Parâmetro adicionado tempo limite:

modificada: GET /monitoring/fg/<name>. Modificado: POST|PUT /monitoring/fg.

Configure vários ips e portas:

Modificado ADD|POST /system/ssh, agora aceita arrays nos parâmetros listen e port.

Configure vários ips e portas para o servidor cherokee:

Modificado ADD|POST /system/http, agora aceita arrays nos parâmetros ip e port.

Configure o certificado do servidor:

Adicionado GET|POST /system/https/certificate.

Parâmetros adicionados total_sessions e assim ttl:

modificada: GET /stats/farms/<farmname>

Parâmetro adicionado waf_assistente:

Modificado GET|POST /system/global

Novas APIs rsyslog para configurar logs para enviá-los ao servidor remoto:

Adicionado: GET|POST|DELETE /system/rsyslog.

Parâmetro adicionado track_interface:

modificada: GET|PUT /system/cluster.

API 4.0.1

Esta versão ZAPI é uma extensão da versão 4.0. Alguns parâmetros e URIs foram adicionados, mas nenhum deles foi removido.

Adicione uma solicitação para mostrar uma árvore com todos os objetos do balanceador de carga

Adicionar: GET / ids

Opção para copiar um farm

modificada: POST /farms

Adicionar parâmetros cabeçalho de resposta e assim removesponseheader e estenda o parâmetro httpverb:

Modificado GET /farms/<farmname>

Modificado PUT /farms/<farmname>

Adicionar POST /farms/<farmname>/addresponseheader|removeresponseheader

Adicionar DELETE /farms/<farmname>/addresponseheader|removeresponseheader/<n>

Adicione solicitações para gerenciar sessões estáticas:

Adicionar GET /farms/<farmname>/sessions

Adicionar POST /farms/<farmname>/sessions

Adicionar DELETE /farms/<farmname>/sessions/<session>

Novo módulo de roteamento:

Adicionado GET|POST|PUT|DELETE /routing/*

O farmguardian pode usar o alias de back-end como nome do host para verificações:

Adicionado GET|PUT /monitoring/fg*/<farmguardian>

Gerenciar arquivos para regras WAF:

Adicionado GET|PUT|DELETE /ipds/waf/files

Obtenha informações do sistema:

Adicionado: GET /system/info

Configurações globais modificadas:

Adicionado: GET|POST /system/global

Autenticação usando LDAP:

Adicionado GET|POST /rbac/services

Adicionado GET|POST /rbac/ldap*

Modificado GET|POST /rbac/users

Modificado GET|PUT /rbac/users/<user>

API 4.0

Listar um resumo dos farms e serviços agrupados por módulo:

Adicionado: /farms/modules/summary

Ações para vincular o conjunto de regras WAF com farms HTTP:

Adicionado: GET|POST|PUT|DELETE /farms/<farmname>/ipds/waf/*

modificada: GET /farms/<farm>

Mover certificados em farms HTTPS:

Adicionado: POST /farms/<farm>/certificates/<cert>/actions

Modifique as chamadas de farms relacionadas com l4xnat para suportar o novo núcleo:

modificada: GET|POST|PUT|DELETE /farms/<l4farm>

Adicionado o DHCP e assim MAC recursos nas seguintes chamadas ZAPI:

modificado: PUT /interfaces/nic/<if>

modificado: PUT /interfaces/bonding/<if>

modificado: POST /interfaces/vlan

modificado: PUT /interfaces/vlan/<if>

Renomeie o parâmetro para copiar um guardião do farm:

modificada: POST /monitoring/fg

Gerenciamento do pacote IPDS:

Adicionado: GET /ipds/package

Adicionado: POST /ipds/package/actions

Novo firewall de aplicativo da web, WAF, recurso:

Adicionado: GET|POST|PUT|DELETE /ipds/waf/*

Remova a chamada para copiar regras RBL. Agora é um parâmetro da chamada de criação:

removido: POST /ipds/rbl/<name>

modificado: POST /ipds/waf/<name>

As características reset de fábrica, procuração e assim verificar atualizações de pacotes foi adicionado:

Adicionado: POST /system/factory

Adicionado: GET /system/proxy

Adicionado: POST /system/proxy

Adicionado: GET /system/packages

Adicionar parâmetro para gerenciar os menus da GUI da web:

Adicionado: GET /rbac/menus

modificada: PUT /rbac/roles/<ROLE>

Certificados de Ativação

O certificado de ativação é a licença emitida pela Zevenet que permite o uso completo do balanceador de carga em sua versão Enterprise.

Mostrar detalhes do certificado de ativação

Mostrar detalhes do certificado de ativação

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/activation

GET /certificates/activation

Mostrar todas as informações incluídas no certificado de ativação, incluindo assinaturas, esse certificado é salvo no armazenamento de certificados. Se o certificado de ativação for excluído, o produto será desativado.

Carregar um certificado de ativação

Carregar um certificado de ativação

Exemplo de solicitação:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: text/plain'
--tcp-nodelay --data-binary @/path/to/example.pem
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/activation

POST /certificates/activation

Carregar um certificado de ativação com formato PEM, este certificado é necessário para habilitar todas as funcionalidades. Esse certificado é salvo no armazenamento de certificados, se o certificado de ativação existir no armazenamento de certificados, o certificado anterior será sobrescrito.

Exemplo de resposta:

{
   "description" : "Upload activation certificate",
   "message" : "Activation certificate uploaded",
   "success" : "true"
}

Excluir o certificado de ativação

Excluir o certificado de ativação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/activation

DELETE /certificates/activation

Exclua o certificado de ativação instalado no armazenamento de certificados. Se esse certificado for excluído, o Load Balancer será desativado.

Exemplo de resposta:

{
   "description" : "Delete activation certificate",
   "message" : "The activation certificate has been deleted",
   "success" : "true"
}

Certificados SSL

O Zevenet suporta certificados no formato PEM para usá-los com farms HTTP configurados com o listener HTTPS. Se você quiser saber mais sobre como criar pem certificados, por favor visite o seguinte artigo: GERAR CERTIFICADOS NO FORMATO PEM

Listar todos os certificados

Listar todos os certificados

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates
zcli certificate list

GET /certificates

Listar todos os certificados CSR e PEM no armazenamento de certificados, esses certificados podem ser usados ​​com farms HTTPS.

Exemplo de resposta:

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será uma matriz de objetos de certificado, cada um contendo os atributos-chave abaixo.

{
   "description" : "List all certificates",
   "params" : [
      {
         "CN" : "Zen Load Balancer",
         "creation" : "Jan 12 14:49:03 2011 GMT",
         "expiration" : "Jan  9 14:49:03 2021 GMT",
         "file" : "zencert.pem",
         "issuer" : "Zen Load Balancer",
         "type" : "Certificate"
      }
   ]
}

Parâmetros de resposta

Campo Tipo Descrição
params Objeto [] Lista de objetos de certificado.

Objeto de certificado

Campo Tipo Descrição
CN Tanga Nome comum do domínio.
criação Tanga Data de criação.
expiração Tanga Data de validade.
filete Tanga É o nome do arquivo do certificado, ID exclusivo.
emissor Tanga Autoridade certificada que assina o certificado.
tipo Tanga CSR ou certificado.

Download do Certificado

Download do Certificado

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/example.pem
zcli certificate download example.pem 

GET /certificates/<file>

Baixe um certificado instalado no armazenamento de certificados, use o nome do arquivo na solicitação para identificá-lo.

Cabeçalhos de resposta:

A resposta incluirá os cabeçalhos indicados abaixo com informações sobre o arquivo. O corpo da resposta será o conteúdo do arquivo.

HTTP/1.1 200 OK
Date: Thu, 22 Dec 2016 09:27:47 GMT
Content-Disposition: attachment; filename="example.pem"
Content-Type: application/x-download; charset=ISO-8859-1
Content-Length: 2359

Mostrar detalhes do certificado

Mostrar detalhes do certificado

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/example.pem/info
zcli certificate get example.pem

GET /certificates/<file>/info

Mostrar todas as informações incluídas em um determinado certificado no armazenamento de certificados, incluindo assinaturas, é necessário o nome do arquivo para se referir.

Exemplo de resposta:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 14346016480403539444 (0xc71749fb005a45f4)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=ES, ST=Spain, L=Spain, O=Sofintel, OU=Telecommunications, CN=Zen Load Balancer/emailAddress=zenloadbalancer-support@lists.sourceforge.net
        Validity
            Not Before: Jan 12 14:49:03 2011 GMT
            Not After : Jan  9 14:49:03 2021 GMT
        Subject: C=ES, ST=Spain, L=Spain, O=Sofintel, OU=Telecommunications, CN=Zen Load Balancer/emailAddress=zenloadbalancer-support@lists.sourceforge.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
...

Excluir um certificado

Excluir um certificado

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/example.pem
zcli certificate delete example.pem

DELETE /certificates/<file>

Exclua um certificado por nome de arquivo no armazenamento de certificados.

Exemplo de resposta:

{
   "description" : "Delete certificate",
   "message" : "The Certificate example.pem has been deleted.",
   "success" : "true"
}

Criar um certificado PEM

Criar um certificado PEM

Exemplo de solicitação:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: application/json'
-d '{"name":"host.domain.com","key":"-----BEGIN PRIVATE KEY-----\nRTQwew...",
"ca","-----BEGIN CERTIFICATE-----\nFQOEW...","intermediates":"-----BEGIN CERTIFICATE-----\nQWESw..."}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/pem
zcli certificate-pem create -name host.domain.com -key "-----BEGIN PRIVATE KEY..." -ca "-----BEGIN CERTIFICATE..." -intermediates "-----BEGIN CERTIFICATE..."
"

POST /certificates/pem

Crie um certificado PEM (arquivo PEM).

Solicitar Parâmetros

Campo Tipo Descrição Exigido
nome Tanga Nome do ID do certificado. verdadeiro
chave Tanga Nenhuma chave privada criptografada verdadeiro
ca Tanga Certificado de servidor ou certificado de cadeia completa verdadeiro
intermediários Tanga Certificados intermediários, se necessário falso

Exemplo de resposta:

{
   "description" : "Create certificate",
   "message" : "Certificate host.domain.com created",
   "success" : "true"
}

Crie um certificado CSR

Crie um certificado CSR

Exemplo de solicitação:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: application/json'
-d '{"name":"NewCSR","fqdn":"host.domain.com","division":"IT","organization":"Example Corp.",
"locality":"Madrid","state":"Madrid","country":"ES","mail":"info@domain.com"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates
zcli certificate create -name NewCSR -fqdn host.domain.com -division IT -organization 'Example Corp.' -locality Madrid -state Madrid -country ES -mail info@domain.com

POST /certificates

Crie uma solicitação de assinatura de certificado (arquivo CSR).

Solicitar Parâmetros

Campo Tipo Descrição Exigido
nome Tanga Nome do ID do certificado. verdadeiro
fqdn Tanga O nome de domínio totalmente qualificado do seu servidor. verdadeiro
divisão Tanga A divisão de sua organização manipulando o certificado. verdadeiro
organização Tanga O nome legal da sua organização. verdadeiro
localidade Tanga A cidade onde sua organização está localizada. verdadeiro
estado Tanga O estado / região onde sua organização está localizada. verdadeiro
país Tanga O código ISO de duas letras para o país em que sua organização está localizada. verdadeiro
enviar Tanga Um endereço de e-mail usado para entrar em contato com sua organização. verdadeiro

Exemplo de resposta:

{
   "description" : "Create CSR",
   "message" : "Certificate NewCSR created",
   "success" : "true"
}

Upload de um certificado

Upload de um certificado

Exemplo de solicitação:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: text/plain'
--tcp-nodelay --data-binary @/local_path/to/example.pem
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/example.pem
zcli certificate upload example.pem /local_path/to/example.pem

POST /certificates/<file>

Faça o upload de um certificado PEM para farms HTTP com o ouvinte HTTPS.

Solicitar parâmetros de URI

Requer o parâmetro --tcp-nodelaye --data-binary para carregar o arquivo no modo binário.

Campo Tipo Descrição Exigido
filete Tanga Nome do arquivo de certificado para fazer upload e salvar no armazenamento de certificados. verdadeiro

Exemplo de resposta:

{
   "description" : "Upload PEM certificate",
   "message" : "Certificate uploaded",
   "success" : "true"
}

Listar Cifras

Listar Cifras

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ciphers

GET /ciphers

Listar as cifras disponíveis que um farm HTTPS pode usar.

A Descarregamento de SSL a cifra estará disponível somente se for suportada pelo processador.

Exemplo de resposta:

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será uma matriz de objetos de certificado, cada um contendo os atributos-chave abaixo.

{
   "description" : "Get the ciphers available",
   "params" : [
      {
         "ciphers" : "all",
         "description" : "All"
      },
      {
         "ciphers" : "highsecurity",
         "description" : "High security"
      },
      {
         "ciphers" : "customsecurity",
         "description" : "Custom security"
      },
      {
         "ciphers" : "ssloffloading",
         "description" : "SSL offloading"
      }
   ]
}

Parâmetros de resposta

Campo Tipo Descrição
params Objeto [] Lista de objetos de certificado.

Objeto de certificado

Campo Tipo Descrição
cifras Tanga É usado como um identificador exclusivo.
descrição Tanga Nome amigável.

Certificados SSL Letsencrypt

Zevenet suporta a geração e renovação de certificados Letsencrypt. O certificado finalmente é um certificado ZEVENET PEM que pode ser usado com HTTPS Farms. . Se você quiser saber mais sobre como criar pem certificados, por favor visite o seguinte artigo: GERAR CERTIFICADOS NO FORMATO PEM

Mostrar configuração Letsencrypt

Mostrar configuração Letsencrypt

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz/config
zcli certificate-le-config list

GET /certificates/letsencryptz/config

Mostrar configuração Letsencrypt.

Exemplo de resposta:

A resposta será um objeto JSON com os parâmetros abaixo.

{
   "description" : "Get LetsEncrypt Config",
   "params" : {
      "email" : "test_le@zevenet.com"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
email Tanga E-mail para Letsencrypt

Modificar configuração Letsencrypt

Modificar configuração Letsencrypt

Exemplo de solicitação:

curl -k -X PUT -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"email":"test_le@zevenet.com"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz/config
zcli certificates-le-config set -email test_le@zevenet.com

PUT /certificates/letsencryptz/config

Modifique a configuração do Letsencrypt.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
email Tanga E-mail para uso como contato no Letsencrypt verdadeiro

Exemplo de resposta:

A resposta será um objeto JSON com os parâmetros abaixo.

{
   "description" : "Modify LetsEncrypt Config",
   "message" : "The Letsencrypt Config has been updated successfully.",
   "params" : {
      "email" : "test_le@zevenet.com"
   },
   "success" : "true"
}


Parâmetros de resposta

Campo Tipo Descrição
email Tanga E-mail para Letsencrypt

Listar todos os certificados Letsencrypt

Listar todos os certificados Letsencrypt

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz
zcli certificate-le list 

GET /certificates/letsencryptz

Liste todos os certificados Letsencrypt criados.

Exemplo de resposta:

A resposta será um objeto JSON com um conjunto de chaves para params. O valor de this será uma matriz de objetos de certificado letsencrypt, cada um contendo os atributos de chave abaixo.

{
   "description" : "List LetsEncrypt certificates",
   "params" : [
      {
         "CN" : "*.wildcard.test.zevenet.com",
         "creation" : "May 31 05:51:49 2021 GMT",
         "domains" : [
            "*.wildcard.test.zevenet.com"
         ],
         "expiration" : "Aug 29 05:51:49 2021 GMT",
         "file" : "/usr/local/zevenet/config/letsencrypt/acme/*.wildcard.test.zevenet.com/fullchain.cer",
         "issuer" : "US,(STAGING) Let's Encrypt,(STAGING) Artificial Apricot R3",
         "status" : "valid",
         "type" : "LE Certificate",
         "wildcard" : "true"
      },
      {
         "CN" : "*.test1.wildcard.test.zevenet.io",
         "creation" : "",
         "dnstxt" : [
            {
               "domain" : "*.test1.wildcard.test.zevenet.io",
               "txt" : "QpbOLzMrJapoQmcbrA5_dr6ciwLzNF-y3z5XR5i-I2c"
            }
         ],
         "domains" : [
            "*.test1.wildcard.test.zevenet.io"
         ],
         "expiration" : "",
         "file" : null,
         "issuer" : "",
         "status" : "not issued",
         "type" : "LE Certificate",
         "wildcard" : "true"
      }

   ]
}

Parâmetros de resposta

Campo Tipo Descrição
params Objeto [] Lista de objetos de certificado.

Objeto de certificado

Campo Tipo Descrição
CN Tanga Nome comum do domínio.
criação Tanga Data de criação.
domínios Corda[] Lista de domínios para os quais o certificado é válido.
expiração Tanga Data de validade.
dnstxt Objeto[] Lista de registros TXT DNS para cada domínio para validar se o certificado ainda não foi emitido.
filete Tanga É o nome do arquivo do certificado, ID exclusivo.
emissor Tanga Autoridade certificada que assina o certificado.
estado Tanga Situação do certificado.válido, o certificado é válido.prestes a expirar, o certificado está prestes a expirar.expirado, o certificado expirou.não emitido, o certificado está pendente para ser emitido.desconhecido, o certificado não é válido.
tipo Tanga Certificado LE.
curinga Tanga verdadeiro, o certificado é para domínios curingas. falso, o certificado é para domínios não curingas.

Objeto dnstxt

Campo Tipo Descrição
domínio Tanga Nome do domínio
txt Tanga O registro txt do DNS LetsEncrypt deve ser validado. O registro DNS TXT será acessível por _acme-challenge.domain.

Vamos criptografar certificados SSL curinga

Os certificados curinga Let's Encrypt são certificados válidos apenas para domínios curinga.

Criar um novo certificado curinga Let's Encrypt

Criar um novo certificado curinga Let's Encrypt

Exemplo de solicitação:

url -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"domains":["*.wildcard.test.zevenet.com"],"test":"true"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz-wildcard
zcli certificate-le-wildcard create -wildcard true 

POST /certificates/letsencryptz-wildcard

Crie um novo certificado curinga Let's Encrypt.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
domínios Corda[] Lista de domínios para os quais o certificado é válido. verdadeiro
teste Tanga verdadeiro, o certificado é emitido pelo LetsEncrypt Staging Server. falso, o certificado é emitido pelo LetsEncrypt Server e será válido para o ambiente de Produção. verdadeiro

Exemplo de resposta:

{
   "description" : "Create Let's Encrypt Wildcard certificate",
   "params" : [
      {
         "CN" : "*.wildcard.test.zevenet.com",
         "creation" : "",
         "dnstxt" : [
            {
               "domain" : "*.wildcard.test.zevenet.com",
               "txt" : "jtt2WBHXl0cRw33mgoHUo1hbFGLipNbeb2EtTWpRORM"
            }
         ],
         "domains" : [
            "*.wildcard.test.zevenet.com"
         ],
         "expiration" : "",
         "file" : null,
         "issuer" : "",
         "status" : "not issued",
         "type" : "LE Certificate",
         "wildcard" : "true"
      }
   ]
}

Parâmetros de resposta

Campo Tipo Descrição
params Objeto[] Lista de objetos de certificado.

Objeto de certificado

Campo Tipo Descrição
CN Tanga Nome comum do domínio.
criação Tanga Data de criação.
dnstxt Objeto[] Lista de registros TXT DNS para cada domínio para validar se o certificado ainda não foi emitido.
domínios Corda[] Lista de domínios para os quais o certificado é válido.
expiração Tanga Data de validade.
filete Tanga É o nome do arquivo do certificado, ID exclusivo.
emissor Tanga Autoridade certificada que assina o certificado.
estado Tanga Situação do certificado.válido, o certificado é válido.prestes a expirar, o certificado está prestes a expirar.expirado, o certificado expirou.não emitido, o certificado está pendente para ser emitido.desconhecido, o certificado não é válido.
tipo Tanga Certificado LE.
curinga Tanga verdadeiro, o certificado é para domínios curingas. falso, o certificado é para domínios não curingas.

Objeto dnstxt

Campo Tipo Descrição
domínio Tanga Nome do domínio
txt Tanga O registro txt do DNS LetsEncrypt deve ser validado. O registro DNS TXT será acessível por _acme-challenge.domain.

Definir uma ação em um certificado curinga Let's Encrypt

Definir uma ação em um certificado curinga Let's Encrypt

Exemplo de solicitação:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"action":"renew","force_renewal":"true","restart":"true"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz-wildcard/*.example.domain.com/actions
zcli certificate-le-wildcard renew *.example.domain.com

POST /certificates/letsencryptz-wildcard/<domain>/actions

Aplique uma ação a um certificado Let's Encrypt, consulte a tabela de parâmetros de solicitação para ações.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
ações Tanga A ação a executar, as possibilidades são: renovar, o certificado será renovado; teste os registros txt dns serão verificados via consulta dns.
força_renovação Tanga (Somente para ação “renovar”) verdadeiro, forçar a renovação do certificado mesmo que não tenha expirado, falso, o certificado será renovado se for devido a renovação (menos de 30 dias para expirar).
restart Tanga (Somente para ação “renovar”) verdadeiro, todos os farms que usam o certificado serão reiniciados. falso, nenhum farm usando o certificado será reiniciado.
dns Tanga (Somente para ação “teste”) Servidor DNS a ser usado para testar o registro DNS TXT _acme-challenge.domain.

Exemplo de resposta:

{
   "description" : "Let's Encrypt wildcard certificate actions",
   "message" : "The action renew has been performed in Let's Encrypt certificate *.test1.wildcard.test.zevenet.io.",
   "params" : {
      "action" : "renew",
      "status" : "valid"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
params Objeto [] Lista de objetos de certificado.

Objeto de certificado

Campo Tipo Descrição
açao Tanga Data de criação.
estado Tanga Situação do certificado.válido, o certificado é válido.prestes a expirar, o certificado está prestes a expirar.expirado, o certificado expirou.não emitido, o certificado está pendente para ser emitido.desconhecido, o certificado não é válido.
dnstxt Objeto[] (Somente para ação de “teste”) Lista de registros TXT de DNS para cada domínio e seus resultados de consulta de DNS por meio de um servidor DNS.

Objeto dnstxt

Campo Tipo Descrição
dns Tanga Servidor DNS a ser usado. “em branco” significa usar o configurado no sistema.
domínio Tanga Nome do domínio
recurso objeto Recurso DNS a ser verificado.
estado Tanga Resultado da verificação do registro TXT do DNS via servidor DNS. down se DNS TXT re

cabo não foi encontrado servidor DNS. up se o registro DNS TXT for encontrado.

objeto de recurso

Campo Tipo Descrição
rname Tanga Nome do recurso DNS. Let's Encrypt requer _acme-challenge
tipo Tanga Tipo de registro DNS. Let's Encrypt requer SMS
rdata Tanga Valor do registro DNS.

Excluir um certificado curinga Let's Encrypt

Excluir um certificado curinga Let's Encrypt

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz-wildcard/*.example.domain.com
zcli certificate-le-wildcard delete *.example.domain.com

DELETE /certificates/letsencryptz-wildcard/<domain>

Exclua um certificado curinga Let's Encrypt por domínio.

Exemplo de resposta:

{
   "description" : "Delete Let's Encrypt wildcard certificate",
   "message" : "Let's Encrypt wildcard Certificate example.domain.com has been deleted.",
   "success" : "true"
}

Let'sEncrypt SSL sem certificados curinga

Let'sEncrypt sem certificados curinga são certificados válidos apenas para domínios sem curinga.

Criar um novo certificado Let'sEncrypt No Wildcard

Criar um novo certificado Let's Encrypt No Wildcard

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"farmname":"lefarm","domains":["test.zevenet.com"],"test":"true","wildcard":"false"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz
zcli certificate-le create -wildcard false 

POST /certificates/letsencryptz

Crie um novo certificado curinga Let's Encrypt.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
farmname Tanga Nome do farm no qual um serviço temporal “Let's Encryptz” está configurado. true se o parâmetro vip não for enviado.
vip Tanga IP do sistema, onde está configurado um Farm temporal “Let's Encryptz”. true se o parâmetro farmname não for enviado.
domínios Corda[] Lista de domínios para os quais o certificado é válido. verdadeiro
curinga Tanga verdadeiro, o certificado é para domínios curingas. falso, o certificado é para domínios não curingas. verdadeiro
teste Tanga verdadeiro, o certificado é emitido pelo LetsEncrypt Staging Server. falso, o certificado é emitido pelo LetsEncrypt Server e será válido para o ambiente de Produção. verdadeiro

Exemplo de resposta:

{
   "description" : "Create Let's Encrypt certificate",
   "params" : {
      "CN" : "test.zevenet.com",
      "creation" : "May 31 11:05:30 2021 GMT",
      "domains" : [
         "test.zevenet.io"
      ],
      "expiration" : "Aug 29 11:05:30 2021 GMT",
      "file" : "/usr/local/zevenet/config/letsencrypt/live/test.zevenet.com/fullchain.pem",
      "issuer" : "US,(STAGING) Let's Encrypt,(STAGING) Artificial Apricot R3",
      "status" : "valid",
      "type" : "LE Certificate",
      "wildcard" : "false"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
params Objeto [] Lista de objetos de certificado.

Objeto de certificado

Campo Tipo Descrição
CN Tanga Nome comum do domínio.
criação Tanga Data de criação.
domínios Corda[] Lista de domínios para os quais o certificado é válido.
expiração Tanga Data de validade.
filete Tanga É o nome do arquivo do certificado, ID exclusivo.
emissor Tanga Autoridade certificada que assina o certificado.
estado Tanga Situação do certificado.válido, o certificado é válido.prestes a expirar, o certificado está prestes a expirar.expirado, o certificado expirou.não emitido, o certificado está pendente para ser emitido.desconhecido, o certificado não é válido.
tipo Tanga Certificado LE.
curinga Tanga verdadeiro, o certificado é para domínios curingas. falso, o certificado é para domínios não curingas.

Definir uma ação em um certificado Let's Encrypt no Wildcard

Definir uma ação em um certificado Let's Encrypt No Wildcard

Exemplo de solicitação:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"action":"renew","vip":"192.168.101.44","force_renewal":"true","restart":"true"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz/example.domain.com/actions
zcli certificate-le renew example.domain.com ( not implemented )

POST /certificates/letsencryptz/<domain>/actions

Defina uma ação em um certificado Let's Encrypt sem curinga, consulte a tabela de parâmetros de solicitação para ações.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
açao Tanga A ação a ser executada: as possibilidades são: renovar, o certificado será renovado.
farmname Tanga Nome do farm no qual um serviço temporal “Let's Encryptz” está configurado para renovar o certificado. true se o parâmetro vip não for enviado.
vip Tanga IP do sistema, onde está configurado um Farm temporal “Let's Encryptz”i para renovar o certificado. true se o parâmetro farmname não for enviado.
força_renovação Tanga verdadeiro, forçar a renovação do certificado mesmo que não tenha expirado, falso, o certificado será renovado se for devido a renovação (menos de 30 dias para expirar).
restart Tanga verdadeiro, todos os farms que usam o certificado serão reiniciados. falso, nenhum farm usando o certificado será reiniciado.

Exemplo de resposta:

{
   "description" : "Let's Encrypt certificate actions",
   "params" : {
      "CN" : "test.zevenet.com",
      "creation" : "May 31 11:35:08 2021 GMT",
      "domains" : [
         "test.zevenet.com"
      ],
      "expiration" : "Aug 29 11:35:08 2021 GMT",
      "file" : "/usr/local/zevenet/config/letsencrypt/live/test.zevenet.com/fullchain.pem",
      "issuer" : "US,(STAGING) Let's Encrypt,(STAGING) Artificial Apricot R3",
      "status" : "valid",
      "type" : "LE Certificate",
      "wildcard" : "false"
   },
   "warning" : "The following farms were been restarted: testl7farm"
}

Parâmetros de resposta

Se as fazendas foram reiniciadas, o aviso campo irá descrevê-lo.

Campo Tipo Descrição
params Objeto [] Lista de objetos de certificado.

Objeto de certificado

Campo Tipo Descrição
CN Tanga Nome comum do domínio.
criação Tanga Data de criação.
domínios Corda[] Lista de domínios para os quais o certificado é válido.
expiração Tanga Data de validade.
filete Tanga É o nome do arquivo do certificado, ID exclusivo.
emissor Tanga Autoridade certificada que assina o certificado.
estado Tanga Situação do certificado.válido, o certificado é válido.prestes a expirar, o certificado está prestes a expirar.expirado, o certificado expirou.não emitido, o certificado está pendente para ser emitido.desconhecido, o certificado não é válido.
tipo Tanga Certificado LE.
curinga Tanga verdadeiro, o certificado é para domínios curingas. falso, o certificado é para domínios não curingas.

Excluir um certificado Let's Encrypt sem curinga

Excluir um certificado Let's Encrypt sem curinga

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/certificates/letsencryptz/example.domain.com
zcli certificate-le delete example.domain.com

DELETE /certificates/letsencryptz/<domain>

Excluir um certificado Let's Encrypt por domínio.

Exemplo de resposta:

{
   "description" : "Delete Let's Encrypt certificate",
   "message" : "Let's Encrypt Certificate example.domain.com has been deleted.",
   "success" : "true"
}

Fazendas

O Zevenet pode gerenciar o tráfego de três maneiras diferentes, cada uma delas é gerenciada por um módulo diferente, balanceador de carga de serviço local ou módulo LSLB, Global Service Load Balancer ou módulo GSLB e módulo DSLB ou Datalink Service Load Balancer.

Todos os módulos funcionam com o conceito de perfil Farm, um perfil Farm é um grupo de parâmetros prontos para fazer uma ação específica com o tráfego de rede, é importante entender o que pode fazer cada perfil de farm para obter os melhores resultados de Zevenet ADC.

Listar um resumo das fazendas

Listar um resumo farms

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/modules/summary

GET /farms/modules/summary

Listar um resumo com os farms no sistema, agrupados por módulo.

Exemplo de resposta:

{
   "description" : "Farm Modules summary",
   "params" : {
      "dslb" : [],
      "gslb" : [
         {
            "name" : "dnsServ",
            "profile" : "gslb",
            "services" : []
         }
      ],
      "lslb" : [
         {
            "name" : "CatalogueWeb",
            "profile" : "http",
            "services" : [
               "technology",
               "food"
            ]
         },
         {
            "name" : "shopApp",
            "profile" : "http",
            "services" : [
               "provider",
               "clients"
            ]
         },
         {
            "name" : "VirtualApps",
            "profile" : "l4xnat"
         }
      ]
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será uma matriz de farms com seus serviços.

Objeto Agrícola:

Campo Tipo Descrição
farmname Tanga Nome descritivo da fazenda. É usado como um identificador exclusivo para farms.
perfis Tanga Tipo de perfil, os valores disponíveis do perfil são: http, https or l4xnat para o módulo LSLB, gslb para o módulo GLSB e link de dados para o módulo DSLB
serviço Corda[] É a lista de nomes de serviços que o farm contém. Este campo estará disponível em fazendas do tipo http, httpse gslb.

Listar todas as fazendas

Listar todas as fazendas

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms
zcli farm list

GET /farms

Listar todas as fazendas disponíveis

Exemplo de resposta:

{
   "description" : "List farms",
   "params" : [
      {
         "farmname" : "httpFarm",
         "profile" : "http",
         "status" : "up",
         "vip" : "192.168.101.146",
         "vport" : "81"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será uma matriz de objetos de currículo de farm, cada um dos quais contém os principais atributos abaixo.

Objeto Agrícola:

Campo Tipo Descrição
farmname Tanga Nome descritivo da fazenda. É usado como um identificador exclusivo para farms.
perfis Tanga Tipo de perfil, os valores disponíveis do perfil são: http, https or l4xnat para o módulo LSLB, gslb para o módulo GLSB e link de dados para módulo DSLB.
estado Tanga Status da fazenda. Os valores de status disponíveis são: down, a fazenda não está em execução; reinicialização necessária, o farm está ativo, mas está pendente de uma ação de reinicialização; crítico, o farm está ativo e todos os backends são inacessíveis ou de manutenção; problema, o farm está ativo e há algum back-end inacessível, mas quase um back-end está no status up; manutenção, o farm está ativo e há back-ends no status up, mas quase um back-end está no modo de manutenção; up, a fazenda está em alta e todos os backends estão funcionando bem.
vip Tanga IP virtual em que o farm está recebendo tráfego.
vport Tanga Porta virtual onde o farm está recebendo tráfego, os valores de porta disponíveis são: um número de porta para os perfis http [s], l4xnat e gslb, um grupo de portas separadas por “,” ou um intervalo de portas separado por “:” para perfis l4xnat, em l4xnat os dois valores de separador (“,” e “:”) podem ser usados ​​no mesmo campo.

Excluir uma fazenda

Excluir uma fazenda

Exemplo de solicitação:

curl --tlsv1 -k -X DELETE -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP
zcli farm delete FarmHTTP

DELETE /farms/<farmname>

Exclua um farm por meio de seu identificador de nome de farm.

Exemplo de resposta:

{
  "description" : "Delete farm FarmHTTP",
  "message" : "The Farm FarmHTTP has been deleted.",
  "success" : "true"
}

Definir uma ação em uma fazenda

Definir uma ação em uma fazenda

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"action":"stop"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmTCP/actions
zcli farm stop FarmTCP

PUT /farms/<farmname>/actions

Aplique uma ação a um farm, consulte a tabela Parâmetros de solicitação para ações.

Solicitar Parâmetros

Campo Tipo Descrição
açao Tanga A ação a executar, as possibilidades são: Pare, o farm será parado, cortando as conexões atuais e não aceitando mais conexões; começo, o farm será iniciado, executando o listener e equilibrando as novas conexões entre seus backends; restart, o farm será interrompido e iniciado automaticamente.

Exemplo de resposta:

{
  "description" : "Set a new action in FarmHTTP",
  "params" : [
     {
        "action" : "stop"
     }
  ]
}

Parâmetros de resposta

Se não houver problemas na configuração, a ZAPI retornará a ação solicitada.

Fazendas HTTP

O perfil HTTP é uma camada avançada de balanceamento de carga 7 (ou Application Delivery Controller) com propriedades especiais de proxy. Esse perfil oferece alguns recursos, como o balanceamento de carga HTTPS combinado com a aceleração de transferência de SSL. Esse perfil é adequado para serviços da Web (servidores de aplicativos da Web incluídos) e todos os protocolos de aplicativos baseados em protocolos HTTP e HTTPS, como WebDav, RDP sobre HTTP, ICA sobre HTTP etc. Para configurar este perfil de farm, um endereço IP virtual e um TCP virtual porta será necessária.

Recuperar farm por nome

Recuperar farm por nome

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/httpFarm
zcli farm get httpFarm

GET /farms/<farmname>

Mostrar todas as configurações sobre um determinado farm.

Exemplo de resposta:

{
   "description" : "List farm httpFarm",
   "ipds" : {
      "blacklists" : [
         {
            "name" : "outside",
            "status" : "down"
         }
      ],
      "dos" : [],
      "rbl" : [
         {
            "name" : "protection_ssh",
            "status" : "up"
         }
      ],
      "waf" : [
         {
            "name" : "XSSi",
            "status" : "down"
         },
         {
            "name" : "SQLi",
            "status" : "up"
         }
      ]
   },
   "params" : {
      "addheader" : [
         {
            "header" : "load-balancer: true",
            "id" : 0
         }
      ],
      "addresponseheader" : [
         {
            "header" : "Session: true",
            "id" : 0
         }
      ],
      "certlist" : [
         {
            "file" : "zencert.pem",
            "id" : 1
         }
      ],
      "cipherc" : "ALL",
      "ciphers" : "all",
      "contimeout" : 20,
      "disable_sslv2" : "true",
      "disable_sslv3" : "false",
      "disable_tlsv1" : "false",
      "disable_tlsv1_1" : "true",
      "disable_tlsv1_2" : "false",
      "errorWAF"  : "The request was rejected by the server.",
      "error414" : "Request URI is too long.",
      "error500" : "An internal server error occurred. Please try again later.",
      "error501" : "This method may not be used.",
      "error503" : "The service is not available. Please try again later.",
      "headremove" : [
         {
            "id" : 0,
            "pattern" : "^client"
         }
      ],
      "httpverb" : "MSRPCext",
      "ignore_100_continue" : "true",
      "listener" : "https",
      "logs" : "false",
      "removeresponseheader" : [
         {
            "id" : 0,
            "pattern" : "Host"
         }
      ],
      "reqtimeout" : 30,
      "restimeout" : 45,
      "resurrectime" : 10,
      "rewritelocation" : "enabled",
      "status" : "up",
      "vip" : "192.168.100.211",
      "vport" : 200
   },
   "services" : [
      {
         "backends" : [],
         "cookiedomain" : "",
         "cookieinsert" : "false",
         "cookiename" : "",
         "cookiepath" : "",
         "cookiettl" : 0,
         "farmguardian" : "check_tcp",
         "httpsb" : "false",
         "id" : "service3",
         "leastresp" : "false",
         "redirect" : "http://192.168.101.254/index.html",
         "redirect_code" : 302,
         "redirecttype" : "default",
         "sessionid" : "",
         "sts_status" : "false",
         "sts_timeout" : 0,
         "ttl" : 0,
         "urlp" : "",
         "vhost" : "",
         "pinnedconnection" : 0,
         "routingpolicy" : "ROUND_ROBIN"
      },
      {
         "backends" : [
            {
               "alias" : "http-server",
               "id" : 0,
               "ip" : "192.168.0.168",
               "port" : 80,
               "status" : "up",
               "timeout" : null,
               "weight" : null,
               "priority" : null
            }
         ],
         "cookiedomain" : "",
         "cookieinsert" : "false",
         "cookiename" : "",
         "cookiepath" : "",
         "cookiettl" : 0,
         "farmguardian" : null,
         "httpsb" : "false",
         "id" : "srv",
         "leastresp" : "false",
         "persistence" : "",
         "redirect" : "",
         "redirecttype" : "",
         "sessionid" : "",
         "sts_status" : "false",
         "sts_timeout" : 0,
         "ttl" : 0,
         "urlp" : "",
         "vhost" : "",
         "pinnedconnection" : 0,
         "routingpolicy" : "ROUND_ROBIN"
      },
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com o formato abaixo.

Objeto Agrícola:

Campo Tipo Descrição
ipds objeto Lista de regras do IPDS aplicadas a este farm.
params objeto Parâmetros da configuração do farm.
serviços Objeto[] Array com todos os serviços criados neste farm e sua configuração.

Objeto IPDS:

Campo Tipo Descrição
listas negras Objeto[] Regras de lista negra aplicadas ao farm.
dos Objeto[] Regras de DoS aplicadas ao farm.
rbl Objeto[] Regras RBL aplicadas ao farm.
WAF Objeto[] É um objeto com uma chave nome.

Lista Negra, DoS e RBL Objeto:

Campo Tipo Descrição
nome Tanga O nome da regra.
estado Tanga Status da regra.

Objeto de parâmetros para farms HTTP:

Campo Tipo Descrição
addheader Objeto[] É uma lista de objetos com os cabeçalhos a serem adicionados à solicitação do cliente.
cabeçalho de resposta (de 4.0.1) Objeto[] É uma lista de objetos com os cabeçalhos a serem adicionados à resposta de back-end.
certlist Objeto[] Apenas se o ouvinte for HTTPS. A lista de certificados está sendo usada pelo farm, eles têm no formato PEM, é permitido adicionar mais de um certificado PEM ao mesmo farm para suporte a SNI. Qualquer certificado no armazenamento de certificados pode ser usado aqui.
cipherc Tanga Apenas no ouvinte https. Esta é a lista personalizada de códigos permitidos que serão aceitos pela conexão SSL, que é uma string no mesmo formato das cifras do OpenSSL. Este atributo é usado apenas quando cifras campo tem o valor “costumesecurity”.
cifras Tanga Apenas se o ouvinte for HTTPS. Usado para construir uma lista de cifras aceitas por conexões SSL para proteger a conexão SSL. As opções são: todos ostodas as cifras serão aceitas; alta seguranca, somente cifras de alta segurança serão aceitas; segurança aduaneira, somente cifras carregadas cipherc campo será aceito; ou ssloffloading, ele devolve o trabalho de criptografia ao processo, essa cifra depende do processador.
comtimeout Sessão Por quanto tempo o farm aguardará uma conexão TCP com o back-end em segundos.
disable_sslv2 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando um protocolo de segurança SSL com a versão 2 não são permitidas; ou falso se o protocolo SSLv2 for permitido.
disable_sslv3 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando um protocolo de segurança SSL com a versão 3 não são permitidas; ou falso se o protocolo SSLv3 for permitido.
disable_tlsv1 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando o protocolo de segurança TLS com a versão 1 não são permitidas; ou falso se o protocolo TLSv1 for permitido.
disable_tlsv1_1 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando o protocolo de segurança TLS com a versão 1.1 não são permitidas; ou falso se o protocolo TLSv1.1 for permitido.
disable_tlsv1_2 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando o protocolo de segurança TLS com a versão 1.2 não são permitidas; ou falso se o protocolo TLSv1.2 for permitido.
erroWAF Tanga Mensagem personalizada para responder quando o WAF rejeita uma solicitação (de 4.0.2).
error414 Tanga Mensagem personalizada para responder com o código de erro 414 HTTP.
error500 Tanga Mensagem personalizada para responder com o código de erro 500 HTTP.
error501 Tanga Mensagem personalizada para responder com o código de erro 501 HTTP.
error503 Tanga Mensagem personalizada para responder com o código de erro 503 HTTP.
cabeça removida Objeto[] É uma lista de expressões regulares para remover cabeçalhos das solicitações do cliente. Os cabeçalhos removidos não alcançarão o backend.
httpverb Tanga Este campo indica as operações que serão permitidas para as solicitações do cliente HTTP. os valores disponíveis são: padrãoHTTPaceita solicitações HTTP GET, POST, HEAD. extendedHTTPAceita solicitações HTTP anteriores, além de PUT, DELETE. opçõesHTTP (de 4.0.1), adicione o verbo OPTIONS aos anteriores. standardWebDAVAceita solicitações HTTP anteriores mais LOCK, UNLOCK, PROPFIND, PROPPATCH, SEARCH, MKCOL, MOVE, COPY, OPÇÕES, TRACE, MKACTIVITY, CHECKOUT, MERGE, REPORT, MSextWebDAV solicitações HTTP anteriores aceitas mais SUBSCREVER, UNSUBSCRIBE, NOTIFICAR, BPROPFIND, BPROPPATCH, POLL, BMOVE, BCOPY, BDELETE, CONNECT ou MSRPCextAceita solicitações HTTP anteriores mais RPC_IN_DATA, RPC_OUT_DATA. Observe que esses valores diferenciam maiúsculas de minúsculas.
ignore_100_continue Tanga Se este campo tiver o valor verdadeiro do 100 continuar Cabeçalho HTTP será ignorado; se o valor for falso, 100 continuar cabeçalho será processado.
ouvinte Tanga Um ouvinte define como o farm vai jogar com as solicitações dos clientes. As opções são: http para protocolo não protegido ou https para protocolo seguro.
toras Tanga O farm Registra o rastreio das conexões HTTP. Se este parâmetro tiver o valor verdadeiro, os logs estão habilitados; se tem o valor falso, os logs estão desativados.
removesponseheader (de 4.0.1) Objeto[] É uma lista de expressões regulares para remover cabeçalhos da resposta de back-end. Os cabeçalhos removidos não alcançarão o cliente.
reqtimeout Sessão Por quanto tempo o farm aguardará uma solicitação do cliente em segundos.
restimeout Sessão Por quanto tempo a fazenda aguardará uma resposta dos back-ends em segundos.
ressurreição Sessão O período para sair de um servidor real caído, após esse período, o balanceador de carga verifica se o servidor real está ativo, em segundos.
regravação Objeto[] Se estiver habilitado, o farm é forçado a modificar o local: e o local de conteúdo: cabeçalhos nas respostas aos clientes com o host virtual. As opções são: habilitado, ativado inválido, inativado ou habilitado-backends somente o endereço de back-end é comparado. De 4.0.2 novas opções disponíveis: caminho ativado e assim caminho de back-ends ativado. o caminho se aplica se a diretiva RewriteUrl modificou a URL de solicitação. Esse sinalizador força a reversão da transformação de URL que RewriteUrl fez.
estado Tanga Status da fazenda. Os valores de status disponíveis são: down, a fazenda não está em execução; reinicialização necessária, o farm está ativo, mas está pendente de uma ação de reinicialização; crítico, o farm está ativo e todos os backends são inacessíveis ou de manutenção; problema, o farm está ativo e há algum back-end inacessível, mas quase um back-end está no status up; manutenção, o farm está ativo e há back-ends no status up, mas quase um back-end está no modo de manutenção; up, a fazenda está em alta e todos os backends estão funcionando bem.
vip Tanga IP do farm, onde o serviço virtual está escutando.
vport Sessão Porta da fazenda, onde o serviço virtual está escutando.

Objeto de Certificação:

Campo Tipo Descrição
filete Tanga O nome do certificado, referências ao certificado no armazenamento de certificados.
id Sessão ID do certificado, a ordem na lista, o primeiro será o usado por padrão se o cabeçalho do host virtual não corresponder ao campo CN no certificado. Usado para SNI.

Objeto de serviços para farms HTTP:

Campo Tipo Descrição
backends Objeto[] Backends definidos no serviço.
cookiedomain Tanga A inserção de cookies será executada se o domínio corresponder ao conteúdo do cookie. Habilitar cookieinsert campo é obrigatório.
cookieinsert Tanga Permite a inserção de cookies para sessões pegajosas de backends. As opções são verdadeiro, o perfil pesquisará o cookie fornecido no campo cookiename, se não existir, este cookie será adicionado, falso, nenhuma ação é tomada.
cookiename Tanga O nome do cookie (ID da sessão) será usado para identificar o processo fixo nos backends. Habilitar cookieinsert campo é obrigatório.
caminho de cookie Tanga Ele gerencia o valor do caminho do cookie para o cookie fornecido. Habilitar cookieinsert campo é obrigatório.
Cookiettl Sessão É o tempo máximo de vida de um cookie, em segundos. Habilitar cookieinsert campo é obrigatório.
farmguardian Tanga É o nome do FarmGuardian que está verificando o status do backend. O FarmGuardian estará em execução enquanto o farm estiver no status ativo.
httpsb Tanga Esse parâmetro indica ao farm que os back-ends estão definidos para usar o idioma HTTPS e, em seguida, os dados serão criptografados antes de serem enviados. verdadeiro, o perfil envia o tráfego no protocolo HTTPS para os backends, falso, o perfil envia o tráfego no protocolo HTTP para os backends.
id Tanga Nome do serviço, não pode ser modificado após a criação do serviço.
leastresp Tanga Permite o menor método de balanceamento de resposta. verdadeiro freqüentemente o perfil verifica qual servidor está demorando menos para responder e envia mais conexões a esse, o falso perfil não verifica qual back-end está demorando menos para responder.
persistência Tanga Este parâmetro define como o serviço HTTP irá gerenciar a sessão do cliente. As opções são: "" string vazia, nenhuma ação é tomada, IP a sessão de persistência é feita na base do IP do cliente, BASIC a sessão de persistência é feita na base dos cabeçalhos BASIC, URL a sessão de persistência é feita na base de um campo no URI, PARM a sessão de persistência é feita na base de um valor no final do URI, BOLINHO a sessão de persistência é feita na base de um nome de cookie, este cookie tem que ser criado pelos backends, e CABEÇALHO, a sessão de persistência é feita na base de um nome de cabeçalho.
redirecionar Tanga Ele se comporta como um back-end especial, pois a solicitação do cliente é respondida por um redirecionamento para um novo URL automaticamente. Se o redirecionamento estiver configurado, a solicitação não será encaminhada para o back-end. Em vez disso, um redirecionamento será respondido ao cliente.
redirect_code Sessão É o código HTTP retornado quando um redirecionamento é configurado. Os valores possíveis são 301, 302, 307,
redirecttype Tanga Como o redirecionamento será feito, duas opções: omissão, o URL é considerado um host absoluto e o caminho para redirecionar para anexar, o caminho de solicitação original ou URI será anexado ao host e ao caminho que você especificou com a opção padrão. E se redirecionar campo não está configurado, este campo será uma string vazia.
identificação de sessão Tanga Está disponível se persistência campo é URL, COOKIE ou HEADER, o valor do parâmetro será pesquisado pelo farm no cabeçalho HTTP e gerenciará a sessão do cliente.
sts_status Tanga Status do cabeçalho Strict Transport Security. Para ativar esse recurso, é necessário definir o ouvinte do farm como HTTPS. Os valores possíveis são: verdadeiro para habilitar a diretiva STS no serviço; ou falso para desabilitar a diretiva STS no serviço.
sts_timeout Sessão Tempo (em segundos) que o cliente lembra que o serviço só está disponível com o HTTS.
ttl Sessão Apenas com persistência. Esse valor indica o tempo máximo de vida de uma sessão do cliente inativa (duração máxima da sessão) em segundos.
urlp Tanga Permite determinar um serviço da Web em relação à URL que o cliente está solicitando por meio de um padrão de URL específico que será verificado sintaticamente. A expressão regular PCRE é suportada.
vhost Tanga Ele especifica a condição determinada pelo nome do domínio por meio do mesmo IP virtual e porta definidos por um farm HTTP. A expressão regular PCRE é suportada.
conexão fixa (da versão 4.0.2) Sessão Especifique se queremos fixar todas as conexões, (padrão: 0, não fixado). Se Pinnedconnection for definido como 1, o zproxy encaminha diretamente todos os dados sem análise ou edição.
política de roteamento (da versão 4.0.2) Tanga Especifique a política de roteamento. Todos os algoritmos são ponderados com todos os pesos definidos em cada backend. Há quatro opções: ROUND_ROBIN use o algoritmo round robin como uma política de roteamento (omissão). LAST_CONNECTIONS selecione o backend com menos conexões estabelecidas usando como proporção os pesos definidos. TEMPO DE RESPOSTA selecione o backend com o menor tempo de resposta usando como proporção os pesos definidos. PENDING_CONNECTIONS selecione o backend com menos conexões pendentes usando como proporção os pesos definidos.
reescrever URL (da versão 4.0.2) Objeto[] Ele verifica um padrão para obter strings da URL e substituí-las. Várias diretivas RewriteUrl podem ser adicionadas. Todos eles serão aplicados sequencialmente ao URL de entrada, a menos que o último sinalizador seja definido para concluir a fase de reescrita do URL.

Objeto de back-end para farms HTTP:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão Identificador de back-end dentro do serviço determinado.
ip Tanga IP do back-end onde o serviço real está sendo executado.
porta Sessão Porta do back-end onde o serviço real está sendo executado.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; manutenção, o backend está marcado como não pronto para receber conexões pelo administrador, esta opção é útil para tarefas de manutenção do backend; indefinido, o status do back-end não foi verificado.
tempo limite Sessão É o tempo máximo de espera pela resposta de back-end antes de marcá-la como indisponível. Desta vez é em segundos.
peso Sessão É o valor do peso para o servidor real atual, backend com valor de peso mais alto receberá mais conexões. Valor padrão null, peso especial não usado para este back-end. Os valores possíveis são de 1 para 9.
prioridade (de 4.0.1) Sessão (Somente quando o proxy de nova geração estiver funcionando) É o valor de prioridade para o servidor real atual, backend com valor de prioridade mais baixo estará pronto para receber conexões antes que outros com prioridade mais alta. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9
limite_conexao (de 4.0.2) Sessão (Somente quando a nova geração de proxy está funcionando) O número máximo de conexão estabelecida por backend. Com um valor de 0, não haverá um limite no back-end. O cliente receberá um erro 503 se não houver back-ends disponíveis.

Crie um novo farm

Crie um novo farm

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"farmname":"newHTTPfarm", "profile":"http", "vip":"192.168.100.23",
"vport":80}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms
zcli farm create -farmname newHTTPfarm -profile http -vip 192.168.100.23 -vport 80

POST /farms

Crie um novo farm HTTP.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
farmname Tanga Nome descritivo da fazenda. Ele é usado como um identificador exclusivo. verdadeiro
perfis Tanga O perfil da fazenda criada. Para farms HTTP é http. verdadeiro
vip Tanga IP do farm, onde o serviço virtual será executado. O IP indicado deve ser configurado no sistema e UP verdadeiro
vport Sessão Porto da fazenda, onde o serviço virtual vai ouvir. A mesma porta virtual e IP virtual não deve estar em uso por outro farm. verdadeiro
copiar de (de 4.0.1) Tanga Este parâmetro espera o nome de um farm que existe. Se esse parâmetro for enviado, o farm será copiado do farm especificado nele. o farmname, vip e assim vport os valores serão substituídos.

Exemplo de resposta:

{
   "description" : "Creating farm 'newHTTPfarm'",
   "params" : {
      "interface" : "eth0.2",
      "farmname" : "newHTTPfarm",
      "profile" : "http",
      "vip" : "192.168.100.23",
      "vport" : 80
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar uma fazenda

Modificar uma fazenda

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"contimeout":22,"newfarmname":"FarmHTTP2","vip":"178.62.126.152","vport":88,"ignore_100_continue":"true",
"restimeout":47,"resurrectime":12,"reqtimeout":32,"rewritelocation":"enabled","httpverb":"standardHTTP", "errorWAF":"Message error WAF",
"error414":"Message error 414","error500":"Message error 500","error501":"Message error 501",
"error503":"Message error 503","listener":"https","ciphers":"customsecurity","disable_sslv2":"true",
"disable_sslv3":"false","disable_tlsv1":"false","disable_tlsv1_1":"true","disable_tlsv1_2":"false", "logs":"true",
"cipherc":"TLSv1+SSLv3+HIGH:-MEDIUM:-LOW*:-ADH*"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP
zcli farm set FarmHTTP -contimeout 22 -newfarmname FarmHTTP2 -vip 178.62.126.152 -vport 88 -ignore_100_continue true -restimeout 47 -resurrectime 12 -reqtimeout 32 -rewritelocation enabled -httpverb standardHTTP -errorcode414 'Message error 414' -logs true

PUT /farms/<farmname>

Modifique parâmetros globais para um determinado farm HTTP.

Solicitar Parâmetros

Campo Tipo Descrição
comtimeout Sessão Por quanto tempo o farm aguardará uma conexão com o back-end em segundos.
restimeout Sessão Por quanto tempo a fazenda aguardará uma resposta dos back-ends em segundos.
ressurreição Sessão Esse valor em segundos é o período para sair de um back-end na lista negra e verifica se ele está ativo.
reqtimeout Sessão Por quanto tempo o farm aguardará uma solicitação do cliente em segundos.
disable_sslv2 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando um protocolo de segurança SSL com a versão 2 não são permitidas; ou falso se o protocolo SSLv2 for permitido.
disable_sslv3 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando um protocolo de segurança SSL com a versão 3 não são permitidas; ou falso se o protocolo SSLv3 for permitido.
disable_tlsv1 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando o protocolo de segurança TLS com a versão 1 não são permitidas; ou falso se o protocolo TLSv1 for permitido.
disable_tlsv1_1 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando o protocolo de segurança TLS com a versão 1.1 não são permitidas; ou falso se o protocolo TLSv1.1 for permitido.
disable_tlsv1_2 Tanga Apenas no ouvinte https. Se este campo tiver o valor verdadeiro as conexões usando o protocolo de segurança TLS com a versão 1.2 não são permitidas; ou falso se o
regravação Tanga Se estiver habilitado, o farm é forçado a modificar o local: e o local de conteúdo: cabeçalhos nas respostas aos clientes com o host virtual. As opções são: habilitado ativado; inválido inativado; ou habilitado-backends somente o endereço de back-end é comparado.
httpverb Tanga Este campo indica as operações que serão permitidas para as solicitações do cliente HTTP. os valores disponíveis são: padrãoHTTPaceita solicitações HTTP GET, POST, HEAD. extendedHTTPAceita solicitações HTTP anteriores, além de PUT, DELETE. opçõesHTTP (de 4.0.1), adicione o verbo OPTIONS aos anteriores. standardWebDAVAceita solicitações HTTP anteriores mais LOCK, UNLOCK, PROPFIND, PROPPATCH, SEARCH, MKCOL, MOVE, COPY, OPÇÕES, TRACE, MKACTIVITY, CHECKOUT, MERGE, REPORT, MSextWebDAV solicitações HTTP anteriores aceitas mais SUBSCREVER, UNSUBSCRIBE, NOTIFICAR, BPROPFIND, BPROPPATCH, POLL, BMOVE, BCOPY, BDELETE, CONNECT ou MSRPCextAceita solicitações HTTP anteriores mais RPC_IN_DATA, RPC_OUT_DATA. Observe que esses valores diferenciam maiúsculas de minúsculas.
ignore_100_continue Tanga Se este campo tiver o valor verdadeiro do 100 continuar Cabeçalho HTTP será ignorado; se o valor for falso, 100 continuar cabeçalho será processado.
erroWAF Tanga Erro de mensagem personalizada WAF (da versão 4.0.2).
error414 Tanga Erro de mensagem personalizada 414.
error500 Tanga Erro de mensagem personalizada 500.
error501 Tanga Erro de mensagem personalizada 501.
error503 Tanga Erro de mensagem personalizada 503.
ouvinte Tanga Um ouvinte define como o farm vai jogar com as solicitações dos clientes. As opções são: http para protocolo não protegido ou https para protocolo seguro.
toras Tanga O farm Registra o rastreio das conexões HTTP. Se este parâmetro tiver o valor verdadeiro, os logs estão habilitados; se tem o valor falso, os logs estão desativados.
cifras Tanga Apenas no listener com valor https. Usado para construir uma lista de cifras aceitas por conexões SSL para proteger a conexão SSL. As opções são: todos ostodas as cifras serão aceitas; alta seguranca, somente cifras de alta segurança serão aceitas; segurança aduaneira, somente cifras carregadas cipherc campo será aceito; ou ssloffloading, ele devolve o trabalho de criptografia ao processo, essa cifra depende do processador.
cipherc Tanga Apenas no ouvinte https. Esta é a lista personalizada de códigos permitidos que serão aceitos pela conexão SSL, que é uma string no mesmo formato das cifras do OpenSSL. Este atributo é usado apenas quando cifras campo tem o valor “costumesecurity”.
newfarmname Tanga O nome da nova Fazenda. A fazenda deve ser interrompida.
vport Sessão Porta da fazenda, onde o serviço virtual está escutando.
vip Tanga IP do farm, onde o serviço virtual está escutando, esse IP deve ser configurado e ativado no sistema.
nome do certificado Tanga Certificado HTTPs configurado

Exemplo de resposta:

{
   "description" : "Modify farm FarmHTTP",
   "params" : {
      "cipherc" : "TLSv1+SSLv3+HIGH:-MEDIUM:-LOW*:-ADH*",
      "ciphers" : "customsecurity",
      "contimeout" : 22,
      "disable_sslv2" : "true",
      "disable_sslv3" : "false",
      "disable_tlsv1" : "false",
      "disable_tlsv1_1" : "true",
      "disable_tlsv1_2" : "false",
      "errorWAF" : "Message error WAF",
      "error414" : "Message error 414",
      "error500" : "Message error 500",
      "error501" : "Message error 501",
      "error503" : "Message error 503",
      "httpverb" : "standardHTTP",
      "ignore_100_continue" : "true",
      "listener" : "https",
      "logs" : "true",
      "newfarmname" : "FarmHTTP",
      "reqtimeout" : 32,
      "restimeout" : 47,
      "resurrectime" : 12,
      "rewritelocation" : "enabled",
      "vip" : "178.62.126.152",
      "vport" : 88
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Adicionar um cabeçalho personalizado à solicitação

Adicionar um cabeçalho personalizado à solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"loadbalancer: true"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/addheader
zcli farm-add-request-header MyHttpFarm -header "loadbalancer: true"

POST /farms/<farmname>/addheader

O farm adicionará o cabeçalho ao backend.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga É uma string com o cabeçalho que será enviado para o backend. verdadeiro

Exemplo de resposta:

{
   "description" : "Add addheader directive.",
   "message" : "Added a new item to the addheader list",
   "status" : "needed restart",
   "success" : "true"
}

Modificar e adicionar um cabeçalho personalizado à regra de solicitação

Modificar e adicionar um cabeçalho personalizado à regra de solicitação

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"loadbalancer: true"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/addheader/id
zcli farm-add-request-header MyHttpFarm -header "loadbalancer: true"

PUT /farms/<farmname>/addheader/<id>

O farm adicionará o cabeçalho ao backend.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga É uma string com o cabeçalho que será enviado para o backend. verdadeiro

Exemplo de resposta:

{
   "description" : "Modify an addheader directive.",
   "message" : "Modified an item from the addheader list",
   "success" : "true"
}

Excluir um cabeçalho personalizado da solicitação

Excluir um cabeçalho personalizado da solicitação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/addheader/0
zcli farm-add-request-header remove MyHttpFarm 0

DELETE /farms/<farmname>/addheader/<index>

índice é o índice da matriz addheader a ser excluída.

Exemplo de resposta:

{
   "description" : "Delete addheader directive.",
   "message" : "The addheader 0 was deleted successfully",
   "status" : "needed restart",
   "success" : "true"
}

Adicionar regra para remover cabeçalhos da solicitação

Adicionar regra para remover cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/headremove
zcli farm-remove-request-header add MyHttpFarm -pattern "^client:"

POST /farms/<farmname>/headremove

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "description" : "Add headremove directive.",
   "message" : "Added a new item to the headremove list",
   "status" : "needed restart",
   "success" : "true"
}

Modificar um Remover cabeçalhos da regra de solicitação

Modificar um Remover cabeçalhos da regra de solicitação

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/headremove/id
zcli farm-remove-request-header add MyHttpFarm -pattern "^client:"

PUT /farms/<farmname>/headremove/<id>

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "description" : "Modify an headremove directive.",
   "message" : "Modified an item from the headremove list",
   "success" : "true"
}

Excluir uma regra para remover cabeçalhos da solicitação

Excluir uma regra para remover cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/headremove/0
zcli farm-remove-request-header remove MyHttpFarm 0

DELETE /farms/<farmname>/headremove/<index>

índice é o índice da matriz headremove a ser excluída.

Exemplo de resposta:

{
   "description" : "Delete headremove directive.",
   "message" : "The headremove 0 was deleted successfully",
   "status" : "needed restart",
   "success" : "true"
}

Adicionar um cabeçalho personalizado à resposta

Adicionar um cabeçalho personalizado à resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"loadbalancer: true"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/addresponseheader
zcli farm-add-response-header add MyHttpFarm -header loadbalancer:true

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/addresponseheader

O farm adicionará o cabeçalho à resposta de back-end.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga É uma string com o cabeçalho que será enviado para o backend. verdadeiro

Exemplo de resposta:

{
   "description" : "Add a header to the backend repsonse.",
   "message" : "Added a new header to the backend response",
   "status" : "needed restart",
   "success" : "true"
}

Modificar e adicionar um cabeçalho personalizado à regra de resposta

Modificar e adicionar um cabeçalho personalizado à regra de resposta

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"loadbalancer: true"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/addresponseheader/id
zcli farm-add-response-header add MyHttpFarm -header loadbalancer:true

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/addresponseheader/<id>

O farm adicionará o cabeçalho à resposta de back-end.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga É uma string com o cabeçalho que será enviado para o backend. verdadeiro

Exemplo de resposta:

{
   "description" : "Modify an addresponseheader directive.",
   "message" : "Modified an item from the addresponseheader list",
   "success" : "true"
}

Excluir um cabeçalho personalizado da resposta

Excluir um cabeçalho personalizado da resposta

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/addresponseheader/0
zcli farm-add-response-header remove torta 0

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/addresponseheader/<index>

índice é o índice da matriz addresponseheader a ser excluída.

Exemplo de resposta:

{
   "description" : "Delete a header previously added to the backend response.",
   "message" : "The header 0 was deleted successfully",
   "status" : "needed restart",
   "success" : "true"
}

Adicionar uma regra para remover cabeçalhos de resposta

Adicionar uma regra para remover cabeçalhos de resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/removeresponseheader
zcli farm-remove-response-header add MyHttpFarm -pattern "^client:"

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/removeresponseheader

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "description" : "Remove a header from the backend response.",
   "message" : "Added a patter to remove reponse headers",
   "status" : "needed restart",
   "success" : "true"
}

Modificar uma regra Remover cabeçalhos da resposta

Modificar uma regra Remover cabeçalhos da resposta

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/removeresponseheader/id
zcli farm-remove-response-header add MyHttpFarm -pattern "^client:"

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/removeresponseheader/<id>

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "description" : "Modify a remove response header directive.",
   "message" : "Modified an item from the removeresponseheader list",
   "success" : "true"
}

Excluir uma regra para remover o cabeçalho da resposta

Excluir uma regra para remover o cabeçalho da resposta

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/removeresponseheader/0
zcli farm-remove-response-header remove torta 0

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/removeresponseheader/<index>

índice é o índice da matriz removesponseheader a ser excluída.

Exemplo de resposta:

{
   "description" : "Delete a pattern to remove response headers.",
   "message" : "The pattern 0 was deleted successfully",
   "status" : "needed restart",
   "success" : "true"
}

Adicionar uma regra para reescrever cabeçalhos da solicitação

Adicionar uma regra para reescrever cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:","match":"^COOKIESESSION=(.*)","replace":"COOKIEUSER=$1"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replacerequestheader
farm-replace-request-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1`

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/replacerequestheader

Adicione regras para reescrever os cabeçalhos da solicitação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Add a Replace Header.",
   "message" : "Added a new replace header",
   "status" : "needed restart",
   "success" : "true"
}

Modificar uma regra de reescrita de cabeçalhos de solicitação

Modificar uma regra de reescrita de cabeçalhos de solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:","match":"^COOKIESESSION=(.*)","replace":"COOKIEUSER=$1"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replacerequestheader/id
farm-replace-request-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1`

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/replacerequestheader/<id>

Adicione regras para reescrever os cabeçalhos da solicitação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Modify a replaceHeader directive.",
   "message" : "Modified an item from the replaceHeader list",
   "success" : "true"
}

Excluir uma regra para reescrever cabeçalhos da solicitação

Excluir uma regra para reescrever cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replacerequestheader/0
zcli farm-replace-request-header remove MyHttpFarm 0

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/replacerequestheader/<index>

índice é o índice do array replacerequestheader a ser excluído.

Exemplo de resposta:

{
   "description" : "Delete a replace header directive.",
   "message" : "The replace header 0 was deleted successfully",
   "status" : "needed restart",
   "success" : "true"
}

Mover uma regra de reescrita de cabeçalhos de solicitação

Mover uma regra de reescrita de cabeçalhos de solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":1}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replacerequestheader/id/actions
farm-replace-request-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1`

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/replacerequestheader/<id>/actions

Mova um cabeçalho ReplaceRequest.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Sessão Nova posição da regra verdadeiro

Exemplo de resposta:

{
   "description" : "Move a replace header directive",
   "message" : "Header was moved successfully.",
   "params" : {
      "position" : "1"
   }
}

Adicionar uma regra para reescrever cabeçalhos da resposta

Adicionar uma regra para reescrever cabeçalhos da resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:","match":"^COOKIESESSION=(.*)","replace":"COOKIEUSER=$1"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replaceresponseheader
farm-replace-response-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1` -t$

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/replaceresponseheader

Adicione regras para reescrever os cabeçalhos da resposta.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Add a Replace Header.",
   "message" : "Added a new replace header",
   "status" : "needed restart",
   "success" : "true"
}

Modificar uma regra de reescrita de cabeçalhos de resposta

Modificar uma regra de reescrita de cabeçalhos de resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:","match":"^COOKIESESSION=(.*)","replace":"COOKIEUSER=$1"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replaceresponseheader/id
farm-replace-response-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1` -t$

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/replaceresponseheader/<id>

Adicione regras para reescrever os cabeçalhos da resposta.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Modify a replaceHeader directive.",
   "message" : "Modified an item from the replaceHeader list",
   "success" : "true"
}

Excluir uma regra para reescrever cabeçalhos da resposta

Excluir uma regra para reescrever cabeçalhos da resposta

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replaceresponseheader/0
zcli farm-replace-response-header remove MyHttpFarm 0

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/replaceresponseheader/<index>

índice é o índice do array replaceresponseheader a ser excluído.

Exemplo de resposta:

{
   "description" : "Delete a replace header directive.",
   "message" : "The replace header 0 was deleted successfully",
   "status" : "needed restart",
   "success" : "true"
}

Mover uma regra de reescrita de cabeçalhos de solicitação

Mover uma regra de reescrita de cabeçalhos de resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":1}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/replaceresponseheader/id/actions
farm-replace-response-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1`

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/replaceresponseheader/<id>/actions

Mova um cabeçalho ReplaceRequest.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Sessão Nova posição da regra verdadeiro

Exemplo de resposta:

{
   "description" : "Move a replace header directive",
   "message" : "Header was moved successfully.",
   "params" : {
      "position" : "1"
   }
}

Adicionar um certificado

Adicionar um certificado

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"file":"example.pem"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/httpFarm/certificates
zcli farm-certificate add httpFarm -file example.pem

POST /farms/<farmname>/certificates

Incluir um certificado PEM disponível na lista SNI ou certlist matriz de um farm HTTP com um ouvinte HTTPS. O certificado usado já deve estar carregado no sistema, consulte Certificados> Listar todos os certificados para a lista de certificados disponíveis.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
filete Tanga nome do arquivo de certificado, anteriormente o certificado deve ser carregado no sistema. verdadeiro

Exemplo de resposta:

{
   "description" : "Add certificate",
   "message" : "The certificate example.pem has been added to the SNI list of farm httpFarm, you need restart the farm to apply",
   "success" : "true",
   "status": "needed restart"
}

Mover um certificado

Mover um certificado

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":0}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/newfarm/certificates/certif.pem/actions
zcli farm-certificate move newfarm zertif.pem -position 0

POST /farms/<farmname>/certificates/<file>/actions

O URI file parâmetro é o nome do arquivo de certificado que será movido.

Esse recurso permite mover os certificados para alterar a ordem em que serão verificados.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Número inteiro É a posição que o certificado terá na configuração do farm quando a chamada ZAPI for processada verdadeiro

Exemplo de resposta:

{
    "description" : "Move service",
    "params" : {
        "position" : 0
    },
    "status" : "needed restart",
    "info" : "There\'re changes that need to be applied, stop and start farm to apply them!",
    "message" : "certif.pem was moved successfully."
}

Excluir um certificado

Excluir um certificado

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/certificates/example.pem
zcli farm-certificate remove MyHttpFarm example.pem

DELETE /farms/<farmname>/certificates/<file>

Exclua o certificado com o nome do arquivo selecionado da lista de certificações no farm HTTP com um ouvinte HTTPS. O certificado não será excluído do armazenamento de certificados.

Exemplo de resposta:

{
   "description" : "Delete farm certificate",
   "message" : "The Certificate example.pem has been deleted.",
   "success" : "true",
   "status": "needed restart"
}

Adicionar uma regra do IPDS

Adicionar uma regra do IPDS

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"china"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/httpFarm/ipds/blacklists
zcli farm-blacklist add httpFarm -name china

POST /farms/<farmname>/ipds/<dos|blacklists|rbl|waf>

Aplique uma regra de lista negra, DoS, RBL ou WAF ao farm.

Solicitar Parâmetros

Campo Tipo Descrição
nome Tanga Nome da regra do IPDS usado como um identificador exclusivo.

Exemplo de resposta:

{
   "description" : "Apply a rule to a farm",
   "message" : "Blacklist rule china was applied successful to the farm httpFarm.",
   "success" : "true"
}

Mover uma regra do IPDS

Mover uma regra do IPDS

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":2}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/waf/test_waf_ori/rules/0/actions
zcli farm-waf move httpFarm REQUEST-901-INITIALIZATION -position 2

POST /farms/<farmname>/ipds/<waf|blacklists>/<name>/actions

As regras de movimentação de IPDS estão disponíveis apenas para regras WAF e Blacklist. Neste tipo de regras é importante a ordem que vai ser verificada.

A name O parâmetro URI é o nome do conjunto de regras do conjunto que será movido.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Número inteiro É a posição que a regra IPDS terá na configuração do farm quando a chamada ZAPI for processada verdadeiro

Exemplo de resposta:

{
    "message" : "The rule was moved properly to the position 2.",
    "description" : "Move a rule in the set test_waf_ori"
}

Remover uma regra do IPDS

Remover uma regra do IPDS

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/httpFarm/ipds/blacklists/china
zcli farm-blacklist remove httpFarm china

DELETE /farms/<farmname>/ipds/<dos|blacklists|rbl|waf>/<name>

Remover uma regra de lista negra, DoS, RBL ou WAF de um determinado farm usando seu indicador nome.

Exemplo de resposta:

{
   "description" : "Delete a rule form a farm",
   "message" : "Blacklist rule china was removed successful from the farm httpFarm.",
   "success" : "true"
}

HTTP - Serviços

Os serviços em um farm de perfil HTTP fornecem um método de alternância de conteúdo para fornecer vários serviços da Web com diferentes propriedades, backends ou até mesmo métodos de persistência, através de algumas condições determinísticas usadas pelo núcleo do farm para corresponder ao serviço correto para cada solicitação do cliente. Essa definição de serviço será usada pelo farm para determinar os servidores de back-end que podem entregar a resposta ao cliente.

Recuperar serviço por ID

Recuperar serviço por ID

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/cookiefarm/services/serv
zcli farm get cookiefarm -filter services

GET /farms/<farmname>/services/<id>

Mostrar todas as configurações sobre um determinado serviço.

Exemplo de resposta:

{
   "description" : "Get services of a farm",
   "services" : {
      "backends" : [
         {
            "alias" : "http-server",
            "id" : 0,
            "ip" : "192.168.100.254",
            "port" : 80,
            "status" : "up",
            "timeout" : 20,
            "weight" : null,
            "priority" : null,
            "connection_limit" : null
         },
         {
            "alias" : "http-server",
            "id" : 0,
            "ip" : "192.168.100.254",
            "port" : 80,
            "status" : "up",
            "timeout" : null,
            "weight" : null,
            "priority" : null,
            "connection_limit" : null
         }
      ],
      "cookiedomain" : "zevenet.cpm",
      "cookieinsert" : "true",
      "cookiename" : "peasocookie",
      "cookiepath" : "/patfh",
      "cookiettl" : 20,
      "farmguardian" : "check_tcp-cut_conns",
      "httpsb" : "false",
      "id" : "serv",
      "leastresp" : "false",
      "persistence" : "COOKIE",
      "redirect" : "",
      "redirect_code" : "",
      "redirecttype" : "",
      "sessionid" : "JSESSIONID",
      "sts_status" : "false",
      "sts_timeout" : 0,
      "ttl" : 18,
      "urlp" : "(?i)^/music$",
      "vhost" : "",
      "pinnedconnection" : 0,
      "routingpolicy" : "ROUND_ROBIN",
      "replacerequestheader" : [],
      "replaceresponseheader" : [],
      "addrequestheader" : [],
      "addresponseheader" : [],
      "removerequestheader" : [],
      "removeresponseheader" : [],
      "rewriteurl" : [],
      "sessions" : []
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com o formato abaixo.

Objeto de serviços para farms HTTP:

Campo Tipo Descrição
backends Objeto[] Backends definidos no serviço.
cookiedomain Tanga A inserção de cookies será executada se o domínio corresponder ao conteúdo do cookie. Habilitar cookieinsert campo é obrigatório.
cookieinsert Tanga Permite a inserção de cookies para sessões pegajosas de backends. As opções são verdadeiro, o perfil pesquisará o cookie fornecido no campo cookiename, se não existir, este cookie será adicionado, falso, não a ação é tomada.
cookiename Tanga O nome do cookie (ID da sessão) será usado para identificar o processo fixo nos backends. Habilitar cookieinsert campo é obrigatório.
caminho de cookie Tanga Ele gerencia o valor do caminho do cookie para o cookie fornecido. Habilitar cookieinsert campo é obrigatório.
Cookiettl Sessão É o tempo máximo de vida de um cookie, em segundos. Habilitar cookieinsert campo é obrigatório.
farmguardian Tanga É o nome do FarmGuardian que está verificando o status do backend. O FarmGuardian estará em execução enquanto o farm estiver no status ativo.
httpsb Tanga Esse parâmetro indica ao farm que os back-ends estão configurados para usar HTTPS e, em seguida, os dados serão criptografados antes de serem enviados. verdadeiro, o perfil envia o tráfego no protocolo HTTPS para os backends, falso, o perfil envia o tráfego no protocolo HTTP para os backends.
id Tanga Nome do serviço, não pode ser modificado após a criação do serviço.
leastresp Tanga Permite o menor método de balanceamento de resposta. verdadeiro freqüentemente o perfil verifica qual backend está demorando menos tempo para responder para enviar mais conexões para este, falso perfil não verifica qual back-end está demorando menos para responder.
persistência Tanga Este parâmetro define como o serviço HTTP irá gerenciar a sessão do cliente. As opções são: "" string vazia, nenhuma ação é tomada, IP a sessão de persistência é feita na base do IP do cliente, BASIC a sessão de persistência é feita na base dos cabeçalhos BASIC, URL a sessão de persistência é feita na base de um campo no URI, PARM a sessão de persistência é feita na base de um valor no final do URI, BOLINHO a sessão de persistência é feita na base de um nome de cookie, este cookie tem que ser criado pelos backends, e CABEÇALHO, a sessão de persistência é feita na base de um nome de cabeçalho.
redirecionar Tanga Ele se comporta como um back-end especial, pois a solicitação do cliente é respondida por um redirecionamento para um novo URL automaticamente. Se o redirecionamento estiver configurado, a solicitação não será encaminhada para o back-end. Em vez disso, um redirecionamento será respondido ao cliente.
redirect_code Sessão É o código HTTP retornado quando um redirecionamento é configurado. Os valores possíveis são 301, 302, 307.
redirecttype Tanga Como o redirecionamento será feito, duas opções: omissão, o URL é considerado um host absoluto e o caminho para redirecionar para anexar, o caminho da solicitação original ou o URI serão anexados ao host e ao caminho que você especificou com a opção padrão. Se o redirecionar campo não está configurado, este campo será uma string vazia.
identificação de sessão Tanga Está disponível se persistência campo é URL, COOKIE ou HEADER, o valor do parâmetro será pesquisado pelo farm no cabeçalho HTTP e gerenciará a sessão do cliente.
sts_status Tanga Status do cabeçalho Strict Transport Security. Para ativar esse recurso, é necessário definir o ouvinte do farm como HTTPS. Os valores possíveis são: verdadeiro para habilitar a diretiva STS no serviço; ou falso para desabilitar a diretiva STS no serviço.
sts_timeout Sessão Tempo (em segundos) que o cliente lembra que o serviço só está disponível com HTTS.
ttl Sessão Apenas com persistência. Esse valor indica o tempo máximo de vida de uma sessão do cliente inativa (duração máxima da sessão) em segundos.
urlp Tanga Permite determinar um serviço da Web em relação à URL que o cliente está solicitando por meio de um padrão de URL específico que será verificado sintaticamente. A expressão regular PCRE é suportada.
vhost Tanga Ele especifica a condição determinada pelo nome do domínio por meio do mesmo IP virtual e porta definidos por um farm HTTP. A expressão regular PCRE é suportada.
conexão fixa (da versão 4.0.2) Sessão Especifique se queremos fixar todas as conexões, (padrão: 0, não fixado). Se Pinnedconnection for definido como 1, o zproxy encaminha diretamente todos os dados sem análise ou edição.
política de roteamento (da versão 4.0.2) Tanga Especifique a política de roteamento. Todos os algoritmos são ponderados com todos os pesos definidos em cada backend. Há quatro opções: ROUND_ROBIN use o algoritmo round robin como uma política de roteamento (padrãot). LAST_CONNECTIONS selecione o backend com menos conexões estabelecidas usando como proporção os pesos definidos. TEMPO DE RESPOSTA selecione o backend com o menor tempo de resposta usando como proporção os pesos definidos. PENDING_CONNECTIONS selecione o backend com menos conexões pendentes usando como proporção os pesos definidos.
substitua o cabeçalho da solicitação (da versão 4.0.2) Objeto[] Matriz de regras para substituir um cabeçalho na solicitação. Se várias regex corresponderem no cabeçalho, apenas a primeira será aplicada. A diretiva replaceHeader nos serviços tem prioridade sobre a do listener.
substitua o cabeçalho de resposta (da versão 4.0.2) Objeto[] Matriz de regras para substituir um cabeçalho em resposta. Se várias regex corresponderem no cabeçalho, apenas a primeira será aplicada. A diretiva replaceHeader nos serviços tem prioridade sobre a do listener.
addrequestheader (da versão 4.0.2) Objeto[] Matriz de regras para adicionar o cabeçalho definido à solicitação passada aos clientes. O cabeçalho é adicionado literalmente.
cabeçalho de resposta (da versão 4.0.2) Objeto[] Matriz de regras para Adicionar o cabeçalho definido à resposta passada aos clientes. O cabeçalho é adicionado literalmente.
remova o cabeçalho do pedido (da versão 4.0.2) Objeto[] Matriz de regras para remover determinados cabeçalhos da solicitação de saída, o cabeçalho enviado pelo back-end não é enviado ao cliente.
removesponseheader (da versão 4.0.2) Objeto[] Matriz de regras para remover determinados cabeçalhos da resposta de saída, o cabeçalho enviado pelo back-end não é enviado ao cliente.
reescrever URL (da versão 4.0.2) Objeto[] Matriz de regras para alterar os cabeçalhos Location e Content-Location nas respostas para mostrar o host virtual que foi enviado na solicitação.
sessões (da versão 4.0.2) Objeto[] Lista de sessões estáticas e dinâmicas criadas para este serviço de farm.

Objeto de back-end para farms HTTP:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão Identificador de back-end dentro do serviço determinado.
ip Tanga IP do back-end onde o serviço real está sendo executado.
porta Sessão Porta do back-end onde o serviço real está sendo executado.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; manutenção, o backend está marcado como não pronto para receber conexões pelo administrador, esta opção é útil para tarefas de manutenção do backend; indefinido, o status do back-end não foi verificado.
tempo limite Sessão É o tempo máximo aguardando a resposta de back-end antes de colocá-la como inativa. Desta vez é em segundos.
peso Sessão É o valor do peso para o servidor real atual, backend com valor de peso mais alto receberá mais conexões. Valor padrão null, peso especial não usado para este back-end. Os valores possíveis são de 1 para 9.
prioridade (de 4.0.1) Sessão (Somente quando o proxy de nova geração estiver funcionando) É o valor de prioridade para o servidor real atual, backend com valor de prioridade mais baixo estará pronto para receber conexões antes que outros com prioridade mais alta. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9.
limite_conexao (de 4.0.2) Sessão (Somente quando a nova geração de proxy está funcionando) O número máximo de conexão estabelecida por backend. Com um valor de 0, não haverá um limite no back-end. O cliente receberá um erro 503 se não houver back-ends disponíveis.

objetos replaceRequestHeader e replaceResponseHeader para serviços de farm HTTP:

Campo Tipo Descrição
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito.
partida Tanga Valor Regex para corresponder ao que queremos substituir.
substituir Tanga Valor para substituir correspondências.

objeto addRequestHeader e addResponseHeader para serviços de farm HTTP:

Campo Tipo Descrição
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito.

objeto removeRequestHeader e removeResponseHeader para serviços de farm HTTP:

Campo Tipo Descrição
de cinto de segurança Tanga É uma string com um regexp para procurar nas solicitações do cliente. Se algum cabeçalho corresponder ao padrão, o cabeçalho será removido.

objeto rewriteUrl para serviços de farm HTTP:

Campo Tipo Descrição
de cinto de segurança Tanga É uma string com um regexp para procurar na url. Se o URL corresponder ao padrão, o texto correspondente será substituído.
substituir Tanga É uma string para substituir o texto correspondente.
último Tanga Verdadeiro ou falso. Se true for definido, isso terminará a fase de reescrita de url.

objeto de sessão para serviços de farm HTTP:

Campo Tipo Descrição
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'IP' Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65;
tipo Tanga Existem dois tipos de sessões: dinâmico é uma conexão que fixa os pinos do balanceador com um back-end usando o algoritmo de balanceamento de carga do farm; estático é uma conexão que o administrador do balanceador de carga fixa com um back-end. As sessões estáticas não serão redirecionadas para outro back-end se o backup estiver inacessível.
ttl Tanga É uma sequência com o tempo da sessão para expirar. o ttl valor será nulo se a sessão não for do tipo estático.

Crie um novo serviço

Crie um novo serviço

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"id":"newserv"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP/services
zcli farm-service add FarmHTTP -id newserv

POST /farms/<farmname>/services

Crie um serviço em um determinado farm de perfil HTTP. O farm precisa de uma ação de reinicialização para aplicar essa alteração.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
id Tanga Nome do serviço que é usado como um identificador exclusivo. Apenas valores alfanuméricos são permitidos. verdadeiro

Exemplo de resposta:

{
   "description" : "New service newserv",
   "params" : {
      "id" : "newserv"
   },
   "status" : "needed restart"
}

Modificar um serviço

Modificar um serviço

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
 -d '{"vhost":"www.mywebserver.com","urlp":"^/myapp1$","persistence":"URL", "redirect_code":302,
"redirect":"http://zenloadbalancer.com","ttl":125,"sessionid":"sid","sts_status":"true","sts_timeout":21600000,
"leastresp":"true","httpsb":"true","pinnedconnection":0,"routingpolicy":"ROUND_ROBIN"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP/services/sev2
zcli farm-service set farmHTTP sev2 -vhost www.mywebserver.com -urlp ^/myapp1$ -persistence URL -redirect_code 302 -redirect http://zenloadbalancer.com -ttl 125 -sessionid sid -sts_status true -sts_timeout 21600000 -pinnedconnection 0 -routingpolicy ROUND_ROBIN

PUT /farms/<farmname>/services/<id>

Modifique os parâmetros de um serviço em um perfil HTTP. id é o identificador exclusivo do serviço que será modificado.

Solicitar Parâmetros

Campo Tipo Descrição
vhost Tanga Especifica a condição determinada pelo nome do domínio por meio do mesmo IP virtual e porta definidos por um farm de perfil HTTP. A expressão regular PCRE é suportada.
urlp Tanga Permite determinar um serviço da Web em relação à URL que o cliente está solicitando por meio de um padrão de URL específico que será verificado sintaticamente. A expressão regular PCRE é suportada.
redirecionar Tanga Ele funciona como um back-end especial, a solicitação do cliente é respondida por um redirecionamento para um novo URL automaticamente.
redirect_code Sessão É o código HTTP retornado quando um redirecionamento é configurado. Os valores possíveis são 301, 302, 307,
redirecttype Tanga Como o redirecionamento será feito, duas opções: omissão, o URL é considerado um host absoluto e o caminho para redirecionar para anexar, o caminho de solicitação original ou o URI será anexado ao host e ao caminho especificados em redirecionar campo. Esse comportamento será aplicado somente se redirecionar não é valor vazio.
cookieinsert Tanga Permite a inserção de cookies para sessões pegajosas de backends. As opções são verdadeiro, o perfil pesquisará o cookie fornecido no campo cookiename, se não existir, este cookie será adicionado, falso, o cookie de inserção está desativado.
cookiename Tanga O nome do cookie (ID da sessão) será usado para identificar o processo fixo nos backends. Habilitar cookieinsert campo é obrigatório.
cookiedomain Tanga A inserção de cookies será executada se o domínio corresponder ao conteúdo do cookie. Habilitar cookieinsert campo é obrigatório.
caminho de cookie Tanga Ele gerencia o valor do caminho do cookie para o cookie fornecido, se o URI na solicitação do cliente ou na resposta de back-end não corresponder ao caminho do cookie, o método de persistência de inserção de cookie não é aplicado. Habilitar cookieinsert campo é obrigatório.
Cookiettl Sessão É o tempo máximo de vida de um cookie, em segundos. Habilitar cookieinsert campo é obrigatório.
persistência Tanga Este parâmetro define como o serviço HTTP irá gerenciar a sessão do cliente. As opções são: "" string vazia, nenhuma ação é tomada, IP a sessão de persistência é feita na base do IP do cliente, BASIC a sessão de persistência é feita na base dos cabeçalhos BASIC, URL a sessão de persistência é feita na base de um campo no URI, PARM a sessão de persistência é feita com base em um valor separado por “;” no final do URI, BOLINHO a sessão de persistência é feita na base de um nome de cookie, este cookie tem que ser criado pelos backends, e CABEÇALHO, a sessão de persistência é feita na base de um nome de cabeçalho.
ttl Sessão Apenas com persistência. O tempo máximo de vida de uma sessão de cliente inativa (duração máxima da sessão) em segundos.
identificação de sessão Tanga Está disponível se persistência campo é URL, BOLINHO or CABEÇALHO, o valor do parâmetro será pesquisado pelo perfil no cabeçalho HTTP e gerenciará a sessão do cliente.
sts_status Tanga Status do cabeçalho Strict Transport Security. Para ativar esse recurso, é necessário definir o ouvinte do farm como HTTPS. Os valores possíveis são: verdadeiro para habilitar a diretiva STS no serviço; ou falso para desabilitar a diretiva STS no serviço.
sts_timeout Sessão Tempo (em segundos) que o cliente lembra que o serviço só está disponível com HTTS.
leastresp Tanga Permite o menor método de balanceamento de resposta. verdadeirofreqüentemente o perfil verifica qual backend está demorando menos tempo para responder para enviar mais conexões para este, falso, o perfil não verifica qual back-end está demorando menos para responder.
httpsb Tanga Indica ao farm que os servidores de back-end estão configurados para usar HTTPS, então os dados serão criptografados antes de serem enviados. verdadeiro, o perfil envia o tráfego no protocolo HTTPS para os backends, falso, o perfil envia o tráfego no protocolo HTTP para os backends.
conexão fixa (da versão 4.0.2) Sessão Especifique se queremos fixar todas as conexões, (padrão: 0, não fixado). Se Pinnedconnection for definido como 1, o zproxy encaminha diretamente todos os dados sem análise ou edição.
política de roteamento (da versão 4.0.2) Tanga Especifique a política de roteamento. Todos os algoritmos são ponderados com todos os pesos definidos em cada backend. Há quatro opções: ROUND_ROBIN use o algoritmo round robin como uma política de roteamento (omissão). LAST_CONNECTIONS selecione o backend com menos conexões estabelecidas usando como proporção os pesos definidos. TEMPO DE RESPOSTA selecione o backend com o menor tempo de resposta usando como proporção os pesos definidos. PENDING_CONNECTIONS selecione o backend com menos conexões pendentes usando como proporção os pesos definidos.
reescrever localização (da versão 4.0.2) Tanga Se estiver habilitado, o farm é forçado a modificar o local: e o local de conteúdo: cabeçalhos nas respostas aos clientes com o host virtual. As opções são: habilitado, ativado inválido, inativado ou habilitado-backends apenas o endereço de back-end é comparado. Outras opções disponíveis: caminho ativado e assim caminho de back-ends ativado. o caminho se aplica se a diretiva RewriteUrl modificou a URL de solicitação. Esse sinalizador força a reversão da transformação de URL que RewriteUrl fez.

Exemplo de resposta:

{
   "description" : "Modify service newsrv in farm newHTTPfarm",
   "info" : "There're changes that need to be applied, stop and start farm to apply them!",
   "params" : {
      "backends" : [],
      "cookiedomain" : "",
      "cookieinsert" : "false",
      "cookiename" : "",
      "cookiepath" : "",
      "cookiettl" : 0,
      "httpsb" : "true",
      "id" : "newsrv",
      "leastresp" : "true",
      "persistence" : "",
      "redirect" : "http://zenloadbalancer.com",
      "redirect_code" : 302,
      "redirecttype" : "default",
      "sessionid" : "sid",
      "sts_status" : "true",
      "sts_timeout" : 21600000,
      "ttl" : 125,
      "urlp" : "^/myapp1$",
      "vhost" : "www.mywebserver.com",
      "pinnedconnection" : 0,
      "routingpolicy" : "ROUND_ROBIN"
   },
   "status" : "needed restart"
}

Parâmetros de Resposta

A resposta será um JSON com parâmetros solicitados atualizados e estado campo com o status atual do farm. Se for necessário executar uma ação de reinicialização para aplicar as alterações do farm, o valor será reinicialização necessária.

Adicionar FarmGuardian

Adicionar FarmGuardian

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"check_tcp-cut_conns"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP/services/service1/fg
zcli farm-service-farmguardian add FarmHTTP service1 -name check_tcp-cut_conns

POST /farms/<farmname>/services/<id>/fg

Aplique um FarmGuardian a um serviço.

O parâmetro URI é o identificador exclusivo do serviço.

Solicitar Parâmetros

Campo Tipo Descrição
nome Tanga Identificador exclusivo FarmGuardian. Os FarmGuardians são criados e modificados na seção de monitoramento.

Exemplo de resposta:

{
   "description" : "Add the farm guardian check_tcp-cut_conns to the service service1 in the farm FarmHTTP",
   "message" : "Success, The farm guardian check_tcp-cut_conns was added to the service service1 in the farm FarmHTTP"
}

Remover FarmGuardian

Remover FarmGuardian

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP/service/service1/fg/check_tcp-cut_conns
zcli farm-service-farmguardian remove FarmHTTP service1 check_tcp-cut_conns

DELETE /farms/<farmname>/services/<id>/fg/<name>

Remova o FarmGuardian de um serviço em um farm.

Exemplo de resposta:

{
   "description" : "Remove the farm guardian check_tcp-cut_conns from the service service1 in the farm FarmHTTP",
   "message" : "Sucess, check_tcp-cut_conns was removed from the service service1 in the farm FarmHTTP"
}

Mover serviços

Mover serviços

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":0}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP/services/service1/actions
zcli farm-service move FarmHTTP service1 -position 0

POST /farms/<farmname>/services/<id>/actions

Essa ação move o serviço especificado para Cima ou para Baixo na Lista de Serviços, essa opção é útil se for necessário alterar a ordem de prioridade, observe que os serviços são avaliados na mesma ordem mostrada. essa ação reinicia o farm automaticamente.

id é o identificador exclusivo do serviço que será modificado.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Sessão Posição onde será o serviço. A primeira posição tem o índice 0. verdadeiro

Exemplo de resposta:

{
   "description" : "Move service",
   "message" : "service1 was moved successful.",
   "params" : {
      "position" : 0
   }
}

Excluir um serviço

Excluir um serviço

Exemplo de solicitação:

curl -k -X DELETE -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP/services/service1
zcli farm-service remove FarmHTTP service1

DELETE /farms/<farmname>/services/<id>

Exclua um determinado serviço de um perfil HTTP. id é o identificador exclusivo do serviço que será excluído.

Exemplo de resposta:

{
  "description" : "Delete service service1 in farm FarmHTTP",
  "message" : "The service service1 in farm FarmHTTP has been deleted.",
  "success" : "true",
  "status": "needed restart"
}

Adicionar uma regra para reescrever cabeçalhos da solicitação

Adicionar uma regra para reescrever cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:", "match":"^COOKIESESSION=(.*)", "replace":"COOKIEUSER=$1`"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replacerequestheader
zcli farm-service-replacerequestheader add farm1 -header "^Cookie:" -match "^COOKIESESSION=(.*)" -replace "COOKIEUSER=$1`"

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/service/<servicename>/replacerequestheader

Adicione regras para reescrever os cabeçalhos da solicitação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Add a Replace Header.",
   "message" : "Added a new replace header"
}

Modificar uma regra de reescrita de cabeçalhos de solicitação

Modificar uma regra de reescrita de cabeçalhos de solicitação

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:", "match":"^COOKIESESSION=(.*)", "replace":"COOKIEUSER=$1`"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replacerequestheader/id
zcli farm-service-replacerequestheader add farm1 -header "^Cookie:" -match "^COOKIESESSION=(.*)" -replace "COOKIEUSER=$1`"

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/service/<servicename>/replacerequestheader/<id>

Modifique uma regra de reescrever cabeçalhos da solicitação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Modify replaceHeader directive.",
   "message" : "Modified an item from the ReplaceHeader list",
   "success" : "true"
}
Modificar uma regra de reescrita de cabeçalhos de solicitação

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:", "match":"^COOKIESESSION=(.*)", "replace":"COOKIEUSER=$1`"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replacerequestheader/id
zcli farm-service-replacerequestheader add farm1 -header "^Cookie:" -match "^COOKIESESSION=(.*)" -replace "COOKIEUSER=$1`"

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/service/<servicename>/replacerequestheader/<id>

Modifique uma regra de reescrever cabeçalhos da solicitação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Modify replaceHeader directive.",
   "message" : "Modified an item from the ReplaceHeader list",
   "success" : "true"
}

Excluir uma regra para reescrever cabeçalhos da solicitação

Excluir uma regra para reescrever cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replacerequestheader/Index
zcli farm-service-replacerequestheader remove MyHttpFarm MyService Index

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/service/<servicename>/replacerequestheader/<index>

índice é o índice do array replacerequestheader a ser excluído.

Exemplo de resposta:

{
   "description" : "Add a Replace Header.",
   "message" : "Added a new replace header",
   "success" : "true"
}

Adicionar uma regra para reescrever cabeçalhos da resposta

Adicionar uma regra para reescrever cabeçalhos da resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:", "match":"^COOKIESESSION=(.*)", "replace":"COOKIEUSER=$1`"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replaceresponseheader
zcli farm-service-replaceresponseheader add farm1 -header "^Cookie:" -match "^COOKIESESSION=(.*)" -replace "COOKIEUSER=$1`"

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/service/<servicename>/replaceresponseheader

Adicione regras para reescrever os cabeçalhos da resposta.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Add a Replace Header.",
   "message" : "Added a new replace header",
   "success" : "true"
}

Mover uma regra de reescrita de cabeçalhos de solicitação

Mover uma regra de reescrita de cabeçalhos de solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":1}'
https://<zevenet_server>:444/zapi/v4.0/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replacerequestheader/id/actions
farm-replace-response-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1`

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/services/<service>/replacerequestheader/<id>/actions

Mova um cabeçalho ReplaceRequest.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Sessão Nova posição da regra verdadeiro

Exemplo de resposta:

{
   "description" : "Move a replace header directive",
   "message" : "Header was moved successfully.",
   "params" : {
      "position" : "1"
   }
}

Modificar uma regra de reescrita de cabeçalhos de resposta

Modificar uma regra de reescrita de cabeçalhos de resposta

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"^Cookie:", "match":"^COOKIESESSION=(.*)", "replace":"COOKIEUSER=$1`"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replaceresponseheader/id
zcli farm-service-replaceresponseheader add farm1 -header "^Cookie:" -match "^COOKIESESSION=(.*)" -replace "COOKIEUSER=$1`"

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/service/<servicename>/replaceresponseheader/<id>

Adicione regras para reescrever os cabeçalhos da resposta.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro
partida Tanga Valor Regex para corresponder ao que queremos substituir verdadeiro
substituir Tanga Valor para substituir correspondências verdadeiro

Exemplo de resposta:

{
   "description" : "Modify a replaceHeader directive.",
   "message" : "Modified an item from the replaceHeader list",
   "success" : "true"
}

Excluir uma regra para reescrever cabeçalhos da resposta

Excluir uma regra para reescrever cabeçalhos da resposta

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replaceresponseheader/Index
zcli farm-service-replaceresponseheader remove MyHttpFarm MyService Index

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/service/<servicename>/replaceresponseheader/<index>

índice é o índice do array replaceresponseheader a ser excluído.

Exemplo de resposta:

{
   "description" : "Delete a replace header directive.",
   "message" : "The replace header <index> was deleted successfully"
}

Mover uma regra de reescrita de cabeçalhos de resposta

Mover uma regra de reescrita de cabeçalhos de resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":1}'
https://<zevenet_server>:444/zapi/v4.0/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/replaceresponseheader/id/actions
farm-replace-response-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1`

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/services/<service>/replaceresponseheader/<id>/actions

Mova um cabeçalho ReplaceRequest.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Sessão Nova posição da regra verdadeiro

Exemplo de resposta:

{
   "description" : "Move a replace header directive",
   "message" : "Header was moved successfully.",
   "params" : {
      "position" : "1"
   }
}

Adicionar uma regra para adicionar um cabeçalho à solicitação

Adicionar uma regra para adicionar um cabeçalho à solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"header: value"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/addrequestheader
farm-service-addrequestheader add farm1 -header "header: value"

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/addrequestheader

Adicione regras para reescrever os cabeçalhos da solicitação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro

Exemplo de resposta:

{
   "description" : "Add a AddHeader.",
   "message" : "Added a new add request header",
   "success" : "true"
}

Modificar um Adicionar um cabeçalho à regra de solicitação

Modificar um Adicionar um cabeçalho à regra de solicitação

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"header: value"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/addrequestheader/id
farm-service-addrequestheader add farm1 -header "header: value"

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/addrequestheader/<id>

Adicione regras para reescrever os cabeçalhos da solicitação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro

Exemplo de resposta:

{
   "description" : "Add a AddHeader.",
   "message" : "Added a new add request header",
   "success" : "true"
}

Excluir uma regra para adicionar um cabeçalho à solicitação

Excluir uma regra para adicionar um cabeçalho à solicitação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/addrequestheader/Index
zcli farm-service-addrequestheader remove MyHttpFarm MyService Index

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/addrequestheader/<index>

índice é o índice do array replacerequestheader a ser excluído.

Exemplo de resposta:

{
   "message": "The add request header <index> has been deleted successfully"
}

Adicionar uma regra para adicionar um cabeçalho à resposta

Adicionar uma regra para adicionar um cabeçalho à resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"header: value"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/addresponseheader
zcli farm-service-addresponseheader add farm1 -header "header: value"

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/addresponseheader

Adicione regras para reescrever os cabeçalhos da resposta.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro

Exemplo de resposta:

{
   "description" : "Add a AddHeader.",
   "message" : "Added a new add request header",
   "success" : "true"
}

Modificar um Adicionar um cabeçalho à regra de resposta

Modificar um Adicionar um cabeçalho à regra de resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"header":"header: value"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/addresponseheader/id
zcli farm-service-addresponseheader add farm1 -header "header: value"

Esta chamada está disponível na versão 4.0.2

PUT /farms/<farmname>/addresponseheader/<id>

Adicione regras para reescrever os cabeçalhos da resposta.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cabeçalho Tanga Regex com o nome do cabeçalho a ser reescrito verdadeiro

Exemplo de resposta:

{
   "description" : "Modify an addheader directive.",
   "message" : "Modified an item from the addheader list",
   "success" : "true"
}


Excluir uma regra para adicionar um cabeçalho à resposta

Excluir uma regra para adicionar um cabeçalho à resposta

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/addresponseheader/Index
zcli farm-service-addresponseheader remove MyHttpFarm MyService Index

Esta chamada está disponível na versão 4.0.2

DELETE /farms/<farmname>/addrequestheader/<index>

índice é o índice do array replaceresponseheader a ser excluído.

Exemplo de resposta:

{
   "message": "The add response header 0 has been deleted successfully"
}

Adicionar regra para remover cabeçalhos da solicitação

Adicionar regra para remover cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/removerequestheader
zcli farm-service-removerequestheader add MyHttpFarm -pattern "^client:""

POST /farms/<farmname>/service/<servicename>/removerequestheader

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "message": "Added a new remove request header"
}

Modificar regra para remover cabeçalhos da solicitação

Modificar regra para remover cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/removerequestheader/id
zcli farm-service-removerequestheader add MyHttpFarm -pattern "^client:""

PUT /farms/<farmname>/service/<servicename>/removerequestheader/<id>

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "description" : "Modify RemoveResponseHeader directive.",
   "message" : "Modify an item from the removeresponseheader list",
   "success" : "true"
}

Excluir uma regra para remover cabeçalhos da solicitação

Excluir uma regra para remover cabeçalhos da solicitação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/removerequestheader/Index
zcli farm-remove-request-header remove MyHttpFarm Service Index

DELETE /farms/<farmname>/service/<service0>/removerequestheader/<index>

índice é o índice da matriz removerequestheader a ser excluída.

Exemplo de resposta:

{
   "message": "The remove request header <index> has been deleted successfully"
}


Adicionar regra para remover cabeçalhos da resposta

Adicionar regra para remover cabeçalhos da resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/removeresponseheader
zcli farm-service-removeresponseheader add MyHttpFarm -pattern "^client:""

POST /farms/<farmname>/service/<servicename>/removeresponseheader

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "message": "Added a new remove response header"
}

Modificar um Remover cabeçalhos da regra de resposta

Modificar um Remover cabeçalhos da regra de resposta

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"^client:"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/removeresponseheader/id
zcli farm-service-removeresponseheader add MyHttpFarm -pattern "^client:""

PUT /farms/<farmname>/service/<servicename>/removeresponseheader/<id>

Remova determinados cabeçalhos das solicitações recebidas. Todas as ocorrências do cabeçalho especificado correspondente serão removidas.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar nas requisições do cliente. Se algum cabeçalho coincidir com o padrão, o cabeçalho será removido verdadeiro

Exemplo de resposta:

{
   "description" : "Modify RemoveResponseHeader directive.",
   "message" : "Modify an item from the removeresponseheader list",
   "success" : "true"
}

Excluir uma regra para remover cabeçalhos da resposta

Excluir uma regra para remover cabeçalhos da resposta

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/removeresponseheader/Index
zcli farm-remove-request-header remove MyHttpFarm Service Index

DELETE /farms/<farmname>/service/<service0>/removeresponseheader/<index>

índice é o índice da matriz removesponseheader a ser excluída.

Exemplo de resposta:

{
   "message": "The remove request header <index> has been deleted successfully"
}


Adicionar regra para verificar e reescrever padrões de URL

Adicionar regra para verificar e reescrever padrões de URL

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"/media/(.+)$","replace":"/svc1/$1","last":"true"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/rewriteurl
zcli farm-service-rewriteurl add MyHttpFarm MyService -pattern "/media/(.+)$" -replace "/svc1/$1" -last "true"

POST /farms/<farmname>/service/<servicename>/rewriteurl

Da versão 4.0.2. Ele verifica um padrão para obter strings da URL e substituí-las.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar na url. Se o URL corresponder ao padrão, o texto correspondente será substituído verdadeiro
substituir Tanga É uma string para substituir o texto correspondente verdadeiro
último Tanga Verdadeiro ou falso. Se true for definido, isso terminará a fase de reescrita de url verdadeiro

Exemplo de resposta:

{
   "message": "Added a new rewriteurl"
}

Modificar regra de verificações e reescrever padrões de URL

Modificar regra de verificações e reescrever padrões de URL

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"pattern":"/media/(.+)$","replace":"/svc1/$1","last":"true"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/rewriteurl/id
zcli farm-service-rewriteurl add MyHttpFarm MyService -pattern "/media/(.+)$" -replace "/svc1/$1" -last "true"

PUT /farms/<farmname>/service/<servicename>/rewriteurl/<id>

Da versão 4.0.2. Ele verifica um padrão para obter strings da URL e substituí-las.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
de cinto de segurança Tanga É uma string com um regexp para procurar na url. Se o URL corresponder ao padrão, o texto correspondente será substituído verdadeiro
substituir Tanga É uma string para substituir o texto correspondente verdadeiro
último Tanga Verdadeiro ou falso. Se true for definido, isso terminará a fase de reescrita de url verdadeiro

Exemplo de resposta:

{
   "description" : "Modify a RewriteUrl.",
   "message" : "Modify a new rewrite url",
   "success" : "true"
}

Excluir uma regra para verificar e reescrever padrões de URL

Excluir uma regra para verificar e reescrever padrões de URL

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/rewriteurl/Index
zcli arm-service-rewriteurl remove MyHttpFarm Service Index

DELETE /farms/<farmname>/service/<service0>/rewriteurl/<index>

Da versão 4.0.2. índice é o índice do array rewriteurl a ser excluído.

Exemplo de resposta:

{
   "message": "The rewriteurl <index> has been deleted successfully"
}


Mover uma verificação e reescrever padrões da regra de URL

Mover uma verificação e reescrever padrões da regra de URL

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"position":1}'
https://<zevenet_server>:444/zapi/v4.0/zapi/v4.0/zapi.cgi/farms/MyHttpFarm/services/MyService/rewriteurl/id/actions
farm-replace-response-header add farm1 -header ^Cookie: -match ^COOKIESESSION=(.*) -replace COOKIEUSER=$1`

Esta chamada está disponível na versão 4.0.2

POST /farms/<farmname>/services/<service>/rewriteurl/<id>/actions

Mova um cabeçalho ReplaceRequest.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
posição Sessão Nova posição da regra verdadeiro

Exemplo de resposta:

{
   "description" : "Move a rewriteurl directive",
   "message" : "Header was moved successfully.",
   "params" : {
      "position" : "1"
   }
}

Listar as sessões

Listar as sessões

Exemplo de solicitação:

curl  -k -X GET -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/farm1/services/service0/sessions
zcli farm-service-session list farm1 service0

GET /farms/<farmname>/services/<servicename>/sessions

Da versão 4.0.2. Obtenha a lista de sessões no farm:service. Imóvel disponível apenas para proxy de nova geração zproxy.

Exemplo de resposta:

{
   "description" : "Get farm sessions",
   "params": [
      {
         "id": "0",
         "session": "10.0.0.2",
         "ttl": null,
         "type": "static"
      },
      {
         "id": "0",
         "session": "10.0.0.2",
         "ttl": "58m28s148ms",
         "type": "dynamic"
      },
      {
         "id": "0",
         "session": "10.0.0.2",
         "ttl": "59m56s496ms",
         "type": "dynamic"
      }
   ]
}

Parâmetros de Resposta

Esta solicitação retorna uma lista de objetos de sessão, cada objeto de sessão contém as seguintes chaves:

Campo Tipo Descrição
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'IP' Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65;
tipo Tanga Existem dois tipos de sessões: dinâmico é uma conexão que fixa os pinos do balanceador com um back-end usando o algoritmo de balanceamento de carga do farm; estático é uma conexão que o administrador do balanceador de carga fixa com um back-end. As sessões estáticas não serão redirecionadas para outro back-end se o backup estiver inacessível.
ttl Tanga É uma sequência com o tempo da sessão para expirar. o ttl valor será nulo se a sessão não for do tipo estático.

Adicionar uma sessão

Adicionar uma sessão

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"session":"10.0.0.2","id":0}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/farm1/services/service0/sessions
zcli farm-service-session add farm1 service0 -backend 0 -session 10.0.0.2

POST /farms/<farmname>/services/<servicename>/sessions

Da versão 4.0.2. Ele cria uma sessão estática com um back-end em uma sessão. A conexão de entrada que corresponde ao Sessão será encaminhado sempre para esse back-end. Imóvel disponível apenas para proxy de nova geração zproxy.

Solicitar Parâmetros

Campo Tipo Descrição
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'IP', Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65;

Exemplo de resposta:

{
   "description" : "Adding a static session to the farm1",
   "message" : "Added a session for the farm 'farm1'",
   "params" : {
      "id" : "0",
      "session" : "10.0.0.1",
      "ttl" : null,
      "type" : "static"
   }
}

Parâmetros de Resposta

Esta solicitação retorna o objeto de sessão que contém as seguintes chaves:

Campo Tipo Descrição
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'IP', Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65.
ttl Tanga É uma sequência com o tempo da sessão para expirar. o ttl valor será nulo se a sessão for do tipo estático.
tipo Tanga Existem dois tipos de sessões: dinâmico é uma conexão que fixa os pinos do balanceador com um back-end usando o algoritmo de balanceamento de carga do farm; estático é uma conexão que o administrador do balanceador de carga fixa com um back-end. As sessões estáticas não serão redirecionadas para outro back-end se o backup estiver inacessível.

Remover uma sessão

Remover uma sessão

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/farm1/services/service0/sessions/10.0.0.1
zcli farm-service-session remove farm1 service0 10.0.0.1

DELETE /farms/<farmname>/services/<servicename>/sessions/<session>

Exclui uma sessão estática.

Exemplo de resposta:

{
   "description" : "Delete a 'static' session",
   "message" : "The session '10.0.0.1' was deleted properly from the farm 'farm1'.",
   "success" : "true"
}

HTTP - Serviços - Backends

Listar os backends

Listar os backends

Exemplo de solicitação:

curl  -k -X GET -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/httpfarm/services/service1/backends
zcli farm get httpfarm

GET /farms/<farmname>/services/<id>/backends

Obtenha a lista de back-ends em um serviço. id é o identificador exclusivo do serviço.

Exemplo de resposta:

{
   "description" : "List service backends",
   "params" : [
      {
         "alias" : null,
         "id" : 0,
         "ip" : "192.168.0.10",
         "port" : 88,
         "status" : "up",
         "timeout" : 12,
         "weight" : 1,
         "priority" : null,
         "connection_limit" : null
      },
      {
         "alias" : null,
         "id" : 1,
         "ip" : "192.168.102.245",
         "port" : 80,
         "status" : "up",
         "timeout" : 22,
         "weight" : 2,
         "priority" : null,
         "connection_limit": null
      }
   ]
}

Parâmetros de Resposta

Essa chamada retorna uma matriz de objeto backend com os parâmetros abaixo.

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão identificador exclusivo para o backend no serviço. Este identificador é gerado pelo sistema.
ip Tanga IP do back-end onde o serviço real está escutando.
porta Sessão Porta do back-end onde o serviço real está escutando.
tempo limite Sessão É o tempo limite de back-end para responder a uma determinada solicitação em segundos.
peso Sessão É o valor do peso para o back-end atual. Os valores possíveis são de 1 para 9.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; manutenção, o backend está marcado como não pronto para receber conexões pelo administrador, esta opção é útil para tarefas de manutenção do backend; indefinido, o status do back-end não foi verificado.
prioridade (de 4.0.1) Sessão (Somente quando o proxy nova geração está funcionando) É o valor de prioridade para o servidor real atual. O back-end com valor de prioridade mais baixo estará pronto para receber conexões antes de outros com prioridade mais alta. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9
limite_conexao (de 4.0.2) Sessão (Somente quando a nova geração de proxy está funcionando) O número máximo de conexão estabelecida por backend. Com um valor de 0, não haverá um limite no back-end. O cliente receberá um erro 503 se não houver back-ends disponíveis.

Crie um novo back-end

Crie um novo back-end

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.102.244","port":80, "weight":2,"timeout":2,"priority":1,"connection_limit":10}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/httpfarm/services/newsrv/backends
zcli farm-service-backend add httpfarm newsrv -ip 192.168.102.244 -port 80 -timeout 2 -priority 1 -weight 2 -connection_limit 10

POST /farms/<farmname>/services/<id>/backends

Crie um novo back-end em um determinado perfil HTTP. id é o identificador exclusivo do serviço.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
ip Tanga IP do back-end onde o serviço real está escutando. verdadeiro
porta Sessão Porta do back-end onde o serviço real está escutando. verdadeiro
tempo limite Sessão É o tempo limite de back-end para responder a uma determinada solicitação.
peso Sessão É o valor do peso para o back-end atual. Os valores possíveis são de 1 para 9.
prioridade (de 4.0.1) Sessão (Somente quando o proxy nova geração está funcionando) É o valor de prioridade para o servidor real atual. O back-end com valor de prioridade mais baixo estará pronto para receber conexões antes de outros com prioridade mais alta. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9
limite_conexao (de 4.0.2) Sessão (Somente quando a nova geração do proxy estiver funcionando) O número máximo de conexões estabelecidas por backend. Com um valor de 0, não haverá um limite no back-end. O cliente receberá um erro 503 se não houver back-ends disponíveis.

Exemplo de resposta:

{
   "description" : "New service backend",
   "message" : "Added backend to service succesfully",
   "params" : {
      "id" : 0,
      "ip" : "192.168.102.244",
      "port" : 80,
      "timeout" : 2,
      "weight" : 2,
      "priority" : 1,
      "connection_limit" : 10
   },
   "status" : "needed restart"
}

Parâmetros de Resposta

A resposta será um JSON com parâmetros solicitados atualizados e estado campo com o status atual do farm. Se for necessário executar uma ação de reinicialização para aplicar as alterações do farm, o valor será reinicialização necessária.Se houver

Modificar um back-end

Modificar um back-end

Exemplo de solicitação:

 curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
  -d '{"ip":"192.168.0.10","port":88,"timeout":12,"weight":1,"priority":1,"connection_limit":10}'
  https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/FarmHTTP/service/service1/backends/1
zcli farm-service-backend set FarmHTTP service1 1 -ip 192.168.0.10 -port 88 -timeout 12 -weight 1 -priority 1 -connection_limit 10

PUT /farms/<farmname>/services/<id>/backends/<id>

Modifique os parâmetros de um serviço HTTP de back-end.

Primeiro id é o identificador exclusivo do serviço, a seguir id é o identificador exclusivo do back-end.

Solicitar Parâmetros

Campo Tipo Descrição
ip Tanga IP do back-end onde o serviço real está escutando.
porta Sessão Porta do back-end onde o serviço real está escutando.
tempo limite Sessão É o tempo limite de back-end para responder a uma determinada solicitação em segundos.
peso Sessão É o valor do peso para o back-end atual. Os valores possíveis são de 1 para 9.
prioridade (de 4.0.1) Sessão (Somente quando o proxy nova geração está funcionando) É o valor de prioridade para o servidor real atual. O back-end com valor de prioridade mais baixo estará pronto para receber conexões antes de outros com prioridade mais alta. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9
limite_conexao (de 4.0.2) Sessão (Somente quando a nova geração de proxy está funcionando) O número máximo de conexão estabelecida por backend. Com um valor de 0, não haverá um limite no back-end. O cliente receberá um erro 503 se não houver back-ends disponíveis.

Exemplo de resposta:

{
   "description" : "Modify service backend",
   "info" : "There're changes that need to be applied, stop and start farm to apply them!",
   "message" : "Backend modified",
   "params" : {
      "ip" : "192.168.0.10",
      "port" : 88,
      "timeout" : 12,
      "weight" : 1,
      "priority" : 4,
      "connection_limit" : 10
   },
   "status" : "needed restart",
   "warning" : "Backends with high priority value (4) will not be used."
}

Parâmetros de Resposta

A resposta será um JSON com parâmetros solicitados atualizados e estado campo com o status atual do farm. Se for necessário executar uma ação de reinicialização para aplicar as alterações do farm, o valor será reinicialização necessária. Se o parâmetro Priority for atualizado com um valor inconsistente, o parâmetro aviso campo irá descrevê-lo.

Backend em manutenção

Backend em manutenção

Exemplo de solicitação:

 curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
 -d '{"action":"maintenance","mode":"cut"}'
 https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/httpfarm/services/newsrv/backends/0/maintenance
zcli farm-service-backend maintenance httpfarm newsrv 0 -mode cut

PUT /farms/<farmname>/services/<id>/backends/<id>/maintenance

Defina uma determinada ação em um backend de um farm HTTP, as ações disponíveis são descritas abaixo.

Primeiro id é o identificador exclusivo do serviço, a seguir id é o identificador exclusivo do back-end.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
açao Tanga Defina a ação desejada. As ações são: up o backend está pronto para receber solicitações de clientes, manutenção backend não está pronto para receber solicitações de clientes, esta ação é útil para parar o servidor de backend sem afetar os clientes.
modo Tanga Escolha um modo de manutenção. As opções disponíveis são: drenar, o back-end não aceita novas conexões, mas continuará a lidar com as conexões atuais; ou corte, as conexões atuais serão fechadas. Se este campo não for especificado, o modo padrão será drenar.

Exemplo de resposta:

{
   "description" : "Set service backend status",
   "params" : {
      "action" : "maintenance",
      "mode" : "cut"
   }
}

Excluir um back-end

Excluir um back-end

Exemplo de solicitação:

curl -k -X DELETE -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/newfarmHTTP/services/service1/backends/4
zcli farm-service-backend remove newfarmHTTP service1 4

DELETE /farms/<farmname>/services/<id>/backends/<id>

Excluir um determinado backend de um serviço HTTP.

Primeiro id é o identificador exclusivo do serviço, a seguir id é o identificador exclusivo do back-end.

Exemplo de resposta:

{
   "description" : "Delete service backend",
   "message" : "Backend removed",
   "success" : "true"
}

Fazendas L4xNAT

O farm de perfis L4xNAT permite a criação de farms de balanceamento de carga que trabalham na camada 4 do modelo OSI, com desempenho muito alto e muito mais conexões simultâneas do que os núcleos do balanceador de carga nos perfis de farm HTTP da camada 7. Essa melhoria de desempenho da camada 4 neutraliza o tratamento avançado de conteúdo que os perfis da camada 7 podem gerenciar.

Além disso, os farms L4xNAT podem vincular um intervalo de portas, não apenas uma porta virtual como é usada com os outros perfis da camada 7. Para poder selecionar um intervalo de portas virtuais ou uma porta virtual específica em farms L4xNAT, é obrigatório selecionar um tipo de protocolo. Em outro caso, o farm estará escutando em todas as portas do IP virtual (indicado com um caractere '*'). Assim que um protocolo TCP ou UDP for selecionado, ele estará disponível para especificar uma porta, várias portas entre ',', as portas variam entre ':' ou todas as portas com '*'. Uma combinação de todos eles também será válida.

Recuperar farm por nome

Recuperar farm por nome

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4farm
zcli farm get l4farm

GET /farms/<farmname>

Mostrar todas as configurações sobre um determinado farm.

Resposta CORPO:

{
   "backends" : [
      {
         "alias" : null,
         "max_conns" : 0,
         "id" : 0,
         "ip" : "192.168.55.40",
         "port" : "88",
         "priority" : 2,
         "status" : "undefined",
         "weight" : 1
      },
      {
         "alias" : "server-1",
         "id" : 1,
         "max_conns" : 500,
         "ip" : "192.168.55.41",
         "port" : "88",
         "priority" : 3,
         "status" : "undefined",
         "weight" : 2
      }
   ],
   "description" : "List farm l4farm",
   "ipds" : {
      "blacklists" : [
            {
              "status" : "down",
              "name" : "blacklist"
            }
      ],
      "dos" : [
         {
             "name" : "newlimitconns",
             "status" : "down"
         }
      ],
      "rbl" : [
         {
            "name" : "protection_ssh",
            "status" : "up"
         }
      ]
   },
   "params" : {
      "algorithm" : "weight",
      "farmguardian" : "check_tcp-cut_conns",
      "listener" : "l4xnat",
      "logs" : "false",
      "nattype" : "nat",
      "persistence" : "ip",
      "protocol" : "tcp",
      "status" : "down",
      "ttl" : 120,
      "vip" : "192.168.100.241",
      "vport" : "88",
      "sessions": []
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com o formato abaixo.

Objeto Agrícola:

Campo Tipo Descrição
ipds objeto Lista de regras do IPDS aplicadas a este farm.
params objeto Parâmetros da configuração do farm.
backends Objeto[] Todos os servidores reais criados neste farm e sua configuração.

Objeto IPDS:

Campo Tipo Descrição
listas negras Objeto[] Regras de lista negra aplicadas ao farm.
dos Objeto[] Regras de DoS aplicadas ao farm.
rbl Objeto[] Regras RBL aplicadas ao farm.

Lista Negra, DoS e RBL Objeto:

Campo Tipo Descrição
nome Tanga O nome da regra.
estado Tanga Status da regra.

Objeto de parâmetros para farms L4xNAT:

Campo Tipo Descrição
algoritmo Tanga Tipo de programação de balanceamento de carga usado para despachar o tráfego entre os back-ends. As opções são: lowconn encaminha a conexão sempre ao menos servidor de conexão; peso conexão linear de despacho, dependendo do peso do backend; roundrobina faz uma seleção seqüencial entre o pool de back-end, cada backend receberá o mesmo número de solicitações; hash_srcip equilibra pacotes que correspondem ao mesmo IP de origem para o mesmo back-end; hash_srcip_srcport equilibra pacotes que correspondem ao mesmo IP e porta de origem ao mesmo backend; symhash balancear pacotes que correspondam ao mesmo IP de origem e porta e IP de destino e porta, para que ele possa fazer uma conexão em ambas as maneiras (durante a entrada e a saída).
ouvinte Tanga Um ouvinte define como o farm vai lidar com as solicitações dos clientes. campo informativo, não pode ser modificado.
toras Tanga O farm Registra informações do pacote da camada de transporte, não está disponível informações sobre a camada do aplicativo. Se este parâmetro tiver o valor verdadeiro, os logs estão habilitados; se tem o valor falso, os logs estão desativados.
nattype Tanga Como o núcleo da camada de balanceador de carga 4 vai operar. As opções são: nat também chamado de modo sNAT, o back-end responde ao balanceador de carga para enviar a resposta ao cliente; dnat o back-end responderá diretamente ao cliente, o balanceador de carga deverá ser configurado como gateway no servidor de back-end; Em dsr (Modo Direct Server Return) o cliente se conecta ao VIP, então o balanceador de carga altera seu endereço MAC de destino para o endereço MAC de backend (o servidor deve estar na mesma mídia de link que o balanceador de carga); DNAT sem estado. Em stateless_dnat o endereço de destino do comutador do balanceador de carga para o endereço de back-end e o encaminha para o back-end, como faz o DNAT, mas não gerencia nenhum tipo de informação de conexão.
persistência Tanga Este parâmetro encaminha a solicitação recebida para o mesmo backend na base no modo de persistência escolhido. As opções são: "" valor vazio desabilita a persistência, cada pacote de entrada será balanceado entre os backends; ip or srcip, IP de origem, atribuirá o mesmo back-end para cada conexão de entrada, dependendo apenas do endereço IP de origem; Porta, Source Port, atribuirá o mesmo backend para cada conexão de entrada, dependendo da porta de origem. srcmac, MAC de origem, com essa opção, o farm atribuirá o mesmo back-end para cada conexão de entrada, dependendo do endereço MAC da camada de link do pacote; srcip_srcport, IP de origem e porta de origem, atribuirá o mesmo back-end para cada conexão de entrada, dependendo do IP de origem e da porta de origem; srcip_dstport, Source IP e Destination Port, atribuirão o mesmo back-end para cada conexão de entrada, dependendo do IP de origem e da porta de destino.
protocolo Tanga Protocolo a ser balanceado na camada 4. As opções são: todos os o perfil irá balancear a carga de qualquer protocolo L4; tcp o balanceador de carga somente balanceará o protocolo TCP L4, também para TCP, é possível definir uma das seguintes opções para analisar seus cabeçalhos e usá-lo para distribuir corretamente: ftp, irc, PPTPou ; udp o balanceador de carga somente equilibrará o protocolo UDP L4, também para UDP, é possível definir uma das seguintes opções para analisar seus cabeçalhos e usá-lo para distribuir corretamente: sorvo, tftp, amanda, netbios-nsou snmp; sctp, o balanceador de carga somente equilibrará o protocolo SCX L4. E se h323 selecionada, a fazenda ouvirá o TCP e assim UDP solicita e analisa seus cabeçalhos para equilibrar entre os backends.
estado Tanga Status da fazenda. Os valores de status disponíveis são: down, a fazenda não está em execução; reinicialização necessária, o farm está ativo, mas está pendente de uma ação de reinicialização; crítico, o farm está ativo e todos os backends são inacessíveis ou de manutenção; problema, o farm está ativo e há algum back-end inacessível, mas quase um back-end está no status up; manutenção, o farm está ativo e há back-ends no status up, mas quase um back-end está no modo de manutenção; up, a fazenda está em alta e todos os backends estão funcionando bem.
ttl Sessão Este valor de campo indica o número de segundos que a persistência entre a origem do cliente e o backend está sendo atribuída, em segundos. Persistência deve ser configurado.
vip Tanga IP do farm, onde o serviço virtual está escutando.
vport Tanga Porta da fazenda, onde o serviço virtual está escutando. Uma porta exclusiva pode ser especificada, uma porta de intervalo pode ser especificada com o separador : e várias portas podem ser especificadas com o separador ,.
farmguardian Tanga É o nome do FarmGuardian que está verificando o status do backend. O FarmGuardian estará em execução enquanto o farm estiver no status ativo.
sessões (da versão 4.0.2) Objeto[] Lista de sessões estáticas e dinâmicas criadas para este farm.

Objeto de back-end para farms L4xNAT:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão ID para identificar o back-end no pool de back-ends do farm.
ip Tanga IP do back-end onde o serviço real está escutando.
porta Sessão Porta do back-end onde o serviço real está escutando. O valor vazio é aceito e usará a mesma configuração da (s) porta (s) virtual (is).
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; manutenção, o backend está marcado como não pronto para receber conexões pelo administrador, esta opção é útil para tarefas de manutenção do backend; indefinido, o status do back-end não foi verificado.
prioridade Sessão É o valor da prioridade para o servidor real atual. O back-end com menor valor de prioridade estará pronto para receber conexões antes que outros com maior prioridade. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9.
peso Sessão É o valor do peso para o servidor real atual. Back-ends com mais peso receberão mais conexões. Os valores possíveis são de 1 para 9.
max_conns Sessão É o número máximo de conexões que o backend receberá simultaneamente. Se estiver definido com um 0 valor o back-end não definiu nenhum limite.

Objeto de sessão para farms L4xNAT:

Campo Tipo Descrição
cliente Sessão É um identificador de cliente.
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'mac', Sessão deve ser um MAC, por exemplo, 02: 8e: 69: 38: 12: 8e; E se persistência é 'ip' ou 'srcip', Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65; E se persistência é 'porta', Sessão deve ser uma porta válida, por exemplo, 5445; E se persistência é 'srcip_srcport' ou 'srcip_dstport'; Sessão deve ser uma string com um IP e uma porta unida por sublinhado '', por exemplo, 122.36.54.280.
ttl Tanga É uma sequência com o tempo da sessão para expirar. o ttl valor será nulo se a sessão for do tipo estático.
tipo Tanga Existem dois tipos de sessões: dinâmico é uma conexão que fixa os pinos do balanceador com um back-end usando o algoritmo de balanceamento de carga do farm; estático é uma conexão que o administrador do balanceador de carga fixa com um back-end. As sessões estáticas não serão redirecionadas para outro back-end se o backup estiver inacessível.

Crie um novo farm

Crie um novo farm

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"profile":"l4xnat", "vip":"192.168.100.241", "vport":"88","farmname":"newl4farm"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms
zcli farm create -farmname newl4farm -vip 192.168.100.241 -vport 88 -profile l4xnat

POST /farms

Crie um novo farm L4xNAT.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
farmname Tanga Nome do farm, identificador exclusivo. verdadeiro
perfis Tanga O perfil da fazenda criada. Para as fazendas L4xNAT é l4xnat, mensagem informativa, este valor não pode ser alterado verdadeiro
vip Tanga IP do farm, onde o serviço virtual está escutando. verdadeiro
vport Tanga Porta da fazenda, onde o serviço virtual está escutando. Os farms L4xNAT permitem multiportos separados por , ou intervalo de porta separado por :. verdadeiro
copiar de (de 4.0.1) Tanga Este parâmetro espera o nome de um farm que existe. Se esse parâmetro for enviado, o farm será copiado do farm especificado nele. o farmname, vip e assim vport os valores serão substituídos.

Exemplo de resposta:

{
   "description" : "Creating farm 'newl4farm'",
   "params" : {
      "farmname" : "newl4farm",
      "interface" : "eth0",
      "profile" : "l4xnat",
      "vip" : "192.168.100.241",
      "vport" : "88"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar uma fazenda

Modificar uma fazenda

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"algorithm":"weight","persistence":"","newfarmname":"l4farm", "protocol":"tcp",
"nattype":"nat","ttl":125,"vip":"178.62.126.152","vport":"81","logs":"true"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/newfarml4
zcli farm set newfarml4 -algorithm weight -newfarmname l4farm -protocol tcp -nattype nat -ttl 125 -vip 178.62.126.152 -vport 81 -logs true

PUT /farms/<farmname>

Modifique a configuração de um farm L4xNAT.

Solicitar Parâmetros

Campo Tipo Descrição
newfarmname Tanga O nome da nova Fazenda. A fazenda deve ser interrompida.
toras Tanga O farm Registra informações do pacote da camada de transporte, não está disponível informações sobre a camada do aplicativo. Se este parâmetro tiver o valor verdadeiro, os logs estão habilitados; se tem o valor falso, os logs estão desativados.
ttl Sessão Este valor de campo indica o número de segundos que a persistência entre a origem do cliente e o backend está sendo atribuída, em segundos. A persistência deve ser configurada.
vip Tanga IP do farm, onde o serviço virtual está escutando.
vport Tanga Porta da fazenda, onde o serviço virtual está escutando. Uma porta exclusiva pode ser especificada, uma porta de intervalo pode ser especificada com o separador : e várias portas podem ser especificadas com o separador ,.
persistência Tanga Este parâmetro encaminha a solicitação recebida para o mesmo backend na base no modo de persistência escolhido. As opções são: "" valor vazio desabilita a persistência, cada pacote de entrada será balanceado entre os backends; ip or srcip, IP de origem, atribuirá o mesmo back-end para cada conexão de entrada, dependendo apenas do endereço IP de origem; Porta, Source Port, atribuirá o mesmo backend para cada conexão de entrada, dependendo da porta de origem. srcmac, MAC de origem, com essa opção, o farm atribuirá o mesmo back-end para cada conexão de entrada, dependendo do endereço MAC da camada de link do pacote; srcip_srcport, IP de origem e porta de origem, atribuirá o mesmo back-end para cada conexão de entrada, dependendo do IP de origem e da porta de origem; srcip_dstport, Source IP e Destination Port, atribuirão o mesmo back-end para cada conexão de entrada, dependendo do IP de origem e da porta de destino.
nattype Tanga Como o núcleo da camada de balanceador de carga 4 vai operar. As opções são: nat também chamado de modo sNAT, o back-end responde ao balanceador de carga para enviar a resposta ao cliente; dnat o back-end responderá diretamente ao cliente, o balanceador de carga deverá ser configurado como gateway no servidor de back-end; Em dsr (Modo Direct Server Return) o cliente se conecta ao VIP, então o balanceador de carga altera seu endereço MAC de destino para o endereço MAC de backend (o servidor deve estar na mesma mídia de link que o balanceador de carga); DNAT sem estado. Em stateless_dnat o endereço de destino do comutador do balanceador de carga para o endereço de back-end e o encaminha para o back-end, como faz o DNAT, mas não gerencia nenhum tipo de informação de conexão.
algoritmo Tanga Tipo de programação de balanceamento de carga usado para despachar o tráfego entre os back-ends. As opções são: lowconn encaminha a conexão sempre ao menos servidor de conexão; peso conexão linear de despacho, dependendo do peso do backend; roundrobina faz uma seleção seqüencial entre o pool de back-end, cada backend receberá o mesmo número de solicitações; hash_srcip equilibra pacotes que correspondem ao mesmo IP de origem para o mesmo back-end; hash_srcip_srcport equilibra pacotes que correspondem ao mesmo IP e porta de origem ao mesmo backend; symhash balancear pacotes que correspondam ao mesmo IP de origem e porta e IP de destino e porta, para que ele possa fazer uma conexão em ambas as maneiras (durante a entrada e a saída).
protocolo Tanga Protocolo a ser balanceado na camada 4. As opções são: todos os o perfil irá balancear a carga de qualquer protocolo L4; tcp o balanceador de carga somente balanceará o protocolo TCP L4, também para TCP, é possível definir uma das seguintes opções para analisar seus cabeçalhos e usá-lo para distribuir corretamente: ftp, irc, PPTPou ; udp o balanceador de carga somente equilibrará o protocolo UDP L4, também para UDP, é possível definir uma das seguintes opções para analisar seus cabeçalhos e usá-lo para distribuir corretamente: sorvo, tftp, amanda, netbios-nsou snmp; sctp, o balanceador de carga somente equilibrará o protocolo SCX L4. E se h323 selecionada, a fazenda ouvirá o TCP e assim UDP solicita e analisa seus cabeçalhos para equilibrar entre os backends.

Exemplo de resposta:

{
   "description" : "Modify farm l4farm",
   "params" : {
      "algorithm" : "weight",
      "logs" : "true",
      "nattype" : "nat",
      "newfarmname" : "l4farm",
      "persistence" : "",
      "protocol" : "tcp",
      "ttl" : 125,
      "vip" : "178.62.126.152",
      "vport" : "81"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Adicionar FarmGuardian

Adicionar FarmGuardian

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"check_tcp-cut_conns"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4Farm/fg
zcli farm-service-farmguardian add l4Farm default_service -name check_tcp-cut_conns

POST /farms/<farmname>/fg

Aplique um FarmGuardian à fazenda.

Solicitar Parâmetros

Campo Tipo Descrição
nome Tanga Identificador exclusivo FarmGuardian. Os FarmGuardians são criados e modificados na seção de monitoramento.

Exemplo de resposta:

{
   "description" : "Add the farm guardian check_tcp-cut_conns to the farm fgl4",
   "message" : "Success, The farm guardian check_tcp-cut_conns was added to the farm fgl4"
}

Remover FarmGuardian

Remover FarmGuardian

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4Farm/fg/check_tcp-cut_conns
zcli farm-service-farmguardian remove l4Farm default_service check_tcp-cut_conns

DELETE /farms/<farmname>/fg/<name>

Remova o FarmGuardian do farm.

Exemplo de resposta:

{
   "description" : "Remove the farm guardian check_tcp-cut_conns from the farm fgl4",
   "message" : "Sucess, check_tcp-cut_conns was removed from the farm fgl4"
}

Adicionar POST /farms/<farmname>/sessions

Adicionar DELETE /farms/<farmname>/sessions/<session>

Listar as sessões

Listar as sessões

Exemplo de solicitação:

curl  -k -X GET -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/farm1/sessions
zcli farm-session list farm1

GET /farms/<farmname>/sessions

Obtenha a lista de sessões no farm.

Exemplo de resposta:

{
   "description" : "Get farm sessions",
   "params": [
      {
         "client": 0,
         "id": "0",
         "session": "10.0.0.2_56",
         "ttl": null,
         "type": "static"
      },
      {
         "client": 1,
         "id": "0",
         "session": "10.0.0.2_54936",
         "ttl": "58m28s148ms",
         "type": "dynamic"
      },
      {
         "client": 2,
         "id": "0",
         "session": "10.0.0.2_54968",
         "ttl": "59m56s496ms",
         "type": "dynamic"
      }
   ]
}

Parâmetros de Resposta

Esta solicitação retorna uma lista de objetos de sessão, cada objeto de sessão contém as seguintes chaves:

Campo Tipo Descrição
cliente Sessão É um identificador de cliente.
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'mac', Sessão deve ser um MAC, por exemplo, 02: 8e: 69: 38: 12: 8e; E se persistência é 'ip' ou 'srcip', Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65; E se persistência é 'porta', Sessão deve ser uma porta válida, por exemplo, 5445; E se persistência é 'srcip_srcport' ou 'srcip_dstport'; Sessão deve ser uma string com um IP e uma porta unida por sublinhado '', por exemplo, 122.36.54.280.
ttl Tanga É uma sequência com o tempo da sessão para expirar. o ttl valor será nulo se a sessão for do tipo estático.
tipo Tanga Existem dois tipos de sessões: dinâmico é uma conexão que fixa os pinos do balanceador com um back-end usando o algoritmo de balanceamento de carga do farm; estático é uma conexão que o administrador do balanceador de carga fixa com um back-end. As sessões estáticas não serão redirecionadas para outro back-end se o backup estiver inacessível.

Adicionar uma sessão

Adicionar uma sessão

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"session":"10.0.0.2_56","id":0}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/farm1/sessions
zcli farm-session add farm1 -id 0 -session 10.0.0.2_56

POST /farms/<farmname>/sessions

Ele cria uma sessão estática com um back-end. A conexão de entrada que corresponde ao Sessão será encaminhado sempre para esse back-end.

Solicitar Parâmetros

Campo Tipo Descrição
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'mac', Sessão deve ser um MAC, por exemplo, 02: 8e: 69: 38: 12: 8e; E se persistência é 'ip' ou 'srcip', Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65; E se persistência é 'porta', Sessão deve ser uma porta válida, por exemplo, 5445; E se persistência é 'srcip_srcport' ou 'srcip_dstport'; Sessão deve ser uma string com um IP e uma porta unida por sublinhado '', por exemplo, 122.36.54.280.

Exemplo de resposta:

{
   "description" : "Adding a static session to the farm1",
   "message" : "Added a session for the farm 'farm1'",
   "params" : {
      "client" : 1,
      "id" : "0",
      "session" : "10.0.0.1_56",
      "ttl" : null,
      "type" : "static"
   }
}

Parâmetros de Resposta

Esta solicitação retorna o objeto de sessão que contém as seguintes chaves:

Campo Tipo Descrição
cliente Sessão É um identificador de cliente.
id Sessão ID de back-end que receberá a conexão.
Sessão Tanga É o identificador da sessão ou uma conexão, seu valor depende da persistência parâmetro da fazenda. E se persistência é 'mac', Sessão deve ser um MAC, por exemplo, 02: 8e: 69: 38: 12: 8e; E se persistência é 'ip' ou 'srcip', Sessão deve ser um IPv4 ou IPv6, por exemplo, 192.168.42.65; E se persistência é 'porta', Sessão deve ser uma porta válida, por exemplo, 5445; E se persistência é 'srcip_srcport' ou 'srcip_dstport'; Sessão deve ser uma string com um IP e uma porta unida por sublinhado '', por exemplo, 122.36.54.280.
ttl Tanga É uma sequência com o tempo da sessão para expirar. o ttl valor será nulo se a sessão for do tipo estático.
tipo Tanga Existem dois tipos de sessões: dinâmico é uma conexão que fixa os pinos do balanceador com um back-end usando o algoritmo de balanceamento de carga do farm; estático é uma conexão que o administrador do balanceador de carga fixa com um back-end. As sessões estáticas não serão redirecionadas para outro back-end se o backup estiver inacessível.

Remover uma sessão

Remover uma sessão

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/farm1/sessions/10.0.0.1_56
zcli farm-session remove farm1 10.0.0.1_56

DELETE /farms/<farmname>/sessions/<session>

Exclui uma sessão estática.

Exemplo de resposta:

{
   "description" : "Delete a 'static' session",
   "message" : "The session '10.0.0.1_56' was deleted properly from the farm 'farm1'.",
   "success" : "true"
}

Adicionar uma regra do IPDS

Adicionar uma regra do IPDS

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"china"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4Farm/ipds/blacklists
zcli farm-blacklist add l4Farm -name china

POST /farms/<farmname>/ipds/<dos|blacklists|rbl>

Aplique listas negras, regras DoS ou RBL a um farm.

Solicitar Parâmetros

Campo Tipo Descrição
nome Tanga Nome da regra do IPDS usado como um identificador exclusivo.

Exemplo de resposta:

{
   "description" : "Apply a rule to a farm",
   "message" : "Blacklist rule china was applied successful to the farm l4Farm.",
   "success" : "true"
}

Remover uma regra do IPDS

Remover uma regra do IPDS

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4Farm/ipds/blacklists/china
zcli farm-blacklist remove l4Farm china

DELETE /farms/<farmname>/ipds/<dos|blacklists|rbl>/<name>

Remover uma lista negra, DoS ou regra RBL do módulo IPDS de um determinado farm usando seu indicador nome.

Exemplo de resposta:

{
   "description" : "Delete a rule from a farm",
   "message" : "Blacklist rule china was removed successful from the farm l4Farm.",
   "success" : "true"
}

L4xNAT - backends

Listar os backends

Listar os backends

Exemplo de solicitação:

curl  -k -X GET -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4farm/backends
zcli farm get l4farm

GET /farms/<farmname>/backends

Obtenha a lista de back-ends em um serviço.

Exemplo de resposta:

{
   "description" : "List backends",
   "params" : [
      {
         "alias" : null,
         "id" : 0,
         "ip" : "192.5.1.1",
         "max_conns" : 400,
         "port" : 787,
         "priority" : 1,
         "status" : "up",
         "weight" : 1
      },
      {
         "alias" : "server-2",
         "id" : 1,
         "ip" : "192.5.1.3",
         "max_conns" : 200,
         "port" : 787,
         "priority" : 2,
         "status" : "up",
         "weight" : 1
      },
   ]
}

Parâmetros de Resposta

Essa chamada retorna uma matriz de objeto backend com os parâmetros abaixo.

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão ID para identificar o back-end no pool de back-ends do farm.
ip Tanga IP do back-end onde o serviço real está escutando.
porta Sessão Porta do back-end onde o serviço real está escutando. O valor vazio é aceito e usará a mesma configuração da (s) porta (s) virtual (is).
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; manutenção, o backend está marcado como não pronto para receber conexões pelo administrador, esta opção é útil para tarefas de manutenção do backend; indefinido, o status do back-end não foi verificado.
max_conns Sessão É o número máximo de conexões simultâneas para o back-end. Se este campo tiver o valor 0, o back-end não configurou nenhum limite de conexão.
prioridade Sessão É o valor de prioridade para o servidor real atual. Conexões sempre com a maior prioridade disponível, onde 1 é a prioridade e 9 é a prioridade mínima.
peso Sessão É o valor do peso para o servidor real atual. Back-ends com mais peso receberão mais conexões. Os valores possíveis são de 1 para 9.

Crie um novo back-end

Crie um novo back-end

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.5.100","port":8080,"max_conns":400}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4farm/backends
zcli farm-service-backend add l4farm default_service -ip 192.168.5.100 -port 8080 -max_conns 400

POST /farms/<farmname>/backends

Crie um novo back-end em um determinado L4xNAT Farm.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
ip Tanga IP do back-end onde o serviço real está escutando. verdadeiro
porta Sessão Porta do back-end onde o serviço real está escutando. O valor vazio é aceito e usará a mesma configuração da (s) porta (s) virtual (is).
max_conns Sessão É o número máximo de conexões simultâneas para o back-end. Se este campo tiver o valor 0, o back-end não configurou nenhum limite de conexão.
prioridade Sessão É o valor da prioridade para o servidor real atual. O back-end com menor valor de prioridade estará pronto para receber conexões antes que outros com maior prioridade. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9.
peso Sessão É o valor do peso para o servidor real atual. Back-ends com mais peso receberão mais conexões. Os valores possíveis são de 1 para 9.

Exemplo de resposta:

{
   "description" : "New farm backend",
   "message" : "Backend added",
   "params" : {
      "id" : 5,
      "ip" : "192.168.5.100",
      "port" : 8080,
      "max_conns" : 400,
      "priority" : null,
      "weight" : null
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar um back-end

Modificar um back-end

Exemplo de solicitação:

 curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
  -d '{"ip":"192.168.5.40","port":8080,"max_conns":220,"priority":4,"weight":7}'
  https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4farm/backends/2
zcli farm-service-backend set l4farm default_service 2 -ip 192.168.5.40 -port 8080 -max_conns 220 -priority 4 -weight 7

PUT /farms/<farmname>/backends/<id>

Modifique os parâmetros de um backend em um Farm L4xNAT. id é o identificador exclusivo do back-end.

Solicitar Parâmetros

Campo Tipo Descrição
ip Tanga IP do back-end onde o serviço real está escutando.
porta Sessão Porta do back-end onde o serviço real está escutando. O valor vazio é aceito e usará a mesma configuração da (s) porta (s) virtual (is).
max_conns Sessão É o número máximo de conexões simultâneas para o back-end. Se este campo tiver o valor 0, o back-end não configurou nenhum limite de conexão.
prioridade Sessão É o valor da prioridade para o servidor real atual. O back-end com menor valor de prioridade estará pronto para receber conexões antes que outros com maior prioridade. Valor padrão nulo, um valor de prioridade 1 é usado. Os valores possíveis são de 1 para 9.
peso Sessão É o valor do peso para o servidor real atual. Back-ends com mais peso receberão mais conexões. Os valores possíveis são de 1 para 9.

Exemplo de resposta:

{
   "description" : "Modify backend",
   "message" : "Backend modified",
   "params" : {
      "ip" : "192.168.5.40",
      "port" : 8080,
      "max_conns" : 220,
      "priority" : 4,
      "weight" : 7
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Backend em manutenção

Backend em manutenção

Exemplo de solicitação:

 curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
 -d '{"action":"maintenance","mode":"cut"}'
 https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4farm/backends/1/maintenance
zcli farm-service-backend maintenance l4farm default_service 1 -mode cut

PUT /farms/<farmname>/backends/<id>/maintenance

Defina uma determinada ação em um back-end de um farm L4xNAT. id é o identificador exclusivo do back-end.

Solicitar Parâmetros

Campo Tipo Descrição
açao Tanga Defina a ação desejada. As ações são: up o backend está pronto para receber solicitações de clientes, manutenção backend não está pronto para receber solicitações de clientes, esta ação é útil para parar o servidor de backend sem afetar os clientes.
modo Tanga Escolha um modo de manutenção. As opções disponíveis são: drenar, o back-end não aceita novas conexões, mas continuará a lidar com as conexões atuais; ou corte, as conexões atuais serão fechadas.

Exemplo de resposta:

{
   "description" : "Set backend status",
   "params" : {
      "action" : "maintenance",
      "mode" : "cut"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir um back-end

Excluir um back-end

Exemplo de solicitação:

curl -k -X DELETE -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/l4farm/backends/4
zcli farm-service-backend remove l4farm default_service 4

DELETE /farms/<farmname>/backends/<id>

Excluir um determinado back-end para um farm L4xNAT.

id é o identificador exclusivo do back-end.

Exemplo de resposta:

{
   "description" : "Delete backend",
   "message" : "Backend removed",
   "success" : "true"
}

Fazendas GSLB

O Balanceamento de Carga de Serviço Global, comumente chamado de GSLB, permite criar um serviço de balanceamento de carga com base na arquitetura hierárquica de serviço do DNS. Esse tipo de farm fornece um DNS somente de autoridade com algoritmos de balanceamento de carga e detecção de estado de serviço na camada do aplicativo DNS.

Recuperar farm por nome

Recuperar farm por nome

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm
zcli farm get gslbfarm

GET /farms/<farmname>

Mostrar todas as configurações sobre um determinado farm.

Exemplo de resposta:

{
   "description" : "List farm gslbfarm",
   "ipds" : {
      "blacklists" : [],
      "dos" : [],
      "rbl" : [
         {
            "name" : "protection_ssh",
            "status" : "up"
         }
      ]
   },
   "params" : {
      "status" : "needed restart",
      "vip" : "192.168.100.155",
      "vport" : 60
   },
   "services" : [
      {
         "algorithm" : "roundrobin",
         "backends" : [
            {
               "alias" : "localhost",
               "id" : 1,
               "ip" : "127.0.0.1",
               "port" : 53,
               "status" : "up"
            },
            {
               "alias" : "dns-server",
               "id" : 2,
               "ip" : "192.168.55.40",
               "port" : 53,
               "status" : "up"
            },
            {
               "alias" : null,
               "id" : 4,
               "ip" : "192.135.10.2",
               "port" : 53,
               "status" : "up"
            }
         ],
         "deftcpport" : 53,
         "farmguardian" : "dns-request",
         "id" : "service1"
      },
      {
         "algorithm" : "prio",
         "backends" : [
            {
               "alias" : "localhost",
               "id" : 1,
               "ip" : "127.0.0.1",
               "port" : 80,
               "status" : "up"
            },
            {
               "alias" : "localhost",
               "id" : 2,
               "ip" : "127.0.0.1",
               "port" : 80,
               "status" : "up"
            }
         ],
         "deftcpport" : 80,
         "farmguardian" : null,
         "id" : "prioServ"
      }
   ],
   "zones" : [
      {
         "defnamesv" : "ns3",
         "id" : "global.com",
         "resources" : [
            {
               "id" : 0,
               "rdata" : "ns3",
               "rname" : "@",
               "ttl" : null,
               "type" : "NS"
            },
            {
               "id" : 1,
               "rdata" : "192.168.100.155",
               "rname" : "ns3",
               "ttl" : null,
               "type" : "A"
            },
            {
               "id" : 3,
               "rdata" : "resource2",
               "rname" : "ns2",
               "ttl" : null,
               "type" : "NS"
            },
            {
               "id" : 4,
               "rdata" : "192.168.200.30",
               "rname" : "resource2",
               "ttl" : null,
               "type" : "A"
            }
         ]
      },
      {
         "defnamesv" : "ns1",
         "id" : "DOM.com",
         "resources" : [
            {
               "id" : 0,
               "rdata" : "ns1",
               "rname" : "@",
               "ttl" : null,
               "type" : "NS"
            },
            {
               "id" : 1,
               "rdata" : "192.168.100.155",
               "rname" : "ns1",
               "ttl" : null,
               "type" : "A"
            }
         ]
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com o formato abaixo.

Objeto Agrícola:

Campo Tipo Descrição
ipds objeto Lista de regras do IPDS aplicadas a este farm.
params objeto Parâmetros da configuração do farm.
serviços Objeto[] Array com todos os serviços criados neste farm e sua configuração.
zonas Objeto[] Array com todas as zonas criadas neste farm e sua configuração.

Objeto IPDS:

Campo Tipo Descrição
listas negras Objeto[] Listas negras aplicadas à fazenda.
dos Objeto[] Regras de DoS aplicadas ao farm.
rbl Objeto[] Regras RBL aplicadas ao farm.

Lista Negra, DoS e RBL Objeto:

Campo Tipo Descrição
nome Tanga O nome da regra.
estado Tanga Status da regra.

Objeto de parâmetro para farms GSLB:

Campo Tipo Descrição
vip Tanga IP do farm, onde o serviço virtual está escutando.
vport Sessão Porta da fazenda, onde o serviço virtual está escutando.
estado Tanga Status da fazenda. Os valores de status disponíveis são: down, a fazenda não está em execução; reinicialização necessária, o farm está ativo, mas está pendente de uma ação de reinicialização; crítico, a fazenda está ativa e todos os backends estão inacessíveis; problema, o farm está ativo e há algum back-end inacessível, mas quase um back-end está no status up; up, a fazenda está em alta e todos os backends estão funcionando bem.

Objeto de serviço para farms do GSLB:

Campo Tipo Descrição
backends Objeto[] Backends definidos no serviço.
farmguardian Tanga É o nome do FarmGuardian que está verificando o status do backend. O FarmGuardian estará em execução enquanto o farm estiver no status ativo. Os registros do farmguardian não estão disponíveis para fazendas GSLB
id Tanga Nome do serviço que é usado como um identificador exclusivo.
algoritmo Tanga Tipo de algoritmo de balanceamento de carga usado no serviço. As opções são: roundrobina, que irá equilibrar as conexões entre todos os back-ups, ou prio que enviará todas as conexões para o primeiro back-end disponível.
deftcpport Sessão Verificação de integridade da porta TCP padrão. Essa é a porta TCP de verificação de integridade que o serviço verificará para determinar se o serviço de back-end está ativo. Um valor vazio está desativado.

Objeto de back-end para farms do GSLB:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão Identificador exclusivo para o backend no serviço. Este identificador é gerado pelo sistema.
ip Tanga IP do back-end onde o serviço real está escutando.
porta Sessão Porta do back-end onde o serviço real está escutando.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; indefinido, o status do back-end não foi verificado.

Objeto da zona:

Campo Tipo Descrição
id Sessão O nome da zona é usado como um indetificador único.
defnamesv Tanga Esse será o servidor de nomes raiz do ponto de entrada que estará disponível como o registro DNS de início de autoridade (SOA).
recursos Objeto[] Recursos definido na zona.

Objeto de recurso:

Campo Tipo Descrição
id Sessão Identificador exclusivo para o recurso na zona.
rname Tanga O nome do recurso é o nick que o serviço DNS irá traduzir para os dados reais necessários no campo rdata.
ttl Sessão O valor Time to Live (opcional) para o registro atual que é necessário para determinar o período de tempo em que o nome atual será armazenado em cache.
tipo Tanga Tipo de registro DNS. As opções são: NS, A, AAAA, CNAME, DYNA, MX, SRV, SMS, PTR or NAPTR). Para mais informações, veja em GSLB - Zonas - Recursos seção.
rdata Tanga São os dados reais necessários para o tipo de registro, o valor de entrada depende do tipo de Nome do recurso, rname e o tipo de recurso tipo.

Crie um novo farm

Crie um novo farm

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"farmname":"gslbfarm","profile":"gslb","vip":"192.168.100.241","vport":53}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms
zcli farm create -farmname gslbfarm -vip 192.168.100.241 -vport 53 -profile gslb

POST /farms

Crie um novo farm do GSLB.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
farmname Tanga O nome do farm é usado como o identificador exclusivo de farms. verdadeiro
perfis Tanga O perfil da fazenda criada. Para as fazendas GSLB é gslb. verdadeiro
vip Tanga IP do farm, onde o serviço virtual está escutando. verdadeiro
vport Sessão Porta da fazenda, onde o serviço virtual está escutando. verdadeiro
copiar de (de 4.0.1) Tanga Este parâmetro espera o nome de um farm que existe. Se esse parâmetro for enviado, o farm será copiado do farm especificado nele. o farmname, vip e assim vport os valores serão substituídos.

Exemplo de resposta:

{
   "description" : "Creating farm 'gslbfarm'",
   "params" : {
      "farmname" : "gslbfarm",
      "interface" : "eth0",
      "profile" : "gslb",
      "vip" : "192.168.100.241",
      "vport" : 53
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar uma fazenda

Modificar uma fazenda

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"newfarmname":"gslbnewname","vip":"192.168.100.155","vport":60}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm
zcli farm set gslbfarm -newfarmname gslbnewname -vip 192.168.100.155 -vport 60

PUT /farms/<farmname>

Modifique a configuração de um farm do GSLB.

Solicitar Parâmetros

Campo Tipo Descrição
newfarmname Tanga O nome da nova Fazenda. A fazenda deve ser parada para fazer esta mudança.
vport Sessão Porta da fazenda, onde o serviço virtual está escutando.
vip Tanga IP do farm, onde o serviço virtual está escutando.

Exemplo de resposta:

{
   "description" : "Modify farm gslbnewname",
   "params" : {
      "newfarmname" : "gslbnewname",
      "vip" : "192.168.100.155",
      "vport" : 60
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Adicionar uma regra do IPDS

Adicionar uma regra do IPDS

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"china"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbFarm/ipds/blacklists
zcli farm farm-blacklist add gslbFarm -name china

POST /farms/<farmname>/ipds/<dos|blacklists|rbl>

Aplique uma regra de lista negra, DoS ou RBL ao farm.

Solicitar Parâmetros

Campo Tipo Descrição
nome Tanga Nome da regra do IPDS usado como um identificador exclusivo.

Exemplo de resposta:

{
   "description" : "Apply a rule to a farm",
   "message" : "Blacklist rule china was applied successful to the farm gslbFarm.",
   "success" : "true"
}

Remover uma regra do IPDS

Remover uma regra do IPDS

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbFarm/ipds/blacklists/china
zcli farm-blacklist remove gslbFarm china

DELETE /farms/<farmname>/ipds/<dos|blacklists|rbl>/<name>

Remover uma regra de lista negra, DoS ou RBL de um determinado farm usando seu identificador nome.

Exemplo de resposta:

{
   "description" : "Delete a rule form a farm",
   "message" : "Blacklist rule china was removed successful from the farm gslbFarm.",
   "success" : "true"
}

GSLB - Serviços

Um serviço GSLB representa um grupo de servidores reais e um algoritmo associado a ser usado para eles. Para criar um novo serviço, você deve definir um nome de identificação válido e o algoritmo desejado para usar.

Os serviços disponíveis são:

Rodada Robin: partilha igual. Um equilíbrio igual de tráfego para todos os servidores reais ativos. Para cada conexão de entrada, o balanceador designa o próximo servidor real de round robin para entregar a solicitação.

Prioridade: conexões sempre com a maior prioridade disponível. Equilibre todas as conexões para o mesmo servidor de prioridade mais alta. Se este servidor estiver inativo, as conexões passarão para o próximo servidor mais alto. Com esse algoritmo, você pode criar um serviço de cluster Ativo-Passivo com vários servidores reais.

Objeto de serviços para farms do GSLB

Campo Tipo Descrição
backends Objeto[] Backends definidos no serviço.
farmguardian Tanga É o nome do FarmGuardian que está verificando o status do backend. O FarmGuardian estará em execução enquanto o farm estiver no status ativo.
id Tanga Nome do serviço que é usado como o identificador exclusivo.
algoritmo Tanga Tipo de algoritmo de balanceamento de carga usado no serviço. As opções são: roundrobina, que irá equilibrar as conexões entre todos os back-ups, ou prio que enviará todas as conexões para o primeiro back-end disponível.
deftcpport Tanga Verificação de integridade da porta TCP padrão. Essa é a porta TCP de verificação de integridade que o serviço verificará para determinar se o serviço de back-end está ativo. Um valor vazio está desativado.

Crie um novo serviço

Crie um novo serviço

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"id":"service1","algorithm":"roundrobin"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/services
zcli farm-service add gslbfarm -id service1 -algorithm roundrobin

POST /farms/<farmname>/services

Crie um serviço em um determinado GSLB Farm. O farm deve ser reiniciado para aplicar essa alteração.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
id Tanga Nome do serviço que é usado como o identificador exclusivo. verdadeiro
algoritmo Tanga Tipo de algoritmo de balanceamento de carga usado no serviço. As opções são: roundrobina, que irá equilibrar as conexões entre todos os back-ends, ou prio que enviará todas as conexões para o primeiro back-end disponível. verdadeiro

Exemplo de resposta:

{
   "description" : "New service service1",
   "params" : {
      "algorithm" : "roundrobin",
      "id" : "service1"
   },
   "status" : "needed restart"
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar um serviço

Modificar um serviço

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
 -d '{"deftcpport":53}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/services/service1
zcli farm-service set  gslbfarm service1 -deftcpport 53

PUT /farms/<farmname>/services/<id>

Modifique os parâmetros de um serviço GSLB. id é o identificador exclusivo do serviço que será modificado.

Solicitar Parâmetros

Campo Tipo Descrição
deftcpport Sessão Essa é a porta TCP de verificação de integridade que o serviço verificará para determinar se o serviço de back-end está ativo.

Exemplo de resposta:

{
   "description" : "Modify service service1 in farm gslbfarm",
   "info" : "There're changes that need to be applied, stop and start farm to apply them!",
   "params" : {
      "deftcpport" : 53
   },
   "status" : "needed restart"
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Adicionar FarmGuardian

Adicionar FarmGuardian

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"dns-request"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/service/service1/fg
zcli farm-service-farmguardian add gslbfarm service1 -name dns-request

POST /farms/<farmname>/services/<id>/fg

Aplique um FarmGuardian a um serviço.

O parâmetro URI é o identificador exclusivo do serviço.

Solicitar Parâmetros

Campo Tipo Descrição
nome Tanga Identificador exclusivo FarmGuardian. Os FarmGuardians são criados e modificados na seção de monitoramento. Os registros FarmGuardian não estão disponíveis para farms gslb.

Exemplo de resposta:

{
   "description" : "Add the farm guardian dns-request to the service service1 in the farm gslbfarm",
   "message" : "Success, The farm guardian dns-request was added to the service service1 in the farm gslbfarm"
}

Remover FarmGuardian

Remover FarmGuardian

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/service/service1/fg/dns-request
zcli farm-service-farmguardian remove gslbfarm service1 dns-request

DELETE /farms/<farmname>/fg/<name>

Remova o FarmGuardian de um serviço GSLB.

Exemplo de resposta:

{
   "description" : "Remove the farm guardian dns-request from the service service1 in the farm gslbfarm",
   "message" : "Sucess, dns-request was removed from the service service1 in the farm gslbfarm"
}

Excluir um serviço

Excluir um serviço

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/services/service1
zcli farm-service remove gslbfarm service1

DELETE /farms/<farmname>/services/<id>

Excluir um determinado serviço de um farm do GSLB. id é o identificador exclusivo do serviço que será excluído.

Exemplo de resposta:

{
  "description" : "Delete service service1 in farm gslbfarm",
  "message" : "The service service1 in farm gslbfarm has been deleted.",
  "success" : "true",
  "status": "needed restart"
}

GSLB - Serviços - Backends

Esta seção irá gerenciar a lista de serviços reais associada a um serviço.

Listar os backends

Listar os backends

Exemplo de solicitação:

curl  -k -X GET -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/services/service1/backends
zcli farm get gslbfarm

GET /farms/<farmname>/services/<id>/backends

Obtenha a lista de back-ends em um serviço. id é o identificador exclusivo do serviço.

Exemplo de resposta:

{
   "description" : "List service backends",
   "params" : [
      {
         "alias" : "localhost",
         "id" : 1,
         "ip" : "127.0.0.1",
         "port":53,
         "status":"up"
      },
      {
         "alias" : "dns-server",
         "id" : 2,
         "ip" : "192.168.55.40",
         "port":53,
         "status":"up"
      }
   ]
}

Parâmetros de Resposta

Essa chamada retorna uma matriz de objeto backend com os parâmetros abaixo.

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão Identificador exclusivo para o backend no serviço. Este identificador é gerado pelo sistema.
ip Tanga IP do backend, onde o serviço real está escutando.
porta Sessão Porta do back-end onde o serviço real está escutando.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; indefinido, o status do back-end não foi verificado.

Crie um novo back-end

Crie um novo back-end

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.135.10.2"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/services/service1/backends
zcli farm-service-backend add gslbfarm service1 -ip 192.135.10.2

POST /farms/<farmname>/services/<id>/backends

Crie um novo back-end em um determinado serviço em um farm do GSLB. id é o identificador exclusivo do serviço onde o backend será adicionado.

Os serviços prioritários possuem backends 2 como maximun, o host ativo e o host passivo.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
ip Tanga IP do backend, onde o serviço real está escutando. verdadeiro

Exemplo de resposta:

{
   "description" : "New service backend",
   "message" : "Added backend to service succesfully",
   "params" : {
      "id" : 4,
      "ip" : "192.135.10.2"
   },
   "status" : "needed restart"
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar um back-end

Modificar um back-end

Exemplo de solicitação:

 curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
  -d '{"ip":"192.168.2.30"}'
  https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/services/service1/backends/1
zcli farm-service-backend set gslbfarm service1 1 -ip 192.168.2.30

PUT /farms/<farmname>/services/<id>/backends/<id>

Modifique os parâmetros de um backend para um serviço GSLB.

Observe no PUT acima que o primeiro id é o identificador exclusivo do serviço e, em seguida, id é o identificador exclusivo do back-end.

Solicitar Parâmetros

Campo Tipo Descrição
ip Tanga IP do backend, onde o serviço real está escutando.

Exemplo de resposta:

{
   "description" : "Modify service backend",
   "info" : "There're changes that need to be applied, stop and start farm to apply them!",
   "message" : "Backend modified",
   "params" : {
      "ip" : "192.168.2.30"
   },
   "status" : "needed restart"
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir um back-end

Excluir um back-end

Exemplo de solicitação:

curl -k -X DELETE -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/services/service1/backends/3
zcli farm-service-backend remove gslbfarm service1 3

DELETE /farms/<farmname>/services/<servicename>/backends/<id>

Excluir um determinado backend em um serviço GSLB.

Exemplo de resposta:

{
   "description" : "Delete service backend",
   "message" : "Backend removed",
   "success" : "true"
}

GSLB - Zonas

A seção da zona GSLB descreverá o nome de domínio DNS, subdomínios, aliases, etc., que serão necessários para gerar uma zona DNS completa com registros adicionais de balanceamento de carga usando os serviços definidos.

Criar zona

Criar zona

Exemplo de solicitação:

curl  -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"id":"global.com"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/zones
zcli farm-zone add gslbfarm -id global.com

POST /farms/<farmname>/zones

Crie uma zona DNS.

Solicitar Parâmetros

Essa chamada retorna uma matriz de objeto backend com os parâmetros abaixo.

Campo Tipo Descrição Exigido
id Sessão O nome da zona usado como o único indetificador. verdadeiro

Exemplo de resposta:

{
   "description" : "New zone global.com",
   "params" : {
      "id" : "global.com"
   }
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modifique uma zona

Modifique uma zona

Exemplo de solicitação:

curl  -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"defnamesv":"ns3"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/zones/global.com
zcli farm-zone set gslbfarm global.com -defnamesv ns3

PUT /farms/<farmname>/zones/<id>

Modifique os parâmetros de uma zona. id é o identificador único da zona que será modificado.

Solicitar Parâmetros

Essa chamada retorna uma matriz de objeto backend com os parâmetros abaixo.

Campo Tipo Descrição
defnamesv Tanga Esse será o servidor de nomes raiz do ponto de entrada que estará disponível como o registro DNS de início de autoridade (SOA).

Exemplo de resposta:

{
   "description" : "Modify zone global.com in farm gslbfarm",
   "params" : {
      "defnamesv" : "ns3"
   }
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir uma zona

Excluir uma zona

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/zones/dom.com
zcli farm-zone remove gslbfarm dom.com

DELETE /farms/<farmname>/zones/<id>

Excluir uma determinada zona de um farm do GSLB.

Exemplo de resposta:

{
   "description" : "Delete zone dom.com in farm gslbfarm.",
   "message" : "The zone dom.com in farm gslbfarm has been deleted.",
   "success" : "true"
}

GSLB - Zonas - Recursos

Recursos definidos como o serviço DNS resolve solicitações. Os possíveis recursos de DNS nos balanços de carga do Zevenet são:

  1. NS. Registro de tipo de servidor de nomes, ele delega uma zona DNS para usar os servidores de nomes autorizados.
  2. A. Registro de tipo de endereço, ele retorna um endereço IPv4 de um host.
  3. CNAME. Registro de tipo de nome canônico, representa um alias de um determinado nome.
  4. DYNA. Registro de tipo de endereço dinâmico, ele retorna um endereço dinâmico especificado por um serviço GSLB já criado na configuração do farm de acordo com o algoritmo selecionado para tal serviço.
  5. AAAA. Registro de tipo de endereço, ele retorna um endereço IPv6 de um host.
  6. MX. Registro de tipo de troca de mensagens, mapeia um nome de domínio para uma lista de agentes de transferência de mensagens para esse domínio.
  7. SRV. Registro de tipo de localizador de serviço, Registro de localização de serviço generalizado, usado para protocolos mais novos em vez de criar registros específicos de protocolo, como MX.
  8. SMS. Registro de tipo de texto, é usado para armazenar qualquer informação baseada em texto que possa ser obtida quando necessário. Geralmente, vemos registros TXT usados ​​para armazenar dados SPF e confirmar a propriedade do domínio.
  9. PTR. Registro de ponteiro, um ponteiro para um nome canônico. Ao contrário de um CNAME, o processamento do DNS é interrompido e apenas o nome é retornado. O uso mais comum é para implementar pesquisas reversas de DNS.
  10. NAPTR. Naming Authority Pointer, Permite a regravação baseada em expressões regulares de nomes de domínio, que podem ser usados ​​como URIs, nomes de domínio adicionais para pesquisas, etc.

Listar os recursos

Listar os recursos

Exemplo de solicitação:

curl  -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/zones/global.com/resources
zcli farm-zone-resource list gslbfarm global.com

GET /farms/<farmname>/zones/<id>/resources

Obtenha a lista de recursos em uma zona. id é o identificador exclusivo da zona.

Exemplo de resposta:

{
   "description" : "List zone resources",
   "params" : [
      {
         "id" : 0,
         "rdata" : "ns3",
         "rname" : "@",
         "ttl" : null,
         "type" : "NS"
      },
      {
         "id" : 1,
         "rdata" : "192.168.100.155",
         "rname" : "ns3",
         "ttl" : null,
         "type" : "A"
      },
      {
         "id" : 2,
         "rdata" : "192.168.0.9",
         "rname" : "resource2",
         "ttl" : 10,
         "type" : "A"
      },
      {
         "id" : 3,
         "rdata" : "resource2",
         "rname" : "ns2",
         "ttl" : null,
         "type" : "NS"
      }
   ]
}

Parâmetros de Resposta

Esta chamada retorna uma matriz de objeto de recurso com os parâmetros abaixo.

Campo Tipo Descrição
id Sessão Identificador exclusivo para o recurso na zona.
rname Tanga O nome do recurso é o nick que o serviço DNS irá traduzir para os dados reais necessários no campo rdata.
ttl Sessão O valor Time to Live (opcional) para o registro atual que é necessário para determinar o período de tempo em que o nome atual será armazenado em cache.
tipo Tanga Tipo de registro DNS. As opções são: NS, A, AAAA, CNAME, DYNA, MX, SRV, SMS, PTR or NAPTR). Para mais informações, veja em GSLB - Zonas - Recursos seção.
rdata Tanga São os dados reais necessários para o tipo de registro, o valor de entrada depende do tipo de Nome do recurso, rname e o tipo de recurso tipo.

Crie um novo recurso

Crie um novo recurso

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"rname":"resource2", "rdata":"192.168.0.9", "ttl":10, "type":"A" }'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/zones/global.com/resources
zcli farm-zone-resource add gslbfarm global.com -rname resource2 -rdata 192.168.0.9 -ttl 10 -type A

POST /farms/<farmname>/zones/<id>/resources

Crie um novo recurso em uma determinada zona em um farm do GSLB. id é o identificador único da zona que será modificado onde o recurso será adicionado.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
rname Tanga O nome do recurso é o nick que o serviço DNS irá traduzir para os dados reais necessários no campo rdata. verdadeiro
ttl Sessão O valor Time to Live para o registro atual. É o número máximo de dispositivos roteadores que a solicitação pode percorrer até morrer. É útil que o pacote não entre em um loop de rede.
tipo Tanga Tipo de registro DNS. As opções são: NS, A, AAAA, CNAME, DYNA, MX, SRV, SMS, PTR or NAPTR). Para mais informações, veja em GSLB - Zonas - Recursos seção. verdadeiro
rdata Tanga São os dados reais necessários para o tipo de registro, o valor de entrada depende do tipo de Nome do recurso, rname e o tipo de recurso tipo. Se DYNA é selecionado em tipo então o valor rdata tem que ser um dos valores configurados serviços nesta zona. verdadeiro

Exemplo de resposta:

{
   "description" : "New zone resource",
   "message" : "Resource added",
   "params" : {
      "rdata" : "192.168.0.9",
      "rname" : "resource2",
      "ttl" : 10,
      "type" : "A",
      "zone" : "global.com"
   }
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modifique um recurso

Modifique um recurso

Exemplo de solicitação:

 curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
  -d '{"rname":"resource2", "rdata":"192.168.200.30","ttl":null, "type":"A" }'
  https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/zones/global.com/resources/1
zcli farm-zone-resource set gslbfarm global.com 1 -rname resource2 -rdata 192.168.200.30 -type A

PUT /farms/<farmname>/zones/<id>/resources/<id>

Modifique os parâmetros de um recurso em uma zona de um farm GSLB.

Primeiro id é o identificador exclusivo da zona, a seguir id é o identificador exclusivo do recurso.

Solicitar Parâmetros

Campo Tipo Descrição
rname Tanga O nome do recurso é o nick que o serviço DNS irá traduzir para os dados reais necessários no campo rdata.
ttl Sessão O valor Time to Live (opcional) para o registro atual que é necessário para determinar o período de tempo em que o nome atual será armazenado em cache.
tipo Tanga Tipo de registro DNS. As opções são: NS, A, AAAA, CNAME, DYNA, MX, SRV, SMS, PTR or NAPTR). Para mais informações, veja em GSLB - Zonas - Recursos seção.
rdata Tanga São os dados reais necessários para o tipo de registro, o valor de entrada depende do tipo de Nome do recurso, rname e o tipo de recurso tipo. Se tipo é carregado com valor DYNA então rdata tem que ser carregado com um disponível serviço nome

Exemplo de resposta:

{
   "description" : "Modify zone resource",
   "message" : "Resource modified",
   "params" : {
      "rdata" : "192.168.200.30",
      "rname" : "resource2",
      "ttl" : null,
      "type" : "A"
   },
   "success" : "true"
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir um recurso

Excluir um recurso

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/gslbfarm/zones/global.com/resources/3
zcli farm-zone-resource remove gslbfarm global.com 3

DELETE /farms/<farmname>/zones/<id>/resources/<id>

Excluir um determinado recurso em uma zona de um farm GSLB

Note que em DELETE URI acima do primeiro id é o identificador exclusivo da zona e próximo id é o identificador exclusivo do recurso.

Exemplo de resposta:

{
   "description" : "Delete zone resource",
   "message" : "Resource removed",
   "success" : "true"
}

Fazendas de DataLink

O perfil do datalink farm ou DSLB (Datalink Service Load Balancing) permite a criação de um farm baseado em rotas onde os back-ends são roteadores ou gateways de uplink. Este tipo de perfil de farm está pronto para compartilhar vários acessos de roteador WAN de uplink usando o balanceador de carga como um multiplexador de canal de uplink (1 entrada e várias saídas de linha de roteador). Portanto, os farms de datalink poderiam ser usados ​​como links de comunicação de alta disponibilidade e, adicionalmente, como aumentar a largura de banda, juntando a quantidade de largura de banda entre os links de back-ends dos roteadores.

Recuperar farm por nome

Recuperar farm por nome

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/dlink
zcli farm get dlink

GET /farms/<farmname>

Mostrar todas as configurações sobre um farm.

Exemplo de resposta:

{
   "backends" : [
      {
         "alias" : "main-gateway",
         "id" : 0,
         "interface" : "eth0",
         "ip" : "192.168.100.10",
         "priority" : 2,
         "status" : "undefined",
         "weight" : 2
      },
      {
         "alias" : "secondary-gateway",
         "id" : 1,
         "interface" : "eth0",
         "ip" : "192.168.100.11",
         "priority" : 2,
         "status" : "undefined",
         "weight" : 1
      }
   ],
   "description" : "List farm dlink",
   "ipds" : {
      "blacklists" : []
   },
   "params" : {
      "algorithm" : "weight",
      "status" : "down",
      "vip" : "192.168.100.199"
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com o formato abaixo.

Objeto Agrícola:

Campo Tipo Descrição
ipds objeto Lista de regras do IPDS aplicadas a este farm.
params objeto Parâmetros da configuração do farm.
backends Objeto[] Servidores reais criados neste farm e sua configuração.

Objeto IPDS:

Campo Tipo Descrição
listas negras Corda[] Listas negras aplicadas à fazenda.

Objeto de parâmetros para farms de datalink:

Campo Tipo Descrição
algoritmo Tanga Tipo de algoritmo de balanceamento de carga usado na fazenda. As opções são: peso, o balanceador distribui entre todos os backends disponíveis com mais backends de carga com maior atributo de peso ou prio, que envia todas as conexões para o backend com o menor valor de prioridade.
estado Tanga Status da fazenda. Os valores de status disponíveis são: down, a fazenda não está em execução; reinicialização necessária, o farm está ativo, mas está pendente de uma ação de reinicialização; crítico, a fazenda está ativa e todos os backends estão inacessíveis; problema, o farm está ativo e há algum back-end inacessível, mas quase um back-end está no status up; up, a fazenda está em alta e todos os backends estão funcionando bem.
vip Tanga IP do farm, onde o serviço virtual está escutando.

Objeto de back-end para farms de conexão de dados:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão Identificador exclusivo para o backend do farm.
ip Tanga IP do backend, onde o serviço real está escutando.
interface Tanga É a interface de rede local onde o backend está conectado.
prioridade Sessão É o valor de prioridade para o servidor real atual. Será usado quando algoritmo campo é configurado como prioridade e menor prioridade terá preferência
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; indefinido, o status do back-end não foi verificado.
peso Sessão É o valor do peso para o servidor real atual. Será usado quando algoritmo campo é configurado como peso.

Crie um novo farm

Crie um novo farm

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"farmname":"dlink", "vip":"192.168.100.241", "profile":"datalink" }'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms
zcli farm create -profile datalink -farmname dlink -vip 192.168.100.241

POST /farms

Crie um novo farm de link de dados.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
farmname Tanga Nome do farm, identificador exclusivo. verdadeiro
perfis Tanga O perfil da fazenda criada. Para criar um farm do tipo datalink, a chave é link de dados verdadeiro
vip Tanga IP do farm, onde o serviço virtual está escutando. verdadeiro
copiar de (de 4.0.1) Tanga Este parâmetro espera o nome de um farm que existe. Se esse parâmetro for enviado, o farm será copiado do farm especificado nele. o farmname e assim vip os valores serão substituídos.

Exemplo de resposta:

{
   "description" : "Creating farm 'dlink'",
   "params" : {
      "farmname" : "dlink",
      "interface" : "eth0",
      "profile" : "datalink",
      "vip" : "192.168.100.241"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar uma fazenda

Modificar uma fazenda

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"newfarmname":"dlink2", "vip":"192.168.100.199","algorithm":"weight"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/dlink
zcli farm set dlink -newfarmname dlink2 -vip 192.168.100.199 -algorithm weight

PUT /farms/<farmname>

Modifique a configuração de um farm de link de dados.

Solicitar Parâmetros

Campo Tipo Descrição
newfarmname Tanga O novo nome do farm. O farm deve ser interrompido para modificar este campo.
algoritmo Tanga Tipo de algoritmo de balanceamento de carga usado na fazenda. As opções são: peso, o balanceador distribui entre todos os backends disponíveis com mais backends de carga com maior atributo de peso ou prio, que envia todas as conexões para o backend com o menor valor de prioridade.
vip Tanga IP do farm, onde o serviço virtual está escutando.

Exemplo de resposta:

{
   "description" : "Modify farm dlink",
   "params" : {
      "algorithm" : "weight",
      "vip" : "192.168.100.199",
      "newfarmname" : "dlink2"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Adicionar uma regra do IPDS

Adicionar uma regra do IPDS

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"china"}' https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/dlink2/ipds/blacklists
zcli farm-blacklist add dlink2 -name china

POST /farms/<farmname>/ipds/<blacklists>

Aplique uma regra de lista negra ao farm. Um perfil de conexão de dados aceita apenas regras de lista negra.

Solicitar Parâmetros

Campo Tipo Descrição
nome Tanga Nome da regra do IPDS usado como um identificador exclusivo.

Exemplo de resposta:

{
   "description" : "Apply a rule to a farm",
   "message" : "Blacklist rule china was applied successful to the farm dlink2.",
   "success" : "true"
}

Remover uma regra do IPDS

Remover uma regra do IPDS

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/dlink2/ipds/blacklists/china
zcli farm-blacklist remove dlink -name china

DELETE /farms/<farmname>/ipds/<blacklists>/<name>

Remover uma regra de lista negra do módulo IPDS de um determinado farm usando seu indicador nome.

Exemplo de resposta:

{
   "description" : "Delete a rule from a farm",
   "message" : "Blacklist rule china was removed successful from the farm dlink2.",
   "success" : "true"
}

DataLink - Backends

Backends em farms de conexões de dados são os gateways através do roteamento do serviço. O serviço irá multiplexar entre esses gateways e alguns deles não estão disponíveis, o serviço usa o (s) outro (s).

Listar os backends

Listar os backends

Exemplo de solicitação:

curl  -k -X GET -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/dlink/backends
zcli farm get dlink

GET /farms/<farmname>/backends

Obtenha a lista de back-ends em um serviço.

Exemplo de resposta:

[
   {
      "alias" : "main-gateway",
      "id" : 6,
      "interface" : "eth0",
      "ip" : "192.168.100.10",
      "priority" : 2,
      "status" : "undefined",
      "weight" : 2
   },
   {
      "alias" : "secondary-gateway",
      "id" : 7,
      "interface" : "eth0",
      "ip" : "192.168.100.11",
      "priority" : 2,
      "status" : "undefined",
      "weight" : 1
   }
]

Parâmetros de Resposta

Essa chamada retorna uma matriz de objeto backend com os parâmetros abaixo.

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar o backend. aliás
id Sessão Identificador exclusivo para o backend no farm. Este identificador é gerado pelo sistema.
interface Tanga É a interface de rede local onde o backend está conectado.
ip Tanga IP do backend, onde o serviço real está escutando.
prioridade Sessão É o valor de prioridade para o back-end atual. Será usado quando algoritmo O campo está configurado como prioridade e a prioridade inferior terá uma preferência.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; indefinido, o status do back-end não foi verificado.
peso Sessão É o valor do peso para o back-end atual. Será usado quando algoritmo campo é configurado como peso.

Crie um novo back-end

Crie um novo back-end

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.100.10","interface":"eth0","priority":2,"weight":2}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/dlink/backends
zcli farm-service-backend add dlink default_service -ip 192.168.100.10 -interface eth0 -priority 2 -weight 2

POST /farms/<farmname>/backends

Crie um novo back-end em um determinado farm de conexões de dados.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
ip Tanga IP do backend, onde o serviço real está escutando. verdadeiro
interface Tanga É a interface de rede local onde o backend está conectado. verdadeiro
prioridade Sessão É o valor de prioridade para o servidor real atual. Será usado quando algoritmo O campo está configurado como prioridade e a prioridade inferior terá uma preferência. O valor padrão é 1.
peso Sessão É o valor do peso para o back-end atual. Será usado quando algoritmo campo é configurado como peso. O valor padrão é 1.

Exemplo de resposta:

{
   "description" : "New farm backend",
   "message" : "Backend added",
   "params" : {
      "id" : 6,
      "interface" : "eth0",
      "ip" : "192.168.100.10",
      "priority" : 2,
      "weight" : 2
   }
}

Parâmetros de resposta

A resposta será um json com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modificar um back-end

Modificar um back-end

Exemplo de solicitação:

 curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
  -d '{"ip":"192.168.102.50","interface":"eth0", "weight":1,"priority":1}'
  https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/datalink/backends/2
zcli farm-service-backend set datalink default_service 2 -ip 192.168.102.50 -interface eth0 -weight 1 -priority 1

PUT /farms/<farmname>/backends/<id>

Modifique os parâmetros de um back-end em um serviço de um Data Linkper Farm. id é o identificador exclusivo do back-end.

Solicitar Parâmetros

Campo Tipo Descrição
ip Tanga IP do backend, onde o serviço real está escutando.
interface Tanga É a interface de rede local onde o backend está conectado.
prioridade Sessão É a prioridade de back-end para responder a uma determinada solicitação.
peso Sessão É o valor do peso para o back-end atual.

Exemplo de resposta:

{
   "description" : "Modify backend",
   "message" : "Backend modified",
   "params" : {
      "interface" : "eth0",
      "ip" : "192.168.102.50",
      "priority" : 1,
      "weight" : 1
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir um back-end

Excluir um back-end

Exemplo de solicitação:

curl -k -X DELETE -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/farms/dlink/backends/4
zcli farm-service-backend remove dlink default_service 4

DELETE /farms/<farmname>/backends/<id>

Excluir um determinado backend de um farm de link de dados. id é o identificador exclusivo do back-end.

Exemplo de resposta:

{
   "description" : "Delete backend",
   "message" : "Backend removed",
   "success" : "true"
}

Network

O Zevenet pode trabalhar com diferentes tipos de interfaces de rede.

Nesta seção, você pode listar, criar, configurar, excluir e definir uma ação nas interfaces NIC, VLAN, virtual e de ligação.

nic: ou placa de interface de rede, é um componente de hardware de computador. O restante das interfaces é baseado em NICs.

vlan: ou virtual LAN card é um tipo de interface de rede que fornece serviços de segmentação de rede. Mais de uma VLAN pode ser criada por meio de uma interface nic.

bonding: Também chamado por outros fornecedores como interfaces de tronco, esse tipo de nic pode ser criado com mais de uma interface nic. Zevenet suporta 7 diferentes tipos de interfaces de ligação.

virtual: Esse tipo de interface pode ser criado em qualquer tipo de interface descrito acima e eles usam as tabelas de roteamento de sua interface pai, portanto, ele deve ser configurado no mesmo segmento de rede que seu pai. Esse tipo de interface deve ser usado para farms.

Listar todas as interfaces

Listar todas as interfaces

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/nic
zcli network list

GET /interfaces

Obtenha uma lista de interfaces no sistema com sua configuração.

Exemplo de resposta:

{
   "description" : "List interfaces",
   "interfaces" : [
      {
         "alias" : null,
         "gateway" : "",
         "ip" : "",
         "mac" : "66:eb:31:0e:07:71",
         "name" : "bond2",
         "netmask" : "",
         "status" : "down",
         "dhcp" : "false",
         "type" : "bond"
      },
      {
         "alias" : null,
         "gateway" : "192.168.100.1",
         "ip" : "192.168.100.121",
         "mac" : "a2:6d:80:29:87:c6",
         "name" : "bondiface",
         "netmask" : "255.255.255.0",
         "status" : "up",
         "dhcp" : "false",
         "type" : "bond"
      },
      {
         "alias" : null,
         "gateway" : "192.168.100.5",
         "has_vlan" : "true",
         "ip" : "192.168.100.241",
         "mac" : "c2:56:f6:54:ff:a0",
         "name" : "eth0",
         "netmask" : "255.255.255.0",
         "status" : "up",
         "dhcp" : "false",
         "type" : "nic",
         "is_slave" : "false"
      },
      {
         "alias" : null,
         "gateway" : "192.168.120.1",
         "ip" : "192.168.120.120",
         "mac" : "c2:56:f6:54:ff:a0",
         "name" : "eth0.1",
         "netmask" : "255.255.255.0",
         "status" : "down",
         "dhcp" : "false",
         "type" : "vlan"
      },
      {
         "alias" : null,
         "gateway" : "",
         "ip" : "192.168.100.155",
         "mac" : "c2:56:f6:54:ff:a0",
         "name" : "eth0:virt",
         "netmask" : "255.255.255.0",
         "status" : "up",
         "type" : "virtual"
      },
      {
         "alias" : "gestion",
         "gateway" : "192.168.100.5",
         "has_vlan" : "false",
         "ip" : "192.168.100.102",
         "mac" : "62:30:43:36:29:ac",
         "name" : "eth1",
         "netmask" : "255.255.255.0",
         "status" : "up",
         "dhcp" : "false",
         "type" : "nic",
         "is_slave" : "false"
      },
      {
         "alias" : null,
         "gateway" : "",
         "has_vlan" : "false",
         "ip" : "",
         "mac" : "66:eb:31:0e:07:71",
         "name" : "eth2",
         "netmask" : "",
         "status" : "up",
         "dhcp" : "false",
         "type" : "nic",
         "is_slave" : "true"
      },
      {
         "alias" : null,
         "gateway" : "",
         "has_vlan" : "false",
         "ip" : "",
         "mac" : "a2:6d:80:29:87:c6",
         "name" : "eth3",
         "netmask" : "",
         "status" : "up",
         "type" : "nic",
         "dhcp" : "false",
         "is_slave" : "true"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com uma matriz de objetos de interface.

Objeto de interface:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface. O IP deve estar no mesmo segmento de rede que sua interface pai em uma interface virtual.
has_vlan Tanga verdadeiro, a interface é o pai de uma interface VLAN; ou falso, a interface não possui qualquer interface VLAN anexando-a. Este campo é apenas para interfaces NIC.
netmask Tanga Netmask da interface. Este valor não pode ser modificado em interfaces virtuais, é herdado da interface pai.
porta de entrada Tanga Gateway da interface. Este valor não pode ser modificado em interfaces virtuais, é herdado da interface pai.
mac Tanga MAC da interface. Este valor é herdado do primeiro escravo da NIC em interfaces de ligação. Em interfaces virtuais e de VLAN, ele é herdado da interface pai.
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.
tipo Tanga Os diferentes tipos de interfaces são: nic, vlan, virtual or vínculo.
is_slave Tanga Disponível apenas em interfaces NIC, verdadeiro, a interface é parte de uma interface de ligação, falso a interface não faz parte de uma interface de ligação.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Recuperar gateway padrão

Recuperar gateway padrão

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/gateway/ipv4
zcli network-default-gateway-ipv4 get

GET /interfaces/gateway/<ip_version>

O gateway padrão é o nó que envia todo o tráfego de destino que não pode ser acessado localmente de qualquer interface no balanceador de carga.

Obtenha os parâmetros da interface do gateway padrão.

O sistema configurou dois gateways, uma vez para rotear IPv4 e outro para rotear IPv6. O URI espera uma versão IP ipv4 or ipv6.

Exemplo de resposta:

{
   "description" : "Default gateway",
   "params" : {
      "address" : "192.168.100.5",
      "interface" : "eth0"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
endereço Tanga É o IP do gateway.
interface Tanga Nome da interface do gateway.

Modifique o gateway padrão

Modificar gateway padrão

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"interface":"eth0","address":"192.168.100.5"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/gateway/ipv4
zcli network-default-gateway-ipv4 set -interface eth0 -address 192.168.100.5

PUT /interfaces/gateway/<ip_version>

Modifique a configuração da interface do gateway.

O URI espera a versão do IP usada no campo de endereço. Os valores possíveis são ipv4 e assim ipv6.

Exemplo de resposta:

{
   "description" : "Modify default gateway",
   "message" : "The default gateway has been changed successfully",
   "success" : "true"
}

Solicitar Parâmetros

Campo Tipo Descrição
endereço Tanga É o IP do gateway.
interface Tanga Nome da interface do gateway.

Excluir configuração do gateway

DELETE /interfaces/gateway/<ip_version>

Exclua a configuração da configuração do gateway padrão.

O URI espera que uma versão IP do gateway padrão seja excluída. Os valores possíveis são ipv4 e assim ipv6.

Aviso: se o gateway não estiver definido, o Zevenet não poderá ser acessado por um segmento de rede externo.

Excluir configuração do gateway

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/gateway/ipv4
zcli network-default-gateway-ipv4 delete

Mensagem de resposta

Se o gateway não estiver configurado no mesmo segmento de rede, esta mensagem será exibida, caso contrário, a conexão será perdida.

Exemplo de resposta:

{
   "description" : "Remove default gateway",
   "message" : "The default gateway has been deleted successfully",
   "params" : {
      "address" : null,
      "interface" : null
   }
}

Rede - interfaces NIC

As interfaces NIC são as interfaces físicas conectadas ao seu balanceador de carga Zevenet.

O sistema reconhece novas interfaces automaticamente quando elas estão conectadas.

Usando interfaces de NIC como pais, outros tipos de interfaces com características diferentes podem ser criados. As interfaces disponíveis são VLAN, virtual e assim bonding.

Listar interfaces NIC

GET /interfaces/nic

Obtenha todos os parâmetros das interfaces NIC.

Listar interfaces NIC

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/nic
zcli network-nic list

Exemplo de resposta:

{
   "description" : "List NIC interfaces",
   "interfaces" : [
      {
         "alias" : null,
         "gateway" : "192.168.100.5",
         "has_vlan" : "true",
         "ip" : "192.168.100.241",
         "is_slave" : "false",
         "mac" : "c2:56:f6:54:ff:a0",
         "name" : "eth0",
         "netmask" : "255.255.255.0",
         "dhcp" : "false",
         "status" : "up"
      },
      {
         "alias" : "gestion",
         "gateway" : "192.168.100.5",
         "has_vlan" : "false",
         "ip" : "192.168.100.102",
         "is_slave" : "false",
         "mac" : "62:30:43:36:29:ac",
         "name" : "eth1",
         "netmask" : "255.255.255.0",
         "dhcp" : "false",
         "status" : "up"
      },
      {
         "alias" : null,
         "gateway" : "",
         "has_vlan" : "false",
         "ip" : "",
         "is_slave" : "false",
         "mac" : "a2:6d:80:29:87:c6",
         "name" : "eth3",
         "netmask" : "",
         "dhcp" : "false",
         "status" : "down"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com uma matriz de objetos da interface NIC.

Objeto da interface NIC:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface.
has_vlan Tanga verdadeiro, a interface é o pai de uma interface VLAN; ou falso, a interface não possui qualquer interface VLAN anexando-a.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes para um segmento de rede diferente.
mac Tanga Identificador exclusivo da camada de link. É imodificável.
nome Tanga Nome da interface. É usado como um identificador exclusivo da interface.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.
is_slave Tanga verdadeiro a interface faz parte de uma interface de ligação, falso a interface não faz parte de uma interface de ligação.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Recuperar interface NIC

Recuperar interface NIC

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/nic/eth1
zcli network-nic get eth1

GET /interfaces/nic/<name>

Obtenha todos os parâmetros de uma interface NIC. nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Show NIC interface",
   "interface" : {
      "alias" : "gestion",
      "gateway" : "192.168.100.5",
      "ip" : "192.168.100.102",
      "is_slave" : "false",
      "mac" : "62:30:43:36:29:ac",
      "name" : "eth1",
      "netmask" : "255.255.255.0",
      "dhcp" : "false",
      "status" : "up"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes para um segmento de rede diferente.
mac Tanga Identificador exclusivo da camada de link. É imodificável.
nome Tanga Nome da interface. É usado como um identificador exclusivo da interface.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.
tipo Tanga O tipo diferente de interfaces é: nic, vlan, virtual or vínculo. Cada um é definido no submenu de rede.
is_slave Tanga verdadeiro a interface faz parte de uma interface de ligação, falso a interface não faz parte de uma interface de ligação.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Modificar interface NIC

Modificar interface NIC

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.100.102","netmask":"255.255.255.0","gateway":"192.168.100.5"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/nic/eth1
zcli network-nic set eth0 -ip 192.168.100.102 -netmask 255.255.255.0 -gateway 192.168.100.5

PUT /interfaces/nic/<name>

Modifique os parâmetros de uma interface NIC. nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição
ip Tanga IP da interface.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente.
força Tanga Se um farm estiver usando a interface, ela não poderá ser modificada. Então, se este parâmetro for enviado com o valor verdadeiro, a interface será forçada a tomar a nova configuração e todos os farms estão usando a interface será reiniciada.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Exemplo de resposta:

{
   "description" : "Configure NIC interface",
   "params" : {
      "alias" : null,
      "dhcp" : "false",
      "gateway" : "192.168.100.5",
      "ip" : "192.168.100.102",
      "is_slave" : "false",
      "mac" : "4a:4f:3c:d7:dd:70",
      "name" : "eth1",
      "netmask" : "255.255.255.0",
      "status" : "down"
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir configuração do NIC

Excluir configuração do NIC

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/nic/eth3
zcli network-nic unset eth3

DELETE /interfaces/nic/<name>

Exclua a configuração para uma interface NIC. Após essa ação, a interface será inútil e estará pronta para ser configurada novamente. nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Delete nic interface",
   "message" : "The configuration for the network interface eth3 has been deleted.",
   "success" : "true"
}

Definir ação da interface NIC

Definir ação da interface NIC

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"action":"down"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/nic/eth1/actions
zcli network-nic stop eth1

POST /interfaces/nic/<name>/actions

Aplique uma ação a uma interface NIC. Esta chamada permite ativar ou desativar uma interface de rede.

nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
açao Tanga Ação para aplicar à interface. Os valores disponíveis são: up, ative a interface e prepare-a para ser usada; down, desative a interface para não receber ou não enviar pacotes. verdadeiro

Exemplo de resposta:

{
   "description" : "Action on nic interface",
   "params" : {
      "action" : "up"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Rede - interfaces de VLAN

A interface de VLAN permite que uma interface de NIC ou de ligação funcione em outra rede, portanto, a configuração de rede (IP, porta de entradae netmask) tem que estar em um segmento de rede diferente. A interface VLAN herda o endereço MAC de sua interface pai.

O campo Interfaces VLAN nome aparecerá com um caractere ponto "." que será usado para estabelecer um identificador para a interface VLAN.

Listar interfaces VLAN

Listar interfaces VLAN

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/vlan
zcli network-vlan list 

GET /interfaces/vlan

Obtenha todos os parâmetros de interfaces de VLAN.

Exemplo de resposta:

{
   "description" : "List VLAN interfaces",
   "interfaces" : [
      {
         "alias" : null,
         "gateway" : "192.168.120.1",
         "ip" : "192.168.120.120",
         "mac" : "c2:56:f6:54:ff:a0",
         "name" : "eth0.1",
         "netmask" : "255.255.255.0",
         "parent" : "eth0",
         "dhcp" : "false",
         "status" : "down"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com uma matriz de objetos da interface VLAN.

Os parâmetros da VLAN são:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface. Pode ser diferente do IP da interface pai.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente.
mac Tanga MAC da interface. Este valor é herdado da interface pai.
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo. Este nome é uma cadeia formatada por um nome de interface pai, um caractere de ponto “.” e um número para a interface de rede VLAN ou etiqueta VLAN.
principal Tanga É a interface usada para criar este.
estado Tanga Os valores podem ser up a interface pode receber pacotes, down a interface não pode receber pacotes.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Recuperar interface VLAN

Recuperar interface VLAN

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/vlan/eth0.1
zcli network-vlan get eth0.1

GET /interfaces/vlan/<name>

Obtenha todos os parâmetros da interface VLAN. nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Show VLAN interface",
   "interface" : {
      "alias" : null,
      "gateway" : "192.168.131.1",
      "ip" : "192.168.131.155",
      "mac" : "c2:56:f6:54:ff:a0",
      "name" : "eth0.1",
      "netmask" : "255.255.255.0",
      "dhcp" : "false",
      "status" : "up"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente.
mac Tanga MAC da interface. Este valor é herdado da interface pai.
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo. Este nome é uma cadeia formatada por um nome de interface pai, um caractere de ponto “.” e um número para a interface de rede VLAN.
estado Tanga Os valores podem ser up a interface pode receber pacotes, down a interface não pode receber pacotes.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Crie uma interface VLAN

Crie uma interface VLAN

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.120.120","netmask":"255.255.255.0","gateway":"192.168.120.1","name":"eth0.1","mac":"52:98:19:6a:c9:18","dhcp":"false"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/vlan
zcli network-vlan create -name eth0.1 -ip 192.168.120.120 -netmask 255.255.255.0 -gateway 192.168.120.1 -mac 52:98:19:61:c9:18 -dhcp false

POST /interfaces/vlan

Crie uma interface de VLAN a partir de uma interface NIC ou de ligação. A nova interface de VLAN compartilhará o MAC, embora os seguintes parâmetros de rede devam ser diferentes: ipe o seguinte pode mudar: porta de entrada, netmask.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
ip Tanga IP da interface. Ele deve ser diferente do IP da interface pai. verdadeiro
netmask Tanga Defina o segmento de rede onde a interface está funcionando. verdadeiro
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente. verdadeiro
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo. Este nome é uma cadeia formatada por um nome de interface pai, um caractere de ponto “.” e um número para a interface de rede VLAN. verdadeiro
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.
mac Tanga Reescreve o MAC da interface.

Exemplo de resposta:

{
   "description" : "Add a vlan interface",
   "params" : {
      "gateway" : "192.168.120.1",
      "ip" : "192.168.120.120",
      "mac" : "52:98:19:6a:c9:18",
      "name" : "eth0.1",
      "dhcp" : "false",
      "netmask" : "255.255.255.0"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Modifique a interface VLAN

Modifique a interface VLAN

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.131.155","netmask":"255.255.255.0","gateway":"192.168.131.1","mac":"96:23:25:8b:d4:af"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/vlan/eth0.1
zcli network-vlan set eth0.1 -ip 192.168.131.151 -netmask 255.255.255.0 -gateway 192.168.131.1 -mac 96:23:25:8b:d4:af

PUT /interfaces/vlan/<name>

Modifique os parâmetros de uma interface VLAN. nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição
ip Tanga IP da interface. Pode ser diferente do IP da interface pai.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.
mac Tanga Reescreve o MAC da interface.
força Tanga Se um farm estiver usando a interface, ela não poderá ser modificada. Então, se este parâmetro for enviado com o valor verdadeiro, a interface será forçada a tomar a nova configuração e todos os farms estão usando a interface será reiniciada.

Exemplo de resposta:

{
   "description" : "Modify VLAN interface",
   "params" : {
      "gateway" : "192.168.131.1",
      "ip" : "192.168.131.155",
      "netmask" : "255.255.255.0",
      "mac" : "96:23:25:8b:d4:af",
      "dhcp" : "false",
      "force" : "true"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir interface VLAN

Excluir interface VLAN

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/vlan/eth0.1
zcli network-vlan delete eth0.1

DELETE /interfaces/vlan/<name>

Excluir uma interface de VLAN. nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Delete VLAN interface",
   "message" : "The VLAN interface eth0.1 has been deleted.",
   "success" : "true"
}

Definir ação da interface de VLAN

Definir ação da interface de VLAN

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"action":"down"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/vlan/eth0.1/actions
zcli network-vlan stop eth0.1

POST /interfaces/vlan/<name>/actions

Aplique uma ação a uma interface VLAN. Esta chamada permite ativar ou desativar uma interface de rede.

nome é o nome do identificador exclusivo.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
açao Tanga Ação para aplicar à interface. Os valores disponíveis são: up, ative a interface e prepare-a para ser usada; down, desative a interface para não receber ou não enviar pacotes. verdadeiro

Exemplo de resposta:

{
   "description" : "Action on vlan interface",
   "params" : {
      "action" : "down"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Rede - Interfaces virtuais

As interfaces de rede permitem que os usuários definam outra interface de rede no mesmo segmento de rede do que seus pais, portanto, as interfaces virtuais sempre herdam a configuração de rede de seu pai. O parâmetro diferente será o ip. A interface virtual pode ser criada a partir da NIC, ligação ou VLAN. Criando uma nova interface virtual, aparecerá um campo com um caractere “:” de dois-pontos, que será usado para estabelecer uma identidade para a interface virtual.

Listar interfaces virtuais

Listar interfaces virtuais

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/virtual
zcli network-virtual list

GET /interfaces/virtual

Obtenha todos os parâmetros de interfaces virtuais.

Exemplo de resposta:

{
   "description" : "List virtual interfaces",
   "interfaces" : [
      {
         "alias" : null,
         "gateway" : "",
         "ip" : "192.168.100.155",
         "mac" : "c2:56:f6:54:ff:a0",
         "name" : "eth0:virt",
         "netmask" : "255.255.255.0",
         "parent" : "eth0",
         "status" : "up"
      },
      {
         "alias" : null,
         "gateway" : "192.168.100.5",
         "ip" : "192.168.100.41",
         "mac" : "c2:56:f6:54:ff:a0",
         "name" : "eth0:virtiface",
         "netmask" : "255.255.255.0",
         "parent" : "eth0",
         "status" : "down"
      }
   ]
}

Parâmetros de resposta

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface. O IP deve estar no mesmo segmento de rede que a interface pai.
netmask Tanga Defina o segmento de rede onde a interface está funcionando. Ele herda da interface pai.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente. Ele herda da interface pai.
mac Tanga MAC da interface. Ele herda da interface pai.
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo. Este nome é uma cadeia formatada por uma interface pai, um caractere de dois pontos “:” e o nome da interface de rede virtual, caracteres alfanuméricos são permitidos.
principal Tanga É a interface usada para criar este.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.

Recuperar interface virtual

Recuperar interface virtual

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/virtual/eth0:virtiface
zcli network-virtual get eth0:vip1

GET /interfaces/virtual/<name>

Obtenha todos os parâmetros de uma interface virtual. nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Show virtual interface",
   "interface" : {
      "alias" : null,
      "gateway" : "192.168.100.5",
      "ip" : "192.168.100.41",
      "mac" : "c2:56:f6:54:ff:a0",
      "name" : "eth0:virtiface",
      "netmask" : "255.255.255.0",
      "status" : "down"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface. O IP deve estar no mesmo segmento de rede que a interface pai.
netmask Tanga Defina o segmento de rede onde a interface está funcionando. Ele herda da interface pai.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente. Ele herda da interface pai.
mac Tanga MAC da interface. Ele herda da interface pai.
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo. Este nome é uma cadeia formatada por uma interface pai, um caractere de dois pontos “:” e uma string alfanumérica para a interface de rede virtual.
principal Tanga É a interface usada para criar este.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.

Crie uma interface virtual

Crie interface virtual

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.100.41", "name":"eth0:virtiface"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/virtual
zcli network-virtual create -name eth0:virtiface -ip 192.168.100.41

POST /interfaces/virtual

Crie uma interface virtual.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
ip Tanga IP da interface. O IP deve estar no mesmo segmento de rede que a interface pai. verdadeiro
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo. Este nome é uma cadeia formatada por uma interface pai, um caractere de dois pontos “:” e uma string alfanumérica para a interface de rede virtual. verdadeiro

Exemplo de resposta:

{
   "description" : "Add a virtual interface",
   "params" : {
      "gateway" : "192.168.100.5",
      "ip" : "192.168.100.41",
      "mac" : "c2:56:f6:54:ff:a0",
      "name" : "eth0:virtiface",
      "netmask" : "255.255.255.0"
   }
}

Parâmetros de resposta

A resposta será um JSON com a configuração da interface. Veja o exemplo de resposta para mais informações.

Campo Tipo Descrição
ip Tanga IP da interface. O IP deve estar no mesmo segmento de rede que a interface pai.
netmask Tanga Defina o segmento de rede onde a interface está funcionando. Ele herda da interface pai.
porta de entrada Tanga IP usado para enviar pacotes para um segmento de rede diferente. Ele herda da interface pai.
mac Tanga MAC da interface. Ele herda da interface pai.
nome Tanga Nome da interface. Ele é usado como um identificador exclusivo. Este nome é uma cadeia formatada por uma interface pai, um caractere de dois pontos “:” e uma string alfanumérica para a interface de rede virtual.

Modificar interface virtual

Modificar interface virtual

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.131.155"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/virtual/eth0:virtiface
zcli network-virtual set eth0:virtiface -ip 192.168.131.155

PUT /interfaces/virtual/<name>

Modifique os parâmetros de uma interface virtual. nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição requeridos
ip Tanga IP da interface. O IP deve estar no mesmo segmento de rede que a interface pai. verdadeiro
força Tanga Se um farm estiver usando a interface, ela não poderá ser modificada. Então, se este parâmetro for enviado com o valor verdadeiro, a interface será forçada a tomar a nova configuração e todos os farms estão usando a interface será reiniciada.

Exemplo de resposta:

{
   "description" : "Modify virtual interface",
   "params" : {
      "ip" : "192.168.100.10",
      "force" : "true"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir interface virtual

Excluir interface virtual

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/virtual/eth0:virtiface
zcli network-virtual delete eth0:virtiface

DELETE /interfaces/virtual/<name>

Exclua uma interface virtual. nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Delete virtual interface",
   "message" : "The virtual interface eth0:virtiface has been deleted.",
   "success" : "true"
}

Definir ação da interface virtual

Definir ação da interface virtual

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"action":"down"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/virtual/eth0:virtiface/actions
zcli network-virtual stop eth0:virtiface

POST /interfaces/virtual/<name>/actions

Aplique uma ação a uma interface virtual. Esta chamada permite ativar ou desativar uma interface de rede.

nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
açao Tanga Ação para aplicar à interface. Os valores disponíveis são: up, ative a interface e prepare-a para ser usada; down, desative a interface para não receber ou não enviar pacotes. verdadeiro

Exemplo de resposta:

{
   "description" : "Action on virtual interface",
   "params" : {
      "action" : "down"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Rede - Interfaces de ligação

A interface de ligação do Linux ou também chamada por outros fornecedores como Trunk fornece um método para agregar várias interfaces de rede em uma única interface lógica “unida”. O comportamento das interfaces coladas depende do modo, o Zevenet Load Balancer suporta os seguintes métodos:

Política Round-robin: Transmite pacotes em ordem seqüencial do primeiro escravo disponível até o último. Este modo fornece balanceamento de carga e tolerância a falhas.

Política de backup ativo: Apenas um escravo no vínculo está ativo. Um escravo diferente se torna ativo se, e somente se, o escravo ativo falhar. O endereço MAC do link é visível externamente em apenas uma porta (adaptador de rede) para evitar confundir o comutador. Este modo fornece tolerância a falhas. A principal opção afeta o comportamento dele.

Política XOR: Transmite com base no endereço MAC de origem XOR com endereço MAC de destino. Isso seleciona o mesmo escravo para cada endereço MAC de destino. Este modo fornece balanceamento de carga e tolerância a falhas.

Política de Broadcast: Transmite tudo em todas as interfaces escravas. Este modo fornece tolerância a falhas.

IEEE 802.3ad LACP: Cria grupos de agregação que compartilham as mesmas configurações de velocidade e duplex. Utiliza todos os escravos no agregador ativo de acordo com a especificação 802.3ad.

Pré-requisitos:

  1. Suporte de interface de rede nos drivers básicos para recuperar a velocidade e o duplex de cada escravo.

  2. Um comutador que suporta agregação de link Dinâmico IEEE 802.3ad. A maioria dos switches requer algum tipo de configuração para ativar o modo 802.3ad.

Balanceamento de carga de transmissão adaptável: Ligação de canal que não requer nenhum suporte de comutador especial. O tráfego de saída é distribuído de acordo com a carga atual (calculada em relação à velocidade) em cada escravo. O tráfego de entrada é recebido pelo escravo atual. Se o escravo receptor falhar, outro escravo assumirá o endereço MAC do escravo receptor recebido com falha.

Pré-requisito:

Suporte ao driver base para recuperar a velocidade de cada escravo.

Balanceamento adaptativo de carga: Inclui o balanceamento de carga de transmissão adaptável, além de receber o balanceamento de carga para o tráfego IPV4 e não requer nenhum suporte de switch especial. O balanceamento de carga de recebimento é obtido pela negociação ARP. O driver de ligação intercepta as respostas ARP enviadas pelo sistema local ao sair e sobrescreve o endereço de hardware de origem com o endereço de hardware exclusivo de um dos escravos na ligação, de modo que pares diferentes usem endereços de hardware diferentes para o servidor.

Listar interfaces de ligação

Listar interfaces de ligação

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding
zcli network-bonding list

GET /interfaces/bonding

Obtenha a configuração sobre todas as interfaces de ligação no sistema.

Exemplo de resposta:

{
   "description" : "List bonding interfaces",
   "interfaces" : [
      {
         "alias" : null,
         "gateway" : "",
         "ip" : "",
         "mac" : "66:eb:31:0e:07:71",
         "mode" : "broadcast",
         "name" : "bond2",
         "netmask" : "",
         "dhcp" : "false",
         "slaves" : [
            {
               "name" : "eth2"
            }
         ],
         "status" : "down"
      },
      {
         "alias" : null,
         "gateway" : "192.168.100.1",
         "ip" : "192.168.100.121",
         "mac" : "a2:6d:80:29:87:c6",
         "mode" : "balance-rr",
         "name" : "bondiface",
         "dhcp" : "false",
         "netmask" : "255.255.255.0",
         "slaves" : [
            {
               "name" : "eth3"
            },
            {
               "name" : "eth4"
            }
         ],
         "status" : "up"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com uma matriz de objetos de interface de ligação.

Os parâmetros de ligação são:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente.
mac Tanga Identificador exclusivo da camada de link. É o mac do primeiro escravo da interface NIC.
nome Tanga Nome da interface. É usado como um identificador exclusivo da interface.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.
escravos Objeto[] Membros da interface NIC da interface de ligação.
modo Tanga É o modo de trabalho para interface de ligação. As opções são: equilíbrio-rrPolítica Round-robin; backup ativoPolítica de backup ativo; equilíbrio-xorPolítica XOR; transmissãoPolítica de transmissão; 802.3ad, IEEE 802.3ad LACP; equilíbrio-tlbBalanceamento adaptativo de carga de transmissão; equilíbrio-alb, Balanceamento de carga adaptável. Esses valores são definidos na seção Rede - Interfaces de ligação.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Objeto de escravos:

Campo Tipo Descrição
nome Tanga Nome é o identificador exclusivo da interface do escravo da NIC.

Recuperar interface de ligação

Recuperar interface de ligação

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding/bondiface
zcli network-bonding get bondiface

GET /interfaces/bonding/<name>

Obtenha todos os parâmetros da interface. nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Show bonding interface",
   "interface" : {
      "alias" : null,
      "gateway" : "192.168.100.1",
      "ip" : "192.168.100.121",
      "mac" : "a2:6d:80:29:87:c6",
      "mode" : "balance-rr",
      "name" : "bondiface",
      "netmask" : "255.255.255.0",
      "dhcp" : "false",
      "slaves" : [
         {
            "name" : "eth3"
         },
         {
            "name" : "eth2"
         }
      ],
      "status" : "up"
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com um objeto de interface de ligação.

Os parâmetros de ligação são:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
ip Tanga IP da interface.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente.
mac Tanga Identificador exclusivo da camada de link. É o mac do primeiro escravo da interface NIC.
nome Tanga Nome da interface. É usado como um identificador exclusivo da interface.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.
escravos Objeto[] Membros da interface NIC da interface de ligação.
modo Tanga É o modo de trabalho para interface de ligação. As opções são: equilíbrio-rrPolítica Round-robin; backup ativoPolítica de backup ativo; equilíbrio-xorPolítica XOR; transmissãoPolítica de transmissão; 802.3ad, IEEE 802.3ad LACP; equilíbrio-tlbBalanceamento adaptativo de carga de transmissão; equilíbrio-alb, Balanceamento de carga adaptável. Esses valores são definidos em Rede> Interfaces de ligação.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.

Escravo objeto:

Campo Tipo Descrição
nome Tanga Nome é o identificador exclusivo da interface do escravo da NIC.

Criar interface de ligação

Criar interface de ligação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"slaves":["eth3","eth2"],"name":"bondiface","mode":"balance-rr"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding
zcli network-bonding create -slave eth3,eth2 -name bondiface -mode balance-rr

POST /interfaces/bonding

Crie uma interface de ligação unindo interfaces NIC.

O endereço MAC de ligação será retirado da sua primeira interface NIC. O modo de ligação não pode ser alterado depois que a interface de ligação é criada, mas as interfaces de membro podem ser adicionadas ou excluídas na interface de ligação, conforme necessário. Uma interface NIC será bloqueada se fizer parte de uma interface de ligação.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
nome Tanga Nome da interface. É usado como um identificador exclusivo da interface. verdadeiro
escravos Corda[] Todas as interfaces NIC que criam a ligação. É necessário o parâmetro NIC nome. verdadeiro
modo Tanga É o modo de trabalho para interface de ligação. As opções são: equilíbrio-rrPolítica Round-robin; backup ativoPolítica de backup ativo; equilíbrio-xorPolítica XOR; transmissãoPolítica de transmissão; 802.3ad, IEEE 802.3ad LACP; equilíbrio-tlbBalanceamento adaptativo de carga de transmissão; equilíbrio-alb, Balanceamento de carga adaptável. Esses valores são definidos em Rede> Interfaces de ligação. verdadeiro

Exemplo de resposta:

{
   "description" : "Add a bond interface",
   "params" : {
      "mac" : "a2:6d:80:29:87:c6",
      "mode" : "balance-rr",
      "name" : "bondiface",
      "slaves" : [
         {
            "name" : "eth3"
         },
         {
            "name" : "eth2"
         }
      ],
      "status" : "down"
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com os parâmetros configurados de ligação.

Campo Tipo Descrição
mac Tanga Identificador exclusivo da camada de link. É o mac do primeiro escravo da interface NIC.
nome Tanga Nome da interface. É usado como um identificador exclusivo da interface.
estado Tanga Os valores podem ser up, a interface pode receber pacotes; down, a interface não pode receber pacotes.
escravos Objeto[] Interfaces NIC que criam a interface de ligação.
modo Tanga É o modo de trabalho para interface de ligação. As opções são: equilíbrio-rrPolítica Round-robin; backup ativoPolítica de backup ativo; equilíbrio-xorPolítica XOR; transmissãoPolítica de transmissão; 802.3ad, IEEE 802.3ad LACP; equilíbrio-tlbBalanceamento adaptativo de carga de transmissão; equilíbrio-alb, Balanceamento de carga adaptável. Esses valores são definidos em Rede> Interfaces de ligação.

Escravo objeto:

Campo Tipo Descrição
nome Tanga Nome é o identificador exclusivo da interface do escravo da NIC.

Modificar interface de ligação

Modificar interface de ligação

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"ip":"192.168.100.121","netmask":"255.255.255.0","gateway":"192.168.100.1","mac":"86:2f:0e:9a:30:14"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding/bondiface
zcli network-bonding set bondiface -ip 192.168.100.121 -netmask 255.255.255.0 -gateway 192.168.100.1 -mac 86:2f:0e:9a:30:14 

PUT /interfaces/bonding/<name>

Modifique os parâmetros de uma interface de ligação. nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição
ip Tanga IP da interface.
netmask Tanga Defina o segmento de rede onde a interface está funcionando.
porta de entrada Tanga IP usado para enviar pacotes de um segmento de rede diferente.
força Tanga Se um farm estiver usando a interface, ela não poderá ser modificada. Então, se este parâmetro for enviado com o valor verdadeiro, a interface será forçada a tomar a nova configuração e todos os farms estão usando a interface será reiniciada.
dhcp Tanga Permite que o serviço DHCP obtenha a configuração de rede da interface de um servidor DHCP. Este parâmetro aceita: verdadeiro, para habilitar o serviço, a configuração da interface será bloqueada enquanto o serviço DHCP estiver habilitado; falso para parar o serviço, a interface perderá toda a sua configuração de rede.
mac Tanga Reescreve o MAC da interface.

Exemplo de resposta:

{
   "description" : "Modify bond address",
   "params" : {
      "gateway" : "192.168.100.1",
      "ip" : "192.168.100.121",
      "netmask" : "255.255.255.0",
      "mac" : "86:2f:0e:9a:30:14",
      "dhcp" : "false",
      "force" : "true"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Excluir configuração de ligação

Excluir configuração de ligação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding/bondiface
zcli network-bonding delete bondiface

DELETE /interfaces/bonding/<name>

Exclua a configuração da interface de ligação. Os parâmetros de configuração são: porta de entrada, ip e assim netmask.

nome é o identificador exclusivo da interface.

Exemplo de resposta:

{
   "description" : "Delete bonding network configuration",
   "message" : "The configuration for the bonding interface bondiface has been deleted.",
   "success" : "true"
}

Definir ação da interface de ligação

Definir ação da interface de ligação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"action":"up"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding/bondiface/actions
zcli network-bond start bondiface

POST /interfaces/bonding/<name>/actions

Aplique uma ação a uma interface de ligação. Essa chamada permite excluir a interface de ligação e ativá-la ou desativá-la.

É necessário excluir a interface de ligação usando destruir ação se você deseja desbloquear as interfaces de NIC usadas na ligação. O driver de ligação restaurará os endereços MAC que as interfaces dos membros tinham antes de serem adicionados à interface de ligação.

nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
açao Tanga Ação para aplicar à interface. Os valores disponíveis são: up ativar a interface e prepará-la para ser usada, down desabilitar a interface para não receber ou não enviar pacotes, destruir exclua a ligação e restaure as interfaces de escravos da NIC. verdadeiro

Exemplo de resposta:

{
   "description" : "Action on bond interface",
   "params" : {
      "action" : "up"
   }
}

Parâmetros de resposta

A resposta será um JSON com todos os valores solicitados atualizados. Veja o exemplo de resposta para mais informações.

Adicione uma interface escrava de ligação

Adicione uma interface escrava de ligação

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"eth4"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding/bondiface/slaves
zcli network-bonding-slave add bondiface -name eth4

POST /interfaces/bonding/<name>/slaves

Adicione uma interface NIC como escrava a uma interface de ligação existente.

nome é o identificador exclusivo da interface.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
nome Tanga Interface NIC nome para adicionar à interface de ligação. verdadeiro

Exemplo de resposta:

{
   "description" : "Add a slave to a bond interface",
   "params" : {
      "mac" : "a2:6d:80:29:87:c6",
      "mode" : "balance-rr",
      "name" : "bondiface",
      "slaves" : [
         {
            "name" : "eth3"
         },
         {
            "name" : "eth2"
         },
         {
            "name" : "eth4"
         }
      ],
      "status" : "up"
   }
}

Parâmetros de resposta

A resposta será um JSON com valores configurados atualizados. Veja o exemplo de resposta para mais informações.

Remover uma interface escrava de ligação

Remover uma interface escrava de ligação

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/bonding/bondiface/slaves/eth2
zcli network-bonding-slave remove bondiface eth2

DELETE /interfaces/bonding/<name>/slaves/<name>

Excluir uma interface escrava NIC de uma interface de ligação. A interface de ligação deve ter quase uma interface escrava NIC.

Primeiro, nome é o DELETE chamada é o identificador único do nome da ligação, a seguir nome no DELETE call é o identificador único do nome da interface da NIC.

Exemplo de resposta:

{
   "description" : "Remove bonding slave interface",
   "message" : "The bonding slave interface eth2 has been removed.",
   "success" : "true"
}

Rede - Interfaces Flutuantes

Esse tipo de interface usa uma interface virtual definida e mascara o tráfego de saída de um nic, bonding or VLAN interface com uma criança virtual interface. Essa interface é usada para o comportamento de failover com estado em perfis l4xnat, se um cluster estiver configurado.

Listar interfaces flutuantes

Listar interfaces flutuantes

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/floating
zcli network-floating list

GET /interfaces/floating

Mostrar todas as interfaces disponíveis ou configuradas nas quais um IP flutuante foi criado.

Exemplo de resposta:

{
   "description" : "List floating interfaces",
   "params" : [
      {
         "alias" : null,
         "floating_alias" : null,
         "floating_ip" : null,
         "interface" : "bondiface",
         "interface_virtual" : null
      },
      {
         "alias" : null,
         "floating_alias" : null,
         "floating_ip" : "192.168.100.41",
         "interface" : "eth0",
         "interface_virtual" : "eth0:virtiface"
      },
      {
         "alias" : null,
         "floating_alias" : null,
         "floating_ip" : null,
         "interface" : "eth0.1",
         "interface_virtual" : null
      },
      {
         "alias" : "gestion",
         "floating_alias" : null,
         "floating_ip" : null,
         "interface" : "eth1",
         "interface_virtual" : null
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com uma matriz de objetos de interface flutuante:

Flutuante objeto:

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
floating_alias Tanga É o alias da interface virtual.
floating_ip Tanga IP flutuante usado em interface. floating_ip deve existir como filho interface virtual do interface.
interface Tanga Interface mascarada pelo IP flutuante.
interface_virtual Tanga É o nome da interface virtual do IP flutuante usado para mascarar a interface.

Recuperar interface flutuante

Recuperar interface flutuante

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/floating/eth0
zcli network-floating get eth0

GET /interfaces/floating/<name>

Mostra se uma interface possui um IP flutuante configurado. Se tiver um configurado, será mostrado aqui.

nome é o identificador exclusivo da interface que pode ser do tipo nic, bonding ou VLAN.

Exemplo de resposta:

{
   "description" : "Show floating interface",
   "params" : {
      "alias" : null,
      "floating_alias" : null,
      "floating_ip" : "192.168.100.41",
      "interface" : "eth0",
      "interface_virtual" : "eth0:virtiface"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
aliás Tanga É um nick para ajudar a identificar a interface. aliás
floating_alias Tanga É o alias da interface virtual.
floating_ip Tanga IP flutuante usado em interface. floating_ip deve existir como filho interface virtual do interface.
interface Tanga Interface mascarada pelo IP flutuante.
interface_virtual Tanga É o nome da interface virtual do IP flutuante usado para mascarar a interface.

Modificar interface flutuante

Modificar interface flutuante

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"floating_ip":"192.168.100.199"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/floating/eth0
zcli network-floating set eth0 -floating_ip 192.168.100.199

PUT /interfaces/floating/<name>

Configure um IP flutuante para uma interface de NIC, ligação ou VLAN.

nome é o identificador exclusivo da interface que pode ser do tipo nic, bonding ou VLAN.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
floating_ip Tanga IP flutuante usado em interface. floating_ip deve existir como filho interface virtual do interface. verdadeiro

Exemplo de resposta:

{
   "description" : "Modify floating interface",
   "message" : "Floating interface modification done",
   "success" : "true"
}

Excluir configuração flutuante

Excluir configuração flutuante

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/interfaces/floating/eth0
zcli network-floating delete eth0

DELETE /interfaces/floating/<name>

Remova a configuração IP flutuante em uma interface.

nome é o identificador exclusivo da interface que pode ser do tipo nic, bonding ou VLAN.

Exemplo de resposta:

{
   "description" : "Remove floating interface",
   "message" : "The floating interface has been removed.",
   "success" : "true"
}

Rede - Aliases

Coloque um alias em uma interface ou back-end para identificá-lo rapidamente.

Existem dois tipos de aliases, o alias de interface pode ser aplicado em todos os tipos de interfaces: NIC, ligação, VLAN ou virtual. É uma maneira fácil de relacionar um nome de interface com um nome mais amigável.

O outro tipo de alias é para backends. Isso relaciona o IP de back-end com um alias.

Os aliases são apenas informações visuais, não substituem o IP de backend ou o nome da interface em uma solicitação ZAPI.

Listar aliases

Listar aliases

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/aliases/backends
zcli network-alias-backend list

GET /aliases/<backends|interfaces>

Listar os aliases no sistema para interfaces ou back-ends.

Exemplo de resposta:

{
   "description" : "List the aliases",
   "params" : [
      {
         "id" : "192.168.11.13",
         "alias" : "http-backend"
      },
      {
         "id" : "127.0.0.1",
         "alias" : "localhost"
      }
   ]
}

Parâmetros de resposta

O ZAPI retorna um hash em que a chave é o IP de backend ou o nome da interface e o valor é seu alias.

Crie um alias

Crie um alias

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"id":"eth0","alias":"management"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/aliases/interfaces
zcli network-alias-interface set eth0 -alias management

POST /aliases/<backends|interfaces>

O tipo de objeto de backend ou interfaces que receberá o alias.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
aliás Tanga É o nick do elemento id enviado no URI. verdadeiro
id Tanga É o IP de back-end ou o nome da interface. verdadeiro

Exemplo de resposta:

{
   "description" : "Set an alias",
   "message" : "Alias for eth0 has been updated successfully",
   "success" : "true"
}

Parâmetros de resposta

O ZAPI retorna uma mensagem de sucesso se o processo estiver correto.

Modificar um alias

Modificar um alias

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"alias":"gateway"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/aliases/interfaces/eth0
zcli network-alias-interface set eth0 -alias gateway

PUT /aliases/<backends|interfaces>/<id>

Se o objeto tiver um alias, ele será substituído, caso contrário, um alias será criado para o objeto.

A id O parâmetro URI é o IP de back-end ou o nome da interface.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
aliás Tanga É o nick do elemento id enviado no URI. verdadeiro

Exemplo de resposta:

{
   "description" : "Set an alias",
   "message" : "Alias for eth0 has been updated successfully",
   "success" : "true"
}

Parâmetros de resposta

O ZAPI retorna uma mensagem de sucesso se o processo estiver correto.

Excluir um alias

Excluir um alias

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/aliases/interfaces/eth0
zli network-alias-interface delete eth0

DELETE /aliases/<backends|interfaces>/<id>

Exclui o alias de uma interface ou back-end.

A id O parâmetro URI é o IP de back-end ou o nome da interface.

Exemplo de resposta:

{
   "description" : "Delete an alias",
   "message" : "The alias has been deleted.",
   "success" : "true"
}

Parâmetros de resposta

O ZAPI retorna uma mensagem de sucesso se o processo estiver correto.

Rede - Roteamento

Este módulo está disponível no zapi versão 4.0.1.

Este módulo gerencia as rotas para o tráfego que está passando ou do balanceador de carga. Este processo calcula que a interface de saída depende da fonte do pacote e do destino do pacote. Para esta tarefa, o balanceador de carga usa dois tipos de objetos regras e assim tabelas.

O primeiro passo é procurar um governar onde a fonte do pacote corresponde, uma vez que a regra é encontrada, a interface de saída de pacotes está procurando no diretório mesa que governar definiram. A interface é um token da rota que corresponde ao destino do pacote.

Regras de roteamento de lista

Regras de roteamento de lista

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/rules
zcli network-routing-rule list

GET /routing/rules

Listar as regras de roteamento do balanceador de carga. As regras de roteamento são usadas para fazer com que a tabela de interface dependa do IP do pacote de origem

Exemplo de resposta:

{
    "description" : "List routing rules",
    "params" : [
        {
            "id" : 1024,
            "not" : "true",
            "from" : "10.10.10.0/24",
            "priority" : 30000,
            "table" : "table_eth1",
            "type" : "user"
        },
        {
            "table" : "local",
            "type" : "system",
            "id" : 0,
            "priority" : 0,
            "from" : "all"
        },
        {
            "id" : 0,
            "priority" : 31000,
            "from" : "10.3.0.0/24",
            "table" : "205",
            "type" : "system"
        },
        {
            "type" : "system",
            "table" : "table_eth1",
            "priority" : 31000,
            "from" : "4.4.4.0/24",
            "id" : 0
        },
        {
            "type" : "system",
            "table" : "main",
            "priority" : 32766,
            "from" : "all",
            "id" : 0
        }
    ]
}

Parâmetros de resposta

A resposta será uma lista JSON com todas as regras de roteamento no sistema. Cada regra é um objeto com os seguintes parâmetros:

Campo Tipo Descrição
id Sessão É o identificador exclusivo usado para regras de roteamento.
não Tanga Este campo é usado combinado com o parâmetro de para negar o resultado da partida. Este parâmetro é uma sequência booleana com o valor verdadeiro para habilitá-lo ou com o valor falso se o resultado da partida não for negado.
de Tanga É o IP de origem ou o segmento de rede usado para corresponder ao IP de origem do pacote.
prioridade Sessão É a prioridade da regra, um valor menor de prioridade é uma alta prioridade.
mesa Tanga É a tabela de interface usada para rotear se o IP da origem do pacote corresponder ao parâmetro de.
tipo Tanga É o tipo de regra, este campo pode ter os valores: fazenda é uma rota usada para rotear o tráfego de uma fazenda l4xnat, usuário é uma regra criada pelo administrador do balanceador de carga ou sistema é uma regra gerada automaticamente para o sistema.

Criar regra de roteamento

Criar regra de roteamento

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"table":"table_eth1","not":"true","priority":"30000","from":"192.168.0.0/16"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/rules
zcli network-routing-rule -table table_eth1 -not true -priority 30000 -from 192.168.0.0/16

POST /routing/rules

Crie uma regra de roteamento.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
não Tanga Este campo é usado combinado com o parâmetro de para negar o resultado da partida. Este parâmetro é uma sequência booleana com o valor verdadeiro para habilitá-lo ou com o valor falso se o resultado da partida não for negado.
de Tanga É o IP de origem ou o segmento de rede usado para corresponder ao IP de origem do pacote. verdadeiro
prioridade Sessão É a prioridade da regra, um valor menor de prioridade é uma alta prioridade. As regras criadas devem ter um valor entre 29000 e assim 30999
mesa Tanga É a tabela de interface usada para rotear se o IP da origem do pacote corresponder ao parâmetro de. verdadeiro

Exemplo de resposta:

{
    "description" : "Create a routing rule",
    "params" : [
        {
            "not" : "true",
            "id" : 1024,
            "from" : "192.168.0.0/16",
            "priority" : 30000,
            "table" : "table_eth1",
            "type" : "user"
        },
        {
            "table" : "table_eth0",
            "type" : "system",
            "id" : 0,
            "priority" : 32765,
            "from" : "192.168.100.0/24"
        },
        {
            "from" : "all",
            "priority" : 32766,
            "id" : 0,
            "type" : "system",
            "table" : "main"
        },
        {
            "id" : 0,
            "priority" : 32767,
            "from" : "all",
            "table" : "default",
            "type" : "system"
        }
    ]
}

Parâmetros de resposta

A resposta será um objeto JSON com todas as regras de rotas do sistema. Cada rota é um objeto com os parâmetros:

Campo Tipo Descrição
id Sessão É o identificador exclusivo usado para regras de roteamento.
não Tanga Este campo é usado combinado com o parâmetro de para negar o resultado da partida. Este parâmetro é uma sequência booleana com o valor verdadeiro para habilitá-lo ou com o valor falso se o resultado da partida não for negado.
de Tanga É o IP de origem ou o segmento de rede usado para corresponder ao IP de origem do pacote.
prioridade Sessão É a prioridade da regra, um valor menor de prioridade é uma alta prioridade.
mesa Tanga É a tabela de interface usada para rotear se o IP da origem do pacote corresponder ao parâmetro de.
tipo Tanga É o tipo de regra, este campo pode ter os valores: fazenda é uma rota usada para rotear o tráfego de uma fazenda l4xnat, usuário é uma regra criada pelo administrador do balanceador de carga ou sistema é uma regra gerada automaticamente para o sistema.

Modificar regra de roteamento

Modificar regra de roteamento

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"table":"table_eth1","from":"10.10.10.0/24","priority":"30000","not":"false"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/rules/1024
zcli network-routing-rule set 1024 -table table_eth1 -from 10.10.10.0/24 -priority 30000 -not false

PUT /routing/rules/<id>

Modifique os parâmetros de uma regra de roteamento.

A id O parâmetro URI é o identificador exclusivo da regra.

As regras de tipo usuário são os únicos que podem ser modificados

Solicitar Parâmetros

Campo Tipo Descrição Exigido
não Tanga Este campo é usado combinado com o parâmetro de para negar o resultado da partida.
de Tanga É o IP de origem ou o segmento de rede usado para corresponder ao IP de origem do pacote. Este parâmetro é uma sequência booleana com o valor verdadeiro para habilitá-lo ou com o valor falso se o resultado da partida não for negado. verdadeiro
prioridade Sessão É a prioridade da regra, um valor menor de prioridade é uma alta prioridade. As regras criadas devem ter um valor entre 29000 e assim 30999
mesa Tanga É a tabela de interface usada para rotear se o IP da origem do pacote corresponder ao parâmetro de. verdadeiro

Exemplo de resposta:

{
    "description" : "Modify a routing rule",
    "params" : [
        {
            "not" : "true",
            "id" : 1024,
            "priority" : 30000,
            "from" : "10.10.10.0/24",
            "table" : "table_eth1",
            "type" : "user"
        },
        {
            "id" : 0,
            "from" : "4.4.4.0/24",
            "priority" : 31000,
            "table" : "table_eth1",
            "type" : "system"
        },
        {
            "table" : "table_eth2",
            "type" : "system",
            "id" : 0,
            "from" : "5.5.5.0/24",
            "priority" : 31000
        },
        {
            "type" : "system",
            "table" : "table_eth0",
            "from" : "192.168.100.0/24",
            "priority" : 32765,
            "id" : 0
        },
    ]
}

Parâmetros de resposta

A resposta será um objeto JSON com todas as regras de rotas do sistema. Cada rota é um objeto com os parâmetros:

Campo Tipo Descrição
id Sessão É o identificador exclusivo usado para regras de roteamento.
não Tanga Este campo é usado combinado com o parâmetro de para negar o resultado da partida. Este parâmetro é uma sequência booleana com o valor verdadeiro para habilitá-lo ou com o valor falso se o resultado da partida não for negado.
de Tanga É o IP de origem ou o segmento de rede usado para corresponder ao IP de origem do pacote.
prioridade Sessão É a prioridade da regra, um valor menor de prioridade é uma alta prioridade.
mesa Tanga É a tabela de interface usada para rotear se o IP da origem do pacote corresponder ao parâmetro de.
tipo Tanga É o tipo de regra, este campo pode ter os valores: fazenda é uma rota usada para rotear o tráfego de uma fazenda l4xnat, usuário é uma regra criada pelo administrador do balanceador de carga ou sistema é uma regra gerada automaticamente para o sistema.

Excluir regra de roteamento

Excluir regra de roteamento

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/rules/1024
zcli network-routing-rule remove 1024

DELETE /routing/rules/<id>

Exclua uma regra de roteamento.

A id O parâmetro URI é o identificador exclusivo da regra.

Exemplo de resposta:

{
    "message" : "The routing rule '1024' has been deleted successfully.",
    "description" : "Delete the routing rule '1024'"
}

Listar tabelas de roteamento

Listar tabelas de roteamento

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables
zcli network-routing-table list

GET /routing/tables

Liste as tabelas de roteamento que o balanceador de carga gerencia.

A tabela principal é global para todas as interfaces. Ele contém rotas padrão para todas as interfaces que serão usadas se nenhuma regra corresponder ao pacote. Cada tabela de interface gerencia as rotas para o tráfego de saída dessa interface.

Exemplo de resposta:

{
  "description" : "List routing tables",
  "params" : [
                "main",
                "table_eth0",
                "table_eth1",
                "table_eth2",
                "table_eth3"
              ]
}

Parâmetros de resposta

A resposta será um objeto JSON com o params chave que contém uma lista com as tabelas existentes no sistema.

Listar rotas de uma tabela

Regras de roteamento de lista

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables/table_eth2
zcli network-routing-table get table_eth2

GET /routing/tables/<table>

Liste as entradas de rotas que uma tabela de interface gerencia. Essas entradas são usadas para corresponder ao IP de destino do pacote. A interface de saída para o pacote será a primeira interface que corresponderá a uma entrada da tabela.

Exemplo de resposta:

{
    "description" : "Get the routing table 'table_eth2'",
    "params" : [
        {
          "to" : "84.1.21.5",
          "via" : "4.4.4.45",
          "priority" : 2,
          "raw" : "84.1.21.5 dev eth1 src 4.4.4.4 via 4.4.4.45 metric 2 table table_eth2",
          "id" : 1024,
          "source" : "4.4.4.4",
          "type" : "user",
          "interface" : "eth1"
        },
        {
          "priority" : 10,
          "raw" : "5.5.5.0/24 dev eth2 scope link src 5.5.5.5 initcwnd 10 initrwnd 10  table table_eth2",
          "interface" : "eth2",
          "source" : "5.5.5.5",
          "type" : "system",
          "to" : "5.5.5.0/24",
          "via" : ""
        },
        {
          "via" : "",
          "to" : "192.168.100.0/24",
          "interface" : "eth0",
          "type" : "system",
          "source" : "192.168.100.241",
          "raw" : "192.168.100.0/24 dev eth0 scope link src 192.168.100.241 initcwnd 10 initrwnd 10  table table_eth2",
          "priority" : 10
        }
    ]
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params e uma lista das rotas que contém a tabela.

Campo Tipo Descrição
cru Tanga É a entrada de roteamento com o Rota IP formato.
prioridade Sessão É a prioridade em que a rota será examinada. Um valor mais baixo é mais prioritário. Este campo deve ter um valor entre 1 e assim 10.
interface Tanga É a interface de saída usada se a rota corresponder.
fonte Tanga É o IP usado para mascarar o pacote. Essa fonte precisa existir no balanceador de carga como uma interface virtual.
tipo Tanga É o tipo de rota. As rotas podem ser do tipo sistema criados e gerenciados automaticamente pelo sistema ou usuário quando a rota foi criada por um usuário do balanceador de carga. Verificando o descontrolado para remover um sistema rota.
para Tanga É uma condição de partida. Se o IP de destino do pacote corresponder a ele, a rota será bem-sucedida.
via Tanga É o próximo salto do pacote. É usado como um gateway. Esse IP deve ser alcançado no segmento de rede de interface.
id Sessão É o identificador exclusivo da rota. Este parâmetro é usado para modificar ou excluir a rota e está disponível apenas nas rotas do tipo usuário.

Criar entrada de roteamento

Criar entrada de roteamento

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"source":"4.4.4.4","via":"4.4.4.45","interface":"eth1","priority":2,"to":"84.1.21.5"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables/table_eth2/routes
zcli network-routing-table add table_eth2 -source 4.4.4.4 -via 4.4.4.45 -interface eth1 -priority 2 -to 84.1.21.5

POST /routing/tables/<table>/routes

Crie uma rota para uma interface.

A mesa O parâmetro URI é a tabela de interface em que a rota será adicionada.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
cru Tanga É a entrada de roteamento com o Rota IP formato. Se este parâmetro for usado, os outros serão evitados.
para Tanga É uma condição de partida. Se o IP de destino do pacote corresponder a ele, a rota será bem-sucedida. É necessário quando cru não é enviado
prioridade Sessão É a prioridade em que a rota será examinada. Um valor mais baixo é mais prioritário. Este campo deve ter um valor entre 1 e assim 10.
interface Tanga É a interface de saída usada se a rota corresponder.
fonte Tanga É o IP usado para mascarar o pacote. Essa fonte precisa existir no balanceador de carga como uma interface virtual.
via Tanga É o próximo salto do pacote. É usado como um gateway. Esse IP deve ser alcançado no segmento de rede de interface.

Exemplo de resposta:

{
    "description" : "Create a routing entry in the table 'table_eth2'",
    "params" : [
        {
          "to" : "84.1.21.5",
          "via" : "4.4.4.45",
          "priority" : 2,
          "raw" : "84.1.21.5 dev eth1 src 4.4.4.4 via 4.4.4.45 metric 2 table table_eth2",
          "id" : 1024,
          "source" : "4.4.4.4",
          "type" : "user",
          "interface" : "eth1"
        },
        {
          "raw" : "default via 5.5.5.1 dev eth2 initcwnd 10 initrwnd 10  table table_eth2",
          "priority" : 10,
          "source" : "",
          "type" : "system",
          "interface" : "eth2",
          "to" : "default",
          "via" : "5.5.5.1"
        },
        {
          "priority" : 10,
          "raw" : "4.4.4.0/24 dev eth1 scope link src 4.4.4.4 initcwnd 10 initrwnd 10  table table_eth2",
          "source" : "4.4.4.4",
          "type" : "system",
          "interface" : "eth1",
          "to" : "4.4.4.0/24",
          "via" : ""
        },
    ]
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params e uma lista das rotas que contém a tabela.

Campo Tipo Descrição
prioridade Sessão É a prioridade em que a rota será examinada. Um valor mais baixo é mais prioritário. Este campo deve ter um valor entre 1 e assim 10.
cru Tanga É a entrada de roteamento com o Rota IP formato.
interface Tanga É a interface de saída usada se a rota corresponder.
fonte Tanga É o IP usado para mascarar o pacote. Essa fonte precisa existir no balanceador de carga como uma interface virtual.
tipo Tanga É o tipo de rota. As rotas podem ser do tipo sistema criados e gerenciados automaticamente pelo sistema ou usuário quando a rota foi criada por um usuário do balanceador de carga. Verificando o descontrolado para remover um sistema rota.
para Tanga É uma condição de partida. Se o IP de destino do pacote corresponder a ele, a rota será bem-sucedida.
via Tanga É o próximo salto do pacote. É usado como um gateway. Esse IP deve ser alcançado no segmento de rede de interface.
id Sessão É o identificador exclusivo da rota. Este parâmetro é usado para modificar ou excluir a rota e está disponível apenas nas rotas do tipo usuário.

Modificar uma entrada de rota

Modificar uma entrada de rota

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"priority":2,"source":"4.4.4.4","interface":"eth1","to":"71.71.71.0/24","via":"4.4.4.45"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables/table_eth2/routes/1024
zcli network-routing-table -id 1024 -priority 2 -source 4.4.4.4 -interface eth1 -to 71.71.71.0/24 -via 4.4.4.45

PUT /routing/tables/<table>/routes/<id>

Modifique os parâmetros de uma entrada de rota.

A mesa O parâmetro URI é a tabela de interface da rota que será modificada. o id O parâmetro URI é o identificador exclusivo da rota que será modificada.

Solicitar Parâmetros

Campo Tipo Descrição
cru Tanga É a entrada de roteamento com o Rota IP formato. Se este parâmetro for usado, os outros serão evitados.
prioridade Sessão É a prioridade em que a rota será examinada. Um valor mais baixo é mais prioritário. Este campo deve ter um valor entre 1 e assim 10.
interface Tanga É a interface de saída usada se a rota corresponder.
fonte Tanga É o IP usado para mascarar o pacote. Essa fonte precisa existir no balanceador de carga como uma interface virtual.
para Tanga É uma condição de partida. Se o IP de destino do pacote corresponder a ele, a rota será bem-sucedida.
via Tanga É o próximo salto do pacote. É usado como um gateway. Esse IP deve ser alcançado no segmento de rede de interface.

Exemplo de resposta:

{
    "description" : "Modify a routing entry in the table 'table_eth2'",
    "params" : [
        {
          "to" : "71.71.71.0/24",
          "via" : "4.4.4.45",
          "raw" : "71.71.71.0/24 dev eth1 src 4.4.4.4 via 4.4.4.45 metric 2 table table_eth2",
          "priority" : 2,
          "id" : 1024,
          "type" : "user",
          "source" : "4.4.4.4",
          "interface" : "eth1"
        },
        {
          "raw" : "default via 5.5.5.1 dev eth2 initcwnd 10 initrwnd 10  table table_eth2",
          "priority" : 10,
          "interface" : "eth2",
          "source" : "",
          "type" : "system",
          "to" : "default",
          "via" : "5.5.5.1"
        },
        {
          "via" : "",
          "to" : "4.4.4.0/24",
          "interface" : "eth1",
          "source" : "4.4.4.4",
          "type" : "system",
          "priority" : 10,
          "raw" : "4.4.4.0/24 dev eth1 scope link src 4.4.4.4 initcwnd 10 initrwnd 10  table table_eth2"
        },
    ]
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params e uma lista das rotas que contém a tabela.

Campo Tipo Descrição
prioridade Sessão É a prioridade em que a rota será examinada. Um valor mais baixo é mais prioritário. Este campo deve ter um valor entre 1 e assim 10.
cru Tanga É a entrada de roteamento com o Rota IP formato.
interface Tanga É a interface de saída usada se a rota corresponder.
fonte Tanga É o IP usado para mascarar o pacote. Essa fonte precisa existir no balanceador de carga como uma interface virtual.
tipo Tanga É o tipo de rota. As rotas podem ser do tipo sistema criados e gerenciados automaticamente pelo sistema ou usuário quando a rota foi criada por um usuário do balanceador de carga. Verificando o descontrolado para remover um sistema rota.
para Tanga É uma condição de partida. Se o IP de destino do pacote corresponder a ele, a rota será bem-sucedida.
via Tanga É o próximo salto do pacote. É usado como um gateway. Esse IP deve ser alcançado no segmento de rede de interface.
id Sessão É o identificador exclusivo da rota. Este parâmetro é usado para modificar ou excluir a rota e está disponível apenas nas rotas do tipo usuário.

Excluir uma entrada de rota

Excluir uma entrada de rota

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables/table_eth2/routes/1024
zcli network-routing-table remove table_eth2 1024

DELETE /routing/tables/<table>/routes/<id>

Exclua uma rota de uma tabela de interface.

A mesa O parâmetro URI é a tabela de interface da qual a rota será excluída. o id O parâmetro URI é o identificador exclusivo da rota que será excluída.

Exemplo de resposta:

{
    "description" : "Delete the routing entry '1024' from the table 'table_eth2'",
    "message" : "The routing rule '1024' has been deleted successfully."
}

Lista de interfaces não gerenciadas em uma tabela

Lista de interfaces não gerenciadas em uma tabela

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables/table_eth1/unmanaged
zcli network-routing-table-unmanaged get table_eth1

GET /routing/tables/<table>/unmanaged

Esse recurso é usado para evitar o tráfego de uma interface que pode ser alterada para outra.

mesa é a tabela de roteamento da interface de entrada.

Liste as interfaces e se elas podem ser usadas para obter o tráfego.

Exemplo de resposta:

{
    "params" : [
      {
         "unmanaged" : "false",
         "interface" : "eth3"
      },
      {
         "unmanaged" : "false",
         "interface" : "eth0"
      }
    ],
    "description" : "Get the list of interfaces that cannot manage traffic when traffic incoming through the table 'table_eth1'"
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params que contém uma lista de objetos com os seguintes parâmetros.

Campo Tipo Descrição
interface Tanga É o nome da interface de saída.
não gerenciado Tanga É o status de roteamento da interface. Se tiver o valor falso, essa interface pode ser acessada da tabela; se tiver o valor verdadeiro, não sairá do tráfego da mesa.

Adicione uma interface à lista de não gerenciados

Cancelar o gerenciamento de uma interface

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"interface":"eth2"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables/table_eth1/unmanaged
zcli network-routing-table-unmanaged add table_eth1 interface eth0

POST /routing/tables/<table>/unmanaged

Desative uma interface para tráfego de saída.

A mesa Parâmetro URI é o nome da tabela de roteamento a partir do qual uma rota não será alcançável. E se mesa tem o valor “*”(Asterisco), o interface não será acessível a partir de nenhuma tabela.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
interface Tanga É a interface que não será capaz de rotear a partir do mesa. verdadeiro

Exemplo de resposta:

{
    "description" : "Do not route traffic through an interface for the table 'table_eth1'",
    "message" : "The interface 'eth2' is not accesible from the table 'table_eth1'"
}

Remova uma interface da lista de não gerenciados

Gerenciar uma tabela de roteamento

Exemplo de solicitação:

curl -k -X DELETE -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/routing/tables/table_eth1/unmanaged/eth2
zcli network-routing-table-unmanaged remove table_eth1 eth2

DELETE /routing/tables/<table>/unmanaged/<interface>

Permitir que a interface tenha visibilidade de outra tabela de interface

A mesa O parâmetro URI é a tabela de interface que está sendo modificada. E se mesa tem o valor “*”(Asterisco), o interface será gerenciado de todas as tabelas. o interface O parâmetro URI é a interface que será permitida para o mesa tabela.

Exemplo de resposta:

{
    "description" : "Enable an interface as possible route path from the table 'table_eth1'",
    "message" : "The interface 'eth2' is now accesible from the table 'table_eth1'"
}

Monitoramento - FarmGuardian

FarmGuardian é usado para o estado de monitoramento avançado de backends. Quando um problema é detectado pelo FarmGuardian, ele desativa automaticamente o servidor real e será marcado como na lista negra.

Lista FarmGuardians

Lista FarmGuardians

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/monitoring/fg
zcli farmguardian list

GET /monitoring/fg

Liste os FarmGuardians. Modelos e FarmGuardians personalizados aparecem na lista.

Exemplo de resposta:

{
   "description" : "List farm guardian checks and templates",
   "params" : [
      {
         "command" : "check_tcp -p PORT -H HOST",
         "cut_conns" : "false",
         "description" : "It does a TCP connection to test if the backend is alive",
         "farms" : [],
         "interval" : 5,
         "log" : "false",
         "name" : "check_tcp-cut_conns",
         "template" : "true",
         "backend_alias" : "false"
      },
      {
         "command" : "check_tcp -p 80 -H HOST",
         "cut_conns" : "false",
         "description" : "TCP check to the port 80",
         "farms" : [
                     "web_service",
                     "my_welcome_web"
         ],
         "interval" : 7,
         "log" : "true",
         "name" : "custom-tcp",
         "template" : "false",
         "backend_alias" : "true"
      },
      {
         "command" : "check_tcp -p PORT -H HOST",
         "cut_conns" : "false",
         "description" : "It does a TCP connection to test if the backend is alive",
         "farms" : [],
         "interval" : 5,
         "log" : "false",
         "name" : "check_tcp",
         "template" : "true",
         "backend_alias" : "false"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params e o formato abaixo:

Campo Tipo Descrição
comando Tanga Comando para verificar o status do serviço no backend. Esses comandos disponíveis estão no caminho libexec.
cut_conns Tanga Os valores possíveis são: verdadeiro, FarmGuardian corta as conexões atuais quando o backend não está disponível; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
descrição Tanga Breve descrição do cheque.
fazendas Corda[ ] Fazendas onde o FarmGuardian é aplicado.
intervalo Sessão Tempo entre verificações.
log Tanga Os valores possíveis são: verdadeiro, FarmGuardian registrará cada cheque; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
nome Tanga Identificador único.
modelo Tanga Se o FarmGuardian for um modelo, ele não será aplicado a nenhum farm. Os modelos são úteis para criar um novo FarmGuardian.
backend_alias (de 4.0.1) Tanga Se este parâmetro tiver o valor falso, o host de back-end será o IP de back-end. O alias do back-end será usado como host se este parâmetro tiver o valor verdadeiro, o alias deve ser definido e o balanceador de carga deve poder resolvê-lo.

Recuperar um FarmGuardian

Recuperar um FarmGuardian

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/monitoring/fg/check_tcp
zcli farmguardian get check_tcp

GET /monitoring/fg/<name>

Mostrar a configuração de um FarmGuardian.

O parâmetro URI nome é o identificador exclusivo do FarmGuardian.

Exemplo de resposta:

{
   "description" : "Retrive the farm guardian check_tcp",
   "params" : {
      "command" : "check_tcp -p PORT -H HOST",
      "cut_conns" : "false",
      "description" : "It does a TCP connection to test if the backend is alive",
      "farms" : [],
      "interval" : 10,
      "log" : "false",
      "name" : "check_tcp",
      "template" : "true",
      "backend_alias" : "false",
      "timeout" : 5
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params e o formato abaixo:

Campo Tipo Descrição
comando Tanga Comando para verificar o status do serviço no backend. Esses comandos disponíveis estão no caminho libexec.
cut_conns Tanga Os valores possíveis são: verdadeiro, FarmGuardian corta as conexões atuais quando o backend não está disponível; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
descrição Tanga Breve descrição do cheque.
fazendas Corda[ ] Fazendas onde o FarmGuardian é aplicado.
intervalo Sessão Tempo entre verificações. Este é o tempo de quando o último back-end na lista é testado até que o primeiro back-end seja testado novamente.
log Tanga Os valores possíveis são: verdadeiro, FarmGuardian registrará cada cheque; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
nome Tanga Identificador único.
modelo Tanga Se o FarmGuardian for um modelo, ele não será modificado. Os modelos são úteis para criar um novo FarmGuardian ou se aplicam diretamente a fazendas.
backend_alias (de 4.0.1) Tanga Se este parâmetro tiver o valor falso, o host de back-end será o IP de back-end. O alias do back-end será usado como host se este parâmetro tiver o valor verdadeiro, o alias deve ser definido e o balanceador de carga deve poder resolvê-lo.
tempo esgotado (de 4.0.2) Sessão Tempo limite para cada back-end. Após esse período durante o teste de back-end, ele será considerado inativo. Por padrão, o tempo limite é igual ao intervalo.

Crie um FarmGuardian

Crie um FarmGuardian

Exemplo de solicitação:

curl -k -X POST -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"name":"check_tcp-cut_conns", "copy_from":"check_tcp"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/monitoring/fg
zcli farmguardian create -name check_tcp-cut_conns -copy_from check_tcp

POST /monitoring/fg

Crie um novo FarmGuardian.

Solicitar Parâmetros

A resposta será um objeto JSON com a chave params e o formato abaixo:

Campo Tipo Descrição Exigido
nome Tanga Identificador único. verdadeiro
copiar de Tanga É o FarmGuardian usado como modelo para criar o novo FarmGuardian. Se este campo não for enviado, o novo FarmGuardian será criado sem configuração.

Exemplo de resposta:

{
   "description" : "Create a farm guardian check_tcp-cut_conns",
   "message" : "The farm guardian check_tcp-cut_conns has been created successfully",
   "params" : {
      "command" : "check_tcp -p PORT -H HOST",
      "cut_conns" : "false",
      "description" : "It does a TCP connection to test if the backend is alive",
      "farms" : [],
      "interval" : 5,
      "log" : "false",
      "name" : "check_tcp-cut_conns",
      "template" : "true",
      "backend_alias" : "false",
      "timeout" : 5
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params e o formato abaixo:

Campo Tipo Descrição
comando Tanga Comando para verificar o status do serviço no backend. Esses comandos disponíveis estão no caminho libexec.
cut_conns Tanga Os valores possíveis são: verdadeiro, FarmGuardian corta as conexões atuais quando o backend não está disponível; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
descrição Tanga Breve descrição do cheque.
fazendas Corda[ ] Fazendas onde o FarmGuardian é aplicado.
intervalo Sessão Tempo entre verificações. Este é o tempo de quando o último back-end na lista é testado até que o primeiro back-end seja testado novamente.
log Tanga Os valores possíveis são: verdadeiro, FarmGuardian registrará cada cheque; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
nome Tanga Identificador único.
modelo Tanga Se o FarmGuardian for um modelo, ele não será modificado. Os modelos são úteis para criar um novo FarmGuardian ou se aplicam diretamente a fazendas.
backend_alias (de 4.0.1) Tanga Se este parâmetro tiver o valor falso, o host de back-end será o IP de back-end. O alias do back-end será usado como host se este parâmetro tiver o valor verdadeiro, o alias deve ser definido e o balanceador de carga deve poder resolvê-lo.
tempo esgotado (de 4.0.2) Sessão Tempo limite para cada back-end. Após esse período durante o teste de back-end, ele será considerado inativo. Por padrão, o tempo limite é igual ao intervalo.

Modifique um FarmGuardian

Modifique um FarmGuardian

Exemplo de solicitação:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
-d '{"interval":7,"log":"true","description":"TCP check to the port 80","command":"check_tcp -p 80 -H HOST","cut_conns":"false"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/monitoring/fg/custom-tcp
zcli farmguardian set custom-tcp -interval 7 -log true -description 'TCP check to the port 80' -command 'check_tcp -p 80 -H HOST' -cut_conns false

PUT /monitoring/fg/<name>

Modifique um FarmGuardian.

O parâmetro URI nome é o identificador exclusivo do FarmGuardian.

Solicitar Parâmetros

A resposta será um objeto JSON com a chave params e o formato abaixo:

Campo Tipo Descrição Exigido
comando Tanga Comando para verificar o status do serviço no backend. Esses comandos disponíveis estão no caminho libexec.
cut_conns Tanga Os valores possíveis são: verdadeiro, FarmGuardian corta as conexões atuais quando o backend não está disponível; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
descrição Tanga Breve descrição do cheque.
intervalo Sessão Tempo entre verificações. Este é o tempo de quando o último back-end na lista é testado até que o primeiro back-end seja testado novamente.
log Tanga Os valores possíveis são: verdadeiro, FarmGuardian registrará cada cheque; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
força Tanga Se um farm em execução estiver usando o FarmGuardian, o FarmGuardian não poderá ser modificado. Então, se este parâmetro for enviado com o valor verdadeiro, o FarmGuardian será forçado a assumir a nova configuração.
backend_alias (de 4.0.1) Tanga Se este parâmetro tiver o valor falso, o host de back-end será o IP de back-end. O alias do back-end será usado como host se este parâmetro tiver o valor verdadeiro, o alias deve ser definido e o balanceador de carga deve poder resolvê-lo.
tempo esgotado (de 4.0.2) Sessão Tempo limite para cada back-end. Após esse período durante o teste de back-end, ele será considerado inativo. Por padrão, o tempo limite é igual ao intervalo.

Exemplo de resposta:

{
   "description" : "Modify farm guardian custom-tcp",
   "message" : "Success, some parameters have been changed in farm guardian custom-tcp.",
   "params" : {
      "command" : "check_tcp -p 80 -H HOST",
      "cut_conns" : "false",
      "description" : "TCP check to the port 80",
      "farms" : [],
      "interval" : 7,
      "log" : "true",
      "name" : "custom-tcp",
      "template" : "false",
      "backend_alias" : "false",
      "timeout" : 7
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com a chave params e o formato abaixo:

Campo Tipo Descrição
comando Tanga Comando para verificar o status do serviço no backend. Esses comandos disponíveis estão no caminho libexec.
cut_conns Tanga Os valores possíveis são: verdadeiro, FarmGuardian corta as conexões atuais quando o backend não está disponível; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
descrição Tanga Breve descrição do cheque.
fazendas Corda[ ] Fazendas onde o FarmGuardian é aplicado.
intervalo Sessão Tempo entre verificações. Este é o tempo de quando o último back-end na lista é testado até que o primeiro back-end seja testado novamente.
log Tanga Os valores possíveis são: verdadeiro, FarmGuardian registrará cada cheque; ou falso, se o back-end não estiver disponível, ele será desativado, mas as sessões ativas continuarão.
nome Tanga Identificador único.
modelo Tanga Se o FarmGuardian for um modelo, ele não será aplicado a nenhum farm. Os modelos são úteis para criar um novo FarmGuardian.
backend_alias (de 4.0.1) Tanga Se este parâmetro tiver o valor falso, o host de back-end será o IP de back-end. O alias do back-end será usado como host se este parâmetro tiver o valor verdadeiro, o alias deve ser definido e o balanceador de carga deve poder resolvê-lo.
tempo esgotado (de 4.0.2) Sessão Tempo limite para cada back-end. Após esse período durante o teste de back-end, ele será considerado inativo. Por padrão, o tempo limite é igual ao intervalo.

Excluir um FarmGuardian

Excluir um FarmGuardian

Exemplo de solicitação:

curl -k -X DELETE -H 'Content-Type: application/json' -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/monitoring/fg/custom-tcp
zcli farmguardian delete custom-tcp

DELETE /monitoring/fg/<name>

APAGAR um FarmGuardian.

O parâmetro URI nome é o identificador exclusivo do FarmGuardian.

Exemplo de resposta:

{
   "description" : "Delete the farm guardian custom-tcp",
   "message" : "custom-tcp has been deleted successful.",
   "success" : "true"
}

Monitoramento - Estatísticas

Mostrar informações sobre o sistema e farms. Esta informação será útil para monitorar o status do balanceador de carga Zevenet.

Mostrar estatísticas do sistema

Mostrar estatísticas do sistema

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats
zcli statistics-system get

GET /stats

Obtenha estatísticas globais do sistema.

Exemplo de resposta:

{
   "description" : "System stats",
   "params" : {
      "cpu" : {
         "cores" : 2,
         "idle" : 94.42,
         "iowait" : 0,
         "irq" : 0,
         "nice" : 0,
         "softirq" : 0,
         "sys" : 2.54,
         "usage" : 5.58,
         "user" : 3.05
      },
      "date" : "Fri Jan 27 11:40:32 2017",
      "hostname" : "api3",
      "load" : {
         "Last_1" : 1.17,
         "Last_15" : 0.36,
         "Last_5" : 0.6
      },
      "memory" : {
         "Buffers" : 21.68,
         "Cached" : 147.95,
         "MemFree" : 348.06,
         "MemTotal" : 2005.01,
         "MemUsed" : 1656.95,
         "SwapCached" : 2.67,
         "SwapFree" : 614.38,
         "SwapTotal" : 672,
         "SwapUsed" : 57.62
      },
      "network" : {
         "bond0 in in" : 234.72,
         "bond0 out out" : 0,
         "bond0.10 in in" : 0,
         "bond0.10 out out" : 0,
         "bond1 in in" : 234.72,
         "bond1 out out" : 0,
         "bond3 in in" : 815.69,
         "bond3 out out" : 4300.38,
         "eth0 in in" : 2702.29,
         "eth0 out out" : 50701.95,
         "eth0.2 in in" : 0,
         "eth0.2 out out" : 0,
         "eth1 in in" : 234.72,
         "eth1 out out" : 0,
         "eth2 in in" : 234.72,
         "eth2 out out" : 0,
         "eth3 in in" : 0,
         "eth3 out out" : 0,
         "eth4 in in" : 436.89,
         "eth4 out out" : 4300.38,
         "eth4.6 in in" : 0,
         "eth4.6 out out" : 0,
         "eth5 in in" : 301.39,
         "eth5 out out" : 0,
         "eth5.5 in in" : 0,
         "eth5.5 out out" : 0,
         "eth6 in in" : 77.42,
         "eth6 out out" : 0
      }
   }
}

Parâmetros de resposta

Campo Tipo Descrição
cpu objeto Estatísticas da CPU.
dados Tanga Data do sistema.
hostname Tanga Nome do anfitrião.
carregar objeto Estatísticas de carga do núcleo.
memória objeto Estatísticas de memória usadas.
rede objeto Estatísticas de tráfego de rede.

Objeto da CPU:

Campo Tipo Descrição
núcleos Sessão Número de núcleos no processador.
inativo Sessão CPU não usa por nenhum programa.
iowait Sessão CPU usada pelo processo de entrada ou saída.
irq Sessão CPU usada por interrupções de hardware.
agradável Sessão Prioridade de agendamento de CPU.
softirq Sessão CPU usada por interrupções de software.
sys Sessão CPU usada pelo sistema.
uso Sessão CPU total usada.
usuário Sessão CPU usada pelo usuário.

Carregar objeto:

Campo Tipo Descrição
Last_1 Sessão Carregue a porcentagem do sistema no último minuto.
Last_5 Sessão Carregue a porcentagem do sistema cinco minutos atrás.
Last_15 Sessão Carregue a porcentagem do sistema quinze minutos atrás.

Objeto de memória.

Campo Tipo Descrição
Buffers Sessão É a memória usada pelos buffers. Este valor é indicado em Mb.
Em cache Sessão É a memória total armazenada em cache pelo sistema. Este valor é indicado em Mb.
MemFree Sessão É a memória livre total não armazenada em cache pelo sistema. Este valor é indicado em Mb.
MemTotal Sessão É o total de RAM no sistema. Esta quantidade é indicada em Mb.
Memusado Sessão É a memória usada pelo sistema. Este valor é indicado em Mb.
SwapCached Sessão É a memória cache total reservada.
SwapFree Sessão É a memória livre total não armazenada em cache pelo sistema. Este valor é indicado em Mb.
SwapTotal Sessão É a memória swap total reservada.
SwapUsed Sessão É a troca de memória usada pelo sistema, em sistemas ótimos deve ser 0.

Objeto de rede:

Campo Tipo Descrição
em em Sessão Tráfego de entrada para este interface.
fora fora Sessão Tráfego de saída para este interface.

Mostrar estatísticas da rede

Mostrar estatísticas da rede

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/system/network
zcli statistic-network get

GET /stats/system/network

Obtenha um resumo do tráfego total de entrada e saída por meio de uma interface de rede.

Exemplo de resposta:

{
   "description" : "Network interfaces usage",
   "params" : {
      "date" : "Fri Jan 27 11:58:05 2017",
      "hostname" : "api3",
      "interfaces" : [
         {
            "in" : "234.72",
            "interface" : "bond1",
            "out" : "0.00"
         },
         {
            "in" : "77.42",
            "interface" : "eth6",
            "out" : "0.00"
         },
         {
            "in" : "2703.88",
            "interface" : "eth0",
            "out" : "50917.65"
         },
         {
            "in" : "815.69",
            "interface" : "bond2",
            "out" : "4300.38"
        }
      ]
   }
}

Parâmetros de resposta

A resposta será um JSON com uma chave params cujo valor é um objeto com as seguintes chaves:

Campo Tipo Descrição
dados Tanga Data do sistema.
hostname Tanga Nome do anfitrião.
interfaces de Objeto[] Estatísticas de tráfego de rede.

Objeto Interfaces

Campo Tipo Descrição
in Tanga Tráfego de entrada total em MB.
interface Tanga Nome da interface.
Fora Tanga Tráfego total de saída em MB.

Mostrar estatísticas de interfaces

Mostrar estatísticas de interfaces

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/system/network/interfaces
zcli statistics-network get

GET /stats/system/network/interfaces

Obtenha um resumo de cada interface de rede.

Exemplo de resposta:

{
   "description" : "Interfaces info",
   "params" : {
      "bond" : [
         {
            "in" : "234.72",
            "interface" : "bond1",
            "ip" : "",
            "mac" : "3a:3a:a7:e3:33:73",
            "out" : "0.00",
            "slaves" : [
               "eth2"
            ],
            "status" : "down",
            "virtual" : [],
            "vlan" : []
         },
         {
            "in" : "815.70",
            "interface" : "bond3",
            "ip" : "",
            "mac" : "ea:00:7d:88:1d:bd",
            "out" : "4300.38",
            "slaves" : [
               "eth4",
               "eth5",
               "eth6"
            ],
            "status" : "up",
            "virtual" : [],
            "vlan" : []
         },
         {
            "in" : "234.72",
            "interface" : "bond0",
            "ip" : "",
            "mac" : "c2:d0:d7:64:df:68",
            "out" : "0.00",
            "slaves" : [
               "eth1"
            ],
            "status" : "down",
            "virtual" : [],
            "vlan" : [
               "bond0.10"
            ]
         }
      ],
      "nic" : [
         {
            "in" : "77.42",
            "interface" : "eth6",
            "ip" : "",
            "mac" : "ea:00:7d:88:1d:bd",
            "out" : "0.00",
            "status" : "up",
            "virtual" : [],
            "vlan" : []
         },
         {
            "in" : "2704.81",
            "interface" : "eth0",
            "ip" : "192.168.101.46",
            "mac" : "9e:2e:3e:a5:2e:6a",
            "out" : "51039.13",
            "status" : "up",
            "virtual" : [
               "eth0:1",
               "eth0:2",
               "eth0.2:6"
            ],
            "vlan" : [
               "eth0.2"
            ]
         },
         {
            "in" : "234.72",
            "interface" : "eth1",
            "ip" : "192.168.101.58",
            "mac" : "c2:d0:d7:64:df:68",
            "out" : "0.00",
            "status" : "up",
            "virtual" : [],
            "vlan" : []
         },
         {
            "in" : "234.72",
            "interface" : "eth2",
            "ip" : "",
            "mac" : "3a:3a:a7:e3:33:73",
            "out" : "0.00",
            "status" : "up",
            "virtual" : [],
            "vlan" : []
         },
         {
            "in" : "0.00",
            "interface" : "eth3",
            "ip" : "192.168.101.72",
            "mac" : "16:97:ab:43:87:02",
            "out" : "0.00",
            "status" : "down",
            "virtual" : [
               "eth3:1",
               "eth3:8",
               "eth3:6"
            ],
            "vlan" : []
         },
         {
            "in" : "436.89",
            "interface" : "eth4",
            "ip" : "",
            "mac" : "ea:00:7d:88:1d:bd",
            "out" : "4300.38",
            "status" : "up",
            "virtual" : [
               "eth4.6:5"
            ],
            "vlan" : [
               "eth4.6"
            ]
         },
         {
            "in" : "301.39",
            "interface" : "eth5",
            "ip" : "",
            "mac" : "ea:00:7d:88:1d:bd",
            "out" : "0.00",
            "status" : "up",
            "virtual" : [],
            "vlan" : [
               "eth5.5"
            ]
         }
      ]
   }
}

Parâmetros de resposta

A resposta será um JSON com uma chave params cujo valor é um objeto com as chaves vínculo e assim nic.

Campo Tipo Descrição
vínculo Objeto[] Estatísticas da interface de ligação.
nic Objeto[] Estatísticas da interface NIC.

Objeto Bond:

Campo Tipo Descrição
in Tanga Tráfego de entrada total em MB.
interface Tanga Nome da interface usado como um identificador exclusivo.
ip Tanga IP da interface.
mac Tanga MAC da interface.
Fora Tanga Tráfego total de saída em MB.
escravos Corda [] Lista de escravos que constroem a interface de ligação.
estado Tanga Status da interface. O valor pode ser down, a interface está desativada; up, a interface está ativada.
virtual Corda [] Interfaces virtuais que herdam dessa interface.
vlan Corda [] Interfaces de VLAN que herdam dessa interface.

Objeto Nic:

Campo Tipo Descrição
in Tanga Tráfego de entrada total em MB.
interface Tanga Nome da interface usado como um identificador exclusivo.
ip Tanga IP da interface.
mac Tanga MAC da interface.
Fora Tanga Tráfego total de saída em MB.
estado Tanga Status da interface. O valor pode ser down, a interface está desativada; up, a interface está ativada.
virtual Corda [] Interfaces virtuais que herdam dessa interface.
vlan Corda [] Interfaces de VLAN que herdam dessa interface.

Mostrar estatísticas de memória

Mostrar estatísticas de memória

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/system/memory
zcli statistics-system get -filter memory

GET /stats/system/memory

Obtenha um resumo da memória do sistema.

Exemplo de resposta:

{
   "description" : "Memory usage",
   "params" : {
      "Buffers" : 1.01,
      "Cached" : 42.47,
      "MemFree" : 880.11,
      "MemTotal" : 2005.01,
      "MemUsed" : 1124.91,
      "SwapCached" : 8.27,
      "SwapFree" : 565.15,
      "SwapTotal" : 672,
      "SwapUsed" : 106.84,
      "date" : "Fri Jan 27 12:27:11 2017",
      "hostname" : "api3"
   }
}

Parâmetros de resposta

A resposta será um JSON com uma chave params cujo valor é um objeto de memória.

Memória objeto.

Campo Tipo Descrição
Buffers Sessão É a memória usada pelos buffers. Este valor é indicado em Mb.
Em cache Sessão É a memória total armazenada em cache pelo sistema. Este valor é indicado em Mb.
MemFree Sessão É a memória livre total não armazenada em cache pelo sistema. Este valor é indicado em Mb.
MemTotal Sessão É o total de RAM no sistema. Esta quantidade é indicada em Mb.
Memusado Sessão É a memória usada pelo sistema. Este valor é indicado em Mb.
SwapCached Sessão É a memória cache total reservada.
SwapFree Sessão É a memória livre total não armazenada em cache pelo sistema. Este valor é indicado em Mb.
SwapTotal Sessão É a memória swap total reservada.
SwapUsed Sessão É a troca de memória usada pelo sistema, em sistemas ótimos deve ser 0.
dados Tanga Data do sistema.
hostname Tanga Nome do anfitrião.

Mostrar estatísticas de carga

Mostrar estatísticas de carga

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/system/load
zcli statistics-system get -filter load

GET /stats/system/load

Obtenha um resumo da carga do sistema da CPU.

Exemplo de resposta:

{
   "description" : "System load",
   "params" : {
      "Last_1" : 0.66,
      "Last_15" : 0.39,
      "Last_5" : 0.49,
      "date" : "Fri Jan 27 13:15:01 2017",
      "hostname" : "api3"
   }
}

Parâmetros de resposta

Campo Tipo Descrição
Last_1 Sessão Carregar o uso do sistema no último.
Last_5 Sessão Carregue o uso do sistema nos últimos cinco minutos.
Last_15 Sessão Carregue o uso do sistema nos últimos quinze minutos.
dados Tanga Data do sistema.
hostname Tanga Nome do anfitrião.

Mostrar estatísticas da CPU

Mostrar estatísticas da CPU

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/system/cpu
zcli statistics-system get -filter cpu

GET /stats/system/cpu

Exemplo de resposta:

{
   "description" : "System CPU usage",
   "params" : {
      "cores" : 2,
      "date" : "Fri Jan 27 13:30:52 2017",
      "hostname" : "api3",
      "idle" : 94.9,
      "iowait" : 0,
      "irq" : 0,
      "nice" : 0,
      "softirq" : 0,
      "sys" : 3.06,
      "usage" : 5.1,
      "user" : 2.04
   }
}

Parâmetros de resposta

Campo Tipo Descrição
núcleos Sessão Número de núcleos no processador.
inativo Sessão CPU não usa por nenhum programa.
iowait Sessão CPU usada pelo processo de entrada ou saída.
irq Sessão CPU usada por interrupções de hardware.
agradável Sessão Prioridade de agendamento de CPU.
softirq Sessão CPU usada por interrupções de software.
sys Sessão CPU usada pelo sistema.
uso Sessão CPU total usada.
usuário Sessão CPU usada pelo usuário.
dados Tanga Data do sistema.
hostname Tanga Nome do anfitrião.

Mostrar estatísticas de conexões

Mostrar estatísticas de conexões

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/system/connections
zcli statistics-network-connections get

GET /stats/system/connections

Obtenha o total de conexões atuais no sistema. O contador soma qualquer tipo de conexão rastreada: ASSURED, ESTABLISHED, SYN_SENT, TIME_WAIT, LISTEN ...

Exemplo de resposta:

{
   "description" : "System connections",
   "params" : {
      "connections" : 324
   }
}

Parâmetros de resposta

Campo Tipo Descrição
conexões Sessão Total de conexões rastreadas.

Mostrar o número de farms

Mostrar o número de farms

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/farms/total

GET /stats/farms/total

Mostrar o total de farms criados no sistema.

Exemplo de resposta:

{
   "description" : "Number of farms.",
   "number" : 8
}

Parâmetros de resposta

Campo Tipo Descrição
número Sessão É o número de farms existentes no sistema.

Mostrar estatísticas de farms

Mostrar estatísticas de farms

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/farms
statistics-farm list

GET /stats/farms

Obtenha um resumo das conexões e configurações de todos os farms no sistema.

Exemplo de resposta:

{
   "description" : "List all farms stats",
   "farms" : [
      {
         "established" : 0,
         "farmname" : "testHttps",
         "pending" : 0,
         "profile" : "https",
         "status" : "up",
         "vip" : "192.168.101.20",
         "vport" : "120"
      },
      {
         "established" : 0,
         "farmname" : "httpFarm",
         "pending" : 0,
         "profile" : "http",
         "status" : "up",
         "vip" : "192.168.10.31",
         "vport" : "8080"
      },
      {
         "established" : 0,
         "farmname" : "testDL",
         "pending" : 0,
         "profile" : "datalink",
         "status" : "up",
         "vip" : "192.168.102.72",
         "vport" : "eth1"
      },
      {
         "established" : 0,
         "farmname" : "testL4",
         "pending" : 0,
         "profile" : "l4xnat",
         "status" : "up",
         "vip" : "192.168.10.31",
         "vport" : "30"
      },
      {
         "established" : 0,
         "farmname" : "testGSLB",
         "pending" : 0,
         "profile" : "gslb",
         "status" : "up",
         "vip" : "192.168.10.31",
         "vport" : "53"
      }
   ]
}

Parâmetros de resposta

Campo Tipo Descrição
estabelecido Sessão o número total de conexões atualmente estabelecidas.
farmname Tanga Nome do farm, identificador exclusivo.
pendente Sessão Número de conexões pendentes.
perfis Tanga Tipo de fazenda. Os valores possíveis são: link de dados, l4xnat, http, https or gslb. Cada perfil é definido em sua seção.
estado Tanga Status da fazenda. Os valores de status disponíveis são: down, a fazenda não está em execução; reinicialização necessária, o farm está ativo, mas está pendente de uma ação de reinicialização; crítico, o farm está ativo e todos os backends são inacessíveis ou de manutenção; problema, o farm está ativo e há algum back-end inacessível, mas quase um back-end está no status up; manutenção, o farm está ativo e há back-ends no status up, mas quase um back-end está no modo de manutenção; up, a fazenda está em alta e todos os backends estão funcionando bem.
vip Tanga IP do farm, onde o serviço virtual está escutando.
vport Tanga Porta da fazenda, onde o serviço virtual está escutando.

Mostrar estatísticas do farm

Mostrar estatísticas do farm

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/farms/farmname
zcli statistic-farm list

GET /stats/farms/<farmname>

Mostra o status atual do farm, seu status de back-end e conexões. Cada farm responderá com um objeto diferente, dependendo do perfil.

Exemplo de resposta para o farm HTTP:

{
   "backends" : [
      {
         "established" : 0,
         "id" : 0,
         "ip" : "192.168.0.168",
         "pending" : 0,
         "port" : 80,
         "service" : "srv1",
         "status" : "up"
      }
   ],
   "description" : "List farm stats",
   "sessions" : [
      {
         "client" : "0",
         "id" : "0"
         "backend_ip" : "192.168.0.168"
         "backend_port" : 80
         "service" : "srv1",
         "session" : "192.168.0.186",
         "ttl" : "1m28s0ms"
      }
   ],
   "total_sessions" : 1
}

Parâmetros de resposta em farms HTTP

Campo Tipo Descrição
backends Objeto[] Mostrar informações sobre backends.
sessões Objeto[] Mostrar informações sobre sessões.
total_sessions Sessão Da versão 4.0.2. Exibe o número total de sessões registradas.

Objeto Backend

Campo Tipo Descrição
estabelecido Sessão O número total de conexões estabelecidas.
id Sessão Identificador exclusivo de back-end.
ip Tanga IP onde o serviço real está escutando.
pendente Sessão Número de conexões pendentes.
porta Sessão Porto onde o serviço real está escutando.
serviço Tanga Nome do serviço usado como um identificador exclusivo.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; manutenção, o backend está marcado como não pronto para receber conexões pelo administrador, esta opção é útil para tarefas de manutenção do backend; indefinido, o status do back-end não foi verificado.

Objeto da Sessão

Campo Tipo Descrição
cliente Tanga Identificador exclusivo do cliente.
id Tanga Identificador exclusivo de back-end atribuído ao cliente.
serviço Tanga Identificador exclusivo do serviço atribuído ao cliente.
Sessão Tanga Identificador exclusivo de sessão. Este valor depende do tipo de persistência.
ttl Tanga Da versão 4.0.2. Tempo restante até a sessão terminar
backend_ip Tanga Da versão 4.0.2. IP de back-end atribuído ao cliente.
backend_port Tanga Da versão 4.0.2. Porta de back-end atribuída ao cliente.

Exemplo de resposta para o farm GSLB:

{
   "backends" : [
      {
         "id" : 1,
         "ip" : "127.0.0.1",
         "port" : 53,
         "service" : "service1",
         "status" : "down"
      },
      {
         "id" : 2,
         "ip" : "192.168.55.40",
         "port" : 53,
         "service" : "service1",
         "status" : "down"
      },
      {
         "id" : 4,
         "ip" : "192.135.10.2",
         "port" : 53,
         "service" : "service1",
         "status" : "down"
      },
      {
         "id" : 1,
         "ip" : "127.0.0.1",
         "port" : 80,
         "service" : "prioServ",
         "status" : "down"
      },
      {
         "id" : 2,
         "ip" : "127.0.0.1",
         "port" : 80,
         "service" : "prioServ",
         "status" : "down"
      }
   ],
   "client" : {
      "edns_big" : 0,
      "edns_tc" : 0,
      "recvfail" : 0,
      "reqs" : 0,
      "sendfail" : 0,
      "tc" : 0
   },
   "description" : "List farm stats",
   "extended" : {
      "badvers" : 0,
      "dropped" : 0,
      "edns" : 0,
      "edns_clientsub" : 0,
      "formerr" : 0,
      "noerror" : 0,
      "notimp" : 0,
      "nxdomain" : 0,
      "refused" : 0,
      "v6" : 0
   },
   "server" : {
      "recvfail" : 0,
      "reqs" : 0,
      "sendfail" : 0
   }
}

Parâmetros de resposta em fazendas GSLB

Campo Tipo Descrição
backends Objeto[] Mostrar informações sobre os backends.
cliente objeto Estatísticas relacionadas ao cliente.
opção objeto Informações estendidas sobre o serviço.
servidor objeto Estatísticas relacionadas ao servidor.

Objeto de back-end

Campo Tipo Descrição
id Sessão Identificador exclusivo de back-end.
ip Tanga IP onde o serviço real está escutando.
porta Sessão Porto onde o serviço real está escutando.
serviço Tanga Nome do serviço usado como um identificador exclusivo.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; indefinido, o status do back-end não foi verificado.

Objeto do cliente

Campo Tipo Descrição
edns_big Sessão Respostas que foram maiores que os bytes 512.
edns_tc Sessão O tamanho do buffer DNS estendido especificado do cliente era muito pequeno para os dados solicitados.
recvfail Sessão Número de erros do UDP, em que o sistema operacional indicava que algo de ruim acontecia ao recebê-lo.
Reqs Sessão Número total de pedidos UDP manipulados pelo servidor.
sendfail Sessão Número de erros do UDP, em que o SO indicou que algo de ruim aconteceu no envio.
tc Sessão Respostas que foram truncadas com o conjunto de bits TC.

Objeto estendido

Campo Tipo Descrição
badvers Sessão Pedido que tinha um EDNS OPT-RR com uma versão não suportada.
desistiu Sessão Pedidos ignorados por formato incorreto.
edns Sessão Pedido continha um EDNS OPT-RR.
edns_clientsub Sessão Subconjunto de pedidos de edns que especificaram a opção edns_client_subnet.
formerr Sessão A solicitação foi formatada incorretamente, mas foi sensata o suficiente para enviar uma resposta com o código FORMERR.
noerror Sessão Solicitações bem sucedidas.
notimp Sessão Serviço solicitado não implementado por este daemon, como solicitações de transferência de zona.
nxdomain Sessão Solicitar um nome de domínio inexistente.
recusou Sessão A solicitação foi recusada pelo servidor porque o servidor não é autoritativo para o nome consultado.
v6 Sessão Solicitação de um cliente IPv6.

Objeto do servidor

Campo Tipo Descrição
recvfail Sessão Número de erros de TCP, onde o sistema operacional indicava que algo de ruim acontecia ao receber.
Reqs Sessão Número total de solicitações TCP manipuladas pelo servidor.
sendfail Sessão Número de erros do TCP, em que o SO indicou que algo de ruim aconteceu no envio.

Exemplo de resposta para o farm L4xNAT:

{
   "backends" : [
      {
         "established" : 5,
         "id" : 1,
         "ip" : "192.168.5.40",
         "pending" : 0,
         "port" : "8080",
         "status" : "maintenance"
      },
      {
         "established" : null,
         "id" : 3,
         "ip" : "192.5.1.1",
         "pending" : 0,
         "port" : "787",
         "status" : "down"
      },
      {
         "established" : 1,
         "id" : 5,
         "ip" : "192.168.5.100",
         "pending" : 0,
         "port" : "8080",
         "status" : "up"
      }
   ],
   "description" : "List farm stats",
   "sessions" : [
      {
     "client": 0,
         "id" : 5,
         "backend_ip" : "192.168.5.100",
         "backend_port" : "8080",
         "session" : "192.168.5.100",
         "ttl" : "1m51s564ms",
         "type" : "dynamic"
      }
   ],
   "total_sessions" : 1

}

Parâmetros de resposta em fazendas L4xNAT

A resposta será um JSON com objeto backends e assim sessões:

Objeto de back-end:

Campo Tipo Descrição
estabelecido Sessão O número total de conexões atualmente estabelecidas.
id Sessão Identificador exclusivo de back-end.
ip Tanga IP onde o serviço real está escutando.
pendente Sessão Número de conexões pendentes.
porta Sessão Porto onde o serviço real está escutando.
estado Tanga Status de back-end. Os valores possíveis são: up, o farm está em execução e o backend está pronto para receber conexões; down, o farm está em execução e o serviço detectou que o back-end não está funcionando; manutenção, o backend está marcado como não pronto para receber conexões pelo administrador, esta opção é útil para tarefas de manutenção do backend; indefinido, o status do back-end não foi verificado.

Objeto de sessão:

Campo Tipo Descrição
cliente Sessão Identificador sequencial de sessão.
id Sessão Identificador exclusivo de back-end em que o cliente está atribuído.
Sessão Tanga Identificador exclusivo de sessão. É o IP do cliente.
tipo Tanga Os valores são: estático ou dinâmico. Estático se a sessão foi feita manualmente e dinâmico se a sessão foi feita automaticamente.
ttl Tanga Da versão 4.0.2. Tempo restante até a sessão terminar
backend_ip Tanga Da versão 4.0.2. IP de back-end atribuído ao cliente.
backend_port Sessão Da versão 4.0.2. Porta de back-end atribuída ao cliente.

As estatísticas de farms de link de dados não estão disponíveis atualmente.

Mostrar status do módulo

Mostrar status do módulo

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/farms/modules

GET /stats/farms/modules

Obtenha um resumo dos módulos estatísticos. Esta chamada mostra o status de cada módulo, o número de configurados, o número de farms colocados e para cima.

A definição dos módulos está em Fazendas seção.

Exemplo de resposta:

{
   "description" : "Module status",
   "params" : {
      "dslb" : {
         "critical" : 0,
         "down" : 1,
         "problem" : 0,
         "total" : 2,
         "up" : 1
      },
      "gslb" : {
         "critical" : 0,
         "down" : 0,
         "problem" : 0,
         "total" : 1,
         "up" : 1
      },
      "lslb" : {
         "critical" : 0,
         "down" : 2,
         "problem" : 0,
         "total" : 4,
         "up" : 2
      }
   }
}

Parâmetros de resposta

A resposta será um JSON com três chaves: dslb, gslb e assim lslb.

Campo Tipo Descrição
crítico Sessão Número de fazendas em estado crítico. O farm é crítico quando está ativo e todos os back-ends são inacessíveis (inativos ou de manutenção).
down Sessão Número de fazendas paradas. Os farms são parados pelo administrador do sistema.
problema Sessão Número de propriedades no status do problema. O farm é um problema quando está ativo e quase um back-end está em status inativo.
total Sessão Número de fazendas totais.
up Sessão Número de farms em execução. Aqui é exibida a manutenção e precisa reiniciar o status do farm.

Mostrar estatísticas do módulo

Mostrar estatísticas do módulo

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/stats/farms/modules/lslb

GET /stats/farms/modules/<module>

Mostrar estatísticas do farm de um módulo especificado.

Os valores disponíveis para o módulo parâmetro são: lslb, gslb or dslb.

Exemplo de resposta:

{
   "description" : "List lslb farms stats",
   "farms" : [
      {
         "established" : 0,
         "farmname" : "newfarm",
         "pending" : 0,
         "profile" : "http",
         "status" : "up",
         "vip" : "192.168.100.199",
         "vport" : "40"
      },
      {
         "established" : 0,
         "farmname" : "nwl4farm",
         "pending" : 0,
         "profile" : "l4xnat",
         "status" : "down",
         "vip" : "192.168.100.241",
         "vport" : "88"
      },
      {
         "established" : 0,
         "farmname" : "l4farm",
         "pending" : 0,
         "profile" : "l4xnat",
         "status" : "up",
         "vip" : "192.168.100.102",
         "vport" : "70"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com informações sobre farms no módulo.

Campo Tipo Descrição
estabelecido Sessão O número total de conexões atualmente estabelecidas.
farmname Tanga Nome do farm, um identificador exclusivo para farms.
pendente Sessão Número de conexões pendentes.
perfis Tanga Tipo de fazenda. Os valores possíveis são: link de dados, l4xnat, http, https or gslb. Cada perfil é definido em si.
estado Tanga Status da fazenda. Os valores de status disponíveis são: down, a fazenda não está em execução; reinicialização necessária, o farm está ativo, mas está pendente de uma ação de reinicialização; crítico, o farm está ativo e todos os backends são inacessíveis ou de manutenção; problema, o farm está ativo e há algum back-end inacessível, mas quase um back-end está no status up; manutenção, o farm está ativo e há back-ends no status up, mas quase um back-end está no modo de manutenção; up, a fazenda está em alta e todos os backends estão funcionando bem.
vip Tanga IP do farm, onde o serviço virtual está escutando.
vport Tanga Porta da fazenda, onde o serviço virtual está escutando.

Monitoramento - Gráficos

Esta seção é útil para monitorar o sistema do balanceador de carga interno para detectar problemas por meio dos parâmetros de uso da CPU, memória de troca, RAM, todas as interfaces de rede configuradas, carga e armazenamento em disco rígido.

Além disso, você poderá acessar o histórico semanal, mensal e anual.

Gráficos com informações são respondidos no formato base64.

Listar gráficos disponíveis

Listar gráficos disponíveis

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/graphs

GET /graphs

Mostrar um objeto com todos os gráficos disponíveis no sistema. Mostra a possível solicitação que pode ser feita.

Exemplo de resposta:

{
   "description" : "These are the possible graphs, you`ll be able to access to the daily, weekly, monthly or yearly graph",
   "farms" : [
      "l4farm",
      "newfarm",
      "gslbfarm",
      "nwl4farm",
      "httpweb"
   ],
   "interfaces" : [
      "eth0.1",
      "eth2",
      "eth1",
      "eth3",
      "bondiface",
      "eth0"
   ],
   "system" : [
      "cpu",
      "load",
      "ram",
      "swap",
      {
         "disk" : [
            "root/",
            "root/boot",
            "root/usr/local/zenloadbalancer/config",
            "root/var/log"
         ]
      }
   ]
}

Parâmetros de resposta

A resposta será um JSON três tipos de gráficos, fazendas, interfaces de e assim sistema.

Campo Tipo Descrição
fazendas Corda[] Lista de gráficos agrícolas disponíveis.
interfaces de Corda[] Lista de gráficos de interface disponíveis.
sistema Objeto[] Lista de gráficos do sistema disponíveis. A matriz tem um objeto com uma matriz que indica pontos de montagem de disco.

Objeto do sistema:

O objeto do sistema contém uma lista de matrizes relacionada ao sistema e a objetos de disco com o próximo formato.

Campo Tipo Descrição
disco Corda[] Os valores desta matriz são todos existentes pontos de montagem no sistema, cada um tem gráficos disponíveis.

Mostrar gráficos

Mostrar gráficos

Solicitar exemplo para um farm:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/graphs/farms/httpweb

Solicitar exemplo para uma interface:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/graphs/interfaces/eth3

Solicitar exemplo para um disco:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/graphs/system/disk/root/boot

GET /graphs/<graph>

Os valores disponíveis para gráfico são:

Valor Descrição
farms/<farmname> farmname, identificador exclusivo de farm.
interfaces/<interface> interface, identificador exclusivo de interface.
system/<system> sistema, possíveis gráficos do sistema são: cpu, carregar, RAM or trocar.
system/disk/<mount point> ponto de montagemé um valor de disco objeto, retornado pela chamada 'GET / graphs'.

Exemplo de resposta:

{
   "description" : "Get cpu graphs",
   "graphs" : [
      {
         "frequency" : "daily",
         "graph" : "PNG IN BASE 64"
      },
      {
         "frequency" : "weekly",
         "graph" : "PNG IN BASE 64"
      },
      {
         "frequency" : "monthly",
         "graph" : "PNG IN BASE 64"
      },
      {
         "frequency" : "yearly",
         "graph" : "PNG IN BASE 64"
      }
   ]
}

Parâmetros de resposta

Campo Tipo Descrição
freqüência Tanga Período usado para gerar o gráfico. Os valores possíveis são: diariamente, semanal, mensal or anual.
gráficos Tanga Gráfico no formato base64.

Mostrar gráfico de frequência

Mostrar gráfico de frequência

Solicitar exemplo para um farm:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/graphs/farms/httpweb/daily

Solicitar exemplo para uma interface:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/graphs/interfaces/eth3/monthly

Solicitar exemplo para um disco:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/graphs/system/disk/root/boot/yearly

GET /graphs/<graph>/<frequency>

Os valores disponíveis para gráfico são:

Valor Descrição
farms/<farmname> farmname, identificador exclusivo de farm.
interfaces/<interface> interface, identificador exclusivo de interface.
system/<system> sistema, possíveis gráficos do sistema são: cpu, carregar, RAM or trocar.
system/disk/<mount point> ponto de montagemé um valor de disco objeto, retornado pela chamada 'GET / graphs'.

Os valores disponíveis para freqüência são:

Campo Tipo Descrição
freqüência Tanga Período usado para gerar o gráfico. Os valores possíveis são: diariamente, semanal, mensal or anual.

Exemplo de resposta:

{
    "description" : "Get farm graphs",
    "graph" : "PNG IN BASE 64"
}

Parâmetros de resposta

Campo Tipo Descrição
gráficos Tanga Gráfico no formato base64.

IPDS

Este módulo é a implementação de um IPS (Sistema de Prevenção de Intrusões) e IDS Sistema de Detecção de Intrusão (Intrusion Detection System) para oferecer ao usuário uma camada de segurança. O módulo IPDS inspeciona o tráfego antes de alcançar os módulos de balanceamento de carga LSLB or GSLB, se o tráfego for detectado como malicioso, será rejeitado.

Funciona aplicando regras de segurança ao sistema que serão definidas como um objeto de diferentes naturezas. Cada um oferece uma solução para atividades mal-intencionadas ou suspeitas externas. Essa ferramenta ajuda os administradores de sistemas a controlar ameaças e ataques.

As regras disponíveis para aplicar a Zevenet podem ser listas negras, DoS, RBL or WAF.

Recuperar pacote IPDS

Recuperar pacote IPDS

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/package
zcli ipds-package get

GET /ipds/package

Recupere as informações do pacote zevenet-ipds. Este pacote contém regras atualizadas para cada módulo IPDS.

Exemplo de resposta:

{
   "description" : "zevenet-ipds package status info",
   "params" : {
      "frequency" : 0,
      "mode" : "disabled",
      "ruleset_date" : "05-06-2019",
      "scheduled" : "none",
      "status" : "Updates available",
      "time" : {
         "hour" : 0,
         "minute" : 0
      }
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com um conjunto de chaves para params, seu valor será a informação do pacote IPDS.

Campo Tipo Descrição
estado Tanga Mostra as informações de status de atualização sobre o pacote IPDS. Se o pacote estiver instalado, se for atualizado e se houver atualizações pendentes.
ruleset_date Tanga É a data em que o pacote foi criado. Não é a data de instalação.
programado Tanga Mensagem descritiva explica a configuração do cronograma.
modo Tanga Indica com que frequência a atualização ocorrerá ou para desativar a programação. Os valores disponíveis são: Daily Programe a atualização para ser feita todos os dias, permite que o campo Frequência indique quantas horas a atualização será repetida, a partir do horário definido; Semanal, Agendar a atualização para ser feito uma vez por semana, ele permite que o freqüência como Dia da semana para indicar em qual dia da semana a atualização será agendada (de segunda a domingo); mensal, agende a atualização para ser feita uma vez por mês.
freqüência Sessão If modo é diária, frequência é o número de horas entre a atualização do pacote de tempo; E se modo é semanal, o valor esperado é o número da semana (a partir de segunda-feira, 1para domingo 7); E se modo é mensal, o valor esperado é o número dia do mês (de 1 para 31).
tempo objeto Permite definir em qual horário a atualização ocorrerá ou a partir de que horário o pacote será atualizado se o modo for definido como Diário e a Frequência for maior que 0.

Objeto de tempo:

Este objeto, hora: minuto, é a hora em que o pacote será atualizado.

Campo Tipo Descrição
hora Sessão É a hora em formato 0 para 23.
minuto Sessão são as atas em formato 0 para 59.

Aplicar uma ação ao pacote IPDS

Aplicar uma ação ao pacote IPDS

Solicite exemplo para atualizar as regras do IPDS:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: application/json'
-d '{"action":"upgrade"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/package/actions
zcli ipds-package upgrade

Exemplo de resposta:

{
   "desc" : "Execute an action over the zevenet-ipds package",
   "params" : {
      "ruleset_date" : "07-06-2019",
      "status" : "Installed and updated"
   }
}

Solicite exemplo para agendar atualizações:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: application/json'
-d '{"mode":"daily","frequency":1,"time":{"hour":0,"minute":0},"action":"schedule"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/package/actions

Exemplo de resposta:

{
   "desc" : "Execute an action over the zevenet-ipds package",
   "params" : {
      "frequency" : 1,
      "mode" : "daily",
      "scheduled" : "daily from 0:00 to 23:00 each 1 hours",
      "status" : "Installed and updated",
      "time" : {
         "hour" : 0,
         "minute" : 0
      }
   }
}

POST /ipds/package

Aplique ação sobre o pacote zevenet-ipds.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
açao Tanga É a ação a ser aplicada em relação ao pacote de regras do IPDS. As opções são: atualização para forçar uma atualização do pacote. cronograma para configurar o sistema atualiza o pacote com uma periodicidade.
modo Tanga Indica com que frequência a atualização ocorrerá ou para desativar a programação. Os valores disponíveis são: Daily Programe a atualização para ser feita todos os dias, permite que o campo Frequência indique quantas horas a atualização será repetida, a partir do horário definido; Semanal, Agendar a atualização para ser feito uma vez por semana, ele permite que o freqüência como Dia da semana para indicar em qual dia da semana a atualização será agendada (de segunda a domingo); mensal, agende a atualização para ser feita uma vez por mês.
freqüência Sessão If modo é diário, a frequência é o número de horas entre o formulário de atualização do pacote tempo; E se modo é semanal, o valor esperado é o número da semana (a partir de segunda-feira, 1para domingo 7); E se modo é mensal, o valor esperado é o número dia do mês (de 1 para 31).
tempo objeto Permite definir em qual horário a atualização ocorrerá ou a partir de que horário o pacote será atualizado se o modo for definido como Diário e a Frequência for maior que 0.

Objeto de tempo:

Este objeto, hora: minuto, é a hora em que o pacote será atualizado.

Campo Tipo Descrição
hora Sessão É a hora em formato 0 para 23.
minuto Sessão são as atas em formato 0 para 59.

Parâmetros de resposta

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será a informação sobre o pacote IPDS.

Campo Tipo Descrição
estado Tanga Mostra as informações de status de atualização sobre o pacote IPDS. Se o pacote estiver instalado, se for atualizado e se houver atualizações pendentes.
ruleset_date Tanga É a data em que o pacote foi criado. Não é a data de instalação.
programado Tanga Mensagem descritiva explica a configuração do cronograma.
modo Tanga Indica com que frequência a atualização ocorrerá ou para desativar a programação. Os valores disponíveis são: Daily Programe a atualização para ser feita todos os dias, permite que o campo Frequência indique quantas horas a atualização será repetida, a partir do horário definido; Semanal, Agendar a atualização para ser feito uma vez por semana, ele permite que o freqüência como Dia da semana para indicar em qual dia da semana a atualização será agendada (de segunda a domingo); mensal, agende a atualização para ser feita uma vez por mês.
freqüência Sessão If modo é diária, frequência é o número de horas entre a atualização do pacote de tempo; E se modo é semanal, o valor esperado é o número da semana (a partir de segunda-feira, 1para domingo 7); E se modo é mensal, o valor esperado é o número dia do mês (de 1 para 31).
tempo objeto Permite definir em qual horário a atualização ocorrerá ou a partir de que horário o pacote será atualizado se o modo for definido como Diário e a Frequência for maior que 0.

Objeto de tempo:

Este objeto, hora: minuto, é a hora em que o pacote será atualizado.

Campo Tipo Descrição
hora Sessão É a hora em formato 0 para 23.
minuto Sessão são as atas em formato 0 para 59.

Listar todas as regras do IPDS

Listar regras de ipds

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds
zcli ipds list

GET /ipds

Listar todas as regras do IPDS existentes no sistema.

Exemplo de resposta:

{
   "description" : "List the available IPDS rules.",
   "params" : [
      {
         "name" : "dosrst",
         "rule" : "dos",
         "type" : "farm"
      },
      {
         "name" : "ssh_brute_force",
         "rule" : "dos",
         "type" : "system"
      },
      {
         "name" : "geo_IL_israel",
         "rule" : "blacklist"
      },
      {
         "name" : "geo_ME_montenegro",
         "rule" : "blacklist"
      },
      {
         "name" : "sip",
         "rule" : "rbl"
      },
      {
         "name" : "ssh",
         "rule" : "rbl"
      }
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será uma matriz de objetos da lista negra, cada um contendo os atributos-chave abaixo.

Campo Tipo Descrição
nome Tanga Nome da regra IPDS. Ele é usado como um identificador exclusivo.
governar Tanga É a natureza da regra do IPDS. Pode ser lista negra, dos or rbl.
tipo Tanga Este campo aparece em das regras e define se a regra é sistema, aplica-se ao balanceador; ou fazenda, as regras se aplicam a uma fazenda.

IPDS - Listas Negras

As listas negras permite que os usuários usem listas para filtrar ou permitir o tráfego de acordo com os IPs de origem (tráfego de entrada).

Existem dois tipos de listas:

  1. Comandos remotos: As listas são obtidas de um URL, essas listas não são modificáveis ​​e podem ser programadas para serem baixadas.
  2. Local: os usuários podem criar suas listas com uma determinada política, negar se o IP de entrada coincide, então o tráfego será rejeitado ou permitir se o IP de entrada corresponder, o tráfego será permitido.

Este módulo inclui pré-carregado listas fornecidas pela equipe de Zevenet, a lista está pronta para ser aplicada às fazendas. Além disso, os usuários podem criar suas listas personalizadas.

Várias listas podem ser aplicadas ao mesmo farm se o IP de origem corresponder em algumas das listas em que o tráfego será permitido ou negado, dependendo da política de lista negra. No momento em que o IP coincide, nenhuma outra verificação da lista negra é feita ao IP de origem.

Se um IP de origem estiver em duas listas diferentes, uma do tipo negar e o outro do tipo permitir, então, sempre a política de permissão é avaliada primeiro.

Listar todas as regras de listas negras

Listar todas as listas negras

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/blacklists
zcli ipds-blacklist list

GET /ipds/blacklists

Lista todas as listas negras criadas pelo usuário ou pré-carregadas no sistema que podem ser aplicadas aos farms.

Exemplo de resposta:

{
   "description" : "Get black lists",
   "params" : [
      {
         "farms" : [],
         "name" : "china",
         "policy" : "deny",
         "preload" : "true",
         "status" : "down",
         "type" : "local"
      },
      {
         "farms" : [],
         "name" : "russia",
         "policy" : "deny",
         "preload" : "true",
         "status" : "down",
         "type" : "local"
      },
      {
         "farms" : [],
         "name" : "northkorea",
         "policy" : "deny",
         "preload" : "true",
         "status" : "down",
         "type" : "local"
      },
      {
         "farms" : [
             "FarmHttp1",
            "FarmGslb1",
         ],
         "name" : "remoteList",
         "policy" : "deny",
         "preload" : "false",
         "status" : "up",
         "type" : "remote"
      },
      {
         "farms" : [],
         "name" : "myWhiteList",
         "policy" : "allow",
         "preload" : "false",
         "status" : "down",
         "type" : "local"
      },
   ]
}

Parâmetros de resposta

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será uma matriz de objetos da lista negra, cada um contendo os atributos-chave abaixo.

Campo Tipo Descrição
fazendas Corda[] Lista de farms onde a lista negra é aplicada.
nome Tanga Nome da lista negra. Ele é usado como um identificador exclusivo.
Privacidade Tanga Ação para aplicar à fonte. As opções são: negar, bloqueia o tráfego de entrada de fontes da lista; ou permitir aceitar o tráfego de fontes da lista.
pré-carga Tanga Os valores possíveis são: verdadeiro, a lista negra foi pré-carregada no sistema; ou falso, a lista negra foi criada pelo administrador do sistema.
estado Tanga Os valores possíveis são: up, a lista negra é ativada e o bloqueio (ou permissão) do tráfego de fontes forma a lista; ou down, na verdade, a regra não está em execução e não está filtrando o tráfego.
tipo Tanga Onde a lista é salva e quem a mantém. Os valores são: local, a lista é salva no sistema local e pode ser modificada localmente ou remoto, a lista é baixada da fonte remota através de um url, Não pode ser modificado localmente, portanto, as modificações precisam ser feitas na fonte remota.

Recuperar uma regra de lista negra

Recuperar lista negra

Exemplo de solicitação:

curl -k -X GET -H "ZAPI_KEY: <ZAPI_KEY_STRING>"
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/blacklists/loc
zcli ipds-blacklist get loc

GET /ipds/blacklists/<name>

Mostrar os parâmetros de configuração e descrição da lista negra. nome é o identificador exclusivo da lista negra.

Parâmetros de resposta

Exemplo de lista local de resposta:

{
   "description" : "Get list loc",
   "params" : {
      "farms" : [],
      "name" : "loc",
      "policy" : "deny",
      "preload" : "false",
      "sources" : [
         {
            "id" : 0,
            "source" : "192.168.0.167"
         },
         {
            "id" : 1,
            "source" : "192.168.0.186"
         }
      ],
      "status" : "up",
      "type" : "local"
   }
}

Objeto de lista negra local:

Campo Tipo Descrição
fazendas Corda[] Lista de farms onde a lista negra é aplicada.
nome Tanga Nome da lista negra. Ele é usado como um identificador exclusivo.
Privacidade Tanga Ação para aplicar a uma fonte. As opções são: negar, bloqueia o tráfego de entrada de fontes da lista; ou permitir aceitar o tráfego de fontes da lista.
pré-carga Tanga Os valores possíveis são: verdadeiro, a lista negra foi pré-carregada no sistema; ou falso, a lista negra foi criada pelo administrador do sistema.
estado Tanga Os valores possíveis são: up, a lista negra é ativada e o bloqueio (ou permissão) do tráfego de fontes forma a lista; ou down, na verdade, a regra não está em execução e não está filtrando o tráfego.
tipo Tanga Onde a lista é salva e quem a mantém. Os valores são: local, a lista é salva no sistema e mantida pelo administrador do sistema; ou remoto, a lista é baixada de um URL remoto.
fontes Objeto[] Lista de IPs que a lista verifica. Formato de rede de origem aceito: Endereço de rede / máscara bit ou IP

Exemplo de lista remota de resposta:

{
   "description" : "Get list remoteList",
   "params" : {
      "day" : "thursday",
      "farms" : [
         "FarmHttp1",
         "FarmGslb1",
      ],
      "frequency" : "weekly",
      "name" : "remoteList",
      "policy" : "deny",
      "sources" : [
         {
            "id" : 0,
            "source" : "78.12.0.4"
         },
         {
            "id" : 1,
            "source" : "68.100.15.5"
         },
         {
            "id" : 2,
            "source" : "65.12.12.95"
         }
      ],
      "time" : {
         "hour" : 0,
         "minutes" : 0
      },
      "status" : "up",
      "update_status" : "This list isn't downloaded yet.",
      "type" : "remote",
      "url" : "http://192.168.10.10/lists/test.txt"
   }
}

Objeto de lista negra remota:

Campo Tipo Descrição
fazendas Corda[] Lista de farms onde a lista negra é aplicada.
nome Tanga Nome da lista negra. Ele é usado como um identificador exclusivo.
Privacidade Tanga Ação para aplicar a uma fonte. As opções são: negar, bloqueia o tráfego de entrada de fontes da lista; ou permitir aceitar o tráfego de fontes da lista.
pré-carga Tanga Os valores possíveis são: verdadeiro, a lista negra foi pré-carregada no sistema; ou falso, a lista negra foi criada pelo administrador do sistema.
tipo Tanga Onde a lista é salva e quem a mantém. Os valores são: local, a lista é salva no sistema e mantida pelo administrador do sistema; ou remoto, a lista é baixada de um controle remoto url.
fontes Objeto[] IPs de origem que listam as verificações. Se a lista é do tipo remoto então o conteúdo da lista não é mostrado até o primeiro download.
atualizar o status Tanga Status do último download da lista e data da última atualização bem-sucedida no sistema local.
url Tanga De onde a lista remota é baixada. O formato remoto deve ser uma lista de um fonte rede / bitmask ou IP por linha.
freqüência Tanga Frequência de atualização da lista remota. As opções são: diariamente, atualizar todos os dias, uma vez ou periodicamente, isso é indicado em frequency_type campo; semanal, atualize uma vez por semana; ou mensal, atualize uma vez por mês.
frequency_type Tanga Este parâmetro completa o freqüência diariamente quando seu valor é diário. Os valores possíveis são: exato. defina uma hora no dia; ou período, defina um período para atualizar durante o dia.
dia String ou Número Este parâmetro conclui o parâmetro freqüência quando freqüência valor é semanal or mensal. Se freqüência is semanal este parâmetro deve ser um dia da semana (segunda-feira, terça-feira, quarta-feira, quinta-feira, sexta-feira, sábado or domingo) E se freqüência valor é mensal então esse parâmetro deve ser um dia do mês (um número entre 1 e assim 31).
tempo objeto É uma estrutura que depende dos campos freqüência.
estado Tanga Os valores possíveis são: up, a lista negra é ativada e o bloqueio (ou permissão) do tráfego de fontes forma a lista; ou down, na verdade, a regra não está em execução e não está filtrando o tráfego.

Objeto de hora para frequência diária e período frequency_type

Campo Tipo Descrição
período Sessão Com que frequência a lista é atualizada.
unidades Tanga Unidade do período. As opções são: minutos, indique que a lista será atualizada a cada minuto configurado; ou horas, a lista será atualizada a cada hora configurada.

Objeto de tempo para outras frequências

Campo Tipo Descrição
hora Sessão Hora para atualizar a lista. O valor deve ser um número entre 0 e assim 23.
minutos Sessão Minutos para atualizar a lista. O valor deve ser um número entre 0 e assim 59.

Objeto de fontes

Campo Tipo Descrição
id Sessão Identificador exclusivo de origem na lista.
fonte Tanga Endereços IP ou segmentos de rede que a lista verifica.

Criar uma regra de lista negra

Crie uma nova lista negra

Solicitar exemplo para uma lista local:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: application/json'
-d '{"name":"newListLoc", "type":"local", "policy":"allow"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/blacklists
ipds-blacklist create -name newListLoc -type local -policy allow

Solicitar exemplo para uma lista remota:

curl -k -X POST -H "ZAPI_KEY: <ZAPI_KEY_STRING>" -H 'Content-Type: application/json'
-d '{"name":"newListRem", "type":"remote", "url":"https://192.168.10.12/lists/test.txt"}'
https://<zevenet_server>:444/zapi/v4.0/zapi.cgi/ipds/blacklists

POST /ipds/blacklists

Crie uma lista negra para ser usada nos farms. As listas negras podem ser de dois tipos:

  1. Local: as fontes são adicionadas pelo usuário. A lista é salva localmente.
  2. Remoto: as fontes são obtidas de um local remoto. Esta localização é indicada por um URL. O formato de lista remota suportado é um Endereço de rede / bit de máscara or IP linha por linha.

Solicitar Parâmetros

Campo Tipo Descrição Exigido
nome Tanga Nome da lista negra. Ele é usado como um identificador exclusivo. verdadeiro
tipo Tanga Onde a lista é salva e quem a mantém. Os valores são: local, a lista é salva no sistema e manutenção para o sistema de administração; ou remoto, a lista é retirada de um serviço externo por meio de url e o serviço do administrador fará a manutenção da lista. verdadeiro
Privacidade Tanga Ação para aplicar a uma fonte. As opções são: negar, bloqueia o tráfego de entrada de fontes da lista; ou permitir aceitar o tráfego de fontes da lista. O valor padrão é negado.
url Tanga De onde a lista remota é baixada. O formato remoto deve ser uma lista de um fonte por linha no formato Endereço de rede / bit de máscara or IP. true para a lista remota
{
   "description" : "Post list list1",
   "params" : {
      "farms" : [],
      "name" : "newListLoc",
      "policy" : "deny",
      "preload" : "false",
      "type" : "local"
   }
}

Parâmetros de resposta

A resposta será um objeto JSON com um conjunto de chaves para params. O valor disso será uma matriz de objetos da lista negra, cada um contendo os próximos atributos-chave.

Campo Tipo Descrição
fazendas Corda[] Lista de farms onde a lista negra é aplicada.
nome Tanga Nome da lista negra. Ele é usado como um identificador exclusivo.
Privacidade Tanga Ação para aplicar a uma fonte. As opções são: negar, bloqueia o tráfego de entrada de fontes da lista; ou permitir aceitar o tráfego de fontes da lista.
pré-carga Tanga Os valores possíveis são: verdadeiro, a lista negra foi pré-carregada no sistema; ou falso, a lista negra foi criada para o administrador do sistema.
tipo Tanga Onde a lista é salva e quem a mantém. Os valores são: local, a lista é salva no sistema e manutenção para o sistema de administração; ou remoto, a lista é retirada de um serviço externo por meio de url e o serviço do administrador fará a manutenção da lista.

Modificar uma regra de lista negra

Modifique uma lista negra

Solicitar exemplo para uma lista local:

curl -k -X PUT -H 'Content-Type: application/json' -H "ZAPI_KEY: &