18.4. Resolução de Problemas

Contribuído por Tom Rhodes.

Está seção cobre alguns dos problemas que podem aparecer quando você utiliza PPP sobre uma conexão com modem. Por exemplo, talvez você precise saber exatamente qual o prompt que o sistema remoto irá lhe apresentar. Alguns provedores usam o prompt ssword e outros usam password; se o script ppp não for escrito de acordo a autenticação irá falhar. A maneira mais fácil de diagnosticar problemas nas conexões ppp e tentar se conectar manualmente. A seguinte informação vai lhe ajudar a realizar este processo passo a passo.

18.4.1. Verificar os Nós de Dispositivos

Se você reconfigurou seu kernel você se lembra do dispositivo sio. Se você não reconfigurou seu kernel não precisa se preocupar. Apenas verifique a saída do comando dmesg e procure pelo dispositivo do modem dessa forma:

#dmesg | grep sio

Você deve ver alguma informações sobre dispositivos sio. Essas são as portas COM que nós precisamos. Se seu modem age como uma porta serial padrão então você deve ele listado como sio1, ou COM2. Neste caso você não precisa recompilar seu kernel, você precisa apenas criar o dispositivo serial. Você pode fazer isso indo em /dev e rodando o script MAKEDEV como acima. Agora crie os dispositivos seriais com:

# sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3

que irá criar os dispositivos seriais para seu sistema. Se seu modem estiver em sio1 ou COM2 se você está no DOS, então este modem será /dev/cuaa1.

18.4.2. Conectando Manualmente

Conectar a Internet através do controle manual do ppp é rápido, fácil e uma boa forma de depurar uma conexão ou apenas ver como seu provedor gerencia conexões de clientes ppp. Vamos iniciar o PPP pela linha de comando. Note que todos os nossos exemplos irão utilizar exemplo como o hostname da máquina rodando o PPP. Você inicia o ppp digitando apenas ppp:

# ppp

Nós iniciamos o ppp.

ppp ON exemplo> set device /dev/cuaa1

Ajustamos o dispositivo do modem, nesse caso cuaa1.

ppp ON exemplo> set speed 115200

Ajusta a velocidade de conexão, nesse caso estamos utilizando 115,200 kbps.

ppp ON exemplo> enable dns

Dizemos ao ppp que configure nosso resolver e adicione as linhas nameserver ao /etc/resolv.conf. Se o ppp não puder determinar seu hostname nós podemos ajustá-lo manualmente mais tarde.

ppp ON exemplo> term

Mude para o modo ``terminal'' para que possamos controlar o modem manualmente.

deflink: Entering terminal mode on /dev/cuaa1
type '~h' for help
at
    OK
    atdt123456789

Utilize at para inicializar o modem, e então atdt e o número do seu provedor para iniciar o processo de discagem.

CONNECT

Sinal de confirmação da conexão. Se nós formos ter qualquer problema, não relacionado ao hardware, é aqui que tentaremos resolvê-lo.

ISP Login:usuário

Aqui um usuário é requerido. Digite o usuário que lhe foi informado pelo provedor.

ISP Pass:senha

Agora é a vez da senha, apenas responda com a senha que o provedor lhe informou. Da mesma maneira como entramos no sistema, a senha não será mostrada aqui.

Shell or PPP:ppp

Dependendo do seu provedor este prompt pode não aparecer. Aqui estamos sendo indagados se nós gostaríamos de usar uma shell no provedor ou iniciar o ppp. Neste exemplo nós escolhemos ppp pois queremos uma conexão com a Internet.

Ppp ON exemplo>

Note que neste exemplo o primeiro p está maiúsculo agora. Isso mostra que nós nos conectamos com sucesso ao provedor.

PPp ON exemplo>

Nós nos autenticamos com sucesso junto ao provedor e estamos esperando o endereço IP que vai ser fornecido.

PPP ON exemplo>

Nós fizemos um acordo sobre o endereço IP e completamos com sucesso nossa conexão.

PPP ON exemplo>add default HISADDR

Aqui nós adicionar a rota padrão. Precisamos fazer isso antes de conversar com o mundo exterior pois no momento a única conexão estabelecida é com a ponta remota. Se isso falhar devido a já haver uma rota existente você pode colocar o caractere ! na frente da opção add. Você também pode fazer isso antes de iniciar a conexão e o programa irá negociar uma rota de acordo.

Se tudo correu bem nós devemos ter uma conexão ativa com a Internet agora, que deve ser jogada para o segundo plano usando CTRL+z Se você notar que o PPP retornou para ppp então nós perdemos nossa conexão. É bom saber isso pois ele lhe informa o estado atual da conexão. P's maiúsculos indicam que nós temos uma conexão com o provedor e p's minúsculos indicam que a conexão foi perdido por um motivo qualquer. O comando ppp tem apenas dois estados.

18.4.2.1. Depuração

Se você tem uma linha direta e não consegue realizar a conexão tente desativar controle de fluxo por hardware CTS/RTS com a opção set ctsrts off. Isso pode ocorrer caso você esteja conectado a um servidor PPP onde o PPP trava quando ele tenta enviar os dados pelo seu link de comunicação. Ele estaria esperando por um sinal CTS, ou Clear To Send (Livre para Enviar), que pode nunca chegar. Entretanto se você ativar esta opção você deve também usar set accmap que pode ser requerido para cancelar o hardware que depende do envio de certos caracteres de ponta a ponta, na maior parte do tempo XON/XOFF. Veja a página manual ppp(8) para maiores informações sobre esta opção e como ela é utilizada.

Se você tem um modem antigo pode ter que utilizar a opção set parity even. Paridade é ajustada para none por padrão, mas é utilizada para verificação de erros (com um aumento no tráfego) em modens antigos e alguns provedores. Você pode precisar desta opção no provedor Compuserve.

O PPP pode não retornar para o modo de comando, o que geralmente indica um erro de negociação onde o provedor está aguardando que você inicie a negociação. Nesse ponto, usar o comando ~p irá forçar o ppp a enviar as informações de configuração.

Se você nunca ver um prompt de login você terá de utilizar PAP ou CHAP para fazer a autenticação em vez do estilo UNIX® no exemplo acima. Para usar PAP ou CHAP apenas adicione as seguintes opções no PPP antes de entrar em modo terminal:

ppp ON exemplo> set authname usuario

Onde usuario deve ser trocado pelo usuário que foi definido pelo seu provedor.

ppp ON exemplo> set authkey senha

Onde senha deve ser trocado pela senha que foi definida pelo seu provedor.

Se você conectar sem problemas mas não conseguir achar nenhum domínio, tente utilizar o ping(8) com um endereço IP e ver se você consegue alguma informação. Se você experimentar 100% de perda de pacotes (packet loss) então poderá indicar que uma rota padrão não foi definida. Verifique novamente que a opção add default HISADDR foi definida durante a conexão. Se você conseguir conectar a um endereço IP remoto então é possível que um servidor de nomes não foi adicionado ao /etc/resolv.conf. Esse arquivo deve se parecer com:

domain exemplo.com.br
nameserver x.x.x.x
nameserver y.y.y.y

Onde x.x.x.x e y.y.y.y devem ser trocados pelos endereços IP dos servidores de DNS do seu provedor. Essa informação pode ser definida pelo seu provedor, ou não. Ligue para seu provedor e peça que lhe informem estes endereços.

Você pode fazer com que o syslog(3) ative a função de logging para sua conexão PPP

!ppp
*.*     /var/log/ppp.log

no /etc/syslog.conf. Na maioria dos casos esta funcionalidade já existe.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.