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

Erro amavisd too many links lost connection


O problema:
A fila de mensagens do servidor de email (postfix, no meu caso) cresce, e as mensagens não são entregues. O comando mailq exibe erros parecidos com esse:
delivery temporarily suspended: lost connection with 127.0.0.1[127.0.0.1] while sending MAIL FROM
O log de erros de email (/var/log/mail.err) mostra as seguintes mensagens:
TROUBLE in process_request: Can't create directory /var/lib/amavis/tmp/amavis-20111221T160623-06971: Too many links at /usr/sbin/amavisd-new line 5081, <GEN28> line 4
A causa:
A mensagem 'Too many links' indica que o limite de subdiretórios do diretório /var/lib/amavis/tmp/ foi alcançado (em sistemas de arquivo ext3 esse limite é de aproximadamente 32.000 itens por diretorio). Assim, o antispam não consegue criar mais subdiretórios e deixa de entregar as mensagens.

Solução:
  1. Exclusão dos diretórios mais antigos que 1 dia e  com nome de  .spamassassin* que ficam no hd mesmo apos terem sido utilizados.
  2. Restart do serviço do amavis.
Comandos:
cd /var/lib/amavis/tmp
find -mtime +1 -name .spamassassin\* | xargs rm -r
/etc/init.d/amavis restart
Pode-se forçar o inicio da entrega das mensagens com o comando "postfix flush", ou aguardar que o próprio servidor recomece as tentativas de envio

Seções do Manual Linux

O manual online do Linux (que pode ser acessado através do comando man) tem seu conteúdo separado em categorias ou seções , conforme abaixo:

Obs: talvez nem todas as páginas de manual citadas na coluna de exemplos estejam presentes na sua máquina!

SeçãoNomeDescriçãoExemplos
1Comandos de UsuárioComandos disponíveis a todos os usuáriosls,bash,vim
2Chamadas de SistemaRotinas do Kernel. Normalmente utilizadas por programas, as páginas são de pouca utilidade para usuários comunschdir,chown
3Funções de BibliotecasContém a documentação para uso das bibliotecas do sistema. Normalmente é interessante apenas a programadoresalloc,getloadavg
4Arquivos EspeciaisDocumentação dos arquivos de dispositivos do diretório /devhda,sda,zero,radeon
5Formatos de ArquivosContém a descrição do formato de arquivos do sistemapasswd,shadow,group,fstab
6JogosJogos e comandos divertidosfortune,rafkill,0verkill
7Convenções e MiscelâniaDiversos assuntos, protocolos, etcggz,icmp,irda
8Administração e Comandos PrivilegiadosComandos que necessitam de privilégios especiais (root) para serem executados.iptables,fdisk,mkfs


Gerador de sources.list para Debian/Ubuntu

Dica rápida:
Está em dúvida sobre como criar seu arquivo source.list para o Debian? Acesse o site http://debgen.simplylinux.ch/, preencha alguns parâmetros e o site cria um sources.list para você. Você pode inclusive adicionar alguns repositórios adicionais (como o do navegador Google Chrome ou do gerenciador de Imagens Picasa, ambos do Google). Há também uma versão disponível para Ubuntu em http://repogen.simplylinux.ch/

Uma configuração mínima para um sistema Debian seria como a imagem abaixo (clique para ampliar):


Após selecionar todos os parâmetros desejados, basta clicar no botão "Generate sources.list". Selecione o texto que vai aparecer, recorte e cole dentro do seu /etc/apt/sources.list. Agora basta executar um "apt-get update" e está pronto pra utilizar.