Tenho visto vários artigos e perguntas referentes a "queda" da
conexão ADSL em algumas distribuições
Linux,
principalmente o
RedHat. Confesso que sou fã das distros
mais "robustas", como o
Slackware, onde estas coisas quase
não ocorrem, mas recentemente passei por este problema em um
cliente que já tinha o RH9 instalado. Então achei mais fácil
tentar resolver o problema do que instalar outra distro.
Pelo que pude notar o pacote
rp-pppoe que vem junto com o
RH9 (versão 3.5 se não me engano), tem um bug no tratamento da
conexão "on-demand", forçando a queda da conexão com pouco tempo
de inatividade (neste cliente a queda se dava em menos de 20
segundos de inatividade). Porém, na primeira tentativa de
conexão, o daemon levanta a interface
ppp0 novamente, mas
daí é necessário autenticar novamente no provedor.
A solução mais simples que encontrei foi remover este pacote e
instalar uma versão mais antiga. Eu removi o pacote rp-ppoe-3.5
e instalei em seu lugar o rp-ppoe-2.8, que pode ser baixado no
seguinte link:
Para remover, faça o seguinte:
1) Procure a versão atualmente instalada:
# rpm -qa | grep rp-pppoe
2) Remova de acordo com o que foi mostrado pelo rpm -qa:
# rpm -e rp-pppoe-3.5.2-8 (isto é um exemplo!!!)
3) instale o pacote da versão mais antiga que foi baixado:
# rpm -ivh rp-pppoe-2.8.5.noarch.rpm (isto também é um exemplo!!!)
Já que a distro em questão era a RH9, não precisei compilar nada, pois já baixei o pacote no formato .RPM.
Daí então foi só chamar o
adsl-setup, digitar os parâmetros de costume e colocar o
adsl-start na inicialização do computador. Neste cliente eu não coloquei nenhum script de autenticação, deixando esta tarefa para o primeiro usuário. Acredito que não haverá problemas na utilização destes scripts. Mas de qualquer forma, depois que o primeiro usuário autenticar no provedor, a conexão se mantém enquanto a máquina Linux estiver ligada.
Vale lembrar para os iniciantes que depois de conectar com adsl-start, é preciso "mascarar" a conexão com NAT caso o computador com
Linux vá compartilhar o acesso à Internet. Por exemplo:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
OBS1: Só use esta regra do iptables depois do adsl-start! Antes não existirá nenhum ppp0.
OBS2: Nem me perguntem. Eu não me lembro mais da sintaxe do ipchains!!!
E também é necessário habilitar o repasse de pacotes através das interfaces de rede:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Espero que esta dica contribua para alguém, pois já enfrentei este
problema de desconexão durante muito tempo e sem nenhuma ajuda
consistente. Até sugestões de utilizar o crontab para "pingar" um
site de tempos em tempos eu vi, mas, fala sério!!! Já que o Linux
é um sistema operacional tão bom, pra que inventar coisas sem
sentido como esta???