O pai ta on!!
Hoje falaremos do virtual server (que na AWS chamamos de listener).
Nos artigos anteriores, passamos por criação de nodes, monitors, pools, profiles e persistências, e hoje criaremos o VIP que responderá pela aplicação.
Virtual Servers
Virtual Servers é a “etapa final” da nossa receita de bolo. Obviamente o BigIP tem uma série de parâmetros e funcionalidades que não abordamos, contudo com esses 5 passos que postamos, é possível configurar um balanceamento sem problemas.
Existem alguns tipos de virtuais servers, sendo o padrão, e o performance-layer4 os mais comuns. A diferença base entre eles é que ao passo que o padrão (standard) as características da conexão TCP podem ser alteradas, e no performance-layer4 elas são preservadas.
Na prática isso significa que no standard podemos ter uma característica na conexão cliente <> bigIP, e outra característica na conexão bigIP <> pool-member. Assim poderíamos ter um MTU de 1500 na primeira conexão e
um de 9000 na segunda. No performan-layer4 todos os padrões de conexão são ‘espelhados’ entre as conexões, o que muitas vezes acaba sendo necessário para a aplicação.
Para a criação de um virtual server, dentro do ‘Local Traffic’, clique em ‘Virtual Server’:
Na tela de virtual servers list, clique em ‘Create…’
Detalhamento do virtual server
Nessa etapa vincularemos tudo que já criamos no virtual server.
A primeira ação é dar um nome para o VS, utilize o padrão: vs_(protocolo)_(serviço). Exemplo: vs_http_sagara
Source Address
Nesta opção você vai colocar a rede que pode ‘usar’ este virtual server. Recomendo fortemente que deixe com o ip e mask full (0.0.0.0/0), assim qualquer um pode utilizar o serviço (filtro de pacotes é função do firewall, e não do balanceador).
Destination Address
Nessa etapa vincularemos tudo que já criamos no virtual server.
A primeira ação é dar um nome para o VS, utilize o padrão: vs_(protocolo)_(serviço). Exemplo: vs_http_sagara
Aqui colocamos o IP que teremos o virtual server. Este é o IP que o cliente vai utilizar para a conexão. Obviamente é ele que deve ser adicionado em um DNS como IP da aplicação.
Em paralelo a AWS, esse seria o public-IP caso o ELB for internet-facing.
Service Port
Assim como no destination address, aqui colocamos a porta que o bigIP vai responder para a conexão, na grande maioria das vezes é a mesma porta do pool-member.
Note que nesse caso podemos inclusive fazer um ‘PAT’, ou seja, externamente o serviço ‘ouvir’ na porta 8080, e internamente falar com os servidores na porta 80.
Configuration Advanced
Esta é a parte (ainda na mesma página) que vinculamos o profile http ao VS. Nesta etapa também é possível vincular os profiles de SSL e TCP, o que também possibilita trabalharmos com ssl-offload.
Source Address Translation
Este é o método com que o bigIP vai utilizar para se conectar nas máquinas, e assim repassar a conexão recebida.
Existem basicamente 3 tipos: none, SNAT e AutoMap.
O primeiro (none) o bigIP não toma nenhuma ação, de forma que o IP de origem do cliente vai ser enviado como IP de origem para o servidor. Neste tipo de implementação o bigIP atua como um tipo de proxy transparente, com a diferencia que ele ainda vai manter as conexões do cliente e as conexões do servidor. Para isso funcionar o bigIP PRECISA ser o gateway das máquinas.
O segundo (SNAT), criamos um pool de IPs que o bigIP vai utilizar para se conectar nos servidores. Esta opção é útil quando você precisa de um ambiente escalável, pois no automap existe um limite de 65535 conexões no mesmo servidor. (limite do TCP). No SNAT pool, você pode colocar quantos IPs for necessário para conexão com os servidores.
Por fim temos o automap, onde o bigIP procura a melhor interface (baseado na tabela de roteamento) para se conectar nos servidores. Esta opção é boa quando o bigIP está na mesma rede dos servidores, de forma com que a procura vai para a tabela de connected.
Resources
O resource é a última relação que faremos com os itens criados. Nele vincularemos o pool que criamos, assim como a persistência.
Após vincular basta clicar em ‘Finished’.
Com isso criamos nosso virtual-server. No nosso último arquivo testaremos o serviço subindo uma aplicação web, e validando o balanceamento.
That’s all folks! Be Happy!!!
thiago.marques@darede.com.br
Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.