FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD
 
 
29.08  
Inicio arrow Artigos arrow Controle de Trfego - IPFW2 + Dummynet
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histrico da Lista
Galeria de Imagens
Contador Usurios FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS
-
DOC-BR (FUG BR)
Introduo
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usurio

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma
Histrico da Lista
  • [FUG-BR] Problemas com P2P
  • Re: [FUG-BR] Problemas com P2P
  • [FUG-BR] RES: Problemas com P2P
  • Re: [FUG-BR] RES: Problemas com P2P
  • Re: [FUG-BR] RES: Problemas com P2P
  • [FUG-BR] RES: RES: Problemas com P2P
  • Re: [FUG-BR] Problemas com P2P
  • Re: [FUG-BR] Problemas com P2P

  • Alertas em Ports
  • opera -- multiple vulnerabilities
  • gnutls -- "gnutls_handshake()" Denial of Service
  • joomla -- flaw in the reset token validation



  • Controle de Trfego - IPFW2 + Dummynet PDF Imprimir E-mail
    Por Guilherme Rosrio   
    12/06/2006

    Controle de Tráfego

    IPFW2 + Dummynet


    O Dummynet é uma ferramenta muito flexível para gerenciamento de banda, para impor ou simular algumas condições desejadas no tráfego da rede. Ele funciona interceptando os pacotes e passando-os por um ou mais "pipes" ou "queues", que podem efetuar a limitação de banda, perdas de pacotes, retardos de propagação etc. Os pipes são canais com largura de banda fixa, enquanto as queues representam filas de pacotes, associadas a um peso (weight). As queues compartilham, em proporção ao peso, a largura de banda dos pipes aos quais estão associadas.

    Todo o gerenciamento do Dummynet é feito através do IPFW, que deverá estar configurado e funcionando.

    options DUMMYNET
    options HZ=1000

    A segunda opção não é obrigatória, mas na maioria dos casos auxilia no funcionamento do Dummynet. Ela define a granularidade do timer utilizado pelo sistema, que é de 10ms (HZ=100) por padrão. Efeitos do Dummynet como o delay de propagação são aplicados um a cada ponto do timer, então reduzir a granularidade irá possibilitar o tratamento de taxas de tráfego mais altas, e a especificação de delays mais precisos. A opção HZ=1000 irá definir a granularidade para 1ms. Valores menores que 1ms não são recomendados, para maiores informações veja a RFC1323.

    Adicionadas as opções, compile e instale o kernel, conforme descrito na seção Recompilação e Instalação do Kernel.

    Após isso, basta adicionar as regras desejadas através do IPFW. As opções do IPFW específicas para Dummynet estão descritas abaixo.

    Para definir um pipe utiliza-se o seguinte comando / regra:

    ipfw pipe número config opções-configuração

    Para a definição de uma queue utiliza-se o comando / regra abaixo:

    ipfw queue número config opções-configuração

    Em ambos os casos o parâmetro número não depende da númeração das demais regras do ipfw. As opções de configuração são as seguintes:


    Opções de configuração específicas do pipe:

    bw banda
    Define a largura de banda do pipe. A banda deve ser especificada em Kbit/s, Mbit/s, KByte/s ou MByte/s.


    delay delay
    Define o delay de propagação do pipe. O delay deverá ser especificado em milisegundos.


    Opções de configuração específicas da queue:

    pipe número
    Conecta a queue ao pipe especificado. Podem ser conectadas várias queues a um único pipe.

    weight peso
    Especifica o peso daquela queue. O valor pode variar de 1 a 100.


    Principais opções de configuração, comuns ao pipe e à queue:

    buckets tamanho-tabela
    Especifica o tamanho da tabela usada para guardar as diversas queues. O valor pode variar de 16 a 65536, o padrão é 64.

    mask especificação-máscara
    Define diferentes fluxos através da aplicação da máscara especificada. Cada fluxo é enviado para uma queue ou pipe separado, criados dinamicamente. Cada pipe dinâmico terá a mesma largura de banda do pipe original, enquanto que cada queue dinâmica irá compartilhar com as demais dinâmicas a largura de banda do pipe ao qual está conectada a original. A especificação de máscara deve ser uma ou mais das seguintes:
    dst-ip máscara, src-ip máscara, dst-port máscara, src-port máscara, proto máscara ou all.
    O parâmetro all define que todos os bits em todos os campos são significantes.

    noerror
    Não reporta o erro quando um pacote for perdido, por exemplo em uma simulação de perda de pacotes ou congestionamento.

    plr taxa-perda
    Define a taxa de perda de pacotes. O valor deverá ser entre 0 e 1, com 0 significando nenhuma perda, e 1 significando 100% de perda.

    queue {slots | tamanhoKBytes}
    Tamanho da fila, em slots ou KBytes.


    Os comandos para manipular as regras de pipes e queues são similares aos das regras comuns do IPFW:

    ipfw {pipe | queue} {delete | list | show} número


    Exemplos


     

    Limitar o tráfego da rede 10.10.0.0/16 para a 192.168.0.0/16 em 300 Kbit/s:

    ipfw add 1000 pipe 1 src-ip 10.10.0.0/16 dst-ip 192.168.0.0/16
    ipfw pipe 1 config bw 300Kbit/s queue 50KBytes


    Simular uma perda de pacotes de entrada de 5%:

    ipfw add 1000 pipe 1 in
    ipfw pipe 1 config plr 0.05


    Limitar o tráfego em 300Kbit/s de entrada em ambas as direções:

    ipfw add 1000 pipe 1 in
    ipfw add 1100 pipe 2 out
    ipfw pipe 1 config bw 300Kbit/s queue 50KBytes
    ipfw pipe 2 config bw 300Kbit/s queue 50KBytes


    Limitar o tráfego de cada máquina da rede 10.10.0.0/16 em 128Kbit/s nas duas direções:

    ipfw add 1000 pipe 1 src-ip 10.10.0.0/16 out
    ipfw add 1100 pipe 2 dst-ip 10.10.0.0/16 in
    ipfw pipe 1 config mask src-ip 0x000000ff bw 128Kbit/s queue 10KBytes
    ipfw pipe 2 config mask dst-ip 0x000000ff bw 128Kbit/s queue 10KBytes


    Introduzir um delay no tráfego:

    ipfw add 1000 pipe 1 in
    ipfw add 1100 pipe 2 out
    ipfw pipe 1 config delay 250ms bw 1Mbit/s
    ipfw pipe 2 config delay 250ms bw 1Mbit/s



    Devemos dar atenção ao tamanho da queue (fila) nos pipes quando fazemos limitação de banda, pois apesar de limitarmos a largura de banda em 50 Kbit/s, por exemplo, o MTU da interface de rede continua o normal, 1500 bytes. Se não for especificado o tamanho da fila, ela será muito grande e irá gerar um delay não desejado no tráfego. O tamanho padrão da fila é 50 slots, que multiplicado pelo MTU de 1500 bytes, dá o valor de 600 Kbits. Essa fila iria levar 12 segundos para ser preenchida por uma banda de 50 Kbit/s, o que é um atraso muito grande na comunicação.

    Referencia: http://www2.unijui.tche.br/~heini/freebsd/dummynet.html

    Comentrios


    Comente!*
    Nome:
    E-mail
    Homepage
    Ttulo:
    Comentrio:

    Cdigo:* Code

    ltima Atualizao ( 12/06/2006 )
     
    < Anterior   Prximo >
    FUG-BR - Espalhando BSD
    Dicas Rpidas:

    Para remover os caracteres ^M de um arquivo de texto de MS-DOS (e Windows), use o tr(1):

    tr -d \\r < arquivo_dos > arquivo_unix

     

     

     




    Wallpapers
    Sua Opiniao
    Online:
    Ns temos 21 visitantes online


    Devil Store - Sua loja BSD
    FreeBSD Brasil LTDA

    FUG-BR: Desde 1999, espalhando BSD pelo Brasil.