Blog Agility

Balanceamento de pools via iRule

Balanceamento de pools via iRule

Faça redirecionamento de pools de servidores dinamicamente por regra de URI através de iRule. É uma forma dinâmica que possibilita flexibilidade para disponibilização de diversas aplicações em um único IP e Porta.

Você já precisou publicar várias aplicações em servidores, portas e serviços distintos em um único endereço e porta disponibilizado? Isso costuma ocorrer quando se tem pouca disponibilidade de endereços IPs no ambiente ou até mesmo por questões de segurança. Este documento irá descrever passo a passo como configurar um ambiente para disponibilizar este tipo de balanceamento usando iRules.

Em ambientes com escassez de endereços IP e portas, característica comum em redes públicas IPv4, é necessário pensar em soluções para que seja possível aproveitar os endereços IP válidos disponíveis. Imagine um ambiente que necessita de cinco aplicações web divulgadas em um endereço especifico na porta 80 e algumas dessas aplicações estão publicadas em apenas um dos servidores internos. Com tantos parâmetros, como fazer um balanceamento adequado? Existem diversas formas de resolver desafios como este, porém se você possui um balanceador de carga com suporte a iRules, como o F5 BIG-IP, é possível resolver isso facilmente.

Veja o esquema abaixo:

Redirecionamento_via_iRule-1
Imagem 1: Diagrama do balanceamento.

 

O BIG-IP tem uma arquitetura full proxy, isto significa que ele pode abrir comunicação, com o cliente e servidor em “linguagens diferentes”, exemplo, comunica-se em protocolo criptografado https com os clientes e http com os servidores. Neste exemplo percebe-se que para o usuário final não será necessário incluir a porta 8080 no endereço do VIP para acessar a porta certa nos servidores.

  1. O primeiro passo é criar os pools: Local Traffic->pools->create

Redirecionamento_via_iRule-2
Imagem 2: Criando pool_tomcat_8080.

Neste exemplo, configuramos os seguintes pools:

Redirecionamento_via_iRule-3
Imagem 3: Listando pools criados.

  1. Com os pools devidamente criados, deve-se acessar: Local Traffic -> iRules -> Create

2.1.              Name: Nome de sua iRule;

2.2.              Definition: Código em linguagem TCL;

Redirecionamento_via_iRule-4
Imagem 4: Criando iRule.

Redirecionamento_via_iRule-4-2

Clicar em “finished”. Se houver algum erro de sintaxe, será apontado a linha de erro para correção J.

 

  1. Anexar iRule no VIP desejado em: Local Traffic-> Virtual Servers -> Resources -> iRules(Manage).

Redirecionamento_via_iRule-5
Imagem 5: Anexando iRule ao VIP.

 

Após anexar iRule o VIP será capaz de responder todas as requisições dos usuários e encaminhar para o pool correto conforme definido na iRule. Supondo que o endereço vip é 2.2.2.2 o acesso para o usuário a todas as aplicações será:

  •        2.2.2.2/admin
  •        2.2.2.2/manager/html
  •        2.2.2.2/lojaVirtualWeb
  •        2.2.2.2/ termoquitacao
  •        2.2.2.2/mge

 

Com poucas linhas de código é possível criar uma solução robusta e eficiente de balanceamento, garantindo disponibilidade dos recursos internos e aproveitamento eficiente dos endereços IPs disponibilizados sem a necessidade de alterações em firewall e outros dispositivos do ambiente, facilitando a implementação.