[FUG-BR] IPFW + Burst ?
Luiz Otavio Souza
luiz em visualconnect.com.br
Quarta Janeiro 10 14:09:12 BRST 2007
Renato Frederick escreveu:
> (...)
>
> Só uma pergunta. Estes scripts não consomem muita CPU/memória com o passar
> do tempo? Ou você desenvolveu algo mais "pra baixo" em C e etc, consultando
> diretamente a biblioteca do ipfw? Seria algo bacana de desenvolver hehe
>
Renato,
Tenho algo assim....
Criei uma tabela no mysql com alguns dados:
mysql> select ip, upload, download, enabled, ready from ips limit 10;
+---------------+--------+----------+---------+-------+
| ip | upload | download | enabled | ready |
+---------------+--------+----------+---------+-------+
| xxx.xx.xxx.51 | 150 | 300 | 1 | 1 |
| xxx.xx.xxx.50 | 300 | 600 | 1 | 1 |
| xxx.xx.xxx.3 | 175 | 350 | 1 | 1 |
| xxx.xx.xxx.4 | 300 | 600 | 1 | 1 |
| xxx.xx.xxx.5 | 175 | 350 | 1 | 1 |
| xxx.xx.xxx.52 | 64 | 128 | 1 | 1 |
| xxx.xx.xxx.53 | 128 | 256 | 1 | 1 |
| xxx.xx.xxx.54 | 64 | 128 | 1 | 1 |
| xxx.xx.xxx.55 | 128 | 256 | 1 | 1 |
| xxx.xx.xxx.57 | 64 | 128 | 1 | 1 |
+---------------+--------+----------+---------+-------+
10 rows in set (0.00 sec)
E escrevi um daemon pra fazer o trabalho sujo pra mim... o dummynetd.
Ele le essa tabela, procura por ips habilitados (enabled == 1) e cria os
pipes e as regras do ipfw.
Esse campo ready da tabela do mysql é utilizado para se comunicar com o
daemon, se eu preciso alterar uma velocidade, eu altero na tabela e
depois seto esse campo para 0 (zero). O dummynetd percebe isso e refaz
os pipes do usuário (e seta o ready novamente para 1 indicando que o
mesmo esta pronto para uso).
Fora isso ele le os contadores dos pipes e gera os graficos por ip
utilizando uma base de dados rrd.
Ele esta escrito todo em C, fala direto com o kernel para criar,
alterar, remover as regras e pipes.
Falta a interface web para administrar essa tabela... nao estou
preocupado com isso no momento...
O código esta disponivel sob licença BSD, mas não tem manual nem
instruções de instalação, embora não seja necessário nenhum guru para
faze-lo funcionar, posso ajudar e tirar as dúvidas de quem precisar.
[]'s
Luiz
Mais detalhes sobre a lista de discussão freebsd