Olá a todos. Observo que na maioria dos exemplos que rolam por aí referente à utilização do IPFW para controle de banda utilizam "pipe 1", "pipe 2", "pipe 3", sempre em sequência, começando em 1, contíguos, sem intervalos (1,2,3,4,5,6,...).
Fiz um sistema de gestão de firewall, em que os rulesets de 6000 até 19999 são destinados ao controle banda. Para um controle mais fácil (adição, edição, exclusão) o número do pipe (pipe_nr) e do queue são iguais ao do ruleset. Por exemplo (parcial): VARRULESTART tem valor inicial de 6000 e VARRULEGROWN é igual a 5, incrementando a cada cliente (linha) que leio de um arquivo texto. # Download Rules VARRULESTART=$((VARRULESTART+$VARRULEGROWN)) $fz pipe $VARRULESTART config bw ${varBWDOWN}Kbit/s mask dst-ip 0xffffffff $fz queue $VARRULESTART config pipe $VARRULESTART $fz add $VARRULESTART queue $VARRULESTART all from any to $varBWIP # Upload Rules VARRULESTART=$((VARRULESTART+$VARRULEGROWN)) $fz pipe $VARRULESTART config bw ${varBWUP}Kbit/s mask src-ip 0xffffffff $fz queue $VARRULESTART config pipe $VARRULESTART $fz add $VARRULESTART queue $VARRULESTART all from $varBWIP to any Meu arquivo texto tem o seguinte formato: STATE IPADDRESS MAC DOWN UP HOSTNAME PROxYFULL on 192.168.20.2 aa:bb:cc:dd:ee:f1 256 128 george yes on 192.168.20.6 aa:bb:cc:dd:ee:f2 256 128 john no on 192.168.20.10 aa:bb:cc:dd:ee:f3 256 128 paul yes on 192.168.20.14 aa:bb:cc:dd:ee:f4 256 128 ringo yes Se o valor de VARRULESTART for igual a 0, com incremento de 1, os pipes e queues atuam perfeitamente em programas de P2P. Concluí, que o problema reportado em minha mensagem[1] sobre a anomalia do IPFW não estava relacionada à mascara[2], e sim aos seguintes fatos: 1) O IPFW aceita para pipe e queue qualquer inteiro positivo entre 1 e 65535, porém, desgraçadamente, em ordem, começando em um, contíguo, sem intervalo. 2) Não há documentação sobre a ordem de inserção de pipes e queues quanto à numeração (já li quase tudo que Luigi Rizzo escreveu sobre IPFW e nada). 3) Esse comportamento está evidente, ao meu ver, em ipfw2.c, onde o número do pipe é o mesmo número da posição na pilha, não deixando o administrador escolher manualmente o número pipe (até deixa, mas dá nessa bagunça toda). Quem concorda? Quem descorda? De forma alguma quero criar flames, e sim, obter a opinião de vocês, pois se for procedente, temos aí um caso omisso na documentação do IPFW; e sistemas como WARTA e SnowDog Firewall com regras tortas. Saudações, Trober - - - - - [1] http://www.fug.com.br/historico/html/freebsd/2009-04/msg00488.html [2] http://www.fug.com.br/historico/html/freebsd/2009-04/msg00518.html ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd