![]() |
Diald
| Linux in Brazil Documentação original e de qualidade em bom português |
Destaques de hoje: |
Diald é a abreviação de Dial Daemon. O seu propósito é fazer de forma
transparente uma conexão remota permanente com a Internet através de
discagem por demanda, ou seja suprimir a necessidade de realizar
manualmente ou por intermédio de um aplicativo a conexão com a
Internet. Toda vez que uma conexão com a Internet for solicitada
através de algum aplicativo (browser, cliente de e-mail, etc.), ele
discará automaticamente, efetuará a conexão e quando você fechar o seu
aplicativo encerrará a conexão após um determinado tempo de
inatividade (que pode ser determinado dentro do arquivo de
configuração do programa).
Para funcionar o Diald cria um link em uma pseudo tty e estabelece uma
rota para a interface resultante. Esta interface é chamada de proxy.
Ele então fica monitorando a rede , esperando pacotes chegarem para o
proxy. Quando pacotes relevantes chegam ele inicia o processo para
estabelecer uma conexão física com o link através de uma interface
SLIP ou PPP, e se bem sucedido, ele transfere o tráfego do proxy para
o link e então fica monitorando o link para poder determinar quando
não há mais tráfego e assim sendo finalizar a conexão.
Os critérios para iniciar ou encerrar uma conexão são configuráveis e
são baseados no tipo de tráfego passivo sobre o link.
Basicamente existem 02 arquivos a serem editados para definirem as
configurações do Diald o diald.conf e o diald.defs. Apesar de não
serem arquivos muito simples de serem configurados, os exemplos dos
mesmos contidos no Diald-HOWTO servem para a maioria dos casos.
O diald pode ser usado por qualquer um que deseje efetuar uma conexão
com a Internet ou qualquer site remoto, sem a necessidade de efetuar
manualmente a conexão.
Seja por intermédio de um script de chat e pppd ou de algum aplicativo
como minicom, kppp ou X-ISP. Mas o que realmente é interessante é a
possibilidade de aplicarmos ele juntamente com um proxy-cache de HTTP
como o Squid para múltiplos acessos à Internet dentro de uma rede
local. Eu citei o Squid porque já testei o funcionamento dos dois em
conjunto e achei satisfatório , já que o Diald por si só não tem cache
de páginas, mas o Diald funciona perfeitamente sem o Squid , neste
caso porém para múltiplas máquinas acessarem a Internet usando o mesmo
link é necessário criar uma regra de
ip-forwarding , que será abordada posteriormente.
a) Primeiramente o desafio :) ;
b) Não é necessário ficar tentando ligar manualmente diversas vezes
consecutivas se o seu provedor estiver com as linhas ocupadas ;
c) Não é necessário restabelecer manualmente a conexão com o seu
provedor se alinha cair ; ( Imagine aquele download do Staroffice
que você deixou para ser feito de madrugada pelo wget enquanto
você dormia :) ;
d) Você não corre o risco de esquecer a conexão ativa e gastar rios
de dinheiro com conta telefônica ;
e) Várias máquinas podem usar a Internet simultaneamente usando uma
única linha telefônica ( é claro que isto também é possível sem o
diald, mas pouco prático para quem não usa um serviço de link
dedicado ) ;
O fato é que vantagens existem. No entanto também existem problemas e
normalmente maneiras de contorná-los. O problemas mais frequentes que
surgem após a instalação serão abordados mais à frente.
Eu posso citar duas maneiras de configurar o Diald :
a) Instalando o Diald e criando um script com chat e pppd (como está
bem documentado no Diald-HOWTO ) ;
b) Instalado o Diald e o Diald-Config e criando um script através do
utilitário netcfg (para distribuições Red Hat style).
Caso você já tenha um script com o chat e pppd (do tipo ppp-on
exemplificado no PPP-HOWTO) funcionando, a primeira solução pode
ser a mais simples.
Neste caso após instalar o diald :
Crie uma entrada no /etc/rc.d/rc.local :
Não vou me ater muito a este método de configuração, já que ele foi
bem abordado no Diald-HOWTO. Se tiver problemas com o seu script dê
uma olhada no capítulo 15 do PPP-HOWTO e em alguns dos links que estão
no final deste artigo.
A configuração dos arquivos /etc/diald.conf e diald.defs também podem
ser retiradas do Diald-HOWTO .
Se você estiver usando alguma distribuição Red Hat Style , deve achar
o segundo método de configuração bem mais amigável, já que os scripts
são criados pela interface gráfica do netcfg e o arquivo de
configuração do diald é substituído por outro bem mais simples de se
compreender.
Estarei abordando este método de configuração passo a passo mais à
frente.
Como já havia dito antes, umas das implementações mais interessantes
no diald é a capacidade de várias máquinas em uma rede local poderem
se conectar à Internet através do diald.
Basicamente posso citar 02 maneiras de se usar o diald para múltiplos
acessos à Internet . A primeira é através de um proxy de HTTP , sob o
qual já me referi anteriormente e a segunda é através de um regra de
ip-forwarding .
Para se conectar pelo proxy , configure o seu Browser para acessar a
Internet via proxy , defina o endereço do Proxy e a porta .
Para acesso por forwarding de ip, você pode usar uma regra simples
como : /sbin/ipfwadm -F -a m -S [sua-rede]/24 -D 0.0.0.0/0 . E então,
caso sua máquinas sejam MS-Windows você pode definir no ambiente de
rede o servidor Linux como gateway e colocar na aba DNS o servidor de
nomes do seu provedor, caso as máquinas também sejam Linux, defina-o
como gateway para as outras e insira o DNS do seu provedor no arquivo
/etc/resolv.conf.
Caso algum de seus serviços não funcione com esta regra ou seja de seu
interesse implementar uma regra de segurança diferente consulte o
Firewall-HOWTO e o ip-chains-HOWTO (cernes da série 2.2) para
maiores detalhes.
Segundo o que consta na Diald Home Page, podem haver múltiplas cópias
do diald para conexão à múltiplos sites ou até mesmo ele pode
trabalhar com conexões de entrada (receber a ligação e se conectar).
Portanto as aplicações do diald podem se expandir um pouco além da
simples conexão à Internet.
A maioria dos problemas que podem ser encontrados na configuração do
Diald estão relatados no FAQ :
http://www.loonie.net/~eschenk/diald/diald-faq.html
Mas o que normalmente pode dar errado após a Instalação é o Diald
discar intermitentemente ou não desconectar, portanto o texto abaixo é
uma tradução do FAQ referente à estas questões.
by Eric Schenk, eschenk@rogers.wave.ca and Gordon Soukoreff.
6.1 Minha conexão continua se estabelecendo sem razão aparente.
Deve haver alguma fonte de pacotes que está forçando o link a se
manter conectado. Para resolver o problema você deve primeiramente
identificar esta fonte. Você pode monitorar os pacotes indo para o
link rodando o diald em " filter match debugging mode " (opção "debug
31'') . Você também pode usar o tcpdump para monitorar os pacotes que
estão indo para o link. Você também pode pedir ao diald para listar o
conteúdo atual da fila de conexão enviando SIGUSR2.
Uma vez que você tenha identificado a fonte dos pacotes que estão
causando a iniciação do link, você pode executar algumas ações para
prevenir o problema. Isto significará parar os pacotes desta fonte, ou
mudar a configuração do diald para ignorar estes pacotes.
A fonte mais comum de pacotes que podem forçar o link a se iniciar
são os daemon de roteamento ``routed'' e ``gated'', e o daemon do
servidor de nomes ``named''. (Note que o arquivo default
/etc/diald.conf está escrito para ignorar conexões entre named
servers, e para ignorar tráfego vindo de routed e gated. A menos que
você tenha mudado o /etc/diald.conf é improvável que algum destes
programas seja a fonte dos pacotes que estão mantendo o seu link
aberto.)
Se você está tendo problemas com o named ocasionado a discagem, o mais
fácil a
se fazer é parar de usar o named. Se você absolutamente precisa usar
named você precisa ler a questão 6.3 .
6.2 Uma vez que minha conexão se estabeleceu ela não se encerra mais .
A resposta para esta questão é essencialmente a mesma da questão
anterior. Deve haver alguma fonte de pacotes que está mantendo o link
aberto . Apesar disto, pode ser que a fonte dos pacotes que estão
mantendo o link aberto estejam no computador remoto. Proceda como
descrito na questão anterior. Note que se você precisar usar o tcpdump
para monitorar os pacotes e se você estiver usando ppp, então você
precisa pedir ao tcpdump para monitorar o link ppp e não o link proxy
slip , de outra maneira você somente verá os pacotes que passam
através do sistema antes do diald abrir o link.
6.3 Estou tendo problemas para fazer o diald ativar-se para nameserver
lookups.
Se o seu site está rodando named e se você usa o arquivo
/etc/diald.conf , então você irá encontrar nele que o diald não levanta
a conexão para resolver nomes que o seu servidor de nomes não
reconhece localmente. A linha relevante no seu arquivo /etc/diald.conf
é a seguinte:
accept udp 0 udp.dest=udp.domain,udp.source=udp.domain
Esta linha diz para ignorar conversas entre dois name servers, e
efetivamente prevenir que o seu name server ative o link .
Várias soluções já foram propostas para este problema. Consulte o "
linux-diald archives " para conseguir a discussão completa. Eu
proporei apenas duas soluções aqui.
A primeira é deixar o /etc/diald.conf file de fora, e especificar um
nameserver alternativo no seu /etc/resolv.conf file. Note que você
deverá fazer isto em todas as máquinas da sua rede local, e que o
nameserver alternativo precisa ser externo à sua rede. (Aviso. Eu tive
relatos que isto não funciona para todos os sites. Eu não sei porque.
Isto não pareceu acontecer comigo, mas eu somente rodei o named para
testar isto. Eu normalmente não rodo o named .)
A segunda é retirar o comentário da linha que desabilita a conversa de
named para named . Uma vez que você tenha feito isso você irá
verificar que o diald irá discar em intervalos semi-aleatórios . Isto
é, sempre que o named decidir que precisa atualizar os dados no seu
cache. Pode ser que você consiga viver com isto.
Se alguém puder vir com uma solução para este problema que trabalhe em
todos os casos, junto com uma explicação documentada de como isto
trabalha , eu gostaria de vê-la.
Existe também juntamente com o diald-config, um utilitário de ambiente
gráfico chamado dctrl, que monitora as conexões do diald e é útil para
encontrar problemas referentes à conexão ou desconexão, mas o que eu
notei é que na maioria dos casos que presenciei, o problema estava no
DNS ( udp port 53 ) . Houveram , também dois casos em que inicialmente
o diald tinha problemas para se desconectar, demorando muito além do
prazo de timeout, mas ele misteriosamente parava de acontecer após um
ou dois dias, antes que eu pudesse encontrar onde estava o problema,
curiosamente nestas duas máquinas ele estava rodando com o Squid.
Salvo estas exceções não constatei maiores problemas posteriores à
instalação.
http://www.loonie.net/~eschenk/diald.html
http://metalab.unc.edu/linux/HOWTO/mini/Diald.html
http://www.ftrend.com.my/linux/diald/RH5-diald.html
http://www.ftrend.com.my/linux/Linux-PPP.html
André A. C. Santos
millennium@millennium.etc.br
Millennium Consultoria e Informática Ltda.
1) O que é Diald
2) Funcionamento do Diald.
3) Quem pode e deve usar o Diald.
4) Qual a vantagem do Diald para quem já tem um conexão ppp
funcionado.
5) Como Instalar, se você já tiver uma interface ppp funcionado.
# iniciando o diald
echo "Iniciando Diald "
/usr/sbin/diald
6) Linux+Diald como servidor de modems.
7) Problemas posteriores `a Instalação.
The Linux Diald FAQ
Links para páginas contendo material sobre o diald: