quarta-feira, 11 de abril de 2012

Medir performance, detectar gargalos ou comportamentos estranhos em estações de trabalho windows : PERFMON!

    Volta e meia surgem situações onde máquinas apresentam lentidão, comportamentos não esperados e dúvidas são levantadas com relação a o que exatamente está causando este tipo de anomalia. Problemas atribuídos à rede, link ou Internet pode na verdade ser um problema na estação de trabalho. 
    Para detectarmos com exatidão o que está acontecendo podemos recorrer a ferramenta nativa do windows: Performance (perfmon).





    Com ela podemos selecionar "contadores" , que são variáveis diversas do sistema: % de utilização processador, memória, quantidade de dados que trafegam na rede, % de uso de determinado processo e  etc etc etc. 
    Ela também tem o grande recurso de agendamento (logs de contadores) que pode ser configurado para coletar com certa periodicidade (amostra) dos dados dos contadores durante determinado tempo (Horas, dias, semanas) para que, posteriormente, seja feita uma análise do log que pode ser aberto em qualquer outro computador que tenha perfmon.
   Uma estratégia interessante: Configure e agende por um tempo determinado um "monitoramento" utilizando o perfmon em uma estação de trabalho onde existem reclamações (mas geralmente quando chegamos na estação o problema "já acabou").

    Mais detalhes sobre o perfmon:

    Sugestão de alguns contadores:

    
     Análise de gargalos:

     Utilização de processador: System\Process Queue Length - Deve ser menor que 10
     Utilização de memória: memory\Pages input/Sec  - Deve tender a 0.
     Utilização de disco: PhysicalDisk\Current Disk Queue Length\Dirveletter - Entre 2 e 3
     Utilização de rede : Network Interface\Output Queue Length\nicname - Em média 2 pacotes
     
     Contadores Gerais:

      Utilização de processador: Processor\% Processor Time\_Total
      Utilização de memória: Process\Working Set\_total
                                        memory\Available mBytes
      Utilização de disco: PhysicalDisk\Bytes/sec\_Total
      Utilização de rede : Network Interface\Bytes Total/Sec\nicname

    Contadores por processo:

    Process\Private Bytes - nomedoprocesso
    Process\% Processor Time - nomedoprocesso

Obs : Nas novas versões do windows (Vista, 7, 2008 server) o "performance" é chamado de "Medidor de desempenho", mas continua com a mesma funcionalidade. 

terça-feira, 10 de abril de 2012

Teste de largura de banda e QOS: Jperf (Iperf)

   O Jperf é um front-end gráfico em Java para o iperf. É uma ferramenta livre para testar a largura de banda em rede TCP/IP, sua funcionalidade principal, mas também é possível realizar outros tipos de testes como Jitter, perda de pacotes e configurações de QOS. O Jperf (e o Iperf) tem versões para windows e linux e pode ser obtido aqui : http://code.google.com/p/xjperf/ . Ele não é "instalável", só é necessário que a máquina tenha o JRE.
   A saída do teste é textual (pela aba output) e gráfica, a duração e amostragem são configuráveis.

 
   Ela funciona no esquema  "cliente/servidor": Abre-se uma instância do Jperf em uma ponta do link alvo do teste, configura-se a porta e é iniciado como servidor. Do outro lado do link, fica no modo cliente em que o IP do servidor e a porta (existe uma série de outras opções opcionais para customização do teste) devem ser passados como parâmetros. É possível realizar o teste tanto com TCP como UDP (O cliente e o servidor devem estar configurados para utilizar o mesmo protocolo).



   Considerações importantes:

  • O sentido do tráfego é do cliente para o servidor, é como se o lado servidor fosse realizar um download do cliente (o cliente que "empurra" os bits, o servidor só recebe e manda os acks). 
  • Infelizmente não é possível configurar a porta origem no cliente o que não torna a ferramenta "perfeita" para um teste de QOS, mas ainda assim "dá pro gasto". Existe uma outra ferramenta mais robusta (mais complicada e mais feia) que consegue realizar isto, é o MGEN,  desenvolvido pela Marinda dos E.U.A  http://cs.itd.nrl.navy.mil/work/mgen/
  • É possível abrir várias instâncias do Jperf para testes com vários fluxos em diferentes portas, tome cuidado com as portas para não bater com algum serviço que já esteja escutando na máquina.

   Um teste de QOS pode ser implementado da seguinte maneira:

  1. Na ponta que será "servidora" é aberto 3 instâncias do Jperf, cada uma utilizando uma porta distinta que estejam configuradas com prioridades diferentes nos roteadores.
  2. Na ponta cliente faça testes variados: ora utilize somente uma porta, depois ative outro fluxo da outra porta ou ainda mais de um fluxo na mesma porta (com a opção parallel streams). Será possível verificar se as políticas de QOS estão funcionando (lembre-se do sentido do tráfego).
   Segue um teste que realizei numa rede wireless N. Os nós (lado cliente e servidor) estavam "linkados" em 65Mbps, na prática não chega a 10Mbps (fica ocilando nos 9Mbps). O lado cliente estava configurado com dois fluxos (parallel strems), durante 600 segundos (Transmit) e a cada 5 segundos era exibida a throughput de cada fluxo e a soma (Report Interval)


      Para mais dicas sobre testes utilizando Jperf (e Iperf), visitem http://openmaniak.com/iperf.php



segunda-feira, 9 de abril de 2012

Alta Disponibilidade(HA): Mcafee Firewall Enterprise 8.2

   Esta postagem demonstra a instalação, utilizando máquinas virtuais, e configurações básicas de um cluster de alta disponibilidade utilizando o Mcafee Firewall Enterprise versão 8.2.
   O MFE tem como base o mesmo sistema operacional do PFsense (FreeBSD) com customizações que leva o nome de SecureOS.
   Este Firewall conta com todas as capacidades de um FreeBSD adicionando algumas funcionalidades interessantes como GTI , GeoIP, Smart Filter, conceito de zonas, interface gráfica e muito, muito mais (como fala a gravação do suporte Platinum da Mcafee kkk). Para quem estiver procurando um firewall, vale a pena conhecê-lo.
   A maior parte da administração rotineira é feita via Interface Gráfica (o software cliente admin console, for windows), embora também esteja disponível acesso SSH (com comandos dos "BSD likes" mais comandos específicos do SecureOS, existe um manual que discorre sobre eles).
   Tendo em mãos a ISO do firewall, pacote de instalação do Admin Console, Vmware Workstation e uma máquina que suporte a execução destes componentes, podemos começar a instalação.
  • obs¹: O MFE requer uma licença, caso não seja inserida uma licença válida ele funciona por 30 dias, o que para fins de POC ou LAB é suficiente.
  • obs²: Eu tenho acesso a estes softwares por trabalhar em um local que tem licenças MFE e acesso para download no site da Mcafee, caso não seja seu caso, entre em contato com um revendedor/parceiro Mcafee.
  • obs³: O MFE tem um manual bem abrangente e a Mcafee tem uma base de conhecimento bacana. 

A estrutura que será configurada:

Topologia e endereçamento dos membros e do cluster
   As configurações de hardware mínimas das VMs para esta configuração de cluster. Lembrando que são necessárias duas máquinas:

   

Realize o boot com a .iso , caso seja uma máquina "limpa" ele realiza um "auto-instalador" e reinicia a máquina. O processo de instalação básica deve ser realizado nas duas máquinas.
Início
Auto Install

Instalação
Término da auto-instalação
 Após esta instalação preliminar ele reiniciará a máquina e pedirá as configurações. Existe uma forma de fornecer as configurações e licenças por meio de um pendrive, utilizando o software "quick start" que é instalado junto com o "admin console". Aqui será configurado manualmente:


Tela após a instalação preliminar


EULA

Aceitando EULA

Identificação para o licenciamento
   Após estas etapas, começa a configuração. Não iremos configurar o firewall para ser gerenciado por um Control Center (Outro produto para centralizar a gerência de um parque de MFEs), não iremos utilizar o modo bridge e, inicialmente, só terá regras que permitem a administração do firewall. Na configuração é requisitado o endereçamento da interface interna e externa, usuário, senha, dns, default gateway e servidor de e-mail. A última pergunta é sobre se a administração será realizada somente pela zona Interna.
   O conceito de Zonas é interessante: várias interfaces de rede podem participar de uma mesma zona e regras podem ser atribuídas por zonas. É um artifício para regras (ou ACLs) ou configurações que podem ser aplicadas para várias redes, evitando redundância.

Configurações

Configurações

Configurações

Revisão das configurações

Software instalado
   Com o software instalado, toda a configuração pode ser realizada via Admin Console. O procedimento é muito simples, basta adicionar um firewall (sua máquina deve estar na mesma rede da interface interna) e o IP. Será pedido o usuário e senha:

Primeiro acesso via Admin Console

Acesso via Admin Console

Janela da aceitação do certificado.

Acesso via Admin Console


Acesso via Admin Console
Dashboard


Configurações das interfaces de rede
IMPORTANTE - Liberando o ICMP echo na zona, se desejado
Configuração de interface de rede
Interfaces de rede
   A configuração das interfaces de rede é muito simples. É importante manter a consistência nos nomes das zonas, das interfaces de rede e do endereçamento nos firewalls que farão parte do cluster. Reserve uma interface de rede, zona e endereçamento para o heartbeat. Uma vez tudo pronto, é hora de partir para o wizard do cluster em uma das máquinas:


Configuração de cluster
Criação do Cluster
Tipos de cluster
   Os modos de funcionamento do cluster no MFE são divididos em duas famílias : Load-Sharing HA (que é a opção homônima) e Failover HA (Peer-to-peer HA ou Primary/Standby HA). O modo Load-Sharing distribue a carga entre os membros, logo os dois membros estarão trabalhando em conjunto, no modo Failover um trabalha e o outro fica em standby. A diferença do Peer-To-Peer para o Primary/Standby é que no segundo você define quem será o principal e ele sempre assumirá a carga caso esteja funcional, no primeiro irá depender do tempo de takeover para saber quem será o principal em um momento de falha. Será utilizada o modo Failover HA - Primary/Standby HA.
   Uma observação importantíssima: O modo Load-Sharing HA é extremamente dependente da solução de camada dois de rede (switching) e exige um cuidado e trabalho bem maior na implantação, por experiência própria tenha cuidado (seja com este produto ou com qualquer outro) quando a solução promover este tipo de funcionalidade (Não é todo switch que possibilita a configuração de Unicast-mirrored ou MAC Multicast e eu acho "feia e ignorante" a solução de Unicast-flooded).
   Após selecionado o modo do Cluster, aparecerá a tela de configuração dos IPs do Cluster, bem como a necessidade de ser configurada a zona de heartbeat (onde é realizado os testes de disponibilidade entre os membros):

Endereços compartilhados do cluster
Zona para o heartbeat
Revisão da configuração do cluster
   Depois da criação do cluster no primeiro membro, é preparada a configuração dos membros adicionais na seção "Pair Members". É indicado o nome, endereço, o tempo de takeover e uma chave de registro. Após isto, é necessário iniciar o wizard do cluster no segundo membro e escolher a opção "join existing cluster" e utilizar as informações previamente configuradas no primeiro membro :

Tela da configuração do cluster
Adicionando um membro do cluster
Término da preparação para o segundo membro
Adicionando um membro no cluster
Parâmetros previamente configurados no primeiro membro do cluster
    Depois destas etapas é só conectar no endereço internal do cluster para a administração. Eis um  cluster de Mcafee Enterprise Firewall com dois membros no modo failover HA Primary/Standby pronto pra guerra

Conectando no cluster
Dashboard do cluster