Oi amigos,
Esse é o meu primeiro post na sua comunidade. Meu nome é Claudio Roberto Cussuol, sou o responsável pela mini-distro BrazilFW, é provável que alguns de vocês já conheçam, quem não conhece está convidado a nos fazer uma visita em BrazilFW Firewall and Router - Keeping Coyote Linux Floppy Firewall Up to Date.
Nosso sistema é uma mini-distro feita para compartilhar internet, ela é baseada no extinto Coyote Linux, mas podemos considerar que é um linux montado desde a base, sem utilizar pacotes de nenhuma distribuição específica. Usamos kernel 2.4.32, pppd 2.4.2 e pppoe 3.5. O cliente do pppoe funciona perfeitamente, em vários provedores no mundo todo.
Bom, agora queremos melhorar nosso sistema acrescentando um servidor de pppoe. Parecia fácil.
Fiz o dowload do rp-pppoe 3.8 e compilei com o gcc 3.3.32 e a uClibC 0.9.26. Esses gcc e a biblioteca são importantes para manter a compatibilidade do binário com o resto do sistema e garantir que a coisa toda fique pequena, afinal o BrazilFW foi feito para rodar em um único floppy.
Meu pppoe-server-options tem as seguintes opções:
# PPP options for the PPPoE server
# LIC: GPL
require-chap
default-mru
default-asyncmap
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 192.168.10.1
noipdefault
noipx
defaultroute
noproxyarp
noktune
usepeerdns
netmask 255.255.255.255
logfile /var/log/pppd.log
O /etc/ppp/options tem:
lock
crtscts
nobsdcomp
nodeflate
nopcomp
Conforme eu ví em vários tutoriais encontrados pelo mundo afora. Eu rodo o pppoe server com os seguintes parâmetros:
/usr/sbin/pppoe-server -I eth2 -S my_pppoe_server -L 192.168.10.1 -p /etc/ppp/ip
A interface eth2 está legal. Aceitando conexões da rede interna, nada de firewall por enquanto.
Quando eu rodo o pppoe-server ele não dá nenhuma mensagem, nada no log. Tambem não cria o arquivo em /log/var como eu esperava. Não sei se isso é um problema ou não. De qualquer forma, o serviço está subindo direitinho, ele aparece no ps.
Quando eu vou no computador client e tento conectar eu noto as seguintes mensagens no log do server:
Apr 29 17:25:09 brazilfw daemon.info pppoe-server[2103]: Session 25 created for client 00:0c:29:93:36:75 (192.168.10.29) on eth2 using Service-Name 'my_pppoe_server'
Apr 29 17:25:10 brazilfw daemon.info pppoe-server[1062]: Session 25 closed for client 00:0c:29:93:36:75 (192.168.10.29) on eth2
Apr 29 17:25:10 brazilfw daemon.info pppoe-server[1062]: Sent PADT
Apr 29 17:25:10 brazilfw daemon.err pppoe-server[1062]: PADT: Generic-Error: Received PADT from peer u»rýÒ^V?.RWm<&^D0
Apr 29 17:25:10 brazilfw daemon.err pppoe-server[1062]: PADT: Generic-Error: Ú
Apr 29 17:25:10 brazilfw daemon.info pppoe-server[1062]: Sent PADT
Notem que o server recebeu a tentativa de conexão do cliente (aparentemente não temos nenhum problema de rede) abriu a sessão mas fechou imediatamente.
O log do cliente mostra o seguinte:
Apr 27 19:17:51 brazilfw daemon.info pppd[630]: Serial connection established.
Apr 27 19:17:51 brazilfw daemon.info pppd[630]: Using interface ppp0
Apr 27 19:17:51 brazilfw daemon.notice pppd[630]: Connect: ppp0 <--> /dev/pts/1
Apr 27 19:17:51 brazilfw daemon.debug pppoe[2967]: PADS: Service-Name: 'my_pppoe_server'
Apr 27 19:17:51 brazilfw daemon.info pppoe[2967]: PPP session is 44
Apr 27 19:17:51 brazilfw daemon.info pppoe[2967]: Session 44 terminated -- received PADT from peer
Apr 27 19:17:51 brazilfw daemon.err pppoe[2967]: PADT: Generic-Error: RP-PPPoE: Child pppd process terminated
Apr 27 19:17:51 brazilfw daemon.info pppoe[2967]: Sent PADT
Apr 27 19:17:51 brazilfw daemon.notice pppd[630]: Modem hangup
Apr 27 19:17:51 brazilfw daemon.notice pppd[630]: Connection terminated.
Analizando o log, percebemos que o cliente encontrou o servidor, a sessão foi aberta, mas não conseguiu criar o processo pppd que estabeleceria a interface.
É isso, conecta, autentica mas não cria as interfaces ppp0, ppp1, etc....
disconecta imediatamente.
Alguem com esperiência em servidor de pppoe poderia me dar uma mãozinha. A comunidade do BrazilFW agradece.
Claudio