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 | 13 April 2022
A segurança do hardware é fundamental durante a migração para a nuvem. É muito importante lembrar os clientes sempre que eles falarem sobre a migração para a nuvem. Estar na nuvem não é considerado…
20 CurtiuComentários Off sobre a mudança para a nuvem? Não se esqueça da segurança de hardware
Postado por zenweb | 06 April 2022
Existe uma diferença entre o conceito de balanceamento de carga e alternância de conteúdo em aplicações web? Os balanceadores de carga distribuem solicitações em vários servidores para lidar com mais tráfego do que um servidor…
24 CurtiuComentários Off em Qual é a diferença entre balanceamento de carga e alternância de conteúdo
Postado por zenweb | 16 March 2022
A verificação de identidade adquire o uso de dados pessoais confidenciais, portanto, os consumidores precisam garantir que suas informações sejam tratadas com segurança. Vamos mergulhar mais fundo neste blog. Os avanços tecnológicos são…
35 CurtiuComentários Off sobre como aumentar a adoção e a crença on-line com a verificação digital KYC