+ Responder ao Tópico



  1. #1

    Padrão IPFW do FreBSD nao limita velocidade!!!!

    Olá pessoal!!! estou com problemas na limitação de banda para os clientes via IPFW do FreeBSD 5.3. Quando meço a velocidade de conexao do cliente no gratis bate la em cima, tipo 460kbps, 680kbps... sendo que no servidor estão todos barrados em 240kbps. vou postar meu ipfw.rules ai em baixo. Se alguem puder me ajudar, desde ja agradeço a atenção.

    ipfw -f flush
    natd -s -p 8668 -n tun0
    ipfw add 10 divert natd all from any to any via tun0
    ipfw add 11 allow all from any to any via tun0
    ipfw add 12 permit all from any to any via rl1
    ipfw add 13 deny udp from any to any 137
    ipfw add 14 deny udp from any to any 138
    ipfw add 15 deny udp from any to any 139
    ipfw add 16 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80

    ipfw add 20 allow ip from 192.168.0.1 to any
    ipfw add 21 allow ip from any to 192.168.0.1
    ipfw add 22 allow ip from 192.168.0.2 to any
    ipfw add 23 allow ip from any to 192.168.0.2
    ipfw add 24 allow ip from 192.168.0.3 to any
    ipfw add 25 allow ip from any to 192.168.0.3
    ipfw add 26 allow ip from 192.168.0.4 to any
    ipfw add 27 allow ip from any to 192.168.0.4
    ipfw add 28 allow ip from 192.168.0.5 to any
    ipfw add 29 allow ip from any to 192.168.0.5

    ipfw pipe 1 config bw 240Kbit/s queue 10
    ipfw pipe 2 config bw 75Kbit/s queue 10
    ipfw add 100 pipe 1 ip from any to 192.168.0.8/30 out via rl1
    ipfw add 105 pipe 2 ip from 192.168.0.8/30 to any in via rl1

    ipfw pipe 3 config bw 240Kbit/s queue 10
    ipfw pipe 4 config bw 75Kbit/s queue 10
    ipfw add 110 pipe 3 ip from any to 192.168.0.12/30 out via rl1
    ipfw add 115 pipe 4 ip from 192.168.0.12/30 to any in via rl1

    ipfw pipe 5 config bw 240Kbit/s queue 10
    ipfw pipe 6 config bw 75Kbit/s queue 10
    ipfw add 120 pipe 5 ip from any to 192.168.0.16/30 out via rl1
    ipfw add 125 pipe 6 ip from 192.168.0.16/30 to any in via rl1

    ipfw pipe 7 config bw 240Kbit/s queue 10
    ipfw pipe 8 config bw 75Kbit/s queue 10
    ipfw add 130 pipe 7 ip from any to 192.168.0.20/30 out via rl1
    ipfw add 135 pipe 8 ip from 192.168.0.20/30 to any in via rl1

    ipfw pipe 9 config bw 240Kbit/s queue 10
    ipfw pipe 10 config bw 75Kbit/s queue 10
    ipfw add 140 pipe 9 ip from any to 192.168.0.24/30 out via rl1
    ipfw add 145 pipe 10 ip from 192.168.0.24/30 to any in via rl1

    tenho tambem o incoveniente de para cada cliente na rede eu ter que colocar essas 4 linhas no ipfw.rules. Sera que eu poderia limitar toda minha rede para a velocidade "X" sem precisar colocar esse tanto de pipes? Pessoal sou novato na area.. relevem......
    Aguardo respostas pessoal !!! Forte abraço.

  2. #2

    Padrão IPFW do FreBSD nao limita velocidade!!!!

    como tá o seu rc.conf?

  3. #3

    Padrão Meu rc.conf ..........

    snmpd_enable="YES"
    mrtg_enable="YES"
    linux_enable="YES"

    firewall_enable="YES"
    firewall_script="/etc/ipfw.rules"
    firewall_type="OPEN"
    gateway_enable="YES"

    squid_enable="YES"
    proftpd_enable="YES"
    sshd_enable="YES"
    named_enable="YES"
    ppp_enable="YES"
    ppp_profile="carlos"
    ppp_mode="-ddial"

    firewall_enable="YES"
    firewall_script="/etc/ipfw.rules"
    firewall_type="OPEN"

    #natd_program="/sbin/natd"
    #natd_enable="YES"
    #natd_interface="tun0"
    #natd_flags="-l -f /etc/natd.conf"

    ifconfig_rl0="up"
    ifconfig_rl1="inet 192.168.0.1 netmask 255.255.255.0"

    #sh /etc/client_iface

    ntpdate_enable="YES"
    ntpdate_flags="ntp.cais.rnp.br"

    hostname="Servidor1"

    desde ja agradeço a atenção.

  4. #4
    Cláudio_Nova Era Global
    Visitante

    Padrão Resposta

    Ola..
    Seguinte seu código esta incorreto, na parte onde usa-se o PIPE, vou mandar um exemplo, e vc muda toda a programação da suas regras. o rc.conf esta ok, o seu nat eu precisaria ver, mas verifique se no seu kernel vc colocou as opçoes certas.
    segue o limitador completo para uma maquina, o resto vc tem que fazer.

    no cabeçalho do seu firewall.rule vc coloca:

    #!/bin/sh
    echo""
    echo""
    echo "Regras iniciais sendo carregadas...."
    echo ""
    echo ""
    /sbin/ipfw -q -f flush
    /sbin/ipfw -q -f pipe flush
    sysctl -w net.inet.ip.fw.one_pass=0

    /sbin/ipfw -q add 020 allow ip from any to any via lo0
    /sbin/ipfw -q add 021 deny ip from any to 127.0.0.0/8
    /sbin/ipfw -q add 022 deny ip from 127.0.0.0/8 to any
    /sbin/ipfw -q add 023 divert natd all from any to any via rl0
    /sbin/ipfw -q add 024 allow udp from me to any
    /sbin/ipfw -q add 025 allow tcp from me to any
    /sbin/ipfw -q add 026 fwd 127.0.0.1,3128 tcp from any to not me 80

    Cooloque comentario "# este simbolo" antes de cada regra, para assegurar que nao vai dar pane no seu servidor, se der pane vc retire os comentario e use suas regras.

    #---------------------------------------------------------------------------------------------
    # 02-A - (comentario nao relevar esta parte) 192.168.1.2 -> Entrada de (128Kbs) e Saida de (128Kbs)
    #---------------------------------------------------------------------------------------------
    /sbin/ipfw -q pipe 70 config bw 128Kbit/s plr 0.0 delay 0 queue 32Kbytes # Entrada (Downloads)
    /sbin/ipfw -q pipe 71 config bw 128Kbit/s plr 0.0 delay 0 queue 32Kbytes # Saida (UpLoads)
    /sbin/ipfw -q add 200 pipe 70 ip from 192.168.1.2 to any in via rl1
    /sbin/ipfw -q add 201 pipe 71 ip from any to 192.168.1.2 out via rl1

    /sbin/ipfw -q add 30335 allow ip from 192.168.1.2 to any in via rl1 # Entrada (Downloads)
    /sbin/ipfw -q add 30336 allow ip from any to 192.168.1.2 out via rl1 # Saida (UpLoads)

    #---------------------------------------------------------------------------------------------
    Onde RL1 vc muda para placa de rede do seu servidor(local), e quanto a limitação geral, eh simples, vc simplismente coloque 192.168.0.0/24 e pronto vc limitou a rede toda para a velocidade desejada.
    Conselho que vc deve seguir a risca e nao tem ecessão. crieuma copia do seu ipfw.rule ou edite um arquivo e coloque o nome dele para ser carregado no lugar do original, sua rede eh simples isso eh bom.

    Vou mandar mastigado, soh vc colocar em pratica.

    rc.firewall

    #inicio do Firewall - Onde ele executa o sistema
    #!/bin/sh
    echo""
    echo""
    echo "Regras iniciais sendo carregadas...."
    echo ""
    echo ""
    /sbin/ipfw -q -f flush
    /sbin/ipfw -q -f pipe flush
    sysctl -w net.inet.ip.fw.one_pass=0

    /sbin/ipfw -q add 020 allow ip from any to any via lo0
    /sbin/ipfw -q add 021 deny ip from any to 127.0.0.0/8
    /sbin/ipfw -q add 022 deny ip from 127.0.0.0/8 to any
    /sbin/ipfw -q add 023 divert natd all from any to any via rl0
    /sbin/ipfw -q add 024 allow udp from me to any
    /sbin/ipfw -q add 025 allow tcp from me to any
    /sbin/ipfw -q add 026 fwd 127.0.0.1,3128 tcp from any to not me 80
    #------------------------------------------------------------------------------------
    # 02-A - (comentario nao relevar esta parte) 192.168.1.2 -> Entrada de (128Kbs) e Saida de (128Kbs)
    #------------------------------------------------------------------------------------
    /sbin/ipfw -q pipe 70 config bw 128Kbit/s plr 0.0 delay 0 queue 32Kbytes # Entrada (Downloads)
    /sbin/ipfw -q pipe 71 config bw 128Kbit/s plr 0.0 delay 0 queue 32Kbytes # Saida (UpLoads)
    /sbin/ipfw -q add 200 pipe 70 ip from 192.168.0.0/24 to any in via rl1
    /sbin/ipfw -q add 201 pipe 71 ip from any to 192.168.0.0/24 out via rl1

    /sbin/ipfw -q add 30335 allow ip from 192.168.0.0/24 to any in via rl1 # Entrada (Downloads)
    /sbin/ipfw -q add 30336 allow ip from any to 192.168.0.0/24 out via rl1 # Saida (UpLoads)
    #fim do Firewall
    Obs: Ative o Nat que esta desativado no seu rc.conf. Como? Retire as "#" das regras, salve e restart seu servidor. pronto, seus clientes estao limitados todos que estao na rede 192.168.0.x estarao limitados. Vc muda a limitação no 128Kb e 32Kb, lembre-se a rede eh dividida por 8 128/8=16 coloquei 32 para ficar mais rapido o trafego e nao aumentar a velocidade, aconselho vc fazer isso tbm. se precisar: [email protected] [email protected] ou [email protected], favor mandar como subject "Ajuda do site UnderLinux" que eu nao apagarei. Se precisar eu acesso seu servidor e faços as configurações.

    Cláudio de Jesus Soares.
    Nova Era Global Informatica, segurança e sistemas de informações - Vitória - ES - Brasil
    Presta serviços para 200 empresas no Brasil Todos, seja você também um cliente, Sistemas Operacionais: Linux, Solaris, IBM/OS2, FreeBSD, UNIX-HPuX e muito mais.