quarta-feira, 9 de abril de 2008

Suportar Mais Endereços na Tabela arp:

Boa tarde pessoal.

Essa dica é para o pessoal que de vez em quando tem problemas na rede e, ao verificar os logs, vêem uma msg do tipo:

"neighbour table overflow"

Isso, geralmente indica que a sua tabela arp(padrão, se nao me engano é 512(redes disponíveis na tabela)) está estourada e, por isso, começa a dar erro, o server cai, algumas regras não sobem e algumas redes chegam a até mesmo não "subirem". Para resolver isso, basta passar 3 parâmetros para o kernel que ele irá suportar uma quantidade maior na sua tabela arp. Os parâmetros são:

echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 6144 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

Pode colcoar isso num script de inicialização (nos rc.1,2,etc dos debian-based ou no rc.local do slackware, por exemplo) que esse erro de table overflow não irá lhe incomodar novamente.

Uma outra dica para evitar erros de crc (redundância cíclica) nas placas de rede(to colocando isso porque se você ta com problema de tabela arp, MUITO PROVAVELMENTE tem também problemas de choques entre pacotes), pode ser desabilitando o autoneg da placa usando o ethtool. Esses erros de redundância chegam a fazer a placa "cair" por instantes e depois voltar, causando um caos geral na cabeça do administrador.

Para isso, vejamos:

Por exemplo, se você notar que sua placa de rede está constantemente caindo, uma forma de você verificar se ela esta dando "cabo de rede desconectado", é usando o mii-tool:

#mii-tool eth0

se aparecer algo do tipo:

eth0: negotiated 100baseTx-FD, link ok

Quer dizer que a placa ta no ar e o link esta ok(dã...)... Mas, vc pode reparar que ela esta negociada a 100Mb e, sua rede pode ser 10Mb o que PODE causar erro de crc dependendo do switch ou outras coisas... Por exemplo, alguns roteadores cisco(modelo 1600 por exemplo) geram muitos desses erros quando estão sendo negociados o tempo todo. Para evitar isso:

#ethtool -s eth0 autoneg off

ethtool é o nome do programas,
-s é uma das opçoes -> serve pra setar velocidade da placa também
autoneg é a opção da autonegociação
off é off mesmo, de desligar.

Daí, na proxima vez que você der um mii-tool, você verá:

eth0: 100 Mbit, full duplex, link ok.


[]s, Fiquem com Deus.

terça-feira, 8 de abril de 2008

Instalando Placa Wireless da Atheros

Aí galera, boa tarde. Primeiro post e ainda vai ser relacionado à dica do Adivair aí. Seguinte, o ndiswrapper é EXCELENTE, mas de acordo com o próprio Linus Torvalds, ele não é gpl, por isso, vou colocar aqui uma solução TÃO BOA quanto o ndiswrapper, no entanto, GPL:

A idéia é usar um pacotão de módulos com chipsets Atheros(mais usados em notebooks) de placas wireless postos dentro do pacote madwifi.

Bom, o pacote do madwifi você pode pegar pelo seu gerenciador apt mesmo ou entao "na uhna" pelo sourceforge:

http://sourceforge.net/project/downloading.php?groupname=madwifi&filename=madwifi-0.9.3.1.tar.gz&use_mirror=ufpr

*Não vou postar como compilar um arquivo tar.gz(configure, make, make install) porque não é esse o objeito.
OU ENTAO POR APT:

#apt-get update; apt-get install module-assistant madwifi-source madwifi-tools

Ele vai atualizar e instalar tudo...

Parte legal, MODULE-ASSISTANT:
O module-assistant, pra quem não sabe, é usado também para instalar modulos(drivers) da nvidia que usam recursos 3d, no entanto, vamos usa-lo para instalar a sua placa wireless.

Para invocar o module-assistant, você da o comando "m-a". E, para subir o módulo, tu simplesmente precisa dar os comandos:

#m-a update -> atualiza a base de dados do module-assistant para que ele pegue agora os modulos que estão no madwifi
#m-a prepare -> prepara o module-assistant para subir os modulos
#m-a a-i madwifi -> pega o pacote do madwifi e insere 'como se fosse um patch' no seu kernel.

Parabéns, você agora possui um kernel com suporte a basicamente todos os chipsets da atheros.

Para subir o módulo(No debian e no kurumim precisa subir na mão. No Ubuntu ele sobe sozinho a cada boot) você dá um modprobe normal:

#modprobe ath_pci

Agora tenta dar um iwconfig que você vai ver a placa wireless lá(deve estar como ath0 ou algo assim).

Enquanto eu escrevia isso aqui, fiquei pensando em como fazer isso em outras distros diferente das baseadas em Debian e percebí que AINDA não sei porque não sei como pegar o module-assistant de outra forma sem ser pelo apt.
Mas assim que descobrir eu posto aqui(ou então, se alguém encontrar ai, me avisa por favor).


Um abraço e fiquem com Deus.