redes
Alterando o endereço MAC de uma interface no Linux
by kalib on Dec.15, 2008, under Linux, redes, segurança, software livre
Nesta curta dica irei apresentar uma dica simples e rápida de como alterar o endereço MAC de uma interface de rede no Linux.
MAC = Media Access Control
Assim como nós, seres humanos, possuímos um número de registro físico como o RG, as interfaces de dispositivos de rede também possuem um registro físico que lhes é dedicado já na hora de sua fabricação. Este endereço físico se chama MAC e é formado por 48 bits em forma de hexadecimal.
Este protocolo é responsável pelo controle de acesso à rede Ethernet. Um exemplo de endereço MAC seria:
00:A0:D1:58:DF:BC
No caso, não existem duas interfaces de rede no mundo com o mesmo endereço MAC. Este valor é único AO SAIR DE FÁBRICA. Mas, como nem tudo na vida são rosas…
Existem alguns casos nos quais precisamos identificar, ou mesmo alterar, endereços MAC. Um exemplo de caso em que se é preciso alterar o endereço MAC seria o seguinte:
Supondo que eu seja um técnico e estou querendo dar suporte à máquina de um amigo. Este trás sua máquina até minha casa. Minha internet recebe um ip por dhcp de forma amarrada ao meu endereço MAC. Neste caso, para ter acesso à internet pela máquina deste colega para atualizações, eu precisaria momentaneamente alterar o endereço MAC de sua interface de rede.
No Linux podemos descobrir qual o endereço MAC de uma interface com o comando ifconfig [interface], como no exemplo a seguir:
# ifconfig eth0
Me será retornado um conjunto de informações sobre a interface, incluindo o endereço MAC da mesma, como a seguir:
eth0 Link encap:Ethernet HWaddr 00:A0:D1:58:DF:BC inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::2a0:d1ff:fe58:dfbc/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:54461 errors:0 dropped:0 overruns:0 frame:0 TX packets:46066 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:68669660 (65.4 Mb) TX bytes:5002980 (4.7 Mb) Interrupt:20 Base address:0×4800
O procedimento para se mudar este endereço MAC é:
1- Desabilitar a interface:
# ifconfig eth0 down
2- Alterar o MAC:
# ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
3- Subir novamente a interface:
# ifconfig eth0 up
Simples não?!
Feito isto, pode conferir a alteração com o comando ifconfig eth0 novamente. ;]
Abraços pessoal…

Parte II – Limpando memória cache de forma automatizada
by kalib on Jul.14, 2008, under Linux, redes, software livre
Muitos me pediram por aqui ou mesmo por email para explicar como seria a implementação desta técnica de forma automatizada.
Bom, utilizo isto para o servidor que citei no artigo anterior, utilizado pelos nossos amigos desenvolvedores Java. ;] Nada pessoal eim?!
Aqui precisaremos apenas de um mínimo de intimidade com shell script e um pouco de conhecimento sobre o agendamento de tarefas no linux através do cron.
Mãos a obra…
A missão: Uma vez que nossos amigos não conseguem trabalhar de forma harmônica com a alocação e desalocação de memória em nossos servidores, iremos agendar a limpeza de cache para todos os dias no começo do expediente (8:00) e após o almoço. Lembrando que este é apenas um exemplo, mas você pode adaptar os horários de acordo com sua real necessidade.
Soldados Disponíveis: Shell Script e Cron
Plano: Um pequeno e simples script em shell será executado nos dias e horários informados anteriormente de forma a fazer uma limpeza no cache.
Execução:
Primeiro criaremos o script que fará a ação de limpeza do cache. Para isso abra o editor de textos de sua preferência. Particularmente prefiro o vim, mas este pode ser substituido por qualquer outro.
No seu corpo insira o seguinte conteúdo:
#!/bin/bash
#limpando cache#o seguinte comando é o responsável pela limpeza
echo 3 > /proc/sys/vm/drop_caches
Feito isto, salve o arquivo com o nome de limpacache.sh
Sim, isto é tudo o que o seu script precisa. Com o script criado, você deverá agora lhe dar condições de execução. Utilize o seguinte comando:
# chmod a+x limpacache.sh
Agora que ele está pronto e com permissão de execução, iremos agendar a execução do mesmo. No terminal digite:
# crontab -e
Isto irá abrir um arquivo no qual você deverá fazer o agendamento de sua tarefa. No mesmo insira o seguinte conteúdo:
# mm HH DD MM DS tarefa
00 08 * * * /usr/bin/scripts/limpacache.sh
00 14 * * * /usr/bin/scripts/limpacache.sh
Ps: O caminho /etc/scripts/ precisa ser configurado de acordo com o caminho utilizado por você. ;]
Pronto. Pode salvar e encerrar este aquivo.
Traduzindo o comando as linhas do cron que utilizamos:
mm: minutos
HH: horas
DD: dia
MM: mês
DS: dia da semana
/usr/bin/scripts/limpacache.sh: tarefa a ser realizada
Feito isto, o plano está concretizado. Seu script será executado todos os dias nestes dois horários.
Sinta-se livre agora para customizar os dias e horários da maneira que for mais conveniente para você.
Abraços
Limpando o cache de forma rápida
by kalib on Jul.09, 2008, under Linux, redes, software livre
Aqueles que são administradores de redes e servidores já devem ter passado por problemas parecidos com este.
Nesta dica irei apresentar um comando simples para limpar sua memória em cache.
Resolvi escrever sobre isto por ter visto duas vezes na mesma semana problemas relacionados a isso. Um foi aqui mesmo onde trabalho, onde estávamos percebendo que o consumo de memória em um dos servidores estava muito alto, porém com pouca atividade no mesmo, no qual percebi que nada mais era do que muita memória alocada em cache sem necessidade no momento. Desenvolvedores java…vai entender.. hauhauha (brincadeira.. :p).
Outro caso foi uma dúvida que surgiu, bem parecida, em um fórum do qual faço parte, onde um rapaz estava passando pelo mesmo problema no servidor dele… Com consumo exagerado de memória. Ele até colou o resultado do top no qual podíamos ver claramente que não haviam processos consumindo tudo aquilo de memória, e mais uma vez pudemos ver que o grande vilão era o cache, o que lhe passava essa impressão de memória totalmente consumida.
O comando para se limpar este chache é o seguinte:
# echo 3 > /proc/sys/vm/drop_caches
Exemplo:
Aqui vai uma saída do meu top antes de rodar o comando. ( Reparem no consumo de memória armazenada em Cache na última linha!)
top – 09:40:03 up 1:42, 1 user, load average: 0.06, 0.20, 0.20
Tasks: 83 total, 2 running, 80 sleeping, 0 stopped, 1 zombie
Cpu(s): 4.3%us, 0.5%sy, 0.2%ni, 95.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1944240k total, 898916k used, 245324k free, 51176k buffers
Swap: 996020k total, 0k used, 996020k free, 969000k cached
Repare agora o resultado obtido pelo top depois de executar o comando para limpar o cache:
top – 09:45:03 up 1:47, 1 user, load average: 0.32, 0.16, 0.17
Tasks: 85 total, 3 running, 81 sleeping, 0 stopped, 1 zombie
Cpu(s): 11.2%us, 1.5%sy, 0.0%ni, 63.4%id, 23.9%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1944240k total, 329412k used, 1614828k free, 768k buffers
Swap: 996020k total, 0k used, 996020k free, 69088k cached
A memória armazenada em cache caiu de ~969mb para ~69mb. ;]
Bingo!







