Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (Diald )

Texto contribuído por:
André A. C. Santos
millennium@millennium.etc.br
Millennium Consultoria e Informática Ltda.

1) O que é Diald

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).

2) Funcionamento do Diald.

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.

3) Quem pode e deve usar o Diald.

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.

4) Qual a vantagem do Diald para quem já tem um conexão ppp funcionado.

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.

5) Como Instalar, se você já tiver uma interface ppp funcionado.

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 :

       
   # iniciando o diald
   echo "Iniciando Diald "
   /usr/sbin/diald 

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.

6) Linux+Diald como servidor de modems.

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.

7) Problemas posteriores `a Instalação.

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.

The Linux Diald FAQ

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.

Links para páginas contendo material sobre o diald:

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


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.