Capítulo 27. PPP

Esta tradução pode estar desatualizada. Para ajudar com as traduções, acesse a ferramenta de traduções do FreeBSD.

27.1. Sinopse

O FreeBSD suporta o protocolo Point-to-Point (PPP) que pode ser usado para estabelecer uma conexão de rede ou Internet usando um modem dial-up. Este capítulo descreve como configurar serviços de comunicação baseados em modem no FreeBSD.

Depois de ler este capítulo, você saberá:

  • Como configurar, usar e solucionar problemas de uma conexão PPP.

  • Como configurar o PPP sobre Ethernet (PPPoE).

  • Como configurar o PPP sobre ATM (PPPoA).

Antes de ler este capítulo, você deve:

  • Estar familiarizado com a terminologia básica de rede.

  • Entender os conceitos básicos e o propósito de uma conexão dial-up e PPP.

27.2. Configurando o PPP

O FreeBSD fornece suporte nativo para gerenciamento conexões dial-up PPP usando ppp(8). O kernel padrão do FreeBSD fornece suporte para o tun, que é usado para interagir com um hardware de modem. A configuração é executada editando pelo menos um arquivo de configuração, e exemplos destes arquivos de configuração são fornecidos com o sistema. Finalmente, o ppp é usado para iniciar e gerenciar conexões.

Para usar uma conexão PPP, os seguintes itens são necessários:

  • Uma conta dial-up com um provedor de serviços de Internet (ISP).

  • Um modem dial-up.

  • O número de discagem para o ISP.

  • O nome de usuário e a senha atribuídos pelo ISP.

  • O endereço IP de um ou mais servidores de DNS. Normalmente, o ISP fornece estes endereços. Caso contrário, o FreeBSD pode ser configurado para usar a negociação de DNS.

Se alguma das informações necessárias estiver faltando, entre em contato com o ISP.

As seguintes informações podem ser fornecidas pelo ISP, mas não são necessárias:

  • O endereço IP do gateway padrão. Se esta informação for desconhecida, o ISP fornecerá automaticamente o valor correto durante a configuração da conexão. Ao configurar o PPP no FreeBSD, este endereço é chamado de HISADDR.

  • A máscara de sub-rede. Se o ISP não tiver fornecido um, 255.255.255.255 será usado no arquivo de configuração do ppp(8). *

    Se o ISP tiver atribuído um endereço IP estático e um nome de host, ele deverá ser inserido no arquivo de configuração. Caso contrário, essas informações serão fornecidas automaticamente durante a configuração da conexão.

O restante desta seção demonstra como configurar o FreeBSD para cenários de conexão PPP comuns. O arquivo de configuração requerido é o /etc/ppp/ppp.conf e arquivos de exemplos adicionais estão disponíveis em /usr/shared/examples/ppp/.

Ao longo desta seção, muitos dos exemplos de arquivos exibem números de linha. Esses números de linha foram adicionados para facilitar o acompanhamento da discussão e não devem ser colocados no arquivo real.

Ao editar um arquivo de configuração, o recuo adequado é importante. Linhas que terminam em um : iniciam na primeira coluna (início da linha) enquanto todas as outras linhas devem ser recuadas como mostrado usando espaços ou tabulações.

27.2.1. Configuração básica

Para configurar uma conexão PPP, primeiro edite o /etc/ppp/ppp.conf com as informações de discagem do ISP. Este arquivo é descrito da seguinte maneira:

1     default:
2       set log Phase Chat LCP IPCP CCP tun command
3       ident user-ppp VERSION
4       set device /dev/cuau0
5       set speed 115200
6       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7                 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8       set timeout 180
9       enable dns
10
11    provider:
12      set phone "(123) 456 7890"
13      set authname foo
14      set authkey bar
15      set timeout 300
16      set ifaddr x.x.x.x/0 y.y.y.y/0 255.255.255.255 0.0.0.0
17      add default HISADDR
Linha 1

Identifica a entrada default. Os comandos nesta entrada (linhas 2 a 9) são executados automaticamente quando o ppp é executado.

Linha 2

Ativa os parâmetros de log detalhado para testar a conexão. Uma vez que a configuração esteja funcionando satisfatoriamente, esta linha deve ser reduzida para:

set log phase tun
Linha 3

Exibe a versão do ppp(8) para o software PPP em execução no outro lado da conexão.

Linha 4

Identifica o dispositivo ao qual o modem está conectado, onde COM1 é /dev/cuau0 e COM2 é /dev/cuau1.

Linha 5

Define a velocidade de conexão. Se 115200 não funcionar em um modem mais antigo, tente 38400 em seu lugar.

Linhas 6 & 7

A string de discagem escrita como na sintaxe de envio e espera. Consulte chat(8) para obter maiores informações.

Observe que esse comando continua na próxima linha para facilitar a leitura. Qualquer comando no ppp.conf pode fazer isso se o último caractere na linha for \.

Linha 8

Define o tempo ocioso limite do link em segundos.

Linha 9

Instrui o peer para confirmar as configurações de DNS. Se a rede local estiver executando seu próprio servidor DNS, essa linha deve ser comentada, adicionando um # no início da linha ou removendo-a.

Linha 10

Uma linha em branco para facilitar a leitura. Linhas em branco são ignoradas pelo ppp(8).

Linha 11

Identifica uma entrada chamada provider. Isto pode ser alterado para o nome do ISP, para que load ISP possa ser usado para iniciar a conexão.

Linha 12

Use o número de telefone para o ISP. Vários números de telefone podem ser especificados usando os dois-pontos (:) ou o caractere pipe (|) como um separador. Para rotacionar entre os números, use dois pontos. Para sempre tentar discar o primeiro número primeiro e usar os outros números apenas se o primeiro número falhar, use o caractere pipe. Sempre coloque todo o conjunto de números de telefone entre aspas (") para evitar falhas de discagem.

Linhas 13 & 14

Use o nome de usuário e senha para o ISP.

Linha 15

Define o tempo ocioso limite padrão em segundos para a conexão. Neste exemplo, a conexão será fechada automaticamente após 300 segundos de inatividade. Para evitar um tempo limite, defina esse valor como zero.

Linha 16

Define os endereços da interface. Os valores usados dependem de se um endereço IP estático foi obtido do ISP ou se ele negocia um endereço IP dinâmico durante a conexão.

Se o ISP tiver alocado um endereço IP estático e um gateway padrão, substitua xxxx pelo endereço IP estático e substitua yyyy com o endereço IP do gateway padrão. Se o ISP tiver fornecido apenas um endereço IP estático sem um endereço de gateway, substitua yyyy por 10.0.0.2/0.

Se o endereço IP mudar sempre que uma conexão for feita, altere essa linha para o seguinte valor. Isso diz ao ppp(8)para usar o IP Configuration Protocol (IPCP) para negociar um endereço IP dinâmico:

set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0
Linha 17

Mantenha esta linha como está, pois ela adiciona uma rota padrão ao gateway. O HISADDR será automaticamente substituído pelo endereço do gateway especificado na linha 16. É importante que esta linha apareça depois da linha 16.

Dependendo se o ppp(8) for iniciado manualmente ou automaticamente, um arquivo /etc/ppp/ppp.linkup também pode precisar ser criado, contendo as seguintes linhas. Este arquivo é requerido ao executar o ppp no modo -auto. Este arquivo é usado após a conexão ter sido estabelecida. Neste ponto, o endereço IP será atribuído e agora será possível adicionar as entradas da tabela de roteamento. Ao criar este arquivo, certifique-se de que o provider corresponda ao valor demonstrado na linha 11 do ppp.conf.

provider:
      add default HISADDR

Este arquivo também é necessário quando o endereço do gateway padrão é "adivinhado" em uma configuração de endereço IP estático. Neste caso, remova a linha 17 do ppp.conf e crie o /etc/ppp/ppp.linkup com as duas linhas acima. Outros exemplos para este arquivo podem ser encontrados em /usr/shared/examples/ppp/.

Por padrão, o ppp deve ser executado como root. Para alterar esse padrão, adicione a conta do usuário que deve executar o ppp ao grupo network em /etc/group .

Em seguida, conceda ao usuário acesso a uma ou mais entradas em /etc/ppp/ppp.conf com allow. Por exemplo, para dar a permissão para os usuários fred e mary somente à entrada provider:, inclua esta linha para a seção provider::

allow users fred mary

Para fornecer aos usuários especificados acesso a todas as entradas, coloque essa linha na seção default.

27.2.2. Configuração Avançada

É possível configurar o PPP para fornecer endereços de servidores DNS e NetBIOS sob demanda.

Para habilitar estas extensões com o PPP versão 1.x, as seguintes linhas podem ser adicionadas à seção relevante do /etc/ppp/ppp.conf.

enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5

E para o PPP versão 2 e acima:

accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5

Isso informará aos clientes os endereços do servidor de nomes primário e secundário e um host do servidor de nomes NetBIOS.

Na versão 2 e acima, se a linha set dns for omitida, o PPP usará os valores encontrados em /etc/resolv.conf.

27.2.2.1. Autenticação PAP e CHAP

Alguns ISPs configuram seu sistema para que a parte de autenticação da conexão seja feita usando um dos mecanismos de autenticação PAP ou CHAP. Se este for o caso, o ISP não exibirá um prompt login: na conexão, mas começará a falar PPP imediatamente.

O PAP é menos seguro que o CHAP, mas a segurança normalmente não é um problema aqui, pois as senhas, embora sejam enviadas como texto simples com o PAP, estão sendo transmitidas apenas por uma linha serial. Não há muito espaço para crackers "escutarem".

As seguintes alterações devem ser feitas:

13      set authname MyUserName
14      set authkey MyPassword
15      set login
Linha 13

Esta linha especifica o nome de usuário do PAP/CHAP. Insira o valor correto para MyUserName.

Linha 14

Esta linha especifica a senha PAP/CHAP . Insira o valor correto para MyPassword. Você pode querer adicionar uma linha adicional, como:

16      accept PAP

ou

16      accept CHAP

para tornar óbvio que essa é a intenção, mas o PAP e o CHAP são aceitos por padrão.

Linha 15

O ISP normalmente não exigirá um login no servidor ao usar o PAP ou o CHAP. Portanto, desabilite a string "set login".

27.2.2.2. Usando a funcionalidade de conversão de endereços de rede (NAT) do PPP

O PPP tem a capacidade de usar o NAT interno sem recursos de diverting do kernel. Esta funcionalidade pode ser ativada pela seguinte linha no /etc/ppp/ppp.conf:

nat enable yes

Como alternativa, o NAT pode ser ativado pela opção de linha de comando -nat. Há também uma opção no /etc/rc.conf chamada ppp_nat, que é ativada por padrão.

Ao usar este recurso, pode ser útil incluir as seguintes opções no /etc/ppp/ppp.conf para habilitar o encaminhamento de conexões de entrada:

nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http

ou para não confiar em nenhuma conexão de entrada

nat deny_incoming yes

27.2.3. Configuração final do sistema

Embora o ppp agora esteja configurado, algumas edições ainda precisam ser feitas no /etc/rc.conf.

Trabalhando de cima para baixo neste arquivo, certifique-se de que a linha hostname= esteja configurada:

hostname="foo.example.com"

Se o ISP tiver fornecido um nome de host e um endereço IP estático, use este nome como o nome do host.

Procure pela variável network_interfaces. Para configurar o sistema para discar para o ISP sob demanda, certifique-se de que o dispositivo tun0 esteja adicionado à lista, caso contrário, remova-o.

network_interfaces="lo0 tun0"
ifconfig_tun0=

A variável ifconfig_tun0 deve estar vazia, e um arquivo chamado /etc/start_if.tun0 deve ser criado. Este arquivo deve conter a linha:

ppp -auto mysystem

Este script é executado no momento da configuração da rede, iniciando o daemon do ppp no modo automático. Se esta máquina funcionar como um gateway, considere incluir a opção -alias. Consulte a página de manual para maiores detalhes.

Certifique-se de que o programa roteador está configurado para NO com a seguinte linha em /etc/rc.conf:

router_enable="NO"

É importante que o daemon routed não seja iniciado, pois o routed tende a excluir as entradas da tabela de roteamento padrão criadas pelo ppp.

É provavelmente uma boa idéia garantir que a linha sendmail_flags não inclua a opção -q, caso contrário o sendmail tentará fazer uma pesquisa de rede de vez em quando, possivelmente fazendo com que sua máquina disque. Você pode tentar:

sendmail_flags="-bd"

A desvantagem é que o sendmail é forçado a reexaminar a fila de mensagens sempre que o link ppp subir. Para automatizar isso, inclua !Bg no ppp.linkup:

1     provider:
2       delete ALL
3       add 0 0 HISADDR
4       !bg sendmail -bd -q30m

Uma alternativa é configurar um "dfilter" para bloquear o tráfego SMTP. Consulte os arquivos de exemplo para maiores detalhes.

27.2.4. Usando o ppp

Tudo o que resta é reiniciar a máquina. Após a reinicialização, digite:

# ppp

e, em seguida, o dial provider para iniciar a sessão PPP ou para configurar o ppp para estabelecer sessões automaticamente quando houver tráfego de saída e o start_if .tun0 não existir, digite:

# ppp -auto provider

É possível falar com o programa ppp enquanto ele está sendo executado em segundo plano, mas somente se uma porta de diagnóstico adequada tiver sido configurada. Para fazer isso, adicione a seguinte linha à configuração:

set server /var/run/ppp-tun%d DiagnosticPassword 0177

Isso fará com que o PPP escute no soquete de domínio UNIX™ especificado, solicitando aos clientes a senha especificada antes de permitir o acesso. O %d no nome é substituído pelo número do dispositivo tun que está em uso.

Uma vez que um socket tenha sido configurado, o programa pppctl(8) pode ser usado em scripts que desejam manipular o programa em execução.

27.2.5. Configurando serviços de discagem

A Serviço Dial-in fornece uma boa descrição sobre como ativar serviços dial-up usando o getty(8).

Uma alternativa para o getty é o port comms/mgetty+sendfax), uma versão mais inteligente do getty projetada com as linhas dial-up em mente.

As vantagens de usar o mgetty é que ele fala ativamente com os modems, o que significa que se a porta estiver desligada no /etc/ttys então o modem não irá atender o telefone.

Versões posteriores do mgetty (da 0.99beta em diante) também suportam a detecção automática de fluxos PPP, permitindo acesso ao servidor de clientes sem script.

Consulte a URL http://mgetty.greenie.net/doc/mgetty_toc.html para maiores informações sobre o mgetty.

Por padrão, o port comms/mgetty+sendfax vem com a opção AUTO_PPP ativada permitindo que o mgetty detecte a fase LCP das conexões PPP e crie automaticamente um shell ppp. No entanto, como a sequência de login/senha padrão não ocorre, é necessário autenticar os usuários usando o PAP ou o CHAP.

Esta seção assume que o usuário compilou com sucesso e instalou o port comms/mgetty+sendfax em seu sistema.

Assegure-se de que o /usr/local/etc/mgetty+sendfax/login.config tenha o seguinte:

/AutoPPP/ -     - /etc/ppp/ppp-pap-dialup

Isto diz ao mgetty para executar o ppp-pap-dialup para conexões PPP detectadas.

Crie um arquivo executável chamado /etc/ppp/ppp-pap-dialup contendo o seguinte:

#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT

Para cada linha dial-up ativada em /etc/ttys, crie uma entrada correspondente em /etc/ppp/ppp.conf. Isso irá coexistir com as definições que criamos acima.

pap:
  enable pap
  set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
  enable proxy

Cada usuário que fizer login com este método precisará ter um nome de usuário/senha em /etc/ppp/ppp.secret ou, como alternativa, adicione a seguinte opção para autenticar os usuários via PAP a partir de /etc/passwd.

enable passwdauth

Para atribuir à alguns usuários um endereço de IP estático , especifique o endereço como o terceiro argumento em /etc/ppp/ppp.secret. Consulte o /usr/shared/examples/ppp/ppp.secret.sample para exemplos.

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

27.4. Usando o PPP sobre Ethernet (PPPoE)

Esta seção descreve como configurar o PPP sobre Ethernet (PPPoE).

Aqui está um exemplo de ppp.conf funcional:

default:
  set log Phase tun command # you can add more detailed logging if you wish
  set ifaddr 10.0.0.1/0 10.0.0.2/0

name_of_service_provider:
  set device PPPoE:xl1 # replace xl1 with your Ethernet device
  set authname YOURLOGINNAME
  set authkey YOURPASSWORD
  set dial
  set login
  add default HISADDR

Como root, execute:

# ppp -ddial name_of_service_provider

Adicione o seguinte ao /etc/rc.conf:

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"	# if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"

27.4.1. Usando um nome de perfil PPPoE

Às vezes, será necessário usar nome de perfil para estabelecer a conexão. Nomes de perfil são usados para distinguir entre diferentes servidores PPPoE conectados a uma determinada rede.

Qualquer informação do nome do perfil necessário deve estar na documentação fornecida pelo ISP.

Como último recurso, pode-se tentar instalar o pacote ou port net/rr-pppoe. Lembre-se, no entanto, que isso pode desprogramar o seu modem e torná-lo inútil, então pense duas vezes antes de fazê-lo. Basta instalar o programa enviado com o modem. Em seguida, acesse o menu System do programa. O nome do perfil deve estar listado lá. Geralmente é ISP.

O nome do perfil (service tag) será usado na entrada de configuração PPPoE em ppp.conf como a parte do provedor para o set device. Consulte ppp(8) para detalhes completos. Deve ficar assim:

set device PPPoE:xl1:ISP

Não se esqueça de alterar o xl1 para o dispositivo adequado para a placa Ethernet.

Não se esqueça de alterar o ISP para o nome de perfil.

Para informações adicionais, consulte Banda larga mais barata com o FreeBSD em DSL por Renaud Waldura.

27.4.2. PPPoE com um 3Com™HomeConnect™ ADSL Modem Dual Link

Este modem não segue a especificação PPPoE definida em RFC 2516.

Para tornar o FreeBSD capaz de se comunicar com este dispositivo, um sysctl deve ser configurado. Isso pode ser feito automaticamente no momento da inicialização, atualizando o /etc/sysctl.conf:

net.graph.nonstandard_pppoe=1

ou pode ser feito imediatamente com o comando:

# sysctl net.graph.nonstandard_pppoe=1

Infelizmente, como essa é uma configuração valida para todo o sistema, não é possível falar com um cliente ou servidor PPPoE normal e um 3Com™HomeConnect™ Modem ADSL ao mesmo tempo.

27.5. Usando PPP sobre ATM (PPPoA)

Esta sessão descreve como configurar o PPP sobre ATM (PPPoA). O PPPoA é uma escolha popular entre os provedores europeus de DSL.

27.5.1. Usando o mpd

O aplicativo mpd pode ser usado para conectar-se a uma variedade de serviços, em particular serviços PPTP. Ele pode ser instalado usando o pacote ou port net/mpd5. Muitos modems ADSL exigem que um túnel PPTP seja criado entre o modem e o computador.

Uma vez instalado, configure o mpd para adequar-se às configurações do provedor. O port coloca um conjunto de arquivos de configuração de exemplos os quais são bem documentados em /usr/local/etc/mpd/. Um guia completo para configurar o mpd está disponível no formato HTML em /usr/ports/shared/doc/mpd/. Aqui está uma configuração de exemplo para conectar-se a um serviço ADSL com o mpd. A configuração está espalhada em dois arquivos, primeiro o mpd.conf:

Este exemplo de mpd.conf só funciona com o mpd 4.x.

default:
    load adsl

adsl:
    new -i ng0 adsl adsl
    set bundle authname username (1)
    set bundle password password (2)
    set bundle disable multilink

    set link no pap acfcomp protocomp
    set link disable chap
    set link accept chap
    set link keep-alive 30 10

    set ipcp no vjcomp
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0

    set iface route default
    set iface disable on-demand
    set iface enable proxy-arp
    set iface idle 0

    open
1O nome de usuário usado para autenticar com seu ISP.
2A senha usada para autenticar com seu ISP.

Informações sobre o link, ou links, a estabelecer são encontradas em mpd.links. Um exemplo do mpd.links para acompanhar o exemplo acima é dado abaixo:

adsl:
    set link type pptp
    set pptp mode active
    set pptp enable originate outcall
    set pptp self 10.0.0.1 (1)
    set pptp peer 10.0.0.138 (2)
1O endereço IP do computador FreeBSD executando o mpd.
2O endereço IP do modem ADSL. O padrão do Alcatel SpeedTouch™ padrão é 10.0.0.138.

É possível inicializar a conexão facilmente, emitindo o seguinte comando como root:

# mpd -b adsl

Para ver o status da conexão:

% ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
     inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

Usar o mpd é a maneira recomendada de se conectar a um serviço ADSL com o FreeBSD.

27.5.2. Usando o pptpclient

Também é possível usar o FreeBSD para conectar-se a outros serviços PPPoA usando o net/pptpclient.

Para usar o net/pptpclient para conectar-se a um serviço DSL, instale o port ou o pacote e edite o /etc/ppp/ppp.conf. Uma seção de exemplo do ppp.conf é dada abaixo. Para maiores informações sobre as opções do ppp.conf consulte ppp(8).

adsl:
 set log phase chat lcp ipcp ccp tun command
 set timeout 0
 enable dns
 set authname username (1)
 set authkey password (2)
 set ifaddr 0 0
 add default HISADDR
1O nome de usuário no provedor de DSL.
2A senha da sua conta.

Como a senha da conta é adicionada ao ppp.conf em forma de texto simples, certifique-se de que ninguém possa ler o conteúdo deste arquivo:

# chown root:wheel /etc/ppp/ppp.conf
# chmod 600 /etc/ppp/ppp.conf

Isso abrirá um túnel para uma sessão PPP para o roteador DSL. Os modems Ethernet DSL têm um endereço IP LAN pré-configurado para conexão. No caso do Alcatel SpeedTouch™ Home, este endereço é 10.0.0.138. A documentação do roteador deve listar o endereço que o dispositivo usa. Para abrir o túnel e iniciar uma sessão PPP:

# pptp address adsl

Se um E comercial ("&") for adicionado ao final desse comando, o pptp retornará ao prompt.

Um dispositivo de túnel virtual tun será criado para interação entre os processos do pptp e do ppp. Quando o prompt for retornado ou o processo do pptp confirmar uma conexão, examine o túnel:

% ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
	Opened by PID 918

Se a conexão falhar, verifique a configuração do roteador, que geralmente é acessível usando um navegador da web. Além disso, examine a saída do pptp e o conteúdo do arquivo de log /var/log/ppp.log para pistas.


Última alteração em: 9 de março de 2024 por Danilo G. Baio