iperf - medindo a performance da sua rede


Introdução:
O iperf é um comando que permite mensurar de forma simples e direta a taxa de transmissão da sua rede.
São necessários dois computadores, um operando em modo servidor e outro em modo cliente.

Instalação:
O programa está disponível na forma de pacotes para as distribuições Debian e Ubuntu (e possivelmente para as distros da família Red Hat, como Cent OS e Fedora), bastando utilizar o comando
apt-get install iperf
Sintaxe:
iperf [opções]

Resumo das principais opções (para todas as outras, veja a página de manual - man iperf)

-p define a porta de trabalho ao invés da porta padrão (5001).

-u Envia pacotes UDP ao invés de TCP (ambas as máquinas precisam trabalhar com o mesmo tipo de pacotes)

-f X
Define a unidade a ser exibida, onde pode ser:
k: kbits
m: megabits
K: KBytes
M: MBytes

-m Exibe o MTU do segmento

-C permite que cliente e servidor sejam de versões diferentes (modo de compatibilidade)

Opções específicas do modo cliente
-c Executa em modo cliente

Opções específicas do modo servidor
-s Executa em modo servidor

Uso:
Para utilizar, basta executar o programa no modo servidor em uma máquina:

e na outra em modo cliente (informando o endereço IP da máquina servidora):

O teste dura aproximadamente 10 segundos. Durante esse tempo, o programa tenta enviar a maior quantidade de bytes possíveis, e exibe um relatório como o da imagem anterior em seguida (em ambas as máquinas). No caso, foram transferidos 207 MB, e a taxa de transferência calculada foi de 174 MBits/s.

Pacotes para Desktop: remmina

Remmina (http://remmina.sf.net) é um gerenciador de conexões remotas para desktop. Ele suporta os principais protocolos de conexões remotas:

  • VNC (modo cliente e servidor)
  • RDP (Remote Desktop, utilizado em Servidores Windows)
  • SSH 
  • NX (No Machine - http://nomachine.com )
  • SFTP (transferencia de arquivos segura, parecida com o SCP do protocolo SSH)
  • XDMCP (Terminal X Remoto)
O Remmina funciona através de um sistema de Plugins, facilitando a inclusão de novos protocolos. O software está disponível na forma de pacotes para as principais distribuições (Debian, Ubuntu, Fedora, etc). 

Para o Debian Wheezy, você provavelmente vai querer instalar os seguintes pacotes:
  • remmina: pacote principal
  • remmina-plugin-gnome: plugin de integração com Gnome (permite salvasr as senhas no sistema de Gerenciamento de Senhas do Gnome)
  • remmina-plugin-vnc: plugin para o protocolo VNC
  • remmina-plugin-rdp: plugin para o protocolo Remote Desktop
  • remmina-plugin-xdmcp: plugin para o protocolo XDMCP
Algumas screenshots da interface do programa:
Janela Principal

Opções de conexão do protocolo RDP

Conectado a um servidor Windows 2003


Comandos da família APT: apt-file

O comando apt-file permite pesquisar qual pacote (mesmo entre os ainda não instalados) possui determinado arquivo. Por exemplo, suponha que ao tentar executar determinada aplicação baixada da Internet você receba o seguinte erro:
error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory
Isso significa que a aplicação depende da biblioteca libGL.so.1, mas não conseguiu encontrar essa biblioteca em seu sistema.

Obs: Se a aplicação tivesse sido instalada via sistema de gerenciamento de pacotes (apt-get / aptitude), o erro não ocorreria, pois o sistema de gerenciamento de dependências baixaria todos os pacotes necessários para a instalação. Para esse exemplo, considere que está sendo instalado um software externo à distribuição. No meu caso foi um arquivo .tar.gz com o Opera Browser.

Continuando, basta instalar o pacote com o comando:
apt-get install apt-file
Em seguida é necessário atualizar as bases de dados do apt-file, com o comando:
apt-file update
E está pronto! Agora podemos realizar as pesquisas, como por exemplo:
Qual pacote possui o schema LDAP do samba (samba.schema) ?
apt-file search samba.schema
Resultado:
debian-edu-config: /etc/ldap/schema/samba.schema
samba: /usr/share/doc/samba/examples/LDAP/samba.schema.at.IBM-DS.gz
samba: /usr/share/doc/samba/examples/LDAP/samba.schema.gz
samba: /usr/share/doc/samba/examples/LDAP/samba.schema.oc.IBM-DS
samba-doc: /usr/share/doc/samba-doc/examples/LDAP/samba.schema.at.IBM-DS.gz
samba-doc: /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz
samba-doc: /usr/share/doc/samba-doc/examples/LDAP/samba.schema.oc.IBM-DS
Ou seja: os pacotes debian-edu-config, samba e samba-doc possuem um arquivo com o termo pesquisado (samba.schema) no nome.


OpenLDAP: Program version 5.1 doesn't match environment version 4.8

O problema:
Ao atualizar um servidor Debian Squeeze (6.0) para a nova versão stable Wheezy (7.0), tudo ocorreu normalmente (como de costume) exceto pelo serviço OpenLDAP. O serviço simplesmente não subia, e não exibia nenhum erro. Tentei executar um slapcat para exportar a base e subí-la novamente. O comando slapcat reportava o seguinte erro (posteriormente vi que o erro também aparece no arquivo /var/log/syslog):
Program version 5.1 doesn't match environment version 4.8
Pesquisando na web, cheguei a essa página do próprio projeto Debian, que sugere a seguinte solução:
  1. Instalar o pacote db4.8-util
  2. Trocar para o diretório onde ficam as bases de dados do LDAP.
  3. Executar alguns comandos para atualizar a versão da base de dados.
Comandos:
Obs: Recomendo que seja feito antes um backup de todo o diretório /var/lib/ldap para outro diretório, por segurança.
apt-get install db4.8-util
cd /var/lib/ldap
db4.8_checkpoint -1
db4.8_recover
Após executar os comandos, verifique (ls -l) se todos os arquivos do diretório pertencem ao usuário que executa o servidor slapd (openldap, no Debian). Caso algum arquivo não pertença a esse usuário, corrija as permissões com o seguinte comando (ainda no diretório /var/lib/ldap):
chown openldap:openldap *
Após isso, basta iniciar o serviço:
/etc/init.d/slapd start