Blog Agility

Entendendo e configurando Virtual Server Forwarding (IP) no BIG IP

Entendendo e configurando Virtual Server Forwarding (IP) no BIG IP

 

Este artigo destina-se à compreensão e entendimento da configurações de Virtual Server de encaminhamento IP. Este tipo de configuração é muito utilizada em seguimentos onde o tráfego IP não é alterado, sendo assim, o Virtual Server fazendo apenas a passagem desse tráfego como elemento de rede. Muito comum e utilizado para fazer balanceamento  de links de internet, redundância e contigência.   A compreensão deste artigo leva a considerar a possibilidades, nos quais os Virtual Servers não necessariamente apenas atendem às demandas de balancemento de carga, mas também atendendo às demandas de balancemento de links de internet e entrega de tráfego de internet utilizando apenas as camadas de rede e transporte do modelo OSI.


Este documento aborda um metodo básico de encaminhamento de tráfego IP utilizando a feature de virtual server do BIG IP®. O objetivo desse material é prover informações suficientes para melhorar e aprimorar a habilidade de contrução de cenários nos quais seja necessário utilizar o balanceamento  sem prejudicar o tráfego IP devido aos algoritmos de balaceamento de carga e suprimir erros de encaminhamento na entrega da aplicação.

Um Virtual Server Forwarding (IP) é como outros Virtual Servers, exceto que um Virtual Server Forwarding (IP) não tem membros do pool para balancear a carga. O servidor virtual simplesmente encaminha o pacote diretamente para o endereço IP de destino especificado no pedido do cliente. Quando você usa um Virtual Server Forwarding (IP) para encaminhar um pedido ao seu endereço IP de destino originalmente especificado, Local Traffic Manager acrescenta, trilhas, e colhe essas conexões assim como com outros servidores virtuais. Você também pode ver as estatísticas de um encaminhamento de um Virtual Server.

Um Virtual Server Forwarding (IP) é útil quando você deseja configurar o  BIG-IP para transmitir o tráfego relacionados com infra-estruturas, como o tráfego Internet Control Message Protocol (ICMP).

 

 1 – Criando um Virtual Server Forwarding IP 

  • Efetue login via web browser para a configuração.
  • Navegue para o Local Traffic>>Virtual Servers.
  • Clique em Create.
  • Digite um nome para o Virtual Server.
  • No menu Type, selecione Forwarding (IP). Digite o endereço IP no formato CIDR (exemplo: 192.168.0.100/24 ou 192.168.0.100/255.255.255.0) na caixa de texto Destination Address.
  • Digite um número de porta de serviço no campo Service Port ou selecione um serviço a partir do menu adjacente (digitar um caractere asterisco para corresponder todas as portas).
  • Desmarque a caixa de seleção Notify Status to Virtual Address.
  • Clique em Finished.

2015_Setembro_Moises_Tavares_Entendendo_e_configurando_Virtual_Server_Forwarding_IP_no-BIG-IP_vs_01
Imagem 1: Pagina de Login BIG IP F5

Um Virtual Server tem várias configurações que podem ser realizadas para afetar a maneira como Virtual Server gerencia o tráfego. Você também pode atribuir certos recursos para um servidor virtual, tais como um pool de balanceamento de carga e várias políticas.

Juntas, essas propriedades, configurações e recursos representam a definição de um Virtual Server, e a maioria tem valores padrão. Quando você cria um Virtual Server, você pode manter os valores padrão ou ajustá-los para atender às suas necessidades.

Se você criou um Virtual Server que é um tipo padrão, um dos recursos que você normalmente atribui ao Virtual Server é um pool padrão. Um pool padrão é o pool de servidores ao qual Local Traffic Manager(LTM) envia o tráfego.
2015_Setembro_Moises_Tavares_Entendendo_e_configurando_Virtual_Server_Forwarding_IP_no-BIG-IP_vs_02
                     Imagem 2: Criação de Virtual Server – Local Traffic>>Virtual Server>>Create
2015_Setembro_Moises_Tavares_Entendendo_e_configurando_Virtual_Server_Forwarding_IP_no-BIG-IP_vs_03
                    Imagem 3: Propriedades Gerais de configuração do Virtual Server

  • No campo Name especifica o nome do Virtual Server para identificação
  • No campo Description, serão associadas descrições do Virtual Server
  • No campo Type, são escolhidos os tipos de tráfegos que iram “passar “por esse Virtual Server, neste guide em especifico vamos usar um Virtual Server de encaminhamento IP (Layer 3).
  • No Campo Source Address serão associados os endereços que originam tráfego para esse Virtual Server, no caso de qualquer endereço da rede, usamos 0.0.0.0/0.
  • No Campo Destination Address será associado um endereço IP representará o Virtual Server, esse endereço será o endereço de destino solicitado pela origem
  • No Campo Service Port são configuradas as portas de serviço em camada de transporte, o número da porta de serviço pode ser pré-definida, ou definida pelo usuário.
  • No Campo Notify Status to Virtual Address se estiver marcado irá notificar o status do Virtual Server por meio de simbologia
  • Para a configuração de Virtual Server Forwarding (IP) vamos deixar a opção Notify Status to Virtual Address desabilitada.

2015_Setembro_Moises_Tavares_Entendendo_e_configurando_Virtual_Server_Forwarding_IP_no-BIG-IP_vs_04
                           Imagem 4: Propriedades Gerais de configuração do Virtual Server (configurado)

2015_Setembro_Moises_Tavares_Entendendo_e_configurando_Virtual_Server_Forwarding_IP_no-BIG-IP_vs_05
Imagem 5:Configurações Avançadas.

 2 – Configurações Avançadas do Virtual Server

  • No Campo Protocol serão associados os tipos de protocolo de comunicação de camada 4
  • No Campo Protocol Profile poderão ser selecionados perfis (profiles) pré-definidos, ou definidos pelo usuário para voltados para otimização dessa comunicação de camada de transporte.
  • No Campo protocol profile (client), existe configurações pré-definidas e pefis de configuração que pode ser otimizadas pelo usuário, são perfis para conexões de camada de transporte.
  • No Campo Statistics Profile existem profiles pré-definidos e profiles definidos pelo usuário para coleta de estatísticas do tráfego que chega até este Virtual Server
  • No Campo VLAN and Tunnel Traffic pode ser direcionado o tráfego roteado da vlan pertencente a determinada rede, ou pode se associar todas as vlan e tunnels da rede trafegarem por esse virtual server.
  • No Campo Source Address Translation, quando a rota padrão nos servidores não respodem a essa rota de volta através do sistema BIG-IP, você pode criar uma tradução de endereços de rede segura (SNAT). A tradução de endereços de rede segura (SNAT) garante que as respostas do servidor sempre retornam através do sistema BIG-IP. Você também pode usar um SNAT para ocultar os endereços de origem de solicitações iniciadas pelo servidor de dispositivos externos.
  • Para conexões de entrada de um cliente, um SNAT traduz o endereço IP de origem dentro de pacotes para um endereço IP sistema BIG-IP que você ou o sistema BIG-IP definido. O nó de destino, em seguida, usa esse novo endereço de origem como o seu endereço de destino ao responder à solicitação.
  • Para conexões de saída, SNATs garantir que o endereço IP interno do nó do servidor permanece oculto para um host externo quando o servidor inicia uma conexão com esse acolhimento.
  • Se você deseja que o sistema escolha um endereço de tradução SNAT para você, você pode selecionar o recurso Auto Map. Se você preferir definir o seu próprio endereço, você pode criar um pool SNAT e atribuí-lo para o servidor virtual.
  • No Campo Bandwidth Controller especifica uma política de controle de largura de banda estática existente para o sistema a ser usado, para aplicar uma política de taxa de transferência para o tráfego de rede de entrada. A política de controle de largura de banda estática controla a taxa agregada para um grupo de aplicativos ou um caminho de rede. A política de controle de largura de banda impõe a quantidade total de largura de banda que pode ser usado, especificado como a taxa máxima do recurso que você está gerenciando. A taxa pode ser a largura de banda total do dispositivo BIG-IP, ou pode ser um grupo de fluxos de tráfego.
  • No Campo Traffic Class Ao criar ou modificar um Virtual Server, você pode atribuir uma ou mais classes de tráfego existentes para o servidor virtual. A classe de tráfego permite classificar o tráfego de acordo com um conjunto de critérios definidos por você, como endereços IP de origem e de destino. Classes de tráfego irão defirir não só os critérios de classificação, mas também um ID classificação. Depois de ter definido a classe de tráfego e atribuído a classe para um servidor virtual, o sistema BIG-IP associa o ID classificado para cada fluxo de tráfego. Desta forma, o sistema BIG-IP pode regular o fluxo de tráfego baseado conforme classificação.

    Ao tentar corresponder os fluxos de tráfego para uma classe de tráfego, o sistema BIG-IP utiliza a correspondência mais específica possível.

  • No Campo Connection Limit especifica-se um limite de conexão, o sistema impede que o número total de conexões simultâneas para o servidor virtual, membro do pool ou do node que exceder o número especificado.
  • No Campo Connection Rate Limit especifica-se um limite de taxa de conexão. O sistema controla o número de novas conexões permitidas por segundo, proporcionando assim um aumento gerenciável em conexões sem comprometer a disponibilidade.
  • No Campo Source Port Em um servidor virtual, você pode especificar se o sistema BIG-IP preserva a porta de origem da conexão. Você pode instruir o sistema BIG-IP, quer deseja preservar a porta de origem em certos ou todos os casos, ou alterar a porta de origem para todas as conexões. O comportamento padrão é tentar preservar a porta de origem, mas usar uma porta diferente se a porta de origem a partir de um determinado SNAT já está em uso.

    Alternativamente, você pode orienta o sistema para preservar sempre a porta de origem. Neste caso, se a porta está em uso, o sistema não processa a conexão. F5 Networks recomenda que você deve restringir o uso desta definição para casos que respeitam pelo menos uma das seguintes condições:

    • A porta é configurada para o tráfego UDP.
    • O sistema está configurado para roteamento nPath ou está sendo executado no modo transparente (isto é, não há nenhuma tradução de qualquer outro campo Layer 3 ou camada 4).
    • Existe um relacionamento um-para-um entre endereços virtuais IP e endereços de nó, ou em cluster multi-processamento (CMP) é desativado.
    • Instruindo o sistema a mudar em vez de preservar a porta de origem da conexão é útil para ofuscar endereços da rede interna.
  • No Campo Clone Pool , você usa um pool clone quando você deseja configurar o sistema BIG-IP para enviar tráfego para um conjunto de sistemas de detecção de intrusão (IDS). Um sistema de detecção de intrusão (IDS) é um dispositivo que monitora o tráfego de rede de entrada e saída e identifica padrões suspeitos que possam indicar atividades maliciosas ou um ataque à rede. Você pode usar o recurso de clone pool de um sistema BIG-IP para copiar o tráfego para um IDS dedicados ou um dispositivo sniffer.
    • Importante: A clone pool recebe o mesmo tráfego que o pool de balanceamento de carga recebe.
  • Para configurar um clone pool, você primeiro cria o pool de clone de IDS ou dispositivos snnifers(farejadores) e depois atribuir o clone pool para um Virtual Server. O recurso clone pool é o método recomendado para copiar o tráfego de produção para sistemas ou dispositivos IDS snnifers. Observe que quando você criar o pool de clone, a porta de serviço que você atribui a cada node é irrelevante. Você pode escolher qualquer porta de serviço. Além disso, quando você adiciona um clone pool para um Virtual Server, o sistema copia apenas novas conexões. Conexões existentes não são copiadas.

    Você pode configurar um servidor virtual para copiar o tráfego do lado do cliente, ou tráfego do lado do servidor, ou ambos:

    • A clone pool do lado do cliente faz com que o servidor virtual para replicar o tráfego do lado do cliente (antes Address Translation – NAT) para a clone pool especificado.
    • A clone pool do lado do servidor faz com que o servidor virtual para replicar o tráfego do lado do servidor (após Address Translation – NAT) para a clone pool especificado.
  • No Campo Auto Last Hop Quando você habilitar a configuração auto last hop, o sistema BIG-IP pode enviar qualquer tráfego de retorno para o endereço MAC que transmitiu o pedido, mesmo se os pontos da tabela de roteamento para uma rede ou interface diferente. Como resultado, o sistema pode enviar o tráfego de retorno para os clientes, mesmo quando não há nenhuma rota correspondente, tal como quando o sistema não tem um percurso configurado padrão e o cliente está localizado sobre uma rede remota.
  • Essa configuração também é útil quando o sistema é o balanceamento de carga de dispositivos transparentes que não modificam o endereço IP de origem do pacote. Sem a configuração de auto last hop ativada, o sistema poderia retornar conexões para um node transparente diferente, resultando em roteamento assimétrico.
  • Você pode configurar essa definição a nível global e em nível de objeto. Você definir o valor global de auto last hop na guia  System >> Configuration >> Local Traffic >> General screen.

    Neste caso, os usuários normalmente manterão a configuração padrão, Enabled. Ao configurar o auto last hop no nível do objeto com um valor diferente de padrão, o valor que você configurar tem precedência sobre a configuração global. Isso permite que você configure o auto last hop em uma base por membro do pool. O valor padrão para o Virtual Server e o valor default, que faz com que o sistema para usar a configuração global auto last hop envie de volta a solicitação.

  • No Campo NAT64 você pode instruir o sistema BIG-IP para permitir que hosts IPv6 se comuniquem com servidores IPv4. Esta configuração está desativada por padrão.

3 – Encaminhamento IP de rede do Virtual Server

  • Um Virtual Server Forwarding IP, encaminha o tráfego para a rede de destino. Por exemplo, o seguinte exemplo de configuração define uma rede IP, encaminhando ao virtual server, que aceita o tráfego de qualquer VLAN com destino a qualquer host na rede 10.0.0.0/24, mas somente se ele chega na porta TCP 22

    Combinando o tráfego; é encaminhado a partir da VLAN de origem para o host especificado no pedido do cliente:

ltm virtual /Common/forward_vs {
destination /Common/10.0.0.0:22
ip-forward
ip-protocol tcp
mask 255.255.255.0
profiles {
/Common/fastL4 { }
}
source 0.0.0.0/0
translate-address disabled
translate-port disabled
}

4 – Emulando roteamento IP stateless com BIG-IP LTM – encaminhamento de servidores virtuais

  • O modelo full-proxy baseado em TMOS é stateful por natureza, em contraste com o encaminhamento IP stateless, normalmente fornecidos pelos roteadores L3 e orientada a conexão. O BIG-IP LTM deve ser configurado especificamente para imitar mais de perto o comportamento de roteamento stateless em um roteador padrão, ajustando as configurações do servidor e do perfil do protocolo virtuais para atender às suas necessidades.
  • O perfil FastL4 determina como o sistema trata as entradas de tabela de conexão.

Ativando a opção Loose Initiation permite que o sistema inicialize uma conexão quando ele recebe qualquer pacote TCP, em vez de exigir um pacote SYN ao início da conexão. Ele também fornece uma boa alternativa para a alta sobrecarga de conexão espelhamento. No caso de um failover, com a opção Loose Initiation ativado, o sistema espera BIG-IP aceitar as conexões de mid-flow, e encaminha para a frente, conforme esperado.

  • A opção Loose Close permite que o sistema remova uma conexão quando o sistema receber o primeiro pacote FIN de um cliente ou um servidor. Isso ajudará as entradas da tabela de conexões finalizadas, como a entrada de conexão que podem ser removidas, assim que a conexão for fechada oficialmente, e o sistema não precisará manter a entrada da tabela de conexão.
  • Para a maior aproximação de encaminhamento IP stateless, F5 recomenda você criar um Virtual Server Forwarding IP wildcard semelhante ao exemplo a seguir:

ltm virtual /Common/vs_wildcard_forwarding {
destination /Common/0.0.0.0:0
ip-forward
mask any
profiles {
/Common/my_route_friendly_fastl4 { }
}
source 0.0.0.0/0
translate-address disabled
translate-port disabled
}

ltm profile fastl4 /Common/my_route_friendly_fastl4 {
app-service none
defaults-from /Common/fastL4
idle-timeout 300
loose-close enabled ### Optional (see below) ###
loose-initialization enabled
reset-on-timeout disabled
}

Esta configuração aceita tráfego e encaminha usando as informações contidas na tabela de roteamento do sistema, independentemente se ele é associado com uma conexão estabelecida.

    • As VLANs em que você ativar o Virtual Server Forwarding IP pode variar dependendo de suas necessidades de roteamento e restrições. O Virtual Server deve ser ativado em todas as VLANs do qual ele irá aceitar e rotear tráfego.
    • Nota: O recurso Loose Close é opcional e pode afetar o desempenho do sistema, pois desabilita Packet Velocity ASIC (PVA) de Aceleração para o servidor virtual. Para obter informações sobre PVA Acceleration, consulte SOL4832: Visão geral do PVA Acceleration. Fechar O recurso Loose Close não tem impacto aceleração ePVA. Para obter informações sobre a aceleração ePVA, consulte SOL12837: Visão geral do recurso ePVA.
    • Nota: F5 não recomenda que você defina o tempo idle timeout para qualquer servidor virtual para imediato ou indefinido. Definir o tempo limite para resultados imediatos por escrito constante e eliminação de entradas de conexão para cada datagrama, criando sobrecarga indesejável. Definir o tempo limite para indefinidos (ou para grandes valores) resulta em uma tabela conexão que cresce até que toda a memória disponível é consumida, e normalmente resulta em um failover não planejado a partir do memory exhaustion.
  • Definir o tempo limite de ociosidade permite que o sistema remova as conexões da tabela, quando as conexões não estão mais ativas. F5 recomenda que você use o tempo limite padrão de 300 segundos. Se você desativar Reset on Timeout, o sistema remove entradas de conexão da tabela de uma conexão, uma vez que o tempo limite de ociosidade expirar, mas o sistema não redefine a conexão.

    Esta configuração impede que o sistema do BIG-IP de envio de reponha as conexões, quando encerrar uma conexão ociosa, mas também reduz a necessidade de usar o tempo limite de longas conexões ociosas TCP de longa duração, que podem permanecer inativas por longos períodos de tempo. Por exemplo, se um aplicativo permite longos períodos de inatividade (maior do que o tempo limite de ociosidade configurado) com o trânsito não sendo trocado, em seguida, sem esta definição, o BIG-IP LTM iria fechar ambos os lados da conexão quando o tempo limite expirar. O sistema rejeitaria quaisquer pacotes subsequentes que o cliente ou servidor enviasse na mesma conexão TCP, uma vez que a conexão já não é válida no sistema BIG-IP LTM é. No entanto, com Reset on Timeout desativado, o BIG-IP LTM remove silenciosamente a entrada de conexão e nem o cliente nem o servidor está tem a visão de que o canal de comunicação expirou. Quando o cliente ou servidor começa a se comunicar novamente, a configuração Loose Initiation permite que o BIG-IP LTM possa re-adicionar a conexão para a tabela de conexão, e os pacotes recém-chegados são encaminhados, conforme o esperado.

    Alguns protocolos têm exigências diferentes do que outros. Nesse caso, um servidor virtual mais específico permite que você controle o tratamento de tráfego para protocolos específicos. Um Virtual Server para um protocolo específico pode ajudar a manter a tabela de conexão tamanhos para baixo, e se Last Hop ainda é usado, ajudará a reduzir última informação do hop obsoleto para conexões de curta duração. Por exemplo, User Datagram Protocol (UDP) é menor do que o TCP stateful,  normalmente não exigem tanto tempo um tempo ocioso. Para definir um tempo limite específico para o tráfego UDP, você pode criar o Virtual Server wildcard forwarding descrito anteriormente, e um Virtual Server Forwarding de protocolo específico e um perfil semelhante ao exemplo a seguir:

ltm virtual /Common/vs_wildcard_forwarding_udp {
destination /Common/0.0.0.0:0
ip-forward
ip-protocol udp
mask any
profiles {
/Common/udp_fastl4 { }
}
source 0.0.0.0/0
translate-address disabled
translate-port disabled
}

ltm profile fastl4 /Common/udp_fastl4 {
app-service none
defaults-from /Common/fastL4
idle-timeout 5
}

Este servidor virtual escuta apenas o tráfego UDP. Todos os outros protocolos IP serão processados pelo wildcard forwarding virtual server definido anteriormente.

A intuito deste documento é transmitir um overview sobre algumas das features e métodos de balanceamento utilizados pelo dispositivo BIG IP® LTM ™.

Parte desse material foi estudado e elaborado com base nas fontes de base de conhecimento (knowledge basement) da F5 Networks.

Abaixo seguem as fontes que deram origem a este material:

https://support.f5.com/kb/en-us/solutions/public/7000/500/sol7595.html

https://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm-concepts-11-5-1/2.html

https://support.f5.com/kb/en-us/solutions/public/8000/000/sol8082.html
Devido a uma necessidade foi executado estudos e desenvolvido laboratorios em alguns de nossos clientes como Secretaria da Fazenda e Cielo S/A, colocando objetivo sanar a necessidade do cliente com a solução da F5 Networks ( BIG IP® LTM™)  ter habilidade de lidar com situações semelhantes em outros projetos. Para a necessidade destes cliente seguido este passo-a-passo obtivemos sucesso no desenvolvimento de encaminhamento de tráfego IP.