[FUG-BR] PFSense com PPPoE Server + FreeRadius

Marcelo Gondim gondim em linuxinfo.com.br
Segunda Junho 6 10:12:20 BRT 2011


Em 06/06/2011 08:26, Luiz Otavio O Souza escreveu:
> On Jun 5, 2011, at 2:08 AM, Marcelo Gondim wrote:
>> Em 05/06/2011 00:31, Fabiano Carlos Heringer escreveu:
>>> Pessoal,
>>>
>>> Estou montando um server com o PFSense, e gostaria de utilizar PPPoE,
>>> bom já configurei com o FreeRadius e já está funcionando. Andei lendo em
>>> alguns sites e vi que o FreeBSD tem alguma limitacao que nao consegue
>>> fazer controle de banda pelo FreeRadius utilizando PPPoE, bom , isso
>>> procede? Estou com pfsense 2.0.
>>>
>>> Consegui fazer o esperado com o captive portal, mas percebi que os
>>> parametros inseridos nas opcoes do FreeRadius so funcionam quando a
>>> opcao de Controle de Banda do captive portal esta habilitado. Com o
>>> PPPoE eh possivel fazer algo parecido?
>>>
>>> Abracos!
>>>
>>> -------------------------
>>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>>
>> Opa Fabiano,
>>
>> Estou tentando fazer algo parecido sendo que aqui tenho concentradores
>> PPPoE Mikrotik autenticando uns 3000 clientes. Estou tentando arrumar
>> uma solução freebsd para substituir esses Mikrotiks mas ainda não
>> encontrei algo tão integrado. Estou olhando o mpd pra ver se resolve
> Marcelo,
>
> Eu implementei PPPoE em provedores de acesso via rádio com o pppoed(8) e ppp(8) em 2004 (IIRC) e naquela época já faziamos controle de banda e de MAC no pppoe (distribuindo IPs fixos e dinâmicos de acordo com os planos dos clientes).
>
> De lá pra cá a única coisa que mudou foi o mpd, que consegue fazer ainda mais (que o ppp(8)) e com bem menos (funciona no kernel e ocupa menos memória).
>
> Você provavelmente vai encontrar alguma documentação russa a respeito do mpd, pois sei que lá o mpd é muito utilizado em grandes concentradores PPPoE (milhares de conexões).
>
> Pode seguir tranquilo com FreeBSD no que tange a concentradores de acesso que você não vai se arrepender.

Opa Luiz obrigado aí pela dica. Realmente o mpd 5.x me pareceu a melhor 
opção mas a própria documentação não é muito rica em informações. Na 
parte de radius por exemplo vi que adicionando o dicionário do mpd posso 
fazer uma configuração como essa:

mpd-table += "1=10.0.0.1",
mpd-table += "1=10.0.0.15",
mpd-pipe += "1=bw 10Kbyte/s",
mpd-pipe += "5=bw 20Kbyte/s",
mpd-rule += "1=pipe %p1 all from any to table\\(%t1\\) in",
mpd-rule += "2=pipe %p5 all from table\\(%t1\\) to any out",
mpd-rule += "100=allow all from any to any",

When mpd receives these parameters it will call ipfw(8) to create 
firewall rules, pipes and queues with unique numbers starting from 10000 
(configurable via 'set global start...'). %rX, %pX, %qX, %tX macroses 
will be expanded within mpd-rule and mpd-queue. To the end of each rule 
will be added "via ngX" to make the rule apply only to that client's 
networking interface.

As a result of this example we would get these commands executed:

ipfw table 32 add 10.0.0.1
ipfw table 32 add 10.0.0.15
ipfw pipe 10000 config bw 10Kbyte/s
ipfw pipe 10001 config bw 20Kbyte/s
ipfw add 10000 pipe 10000 all from any to table\(32\) in via ng0
ipfw add 10001 pipe 10001 all from table\(32\) to any out via ng0
ipfw add 10002 allow all from any to any via ng0


Embora ele não comente em que tabelas do radius eu usaria cada parâmetro mas faço alguma idéia. O que realmente não vi na configuração do mpd e que seria de suma importância é o controle
de banda ser feito em cima do login de acesso e não do IP. Já que os clientes recebem IP dinamicamente no PPPoE e alguns tem IP fixo.
Vou continuar procurando alguma documentação que esclarece essa dúvida. Desde já obrigado.  :)

[]´s à todos





Mais detalhes sobre a lista de discussão freebsd