Como criar e configurar um farm L4xNAT com ZAPI v1

Escrito por Zevenet | 16 Outubro, 2015 | Dados Técnicos:

Oi Zen Masters, este artigo apresenta como criar e configurar um farm L4 (camada 4), alguns back-ends (servidores da web) e o responsável pelo farm por meio da nossa ZAPI (Zen Load Balancer API).

Perfil L4xNAT
O perfil do farm L4xNAT permite criar um farm L4 com um desempenho muito alto e muito mais conexões simultâneas do que os núcleos do balanceador de carga na camada 7, como perfis de farm TCP, UDP ou HTTP. 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 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.

Inicialize o ZAPI
Como discutimos no último artigo, você deve habilitar o usuário zapi e definir uma chave e uma senha para começar a usar o nosso ZAPI.
Para os exemplos a seguir, esses parâmetros serão usados:

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

Depois que o ZAPI estiver configurado ... vamos começar!

Como criar um farm L4xNAT com ZAPI
Em primeiro lugar, você deve criar um farm de perfil L4xNAT com o comando correspondente:

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

Verbo HTTP: POST, usado para criar farms, backends, serviços…
Parâmetros JSON: interface, vip e profile (o vport não é necessário no perfil L4xNAT).
Parâmetros URI: farmname -> L4FARM, este é o nome selecionado para a fazenda.

Uma vez que este comando é iniciado, a seguinte resposta será mostrada:

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

Essa resposta mostra os principais parâmetros do farm. O que significa o vport: 0? Quando um farm L4xNAT é criado, ele está escutando em todas as portas do IP virtual por padrão e isso será mostrado como 0 ou *.

Como configurar um farm L4xNAT com ZAPI

Uma vez que o farm L4xNAT foi criado, você poderá modificar os parâmetros do farm. É possível alterar todos os parâmetros, alguns ou apenas um.
Primeiro, vamos obter os parâmetros do farm com uma solicitação GET:

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

Verbo HTTP: GET, usado para obter parâmetros de farms, backends, serviços…
Parâmetros JSON: nenhum.
Parâmetros de URI: farmname -> L4FARM.

Uma vez que este comando é iniciado, a seguinte resposta será mostrada:

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

Essa resposta mostra os parâmetros avançados do farm. Esses parâmetros podem ser modificados usando o ZAPI. Vamos mudar alguns parâmetros:

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

Verbo HTTP: PUT, usado para modificar parâmetros de farms, backends, serviços…
Parâmetros JSON: protocol, nattype e port.
Parâmetros de URI: farmname -> L4FARM.

Uma vez que este comando é iniciado, a seguinte resposta será mostrada:

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

Se lançarmos outra solicitação GET, a resposta mostrará todos os parâmetros com novas alterações:

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

O nattype, port e parametrs de protocolo foram alterados com sucesso!

Como criar e modificar um back-end
Como podemos criar e configurar um backend do farm L4xNAT por meio do ZAPI? Você só precisa seguir os mesmos passos acima usando vários comandos com curl:

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

Verbo HTTP: POST, usado para criar farms, backends, serviços…
Parâmetros JSON: ip, porta, prioridade e peso (todos os parâmetros são necessários).
Parâmetros URI: farmname -> L4FARM, este é o nome selecionado para a fazenda.

Uma vez que este comando é iniciado, a seguinte resposta será mostrada:

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

Essa resposta mostra os parâmetros de backend e seu ID.
Como podemos modificar um back-end do farm L4xNAT? Usando o verbo PUT HTTP com curl:

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

Verbo HTTP: PUT, usado para modificar parâmetros de farms, backends, serviços…
Parâmetros JSON: ip. porta, prioridade e peso.
Parâmetros URI:
farmname -> L4FARM.
id de back-end -> 0.

Uma vez que este comando é iniciado, a seguinte resposta será mostrada:

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

Se lançarmos outra solicitação GET, a resposta mostrará todos os parâmetros com novas alterações:

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

Os parâmetros de peso, prioridade e porta foram alterados com sucesso!

Como configurar o Guardião da Fazenda
Para fechar, vamos configurar o guardião da fazenda L4xNAT. Temos que usar a seguinte solicitação com curl:

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

Verbo HTTP: PUT, usado para modificar parâmetros de farms, backends, serviços…
Parâmetros JSON: fgenabled, fgscript, fgtimecheck e fglog.
Parâmetros de URI: farmname -> L4FARM.

Uma vez que este comando é iniciado, a seguinte resposta será mostrada:

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

O que esses parâmetros fazem? O parâmetro 'fgenabled' habilita o guardião da fazenda, o parâmetro 'fgtimecheck' é o tempo entre as verificações (em segundos), 'fglog' habilita os logs do guardião da fazenda e 'fgscript' é o comando a ser verificado.

Em nome do Zen Team, esperamos que você tenha gostado deste artigo. Vejo você no próximo!

COMPARTILHE NO:

Blogs relacionados

Postado por zenweb | 30 de agosto de 2022
A saúde é altamente vulnerável a ameaças de segurança, assim como qualquer outro setor. Hoje em dia, os ataques cibernéticos na área da saúde são muito comuns, levando a muitos riscos, especificamente riscos de segurança a serem…
12 CurtiuComentários Off sobre a importância das estruturas de segurança cibernética na área da saúde
Postado por zenweb | 02 de agosto de 2022
7 razões pelas quais o ZEVENET é o melhor software de balanceamento de carga em 2022 A solução de balanceamento de carga não é mais o que costumava ser no passado. À medida que a tecnologia melhora, as ameaças também…
57 CurtiuComentários Off em 7 razões ZEVENET é o melhor software de balanceamento de carga em 2022
Postado por zenweb | 20 de julho de 2022
Um centro de operações de rede (NOC) é um local central onde as equipes de TI de uma organização monitoram o desempenho de uma rede. O NOC fornece servidores, bancos de dados, espaço em disco rígido e…
51 CurtiuComentários Off no Centro de Operações de Rede, Definição e 4 Principais Práticas Recomendadas