Como criar e configurar um farm L4xNAT com ZAPI v1

Escrito por Zevenet | 16 Outubro, 2015 | Técnico

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 | 17 de novembro de 2021
Entre a trágica situação da pandemia atual, um resultado inspirador foi a cultura remota. A súbita interrupção nos setores forçou as organizações a começarem a operar remotamente quase da noite para o dia. Como um…
4 CurtiuComentários Off sobre como trabalhar remotamente com nuvem ajuda pequenas empresas
Postado por zenweb | 12 de novembro de 2021
Todos nós sabemos que o setor de TI é um dos setores de crescimento mais rápido em todo o mundo e a computação em nuvem causou um tremendo impacto no crescimento do setor de TI em ...
7 CurtiuComentários Off sobre por que o balanceamento de carga é importante para ambientes de computação em nuvem
Postado por zenweb | 28 de outubro de 2021
Introdução Os crescentes crimes cibernéticos no setor obrigaram as empresas a se concentrarem nas implementações de segurança cibernética na organização. O cenário de TI em evolução exige fortemente operações e sistemas de negócios dinâmicos ...
8 CurtiuComentários Off Sobre as 5 principais considerações de segurança para migração para a nuvem