27.3. Solução de problemas de conexões PPP

Esta seção aborda alguns problemas que podem surgir ao usar PPP em uma conexão de modem. Alguns ISPs apresentam o prompt ssword enquanto outros apresentam password. Se o script ppp não for escrito de acordo, a tentativa de login falhará. A maneira mais comum de depurar as conexões ppp é conectando manualmente conforme descrito nesta seção.

27.3.1. Verifique os Device Nodes

Ao usar um kernel personalizado, certifique-se de incluir a seguinte linha no arquivo de configuração do kernel:

device   uart

O dispositivo uart já está incluído no kernel GENERIC, portanto, nenhuma etapa adicional é necessária neste caso. Basta verificar a saída do dmesg para o dispositivo do modem com:

# dmesg | grep uart

Isso deve exibir alguma saída pertinente sobre os dispositivos uart. Estas são as portas COM que precisamos. Se o modem funcionar como uma porta serial padrão, ele deve estar listado em uart1 ou COM2. Nesse caso, uma recompilação do kernel não é necessária. Ao fazer a verificação, se o modem estiver em uart1, o dispositivo do modem será /dev/cuau1.

27.3.2. Conectando Manualmente

Conectar-se à Internet controlando manualmente o ppp é rápido, fácil e uma ótima maneira de depurar uma conexão ou simplesmente obter informações sobre como o ISP trata as conexões ppp do cliente. Vamos iniciar o PPP na linha de comando. Note que em todos os nossos exemplos nós usaremos example como o nome do host da máquina rodando o PPP. Para iniciar o ppp:

# ppp
ppp ON example> set device /dev/cuau1

Este segundo comando define o dispositivo do modem como cuau1.

ppp ON example> set speed 115200

Isso define a velocidade de conexão para 115.200 kbps.

ppp ON example> enable dns

Isto diz ao ppp para configurar o resolver e adicionar as linhas do servidor de nomes ao /etc/resolv.conf. Se o ppp não puder determinar o nome do host, ele poderá ser configurado manualmente mais tarde.

ppp ON example> term

Isso alterna para o modo de terminal para controlar manualmente o modem.

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

Use o comando at para inicializar o modem, então use o comando atdt e o número o ISP para iniciar o processo de discagem.

CONNECT

Confirmação da conexão, se tivermos problemas de conexão, não relacionados ao hardware, aqui é onde tentaremos resolvê-los.

ISP Login:myusername

Nesse prompt, responda com o nome de usuário fornecido pelo ISP.

ISP Pass:mypassword

Nesse prompt, responda com a senha fornecida pelo ISP. Assim como ocorre ao se logar no FreeBSD, a senha não será exibida quando você a digitar.

Shell or PPP:ppp

Dependendo do ISP, este aviso pode não aparecer. Em caso afirmativo, ele está perguntando se deve usar um shell no provedor ou iniciar o ppp. Neste exemplo, o ppp foi selecionado para estabelecer uma conexão com a Internet.

Ppp ON example>

Observe que neste exemplo o primeiro p foi capitalizado. Isso mostra que nós nos conectamos com sucesso ao ISP.

PPp ON example>

Nós nos autenticamos com sucesso com nosso ISP e estamos aguardando que o endereço IP seja atribuído.

PPP ON example>

Fizemos a negociação de um endereço IP e concluímos nossa conexão com êxito.

PPP ON example>add default HISADDR

Aqui nós adicionamos nossa rota padrão, precisamos fazer isso antes de podermos conversar com o mundo externo, já que atualmente a única conexão estabelecida é com o peer. Se isso falhar devido a rotas existentes, coloque o caractere ! na frente do add. Alternativamente, defina isso antes de fazer a conexão real e ele negociará uma nova rota de acordo.

Se tudo correu bem, agora deveríamos ter uma conexão ativa com a Internet, que poderia ser colocada em segundo plano usando CTRL+z Se o PPP retornar para ppp, a conexão será perdida. É bom saber isso porque mostra o status da conexão. Os P maiúsculos representam uma conexão com o ISP e os p minúsculos mostram que a conexão foi perdida.

27.3.3. Depuração

Se uma conexão não puder ser estabelecida, desligue o fluxo de hardware CTS/RTS usando set ctsrts off. Normalmente este é o problema quando nos conectamos há alguns servidores de terminal com PPP, onde o PPP trava quando tenta gravar dados no link de comunicação e aguarda um Clear To Send (CTS), sinal que pode nunca vir. Ao usar esta opção, inclua set accmap, pois isso pode ser necessário para evitar que o hardware dependa de passar certos caracteres de ponta a ponta, na maioria das vezes XON/XOFF. Consulte ppp(8) para obter maiores informações sobre essa opção e como ela é usada.

Um modem mais antigo pode precisar de set parity even. A paridade é definida como none por padrão, mas é usada para verificação de erros com um grande aumento no tráfego, em modems mais antigos.

O PPP pode não retornar ao modo de comando, que geralmente é um erro de negociação em que o ISP está aguardando a negociação começar. Neste ponto, usando ~p forçará o ppp a começar a enviar as informações de configuração.

Se um prompt de login nunca aparecer, a autenticação PAP ou CHAP provavelmente será necessária. Para usar PAP ou CHAP, adicione as seguintes opções ao PPP antes de entrar no modo terminal:

ppp ON example> set authname myusername

Onde myusername deve ser substituído pelo nome de usuário que foi atribuído pelo ISP.

ppp ON example> set authkey mypassword

Onde mypassword deve ser substituído pela senha que foi atribuída pelo ISP.

Se uma conexão for estabelecida, mas não conseguir encontrar nenhum nome de domínio, tente utilizar o ping(8) em um endereço IP. Se houver 100 por cento (100%) de perda de pacotes, é provável que uma rota padrão não tenha sido atribuída. Verifique novamente se add default HISADDR foi definido durante a conexão. Se uma conexão puder ser feita para um endereço IP remoto, é possível que um endereço de resolvedor não tenha sido adicionado ao /etc/resolv.conf. Este arquivo deve se parecer com:

domain example.com
nameserver x.x.x.x
nameserver y.y.y.y

Onde x.x.x.x e y.y.y.y deve ser substituído pelo endereço IP dos servidores DNS do ISP.

Para configurar syslog(3) para fornecer o registro para a conexão PPP, verifique se essa linha existe no /etc/syslog.conf:

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

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.