24 fevereiro, 2007
NTP e VMware
Tenho o Debian Sarge instalado numa máquina VMware (debian-31r0a-i386-kernel2.6-frog.vmx, nem sempre está disponível, pois está a correr no meu desktop principal - que por motivos óbvios de economia de energia).
Constata-se que a gestão que o VMware faz não tem precisão do relógio. Em resumo o relógio atrasa-se incrivelmente, dependendo igualmente da carga do processador. Como tenho um AMD (AMD Athlon(tm) 64 Processor 3500+, refira-se a frog.../phpsysinfo/) com "Cool & Quiet". este atraso torna-se ainda mais notório.
Desliguei-me das razões para isto acontecer. Só quis remediar a situação. Há várias soluções para resolver este problema, uma das quais à bruta: chamar o programa "ntpdate" de 5 em 5 minutos. Há ferramentas VMware que permitem sincronizar o relógio do guest com o host, mas achei mais interessante navegar nas potencialidades do NTP. Deparei-me com uma instalação fácil do pacote ntpdate, mas o ntp-server, verdadeiramente, não me serviu de nada. Não percebi porquê (embora a instalação também fosse fácil): provavelmente o relógio é tão pouco fiável que o NTP desiste de se tentar sincronizar. Mesmo o 'ntp -q' não funciona; apenas o cliente 'ntpdate' ofereceu uma forma fácil.
O protocolo NTP é realmente potente, mas algo intrincado de se perceber cabalmente. Mais info em frog...doc/.
Analisemos então um caso negativo. cock é a máquina virtual que uso para experiências.
Descasquemos o comando:
A queixa de que não se encontra nenhum servidor foi devido ao facto do servidor de NTP não ter ainda sincronizado o tempo devidamente: porque tinha sido re-iniciado.
Após cerca de um minuto a mensagem passou a ser diferente.
Vejamos:
Para verificar se um dado servidor está disponível, também pode usar um serviço de tentativa de ligação ao porto 123:
nmap -sU -p123 www.clock.org
...embora o método preferencial seja mesmo
ntpdate www.clock.org ; echo $?
caso o resultado do último comando seja diferente de zero, é porque o NTP ao servidor (neste caso www.clock.org) falhou.
Constata-se que a gestão que o VMware faz não tem precisão do relógio. Em resumo o relógio atrasa-se incrivelmente, dependendo igualmente da carga do processador. Como tenho um AMD (AMD Athlon(tm) 64 Processor 3500+, refira-se a frog.../phpsysinfo/) com "Cool & Quiet". este atraso torna-se ainda mais notório.
Desliguei-me das razões para isto acontecer. Só quis remediar a situação. Há várias soluções para resolver este problema, uma das quais à bruta: chamar o programa "ntpdate" de 5 em 5 minutos. Há ferramentas VMware que permitem sincronizar o relógio do guest com o host, mas achei mais interessante navegar nas potencialidades do NTP. Deparei-me com uma instalação fácil do pacote ntpdate, mas o ntp-server, verdadeiramente, não me serviu de nada. Não percebi porquê (embora a instalação também fosse fácil): provavelmente o relógio é tão pouco fiável que o NTP desiste de se tentar sincronizar. Mesmo o 'ntp -q' não funciona; apenas o cliente 'ntpdate' ofereceu uma forma fácil.
O protocolo NTP é realmente potente, mas algo intrincado de se perceber cabalmente. Mais info em frog...doc/.
Analisemos então um caso negativo. cock é a máquina virtual que uso para experiências.
cock:~# ntpdate -q -b 10.0.0.1 | sed 's/.* \([0-9-]*\).* sec/\1/'(Nota: para usar o ntpdate, instale o pacote Debian com o mesmo nome: 'apt-get install ntpdate)
24 Feb 23:11:04 ntpdate[2420]: no server suitable for synchronization found
server 10.0.0.1, stratum 16, offset 325.786359, delay 0.02643
Descasquemos o comando:
- '-q' : query only, do not set the clock; apenas inquirir o servidor que supostamente está a correr o ntpd (10.0.0.1)
- '-b': use-se directamente settimeofday
A queixa de que não se encontra nenhum servidor foi devido ao facto do servidor de NTP não ter ainda sincronizado o tempo devidamente: porque tinha sido re-iniciado.
Após cerca de um minuto a mensagem passou a ser diferente.
Vejamos:
cock:~# while :; do ./ntpdate -b 10.0.0.1 | grep sec$ | sed 's/.* \([0-9.-]*\) sec$/\1/' ; sleep 5 ; doneÉ impressionante como em cada 5 segundos há quase 5 segundos de atraso.
541.791472
3.210474
5.017780
...
Para verificar se um dado servidor está disponível, também pode usar um serviço de tentativa de ligação ao porto 123:
nmap -sU -p123 www.clock.org
...embora o método preferencial seja mesmo
ntpdate www.clock.org ; echo $?
caso o resultado do último comando seja diferente de zero, é porque o NTP ao servidor (neste caso www.clock.org) falhou.
18 fevereiro, 2007
Usando túneis com ssh
Considere a seguinte linha de comando que corri no meu router Freesco:
Seria interessante apetrechar o servidor POP3 com a APOP: o que significaria que nesse caso podia usar a autenticação no POP3 sem plain-text passwords. Segurança à parte, os túneis (também denominados port forwarding) vêm no próprio pacote de ssh: no próprio cliente.
A opção '-R' (em vez de '-L') providencia o serviço inverso.
- ssh -v -v -v -v -g -l user_at20 -L 8110:10.0.0.5:110 10.0.0.20 cat -
- telnet your.host.com 8110
Seria interessante apetrechar o servidor POP3 com a APOP: o que significaria que nesse caso podia usar a autenticação no POP3 sem plain-text passwords. Segurança à parte, os túneis (também denominados port forwarding) vêm no próprio pacote de ssh: no próprio cliente.
A opção '-R' (em vez de '-L') providencia o serviço inverso.
12 fevereiro, 2007
Usando o VMware-server

Primeira pergunta: é grátis? Sim.
Segunda pergunta: para que serve? Basicamente tem as mesmas funcionalidades que o VM-player (que permite correr máquinas virtuais), acrescidas de uma facilidade maior de execução. Ambos funcionam perfeitamente no Windows XP. Ou seja: no VM-player é preciso logar-se como um utilizador primeiro; com o VM-server não - permite também inicializar uma ou várias máquinas virtuais no arranque do sistema.
A aplicação (appliance, na terminologia oficial VMware) mais genial que experimentei foi a
Obviamente que tendo também um servidor de DHCP (dhcpd corre numa máquina dedicada) a configuração de rede foi automática (o dhclient da dita máquina correu sem qualquer configuração adicional). Esta máquina virtual dispõe por defeito de 256 Mb de RAM, sendo que aproximadamente 20 Mb estão livres. Além disso uma partição isolada pequena (de ca.200 Mb, quando comparada com a partição SCSI de 3.8 Gb - dos quais apenas ca.500 Mb são usados) providencia o swap.
A beleza do VMware é também a gestão das partições que é francamente inteligente: embora haja um limite hard a respeitar, não é por se alocar um máximo de 3.8 Gb que significa que o ficheiro do file-system virtual no host ocupe esse tamanho. Algo que jamais vi possível no UML convencional. Embora não haja COW (pelo menos que conheça) como no UML, a gestão do espaço virtual pode ser também automaticamente dividido, de raíz, em ficheiros com o máximo de 2 Gb (para por exemplo, se fazerem full-backups de forma prática).
Um dos poucos passos que tive que executar à mão foi:
- editar o nome da máquina (vi /etc/hostname ; /etc/init.d/hostname.sh start)
- instalar o ssh, que por defeito não foi instalado (não sei porquê; mas bastou dar o comando "apt-get install ssh")
- o gestor de base de dados instalado foi o PostgreSQL; como prefiro o MySQL, fiz dois passos: apaguei a package postgresql-contrib e postgresql, e instalei a package do mysql-server-4.1.
VMware e Debian, para já, são duas experiências que juntas forneceriam muitas dicas a quem faz distribuições Linux. Funciona tudo (ou quase tudo) à primeira, com simplicidade e eficiência.
Linux geeks, experimentem.
