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

Linux in Brazil (PPP por demanda )

Discagem sob Demanda utilizando PPPD

Desenvolvido por: Jose Roberto Kerne - jrkerne1@rno.matrix.com.br
Revisado em: 18 de agosto de 2000

Este trabalho foi especialmente desenvolvido para empresas de pequeno porte, usuários com uma pequena rede, enfim, todos aqueles que possuem acesso à Internet utilizando para isto um acesso discado. Na maioria dos casos, (como o meu) não há a necessidade de um link dedicado para acesso a internet, pois os custos com aquisição de um roteador e a mensalidade/inscrição do link são considerados relativamente altos para utilização de correio-eletrônico e navegação Web durante horários restritos. Uma alternativa para resolver esta questão é a utilização de acesso a internet por meio compartilhado, onde somente uma máquina se conecta a internet utilizando discagem sob demanda, dando acesso aos demais terminais da rede, podendo-se usufruir assim de todas as vantagens de proxy, firewall, correio interno, e tornando possível a implementação de uma Intranet com baixo custo.

Uma alternativa interessante, e que poucos tem conhecimento, é que pode-se utilizar uma interface pppX em modo "demand" para tornar os recursos acima disponíveis. (Descobri isso através de um amigo na lista linux-br, recebi alguns fontes, adaptei as minhas necessidades e veohlah!!! O squid já estava no ar e daí em diante foi mais fácil). Aproveito para agradecer ao amigo Fabio Tavares Vieira, que me enviou os fontes para que eu pudesse realizar esta maravilha:

[ Para o passo-a-passo abaixo, certifique-se que você está logado como root. ]

Pacotes necessários:

É necessário ter o pacote ppp instalado, para verificar a existência deste pacote, basta digitar o comando:

[root@servidor /]$ rpm -q ppp

Se o pacote estiver instalado a resposta sera a seguinte: ppp-2.3.11-3cl (minha versao do ppp, disponivel no CL5.0)

Caso contrário, pegue o CD de sua distribuição e instale o pacote ppp:

rpm -ivh /mnt/cdrom//RPMS/ppp-.rpm

O próximo passo é configurar a interface ppp (considerarei como ppp0). Entre no linuxconf, Ambiente de Rede. Em "Tarefas do Servidor" selecione "PPP/SLIP/PLIP".

* Adicione uma nova interface PPP.

* Selecione a opção [ Personalizar ]

* Preenchar os campos indicados com o nome da conexão (somente identificação), velocidade da linha, porta do modem, string de inicialização do modem, número do seu provedor.

* Na área "Chat" você deverá preencher o script de conexão ppp, siga os passos abaixo:

Primeiro Espere: "ogin:" (sem aspas)

Primeiro Envie: (sem os sinais de <>)

Segundo Espere: "ord:" (sem aspas)

Segundo Envie: (sem os sinais de <>).

* Na área "Rede", preecha como mostrado abaixo:

[ ] Ativar interface na inicialização
[ ] Defina a rota padrão
[X] Restabelecer conexão quando falhar

* Na área PAP, informe seu login e sua senha.

login: seu_login
password: sua_senha

* Salve suas configurações, e saia do linuxconf.

* Inclua a seguinte linha ao arquivo /etc/resolv.conf

nameserver ip_do_seu_provedor

* Altere o arquivo /etc/ppp/options de acordo com o mostrado abaixo:

lock
pap-timeout 200
noipdefault
defaultroute
modem
usepeerdns
user 
200.0.0.1:200.0.0.2
ipcp-accept-local
ipcp-accept-remote
lcp-echo-interval 0
crtscts
holdoff 10
maxfail 3
demand
idle 300
passive
noauth
debug
asyncmap 0
persist

Descricao das principais opcoes:

* pap-timeout 200 -> aumenta o tempo de verificação de usuario e senha do ppp para que o modem não desconecte antes de terminar a negociação (o som de conexão). Encontrei este problema quando configurei isto pela primeira vez

* noipdefault -> não estabelece um IP padrão para a interface ppp0

* defaultroute -> define como rota padrão a interface ppp0 (troca de eth0 para ppp0)

* modem -> utiliza controle de dispositivo /dev/modem

* user -> informar em o nome do usuário para conexão com servidor

* crtscts -> utiliza controle de fluxo do modem

* holdoff -> especifica o tempo em segundo para que a conexão seja reestabelecida

* maxfail -> especifica o numero maximo de tentativas de conexao, quandi atingir o valor especificado o pppd é desligado. Se você quer que a interface fique ativada, mesmo que por varias tentativas sem sucesso, apague esta linha.

* demand -> informa que o ppp será utilizado em modo Demand

* idle -> informar aqui quantos segundos a conexao podera ficar aberta sem tráfego. Exemplo 300 = 5 minutos

* persist -> informa ao pppd que esta conexão deverá persistir caso ocorra algum erro.

* Altere o arquivo /etc/ppp/chap-secrets de acordo com o mostrado abaixo

"usuario"  interface   "senha"

onde: "usuario" devera ser preenchido o nome do usuario/login, deixar as "" (aspas); interface indicará qual a interface que perfente esta configuracao, usuario/senha. Para utilizar esta como padrão, basta colocar um "*" sem os sinais de "" (aspas); e "senha" deverá ser preenchido a senha, deixar as "" (aspas)

* Altere o arquivo /etc/ppp/pap-secrets de acordo com o mostrado abaixo:

usuario  interface   senha

onde: usuario deverá ser preenchido o nome do usuário, interface indicará qual a interface que pertence esta configuracao, usuário. Para utilizar esta como padrão, basta colocar um "*" sem as "" (aspas), e senha deverá ser preenchido a senha.

* Crie o diretorio: /etc/ppp/scripts

* Agora, crie dentro destes diretórios os seguintes arquivos:

Arquivo: /etc/ppp/scripts/carregar

#!/bin/sh
# Script de Discagem para utilizacao do Daemon pppd em modo on demand
# com autenticacao no provedor via PAP
# Autoria      : Fabio Tavares Vieira
# Em           : Julho/2000
# Revisado por : Jose Roberto Kerne - jrkerne1@rno.matrix.com.br
# Em           : 15 de Agosto de 2000
# Este script esta regido pela GPL - GNU General Public License.

echo "Discagem sob Demanda... [ Carregado ]" /usr/sbin/pppd /dev/modem 115200 connect \ '/usr/sbin/chat TIMEOUT 200 ABORT "BUSY" ABORT "NO DIALTONE" ABORT "NO CARRIER" "" ATZ OK ATS6=2S7=122X3DT CONNECT'

Explicação: Deve-se incluir a seguinte linha no arquivo: /etc/rc.d/rc.local

/etc/ppp/scripts/./carregar

Isto tornará a interface PPP ativa, e em espera por uma requisição de endereço externo a sua rede.

Arquivo: /etc/ppp/scripts/ligar

#!/bin/sh
# Script para ativar o pppd e iniciar automaticamente 
# a conexao com a Internet.
# Autoria      : Fabio Tavares Vieira
# Em           : Julho/2000
# Revisado por : Jose Roberto Kerne - jrkerne1@rno.matrix.com.br
# Em           : 15 de agosto de 2000
# Este script esta regido pela GPL - GNU General Public License.

# Looping necessário para dar tempo para o pppd ser carregado em memoria. echo "Ativando Conexao PPP on Demand..." while ! [ -f /var/run/ppp0.pid ] do echo "Aguardando interface ppp0 ser carregada..." done

# Para que a conexão seja realizada, e necessario que a rede solicite # um endereco IP externo, ou seja, que não faça parte da sua rede, abaixo # está um exemplo, utilizando IP do servidor Matrix ping 200.196.7.1 -c 1 -i 1

Explicação: Este script servirá para os testes de conexão. Após executar o script "carregar", este script fará a solicitação de um endereco externo, forçando assim o pppd a discar e conectar ao provedor.

Arquivo: /etc/ppp/scripts/desligar

#!/bin/sh
# Script para desativar o pppd
# Autoria      : Fabio Tavares Vieira
# Em           : Julho/2000
# Revisado por : Jose Roberto Kerne - jrkerne1@rno.matrix.com.br
# Em           : 15 de agosto de 2000
# Este script esta regido pela GPL - GNU General Public License.

echo "Discagem sob Demanda... [ Descarregado ]" killall pppd

Explicação: Este script servirá para os testes de conexão. Após a conexão com o provedor, pode-se forçar a desconexão utilizando este script.

Arquivo: /etc/ppp/scripts/mantem_ligado

#!/bin/sh
# Script para manter a conexão PPP ativa, mesmo que 
# não se esteja utilizando
# a interface PPP, ou seja, navegando na internet, 
# a conexao ficarah disponivel
# Autoria      : Fabio Tavares Vieira
# Em           : Julho/2000
# Revisado por : Jose Roberto Kerne - jrkerne1@rno.matrix.com.br
# Em           : 15 de agosto de 2000
# Este script esta regido pela GPL - GNU General Public License.

ping 200.196.7.1 -c 1 -i 1

Explicação: Este script mantem a conexão aberta, gerando tráfego para a interface PPP. Isto serve para testes de sua interface PPP.

* Depois de criados estes arquivos, execute o comando: chmod 755 /etc/ppp/scripts/* Este comando tornará os arquivos executáveis, para que possam ser carregados e devidamente testados.

Executando os testes

Para testar se sua conexão está ok, execute o script "/etc/ppp/scripts/carregar". Comando: /etc/ppp/scripts/./carregar

Aparentemente não acontecerá nada, mas será carregado o deamon pppd. Confira nos processos: Comando: ps ax

o seguinte processo deverá estar ativo:

XXX X XX X:XX /usr/sbin/pppd /dev/modem 115200 connect ...

Agora, execute o script: /etc/ppp/scripts/ligar Comando: /etc/ppp/scripts/./ligar

Você ouvira o seu modem discar, e conectar ao provedor. Se você verificar os processos, irá observar que um novo processo foi iniciado, o chat:

XXX XX X:XX /usr/sbin/chat ...

Este é o processo de autenticação de usuario e senha, que utilizará o que foi preenchido na interface ppp0, configurado via linuxconf.

Agora é so abrir o Netscape e navegar! Para desconectar, pode-se deixar a conexão inativa por 5 minutos, ou executar o script: /etc/ppp/scripts/desligar Execute o comando: /etc/ppp/scripts/./desligar

Finalmente acabou... é isso aí... se você teve paciência de escrever tudo o que está aqui, agora você tem o serviço de discagem sob demanda ativo em seu servidor. Se o serviço de Proxy estiver ativo, o funcionamento será o mesmo, desde que o script /etc/ppp/scripts esteja carregado. Lembro que você é livre para alterar este scripts da forma que quiser, desde que envie uma cópia da alteração para o Autor e para o Revisor (descritos nos scripts), e não retire as informações dos Autores Originais destes scripts.

Grato pela atenção!

Abraços
José Roberto Kerne
jrkerne1@rno.matrix.com.br
Departamento de Informática
Rineplast Plásticos Rio Negrinho Ltda


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.