27.3. Solução de problemas de conexões PPP
Anterior | Capítulo 27. PPP | Próxima

## 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

Anterior | Acima | Próxima
27.2. Configurando o PPP | Principal | 27.4. Usando o PPP sobre Ethernet (PPPoE)

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